diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 408f80a6331a..ad1cff7b7aa1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: branches: - main schedule: - - cron: "20 8 * * *" + - cron: "21 8 * * *" workflow_dispatch: inputs: head: @@ -57,7 +57,7 @@ jobs: with: ruby-version: "${{ matrix.ruby }}" - name: Install NodeJS 18.x - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: "18.x" - name: Install tools diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 4f02481b660e..67d7d1fb9702 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,7 +13,7 @@ name: "CodeQL" on: schedule: - - cron: '23 12 * * 6' + - cron: '21 12 * * 6' jobs: analyze: diff --git a/.github/workflows/conformance.yaml b/.github/workflows/conformance.yaml index 496ce75465b7..5bf9bdcda097 100644 --- a/.github/workflows/conformance.yaml +++ b/.github/workflows/conformance.yaml @@ -28,7 +28,7 @@ jobs: with: ruby-version: ${{ matrix.ruby_version }} bundler-cache: true - - uses: actions/setup-go@v5 + - uses: actions/setup-go@v6 with: go-version: '>=1.23.0' - name: Install tools diff --git a/.github/workflows/release-please-now.yml b/.github/workflows/release-please-now.yml index 2c2bb852fb19..849963b2917e 100644 --- a/.github/workflows/release-please-now.yml +++ b/.github/workflows/release-please-now.yml @@ -1,7 +1,7 @@ name: Release-Please Now on: schedule: - - cron: '02 10 * * *' + - cron: '21 10 * * *' workflow_dispatch: inputs: args: diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 365d5ec3c3cc..ebed37305632 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,1011 +1,1015 @@ { - "google-ads-ad_manager": "2.0.0", + "google-ads-ad_manager": "2.0.1", "google-ads-ad_manager+FILLER": "0.0.0", - "google-ads-ad_manager-v1": "2.0.0", + "google-ads-ad_manager-v1": "2.1.0", "google-ads-ad_manager-v1+FILLER": "0.0.0", - "google-ads-marketing_platform-admin": "0.1.0", + "google-ads-marketing_platform-admin": "0.1.1", "google-ads-marketing_platform-admin+FILLER": "0.0.0", - "google-ads-marketing_platform-admin-v1alpha": "0.1.0", + "google-ads-marketing_platform-admin-v1alpha": "0.2.0", "google-ads-marketing_platform-admin-v1alpha+FILLER": "0.0.0", - "google-analytics-admin": "0.6.2", + "google-analytics-admin": "0.6.3", "google-analytics-admin+FILLER": "0.0.0", - "google-analytics-admin-v1alpha": "0.37.0", + "google-analytics-admin-v1alpha": "0.38.0", "google-analytics-admin-v1alpha+FILLER": "0.0.0", - "google-analytics-data": "0.7.1", + "google-analytics-data": "0.7.2", "google-analytics-data+FILLER": "0.0.0", - "google-analytics-data-v1beta": "0.17.0", + "google-analytics-data-v1beta": "0.18.0", "google-analytics-data-v1beta+FILLER": "0.0.0", - "google-apps-chat": "1.1.1", + "google-apps-chat": "1.1.2", "google-apps-chat+FILLER": "0.0.0", - "google-apps-chat-v1": "0.15.0", + "google-apps-chat-v1": "0.16.0", "google-apps-chat-v1+FILLER": "0.0.0", - "google-apps-events-subscriptions": "1.1.1", + "google-apps-events-subscriptions": "1.1.2", "google-apps-events-subscriptions+FILLER": "0.0.0", - "google-apps-events-subscriptions-v1": "0.4.0", + "google-apps-events-subscriptions-v1": "0.5.0", "google-apps-events-subscriptions-v1+FILLER": "0.0.0", - "google-apps-events-subscriptions-v1beta": "0.1.0", + "google-apps-events-subscriptions-v1beta": "0.2.0", "google-apps-events-subscriptions-v1beta+FILLER": "0.0.0", - "google-apps-meet": "1.1.1", + "google-apps-meet": "1.1.2", "google-apps-meet+FILLER": "0.0.0", - "google-apps-meet-v2": "0.5.0", + "google-apps-meet-v2": "0.6.0", "google-apps-meet-v2+FILLER": "0.0.0", - "google-apps-meet-v2beta": "0.7.0", + "google-apps-meet-v2beta": "0.8.0", "google-apps-meet-v2beta+FILLER": "0.0.0", - "google-area120-tables": "0.7.1", + "google-area120-tables": "0.7.2", "google-area120-tables+FILLER": "0.0.0", - "google-area120-tables-v1alpha1": "0.11.0", + "google-area120-tables-v1alpha1": "0.12.0", "google-area120-tables-v1alpha1+FILLER": "0.0.0", - "google-cloud-access_approval": "1.6.1", + "google-cloud-access_approval": "1.6.2", "google-cloud-access_approval+FILLER": "0.0.0", - "google-cloud-access_approval-v1": "1.3.0", + "google-cloud-access_approval-v1": "1.4.0", "google-cloud-access_approval-v1+FILLER": "0.0.0", - "google-cloud-advisory_notifications": "1.3.1", + "google-cloud-advisory_notifications": "1.3.2", "google-cloud-advisory_notifications+FILLER": "0.0.0", - "google-cloud-advisory_notifications-v1": "0.13.0", + "google-cloud-advisory_notifications-v1": "0.14.0", "google-cloud-advisory_notifications-v1+FILLER": "0.0.0", - "google-cloud-ai_platform": "2.1.0", + "google-cloud-ai_platform": "2.1.1", "google-cloud-ai_platform+FILLER": "0.0.0", - "google-cloud-ai_platform-v1": "1.21.0", + "google-cloud-ai_platform-v1": "1.23.0", "google-cloud-ai_platform-v1+FILLER": "0.0.0", - "google-cloud-alloy_db": "2.1.0", + "google-cloud-alloy_db": "2.1.1", "google-cloud-alloy_db+FILLER": "0.0.0", - "google-cloud-alloy_db-v1": "1.3.1", + "google-cloud-alloy_db-v1": "1.4.0", "google-cloud-alloy_db-v1+FILLER": "0.0.0", - "google-cloud-alloy_db-v1alpha": "0.14.1", + "google-cloud-alloy_db-v1alpha": "0.15.0", "google-cloud-alloy_db-v1alpha+FILLER": "0.0.0", - "google-cloud-alloy_db-v1beta": "0.17.1", + "google-cloud-alloy_db-v1beta": "0.18.0", "google-cloud-alloy_db-v1beta+FILLER": "0.0.0", - "google-cloud-api_gateway": "2.0.1", + "google-cloud-api_gateway": "2.0.2", "google-cloud-api_gateway+FILLER": "0.0.0", - "google-cloud-api_gateway-v1": "2.1.0", + "google-cloud-api_gateway-v1": "2.2.0", "google-cloud-api_gateway-v1+FILLER": "0.0.0", - "google-cloud-api_hub": "0.3.1", + "google-cloud-api_hub": "0.4.0", "google-cloud-api_hub+FILLER": "0.0.0", - "google-cloud-api_hub-v1": "0.5.0", + "google-cloud-api_hub-v1": "0.6.0", "google-cloud-api_hub-v1+FILLER": "0.0.0", - "google-cloud-api_keys": "1.3.1", + "google-cloud-api_keys": "1.3.2", "google-cloud-api_keys+FILLER": "0.0.0", - "google-cloud-api_keys-v2": "0.9.0", + "google-cloud-api_keys-v2": "0.10.0", "google-cloud-api_keys-v2+FILLER": "0.0.0", - "google-cloud-apigee_connect": "1.5.1", + "google-cloud-apigee_connect": "1.5.2", "google-cloud-apigee_connect+FILLER": "0.0.0", - "google-cloud-apigee_connect-v1": "1.3.0", + "google-cloud-apigee_connect-v1": "1.4.0", "google-cloud-apigee_connect-v1+FILLER": "0.0.0", - "google-cloud-apigee_registry": "1.3.1", + "google-cloud-apigee_registry": "1.3.2", "google-cloud-apigee_registry+FILLER": "0.0.0", - "google-cloud-apigee_registry-v1": "0.11.0", + "google-cloud-apigee_registry-v1": "0.12.0", "google-cloud-apigee_registry-v1+FILLER": "0.0.0", - "google-cloud-app_engine": "1.5.1", + "google-cloud-app_engine": "1.5.2", "google-cloud-app_engine+FILLER": "0.0.0", - "google-cloud-app_engine-v1": "1.3.0", + "google-cloud-app_engine-v1": "1.4.0", "google-cloud-app_engine-v1+FILLER": "0.0.0", - "google-cloud-app_hub": "2.0.1", + "google-cloud-app_hub": "2.0.2", "google-cloud-app_hub+FILLER": "0.0.0", - "google-cloud-app_hub-v1": "1.2.0", + "google-cloud-app_hub-v1": "1.3.0", "google-cloud-app_hub-v1+FILLER": "0.0.0", - "google-cloud-artifact_registry": "2.0.1", + "google-cloud-artifact_registry": "2.0.2", "google-cloud-artifact_registry+FILLER": "0.0.0", - "google-cloud-artifact_registry-v1": "1.5.0", + "google-cloud-artifact_registry-v1": "1.6.0", "google-cloud-artifact_registry-v1+FILLER": "0.0.0", - "google-cloud-artifact_registry-v1beta2": "0.15.0", + "google-cloud-artifact_registry-v1beta2": "0.16.0", "google-cloud-artifact_registry-v1beta2+FILLER": "0.0.0", - "google-cloud-asset": "1.8.2", + "google-cloud-asset": "1.8.3", "google-cloud-asset+FILLER": "0.0.0", - "google-cloud-asset-v1": "1.4.1", + "google-cloud-asset-v1": "1.5.0", "google-cloud-asset-v1+FILLER": "0.0.0", - "google-cloud-assured_workloads": "2.0.1", + "google-cloud-assured_workloads": "2.0.2", "google-cloud-assured_workloads+FILLER": "0.0.0", - "google-cloud-assured_workloads-v1": "1.3.0", + "google-cloud-assured_workloads-v1": "1.4.0", "google-cloud-assured_workloads-v1+FILLER": "0.0.0", - "google-cloud-assured_workloads-v1beta1": "0.21.1", + "google-cloud-assured_workloads-v1beta1": "0.22.0", "google-cloud-assured_workloads-v1beta1+FILLER": "0.0.0", - "google-cloud-automl": "2.0.2", + "google-cloud-automl": "2.0.3", "google-cloud-automl+FILLER": "0.0.0", - "google-cloud-automl-v1": "1.3.1", + "google-cloud-automl-v1": "1.4.0", "google-cloud-automl-v1+FILLER": "0.0.0", - "google-cloud-automl-v1beta1": "0.14.1", + "google-cloud-automl-v1beta1": "0.15.0", "google-cloud-automl-v1beta1+FILLER": "0.0.0", - "google-cloud-backupdr": "2.0.1", + "google-cloud-backupdr": "2.0.2", "google-cloud-backupdr+FILLER": "0.0.0", - "google-cloud-backupdr-v1": "1.2.0", + "google-cloud-backupdr-v1": "1.3.0", "google-cloud-backupdr-v1+FILLER": "0.0.0", - "google-cloud-bare_metal_solution": "2.0.1", + "google-cloud-bare_metal_solution": "2.0.2", "google-cloud-bare_metal_solution+FILLER": "0.0.0", - "google-cloud-bare_metal_solution-v2": "1.1.0", + "google-cloud-bare_metal_solution-v2": "1.2.0", "google-cloud-bare_metal_solution-v2+FILLER": "0.0.0", - "google-cloud-batch": "2.0.1", + "google-cloud-batch": "2.0.2", "google-cloud-batch+FILLER": "0.0.0", - "google-cloud-batch-v1": "1.2.0", + "google-cloud-batch-v1": "1.3.0", "google-cloud-batch-v1+FILLER": "0.0.0", - "google-cloud-beyond_corp": "1.4.1", + "google-cloud-beyond_corp": "1.4.2", "google-cloud-beyond_corp+FILLER": "0.0.0", - "google-cloud-beyond_corp-app_connections-v1": "0.8.0", + "google-cloud-beyond_corp-app_connections-v1": "0.9.0", "google-cloud-beyond_corp-app_connections-v1+FILLER": "0.0.0", - "google-cloud-beyond_corp-app_connectors-v1": "0.8.0", + "google-cloud-beyond_corp-app_connectors-v1": "0.9.0", "google-cloud-beyond_corp-app_connectors-v1+FILLER": "0.0.0", - "google-cloud-beyond_corp-app_gateways-v1": "0.8.0", + "google-cloud-beyond_corp-app_gateways-v1": "0.9.0", "google-cloud-beyond_corp-app_gateways-v1+FILLER": "0.0.0", - "google-cloud-beyond_corp-client_gateways-v1": "0.8.0", + "google-cloud-beyond_corp-client_gateways-v1": "0.9.0", "google-cloud-beyond_corp-client_gateways-v1+FILLER": "0.0.0", - "google-cloud-bigquery": "1.57.0", + "google-cloud-bigquery": "1.59.0", "google-cloud-bigquery+FILLER": "0.0.0", - "google-cloud-bigquery-analytics_hub": "1.3.1", + "google-cloud-bigquery-analytics_hub": "1.3.2", "google-cloud-bigquery-analytics_hub+FILLER": "0.0.0", - "google-cloud-bigquery-analytics_hub-v1": "0.13.1", + "google-cloud-bigquery-analytics_hub-v1": "0.15.0", "google-cloud-bigquery-analytics_hub-v1+FILLER": "0.0.0", - "google-cloud-bigquery-connection": "1.6.1", + "google-cloud-bigquery-connection": "1.6.2", "google-cloud-bigquery-connection+FILLER": "0.0.0", - "google-cloud-bigquery-connection-v1": "1.3.0", + "google-cloud-bigquery-connection-v1": "1.4.0", "google-cloud-bigquery-connection-v1+FILLER": "0.0.0", - "google-cloud-bigquery-data_exchange": "0.5.1", + "google-cloud-bigquery-data_exchange": "0.5.2", "google-cloud-bigquery-data_exchange+FILLER": "0.0.0", - "google-cloud-bigquery-data_exchange-v1beta1": "0.10.0", + "google-cloud-bigquery-data_exchange-v1beta1": "0.11.0", "google-cloud-bigquery-data_exchange-v1beta1+FILLER": "0.0.0", - "google-cloud-bigquery-data_policies": "2.0.1", + "google-cloud-bigquery-data_policies": "2.0.2", "google-cloud-bigquery-data_policies+FILLER": "0.0.0", - "google-cloud-bigquery-data_policies-v1": "1.1.0", + "google-cloud-bigquery-data_policies-v1": "1.2.0", "google-cloud-bigquery-data_policies-v1+FILLER": "0.0.0", - "google-cloud-bigquery-data_policies-v1beta1": "0.8.0", + "google-cloud-bigquery-data_policies-v1beta1": "0.9.0", "google-cloud-bigquery-data_policies-v1beta1+FILLER": "0.0.0", - "google-cloud-bigquery-data_transfer": "1.7.2", + "google-cloud-bigquery-data_transfer": "1.7.3", "google-cloud-bigquery-data_transfer+FILLER": "0.0.0", - "google-cloud-bigquery-data_transfer-v1": "1.4.1", + "google-cloud-bigquery-data_transfer-v1": "1.5.0", "google-cloud-bigquery-data_transfer-v1+FILLER": "0.0.0", - "google-cloud-bigquery-migration": "1.3.2", + "google-cloud-bigquery-migration": "1.3.3", "google-cloud-bigquery-migration+FILLER": "0.0.0", - "google-cloud-bigquery-migration-v2": "0.16.0", + "google-cloud-bigquery-migration-v2": "0.17.0", "google-cloud-bigquery-migration-v2+FILLER": "0.0.0", - "google-cloud-bigquery-reservation": "1.6.1", + "google-cloud-bigquery-reservation": "1.6.2", "google-cloud-bigquery-reservation+FILLER": "0.0.0", - "google-cloud-bigquery-reservation-v1": "1.6.0", + "google-cloud-bigquery-reservation-v1": "1.8.0", "google-cloud-bigquery-reservation-v1+FILLER": "0.0.0", - "google-cloud-bigquery-storage": "1.6.1", + "google-cloud-bigquery-storage": "1.6.2", "google-cloud-bigquery-storage+FILLER": "0.0.0", - "google-cloud-bigquery-storage-v1": "1.4.0", + "google-cloud-bigquery-storage-v1": "1.5.0", "google-cloud-bigquery-storage-v1+FILLER": "0.0.0", "google-cloud-bigtable": "2.12.1", "google-cloud-bigtable+FILLER": "0.0.0", - "google-cloud-bigtable-admin-v2": "1.13.0", + "google-cloud-bigtable-admin-v2": "1.14.0", "google-cloud-bigtable-admin-v2+FILLER": "0.0.0", - "google-cloud-bigtable-v2": "1.9.0", + "google-cloud-bigtable-v2": "1.10.0", "google-cloud-bigtable-v2+FILLER": "0.0.0", - "google-cloud-billing": "1.6.1", + "google-cloud-billing": "1.6.2", "google-cloud-billing+FILLER": "0.0.0", - "google-cloud-billing-budgets": "3.0.1", + "google-cloud-billing-budgets": "3.0.2", "google-cloud-billing-budgets+FILLER": "0.0.0", - "google-cloud-billing-budgets-v1": "1.3.0", + "google-cloud-billing-budgets-v1": "1.4.0", "google-cloud-billing-budgets-v1+FILLER": "0.0.0", - "google-cloud-billing-budgets-v1beta1": "0.15.0", + "google-cloud-billing-budgets-v1beta1": "0.16.0", "google-cloud-billing-budgets-v1beta1+FILLER": "0.0.0", - "google-cloud-billing-v1": "1.4.0", + "google-cloud-billing-v1": "1.5.0", "google-cloud-billing-v1+FILLER": "0.0.0", - "google-cloud-binary_authorization": "2.0.1", + "google-cloud-binary_authorization": "2.0.2", "google-cloud-binary_authorization+FILLER": "0.0.0", - "google-cloud-binary_authorization-v1": "1.3.0", + "google-cloud-binary_authorization-v1": "1.4.0", "google-cloud-binary_authorization-v1+FILLER": "0.0.0", - "google-cloud-binary_authorization-v1beta1": "0.16.0", + "google-cloud-binary_authorization-v1beta1": "0.17.0", "google-cloud-binary_authorization-v1beta1+FILLER": "0.0.0", - "google-cloud-build": "1.6.1", + "google-cloud-build": "1.6.2", "google-cloud-build+FILLER": "0.0.0", - "google-cloud-build-v1": "1.7.0", + "google-cloud-build-v1": "1.8.0", "google-cloud-build-v1+FILLER": "0.0.0", - "google-cloud-build-v2": "0.10.0", + "google-cloud-build-v2": "0.11.0", "google-cloud-build-v2+FILLER": "0.0.0", - "google-cloud-certificate_manager": "2.0.1", + "google-cloud-certificate_manager": "2.0.2", "google-cloud-certificate_manager+FILLER": "0.0.0", - "google-cloud-certificate_manager-v1": "1.1.0", + "google-cloud-certificate_manager-v1": "1.2.0", "google-cloud-certificate_manager-v1+FILLER": "0.0.0", - "google-cloud-channel": "2.0.1", + "google-cloud-channel": "2.0.2", "google-cloud-channel+FILLER": "0.0.0", - "google-cloud-channel-v1": "2.2.1", + "google-cloud-channel-v1": "2.3.0", "google-cloud-channel-v1+FILLER": "0.0.0", - "google-cloud-chronicle": "0.1.0", + "google-cloud-chronicle": "0.1.1", "google-cloud-chronicle+FILLER": "0.0.0", - "google-cloud-chronicle-v1": "0.1.0", + "google-cloud-chronicle-v1": "0.2.0", "google-cloud-chronicle-v1+FILLER": "0.0.0", - "google-cloud-cloud_controls_partner": "2.0.1", + "google-cloud-cloud_controls_partner": "2.0.2", "google-cloud-cloud_controls_partner+FILLER": "0.0.0", - "google-cloud-cloud_controls_partner-v1": "2.1.0", + "google-cloud-cloud_controls_partner-v1": "2.2.0", "google-cloud-cloud_controls_partner-v1+FILLER": "0.0.0", - "google-cloud-cloud_controls_partner-v1beta": "0.6.0", + "google-cloud-cloud_controls_partner-v1beta": "0.7.0", "google-cloud-cloud_controls_partner-v1beta+FILLER": "0.0.0", - "google-cloud-cloud_dms": "1.4.1", + "google-cloud-cloud_dms": "1.4.2", "google-cloud-cloud_dms+FILLER": "0.0.0", - "google-cloud-cloud_dms-v1": "1.3.1", + "google-cloud-cloud_dms-v1": "1.4.0", "google-cloud-cloud_dms-v1+FILLER": "0.0.0", - "google-cloud-cloud_quotas": "2.0.1", + "google-cloud-cloud_quotas": "2.0.2", "google-cloud-cloud_quotas+FILLER": "0.0.0", - "google-cloud-cloud_quotas-v1": "2.1.0", + "google-cloud-cloud_quotas-v1": "2.2.0", "google-cloud-cloud_quotas-v1+FILLER": "0.0.0", - "google-cloud-cloud_quotas-v1beta": "0.5.0", + "google-cloud-cloud_quotas-v1beta": "0.6.0", "google-cloud-cloud_quotas-v1beta+FILLER": "0.0.0", - "google-cloud-commerce-consumer-procurement": "1.2.1", + "google-cloud-commerce-consumer-procurement": "1.2.2", "google-cloud-commerce-consumer-procurement+FILLER": "0.0.0", - "google-cloud-commerce-consumer-procurement-v1": "1.4.1", + "google-cloud-commerce-consumer-procurement-v1": "1.5.0", "google-cloud-commerce-consumer-procurement-v1+FILLER": "0.0.0", - "google-cloud-compute": "1.11.1", + "google-cloud-compute": "1.11.2", "google-cloud-compute+FILLER": "0.0.0", - "google-cloud-compute-v1": "3.1.0", + "google-cloud-compute-v1": "3.4.0", "google-cloud-compute-v1+FILLER": "0.0.0", - "google-cloud-confidential_computing": "1.1.1", + "google-cloud-confidential_computing": "1.1.2", "google-cloud-confidential_computing+FILLER": "0.0.0", "google-cloud-confidential_computing-v1": "1.6.1", "google-cloud-confidential_computing-v1+FILLER": "0.0.0", - "google-cloud-config_delivery": "0.1.0", + "google-cloud-config_delivery": "0.1.1", "google-cloud-config_delivery+FILLER": "0.0.0", - "google-cloud-config_delivery-v1": "0.1.0", + "google-cloud-config_delivery-v1": "0.2.0", "google-cloud-config_delivery-v1+FILLER": "0.0.0", - "google-cloud-config_service": "2.0.1", + "google-cloud-config_service": "2.0.2", "google-cloud-config_service+FILLER": "0.0.0", - "google-cloud-config_service-v1": "2.2.0", + "google-cloud-config_service-v1": "2.4.0", "google-cloud-config_service-v1+FILLER": "0.0.0", - "google-cloud-connectors": "2.0.1", + "google-cloud-connectors": "2.0.2", "google-cloud-connectors+FILLER": "0.0.0", - "google-cloud-connectors-v1": "1.1.0", + "google-cloud-connectors-v1": "1.2.0", "google-cloud-connectors-v1+FILLER": "0.0.0", - "google-cloud-contact_center_insights": "1.5.1", + "google-cloud-contact_center_insights": "1.5.2", "google-cloud-contact_center_insights+FILLER": "0.0.0", - "google-cloud-contact_center_insights-v1": "1.6.0", + "google-cloud-contact_center_insights-v1": "1.7.0", "google-cloud-contact_center_insights-v1+FILLER": "0.0.0", - "google-cloud-container": "2.0.2", + "google-cloud-container": "2.0.3", "google-cloud-container+FILLER": "0.0.0", - "google-cloud-container-v1": "1.9.0", + "google-cloud-container-v1": "1.10.0", "google-cloud-container-v1+FILLER": "0.0.0", - "google-cloud-container-v1beta1": "0.48.0", + "google-cloud-container-v1beta1": "0.49.0", "google-cloud-container-v1beta1+FILLER": "0.0.0", - "google-cloud-container_analysis": "1.5.3", + "google-cloud-container_analysis": "1.5.4", "google-cloud-container_analysis+FILLER": "0.0.0", - "google-cloud-container_analysis-v1": "1.4.0", + "google-cloud-container_analysis-v1": "1.5.0", "google-cloud-container_analysis-v1+FILLER": "0.0.0", "google-cloud-core": "1.8.0", "google-cloud-core+FILLER": "0.0.0", - "google-cloud-data_catalog": "2.1.1", + "google-cloud-data_catalog": "2.1.2", "google-cloud-data_catalog+FILLER": "0.0.0", - "google-cloud-data_catalog-lineage": "1.1.1", + "google-cloud-data_catalog-lineage": "1.1.2", "google-cloud-data_catalog-lineage+FILLER": "0.0.0", - "google-cloud-data_catalog-lineage-v1": "0.10.1", + "google-cloud-data_catalog-lineage-v1": "0.11.0", "google-cloud-data_catalog-lineage-v1+FILLER": "0.0.0", - "google-cloud-data_catalog-v1": "2.3.1", + "google-cloud-data_catalog-v1": "2.4.0", "google-cloud-data_catalog-v1+FILLER": "0.0.0", - "google-cloud-data_catalog-v1beta1": "0.9.1", + "google-cloud-data_catalog-v1beta1": "0.10.0", "google-cloud-data_catalog-v1beta1+FILLER": "0.0.0", - "google-cloud-data_fusion": "2.0.1", + "google-cloud-data_fusion": "2.0.2", "google-cloud-data_fusion+FILLER": "0.0.0", - "google-cloud-data_fusion-v1": "2.1.0", + "google-cloud-data_fusion-v1": "2.2.0", "google-cloud-data_fusion-v1+FILLER": "0.0.0", - "google-cloud-data_labeling": "0.6.1", + "google-cloud-data_labeling": "0.6.2", "google-cloud-data_labeling+FILLER": "0.0.0", - "google-cloud-data_labeling-v1beta1": "0.11.1", + "google-cloud-data_labeling-v1beta1": "0.12.0", "google-cloud-data_labeling-v1beta1+FILLER": "0.0.0", - "google-cloud-dataflow": "0.6.2", + "google-cloud-dataflow": "0.6.3", "google-cloud-dataflow+FILLER": "0.0.0", - "google-cloud-dataflow-v1beta3": "0.13.1", + "google-cloud-dataflow-v1beta3": "0.14.0", "google-cloud-dataflow-v1beta3+FILLER": "0.0.0", - "google-cloud-dataform": "0.5.1", + "google-cloud-dataform": "0.5.2", "google-cloud-dataform+FILLER": "0.0.0", - "google-cloud-dataform-v1": "0.1.0", + "google-cloud-dataform-v1": "0.2.0", "google-cloud-dataform-v1+FILLER": "0.0.0", - "google-cloud-dataform-v1beta1": "0.13.0", + "google-cloud-dataform-v1beta1": "0.14.0", "google-cloud-dataform-v1beta1+FILLER": "0.0.0", - "google-cloud-dataplex": "2.1.1", + "google-cloud-dataplex": "2.2.0", "google-cloud-dataplex+FILLER": "0.0.0", - "google-cloud-dataplex-v1": "2.5.0", + "google-cloud-dataplex-v1": "2.6.0", "google-cloud-dataplex-v1+FILLER": "0.0.0", - "google-cloud-dataproc": "2.7.2", + "google-cloud-dataproc": "2.7.3", "google-cloud-dataproc+FILLER": "0.0.0", - "google-cloud-dataproc-v1": "1.6.0", + "google-cloud-dataproc-v1": "1.7.0", "google-cloud-dataproc-v1+FILLER": "0.0.0", - "google-cloud-dataqna": "0.6.1", + "google-cloud-dataqna": "0.6.2", "google-cloud-dataqna+FILLER": "0.0.0", - "google-cloud-dataqna-v1alpha": "0.10.0", + "google-cloud-dataqna-v1alpha": "0.11.0", "google-cloud-dataqna-v1alpha+FILLER": "0.0.0", "google-cloud-datastore": "2.13.0", "google-cloud-datastore+FILLER": "0.0.0", - "google-cloud-datastore-admin": "0.5.1", + "google-cloud-datastore-admin": "0.5.2", "google-cloud-datastore-admin+FILLER": "0.0.0", - "google-cloud-datastore-admin-v1": "1.3.0", + "google-cloud-datastore-admin-v1": "1.4.0", "google-cloud-datastore-admin-v1+FILLER": "0.0.0", - "google-cloud-datastore-v1": "1.4.1", + "google-cloud-datastore-v1": "1.5.0", "google-cloud-datastore-v1+FILLER": "0.0.0", - "google-cloud-datastream": "2.0.1", + "google-cloud-datastream": "2.0.2", "google-cloud-datastream+FILLER": "0.0.0", - "google-cloud-datastream-v1": "1.3.0", + "google-cloud-datastream-v1": "1.4.0", "google-cloud-datastream-v1+FILLER": "0.0.0", - "google-cloud-datastream-v1alpha1": "0.11.1", + "google-cloud-datastream-v1alpha1": "0.12.0", "google-cloud-datastream-v1alpha1+FILLER": "0.0.0", - "google-cloud-deploy": "2.0.1", + "google-cloud-deploy": "2.0.2", "google-cloud-deploy+FILLER": "0.0.0", - "google-cloud-deploy-v1": "2.2.0", + "google-cloud-deploy-v1": "2.3.0", "google-cloud-deploy-v1+FILLER": "0.0.0", - "google-cloud-developer_connect": "2.1.0", + "google-cloud-developer_connect": "2.1.1", "google-cloud-developer_connect+FILLER": "0.0.0", - "google-cloud-developer_connect-v1": "1.2.0", + "google-cloud-developer_connect-v1": "1.3.0", "google-cloud-developer_connect-v1+FILLER": "0.0.0", - "google-cloud-device_streaming": "0.1.0", + "google-cloud-device_streaming": "0.1.1", "google-cloud-device_streaming+FILLER": "0.0.0", - "google-cloud-device_streaming-v1": "0.1.0", + "google-cloud-device_streaming-v1": "0.2.0", "google-cloud-device_streaming-v1+FILLER": "0.0.0", - "google-cloud-dialogflow": "1.11.2", + "google-cloud-dialogflow": "1.11.3", "google-cloud-dialogflow+FILLER": "0.0.0", - "google-cloud-dialogflow-cx": "1.3.1", + "google-cloud-dialogflow-cx": "1.3.2", "google-cloud-dialogflow-cx+FILLER": "0.0.0", - "google-cloud-dialogflow-cx-v3": "1.8.0", + "google-cloud-dialogflow-cx-v3": "1.9.0", "google-cloud-dialogflow-cx-v3+FILLER": "0.0.0", - "google-cloud-dialogflow-v2": "1.10.1", + "google-cloud-dialogflow-v2": "1.11.0", "google-cloud-dialogflow-v2+FILLER": "0.0.0", - "google-cloud-discovery_engine": "2.3.0", + "google-cloud-discovery_engine": "2.3.1", "google-cloud-discovery_engine+FILLER": "0.0.0", - "google-cloud-discovery_engine-v1": "2.4.0", + "google-cloud-discovery_engine-v1": "2.5.0", "google-cloud-discovery_engine-v1+FILLER": "0.0.0", - "google-cloud-discovery_engine-v1beta": "0.21.0", + "google-cloud-discovery_engine-v1beta": "0.22.0", "google-cloud-discovery_engine-v1beta+FILLER": "0.0.0", - "google-cloud-dlp": "1.8.2", + "google-cloud-dlp": "1.8.3", "google-cloud-dlp+FILLER": "0.0.0", - "google-cloud-dlp-v2": "1.12.1", + "google-cloud-dlp-v2": "1.14.0", "google-cloud-dlp-v2+FILLER": "0.0.0", "google-cloud-dns": "1.1.0", "google-cloud-dns+FILLER": "0.0.0", - "google-cloud-document_ai": "2.0.1", + "google-cloud-document_ai": "2.0.2", "google-cloud-document_ai+FILLER": "0.0.0", - "google-cloud-document_ai-v1": "1.7.0", + "google-cloud-document_ai-v1": "1.8.0", "google-cloud-document_ai-v1+FILLER": "0.0.0", - "google-cloud-document_ai-v1beta3": "0.43.1", + "google-cloud-document_ai-v1beta3": "0.44.0", "google-cloud-document_ai-v1beta3+FILLER": "0.0.0", - "google-cloud-domains": "2.0.1", + "google-cloud-domains": "2.0.2", "google-cloud-domains+FILLER": "0.0.0", - "google-cloud-domains-v1": "1.1.0", + "google-cloud-domains-v1": "1.2.0", "google-cloud-domains-v1+FILLER": "0.0.0", - "google-cloud-domains-v1beta1": "0.12.0", + "google-cloud-domains-v1beta1": "0.13.0", "google-cloud-domains-v1beta1+FILLER": "0.0.0", - "google-cloud-edge_container": "2.0.1", + "google-cloud-edge_container": "2.0.2", "google-cloud-edge_container+FILLER": "0.0.0", - "google-cloud-edge_container-v1": "1.1.0", + "google-cloud-edge_container-v1": "1.2.0", "google-cloud-edge_container-v1+FILLER": "0.0.0", - "google-cloud-edge_network": "2.0.1", + "google-cloud-edge_network": "2.0.2", "google-cloud-edge_network+FILLER": "0.0.0", - "google-cloud-edge_network-v1": "2.1.0", + "google-cloud-edge_network-v1": "2.2.0", "google-cloud-edge_network-v1+FILLER": "0.0.0", "google-cloud-error_reporting": "0.44.0", "google-cloud-error_reporting+FILLER": "0.0.0", - "google-cloud-error_reporting-v1beta1": "0.14.0", + "google-cloud-error_reporting-v1beta1": "0.15.0", "google-cloud-error_reporting-v1beta1+FILLER": "0.0.0", "google-cloud-errors": "1.5.0", "google-cloud-errors+FILLER": "0.0.0", - "google-cloud-essential_contacts": "1.5.1", + "google-cloud-essential_contacts": "1.5.2", "google-cloud-essential_contacts+FILLER": "0.0.0", - "google-cloud-essential_contacts-v1": "1.3.0", + "google-cloud-essential_contacts-v1": "1.4.0", "google-cloud-essential_contacts-v1+FILLER": "0.0.0", - "google-cloud-eventarc": "2.0.1", + "google-cloud-eventarc": "2.0.2", "google-cloud-eventarc+FILLER": "0.0.0", - "google-cloud-eventarc-publishing": "1.3.3", + "google-cloud-eventarc-publishing": "1.3.4", "google-cloud-eventarc-publishing+FILLER": "0.0.0", - "google-cloud-eventarc-publishing-v1": "1.4.1", + "google-cloud-eventarc-publishing-v1": "1.5.0", "google-cloud-eventarc-publishing-v1+FILLER": "0.0.0", - "google-cloud-eventarc-v1": "2.1.0", + "google-cloud-eventarc-v1": "2.3.0", "google-cloud-eventarc-v1+FILLER": "0.0.0", - "google-cloud-filestore": "2.0.1", + "google-cloud-filestore": "2.0.2", "google-cloud-filestore+FILLER": "0.0.0", - "google-cloud-filestore-v1": "2.2.0", + "google-cloud-filestore-v1": "2.3.0", "google-cloud-filestore-v1+FILLER": "0.0.0", - "google-cloud-financial_services": "0.1.1", + "google-cloud-financial_services": "0.1.2", "google-cloud-financial_services+FILLER": "0.0.0", - "google-cloud-financial_services-v1": "0.2.0", + "google-cloud-financial_services-v1": "0.3.0", "google-cloud-financial_services-v1+FILLER": "0.0.0", "google-cloud-firestore": "3.1.0", "google-cloud-firestore+FILLER": "0.0.0", - "google-cloud-firestore-admin": "0.5.1", + "google-cloud-firestore-admin": "0.5.2", "google-cloud-firestore-admin+FILLER": "0.0.0", - "google-cloud-firestore-admin-v1": "1.7.0", + "google-cloud-firestore-admin-v1": "1.8.0", "google-cloud-firestore-admin-v1+FILLER": "0.0.0", - "google-cloud-firestore-v1": "2.1.1", + "google-cloud-firestore-v1": "2.2.0", "google-cloud-firestore-v1+FILLER": "0.0.0", - "google-cloud-functions": "2.0.1", + "google-cloud-functions": "2.0.2", "google-cloud-functions+FILLER": "0.0.0", - "google-cloud-functions-v1": "2.1.0", + "google-cloud-functions-v1": "2.2.0", "google-cloud-functions-v1+FILLER": "0.0.0", - "google-cloud-functions-v2": "1.1.0", + "google-cloud-functions-v2": "1.2.0", "google-cloud-functions-v2+FILLER": "0.0.0", - "google-cloud-gdc_hardware_management": "0.2.1", + "google-cloud-gdc_hardware_management": "0.2.2", "google-cloud-gdc_hardware_management+FILLER": "0.0.0", - "google-cloud-gdc_hardware_management-v1alpha": "0.10.0", + "google-cloud-gdc_hardware_management-v1alpha": "0.11.0", "google-cloud-gdc_hardware_management-v1alpha+FILLER": "0.0.0", - "google-cloud-gemini_data_analytics": "0.1.0", + "google-cloud-gemini_data_analytics": "0.1.1", "google-cloud-gemini_data_analytics+FILLER": "0.0.0", - "google-cloud-gemini_data_analytics-v1beta": "0.1.0", + "google-cloud-gemini_data_analytics-v1beta": "0.2.0", "google-cloud-gemini_data_analytics-v1beta+FILLER": "0.0.0", - "google-cloud-gke_backup": "2.0.1", + "google-cloud-gke_backup": "2.0.2", "google-cloud-gke_backup+FILLER": "0.0.0", - "google-cloud-gke_backup-v1": "1.3.0", + "google-cloud-gke_backup-v1": "1.4.0", "google-cloud-gke_backup-v1+FILLER": "0.0.0", - "google-cloud-gke_connect-gateway": "2.1.1", + "google-cloud-gke_connect-gateway": "2.1.2", "google-cloud-gke_connect-gateway+FILLER": "0.0.0", - "google-cloud-gke_connect-gateway-v1": "0.5.0", + "google-cloud-gke_connect-gateway-v1": "0.6.0", "google-cloud-gke_connect-gateway-v1+FILLER": "0.0.0", - "google-cloud-gke_connect-gateway-v1beta1": "0.10.0", + "google-cloud-gke_connect-gateway-v1beta1": "0.11.0", "google-cloud-gke_connect-gateway-v1beta1+FILLER": "0.0.0", - "google-cloud-gke_hub": "2.0.1", + "google-cloud-gke_hub": "2.0.2", "google-cloud-gke_hub+FILLER": "0.0.0", - "google-cloud-gke_hub-v1": "2.1.0", + "google-cloud-gke_hub-v1": "2.3.0", "google-cloud-gke_hub-v1+FILLER": "0.0.0", - "google-cloud-gke_hub-v1beta1": "0.15.0", + "google-cloud-gke_hub-v1beta1": "0.17.0", "google-cloud-gke_hub-v1beta1+FILLER": "0.0.0", - "google-cloud-gke_multi_cloud": "1.3.1", + "google-cloud-gke_multi_cloud": "1.3.2", "google-cloud-gke_multi_cloud+FILLER": "0.0.0", - "google-cloud-gke_multi_cloud-v1": "0.15.0", + "google-cloud-gke_multi_cloud-v1": "0.16.0", "google-cloud-gke_multi_cloud-v1+FILLER": "0.0.0", - "google-cloud-gsuite_add_ons": "1.1.1", + "google-cloud-gke_recommender": "0.1.0", + "google-cloud-gke_recommender+FILLER": "0.0.0", + "google-cloud-gke_recommender-v1": "0.1.0", + "google-cloud-gke_recommender-v1+FILLER": "0.0.0", + "google-cloud-gsuite_add_ons": "1.1.2", "google-cloud-gsuite_add_ons+FILLER": "0.0.0", - "google-cloud-gsuite_add_ons-v1": "1.3.0", + "google-cloud-gsuite_add_ons-v1": "1.4.0", "google-cloud-gsuite_add_ons-v1+FILLER": "0.0.0", - "google-cloud-iap": "1.5.1", + "google-cloud-iap": "1.5.2", "google-cloud-iap+FILLER": "0.0.0", - "google-cloud-iap-v1": "1.4.1", + "google-cloud-iap-v1": "1.5.0", "google-cloud-iap-v1+FILLER": "0.0.0", - "google-cloud-ids": "2.0.1", + "google-cloud-ids": "2.0.2", "google-cloud-ids+FILLER": "0.0.0", - "google-cloud-ids-v1": "2.1.0", + "google-cloud-ids-v1": "2.2.0", "google-cloud-ids-v1+FILLER": "0.0.0", - "google-cloud-kms": "2.9.2", + "google-cloud-kms": "2.9.3", "google-cloud-kms+FILLER": "0.0.0", - "google-cloud-kms-inventory": "1.3.1", + "google-cloud-kms-inventory": "1.3.2", "google-cloud-kms-inventory+FILLER": "0.0.0", - "google-cloud-kms-inventory-v1": "0.15.1", + "google-cloud-kms-inventory-v1": "0.16.0", "google-cloud-kms-inventory-v1+FILLER": "0.0.0", - "google-cloud-kms-v1": "1.7.0", + "google-cloud-kms-v1": "1.8.0", "google-cloud-kms-v1+FILLER": "0.0.0", - "google-cloud-language": "2.0.2", + "google-cloud-language": "2.0.3", "google-cloud-language+FILLER": "0.0.0", - "google-cloud-language-v1": "1.3.0", + "google-cloud-language-v1": "1.4.0", "google-cloud-language-v1+FILLER": "0.0.0", - "google-cloud-language-v1beta2": "0.14.0", + "google-cloud-language-v1beta2": "0.15.0", "google-cloud-language-v1beta2+FILLER": "0.0.0", - "google-cloud-language-v2": "1.1.0", + "google-cloud-language-v2": "1.2.0", "google-cloud-language-v2+FILLER": "0.0.0", - "google-cloud-license_manager": "0.1.0", + "google-cloud-license_manager": "0.1.1", "google-cloud-license_manager+FILLER": "0.0.0", - "google-cloud-license_manager-v1": "0.1.0", + "google-cloud-license_manager-v1": "0.2.0", "google-cloud-license_manager-v1+FILLER": "0.0.0", - "google-cloud-life_sciences": "0.6.1", + "google-cloud-life_sciences": "0.6.2", "google-cloud-life_sciences+FILLER": "0.0.0", - "google-cloud-life_sciences-v2beta": "0.11.0", + "google-cloud-life_sciences-v2beta": "0.12.0", "google-cloud-life_sciences-v2beta+FILLER": "0.0.0", - "google-cloud-location": "1.1.0", + "google-cloud-location": "1.2.0", "google-cloud-location+FILLER": "0.0.0", "google-cloud-logging": "2.6.0", "google-cloud-logging+FILLER": "0.0.0", - "google-cloud-logging-v2": "1.3.0", + "google-cloud-logging-v2": "1.4.0", "google-cloud-logging-v2+FILLER": "0.0.0", - "google-cloud-lustre": "0.1.0", + "google-cloud-lustre": "0.1.1", "google-cloud-lustre+FILLER": "0.0.0", - "google-cloud-lustre-v1": "0.2.0", + "google-cloud-lustre-v1": "0.3.0", "google-cloud-lustre-v1+FILLER": "0.0.0", - "google-cloud-maintenance-api": "0.1.0", + "google-cloud-maintenance-api": "0.1.1", "google-cloud-maintenance-api+FILLER": "0.0.0", - "google-cloud-maintenance-api-v1beta": "0.1.0", + "google-cloud-maintenance-api-v1beta": "0.2.0", "google-cloud-maintenance-api-v1beta+FILLER": "0.0.0", - "google-cloud-managed_identities": "1.4.1", + "google-cloud-managed_identities": "1.4.2", "google-cloud-managed_identities+FILLER": "0.0.0", - "google-cloud-managed_identities-v1": "1.3.0", + "google-cloud-managed_identities-v1": "1.4.0", "google-cloud-managed_identities-v1+FILLER": "0.0.0", - "google-cloud-managed_kafka": "2.1.1", + "google-cloud-managed_kafka": "2.1.2", "google-cloud-managed_kafka+FILLER": "0.0.0", - "google-cloud-managed_kafka-schema_registry": "0.1.0", + "google-cloud-managed_kafka-schema_registry": "0.1.1", "google-cloud-managed_kafka-schema_registry+FILLER": "0.0.0", - "google-cloud-managed_kafka-schema_registry-v1": "0.1.0", + "google-cloud-managed_kafka-schema_registry-v1": "0.2.0", "google-cloud-managed_kafka-schema_registry-v1+FILLER": "0.0.0", - "google-cloud-managed_kafka-v1": "1.4.0", + "google-cloud-managed_kafka-v1": "1.5.0", "google-cloud-managed_kafka-v1+FILLER": "0.0.0", - "google-cloud-media_translation": "0.6.1", + "google-cloud-media_translation": "0.6.2", "google-cloud-media_translation+FILLER": "0.0.0", - "google-cloud-media_translation-v1beta1": "0.12.0", + "google-cloud-media_translation-v1beta1": "0.13.0", "google-cloud-media_translation-v1beta1+FILLER": "0.0.0", - "google-cloud-memcache": "2.0.1", + "google-cloud-memcache": "2.0.2", "google-cloud-memcache+FILLER": "0.0.0", - "google-cloud-memcache-v1": "2.1.0", + "google-cloud-memcache-v1": "2.2.0", "google-cloud-memcache-v1+FILLER": "0.0.0", - "google-cloud-memcache-v1beta2": "0.13.0", + "google-cloud-memcache-v1beta2": "0.14.0", "google-cloud-memcache-v1beta2+FILLER": "0.0.0", - "google-cloud-memorystore": "1.0.1", + "google-cloud-memorystore": "1.0.2", "google-cloud-memorystore+FILLER": "0.0.0", - "google-cloud-memorystore-v1": "1.2.0", + "google-cloud-memorystore-v1": "1.3.0", "google-cloud-memorystore-v1+FILLER": "0.0.0", - "google-cloud-memorystore-v1beta": "0.6.0", + "google-cloud-memorystore-v1beta": "0.7.0", "google-cloud-memorystore-v1beta+FILLER": "0.0.0", - "google-cloud-metastore": "2.0.1", + "google-cloud-metastore": "2.0.2", "google-cloud-metastore+FILLER": "0.0.0", - "google-cloud-metastore-v1": "2.1.0", + "google-cloud-metastore-v1": "2.2.0", "google-cloud-metastore-v1+FILLER": "0.0.0", - "google-cloud-metastore-v1beta": "0.17.0", + "google-cloud-metastore-v1beta": "0.18.0", "google-cloud-metastore-v1beta+FILLER": "0.0.0", - "google-cloud-migration_center": "2.0.1", + "google-cloud-migration_center": "2.0.2", "google-cloud-migration_center+FILLER": "0.0.0", - "google-cloud-migration_center-v1": "2.1.0", + "google-cloud-migration_center-v1": "2.2.0", "google-cloud-migration_center-v1+FILLER": "0.0.0", - "google-cloud-monitoring": "1.9.2", + "google-cloud-monitoring": "1.9.3", "google-cloud-monitoring+FILLER": "0.0.0", - "google-cloud-monitoring-dashboard-v1": "1.3.0", + "google-cloud-monitoring-dashboard-v1": "1.4.0", "google-cloud-monitoring-dashboard-v1+FILLER": "0.0.0", - "google-cloud-monitoring-metrics_scope-v1": "1.3.0", + "google-cloud-monitoring-metrics_scope-v1": "1.4.0", "google-cloud-monitoring-metrics_scope-v1+FILLER": "0.0.0", - "google-cloud-monitoring-v3": "1.6.1", + "google-cloud-monitoring-v3": "1.7.0", "google-cloud-monitoring-v3+FILLER": "0.0.0", - "google-cloud-netapp": "2.0.1", + "google-cloud-netapp": "2.0.2", "google-cloud-netapp+FILLER": "0.0.0", - "google-cloud-netapp-v1": "2.3.0", + "google-cloud-netapp-v1": "2.5.0", "google-cloud-netapp-v1+FILLER": "0.0.0", - "google-cloud-network_connectivity": "2.2.0", + "google-cloud-network_connectivity": "2.3.1", "google-cloud-network_connectivity+FILLER": "0.0.0", - "google-cloud-network_connectivity-v1": "1.7.0", + "google-cloud-network_connectivity-v1": "1.9.0", "google-cloud-network_connectivity-v1+FILLER": "0.0.0", - "google-cloud-network_connectivity-v1alpha1": "0.12.0", + "google-cloud-network_connectivity-v1alpha1": "0.13.0", "google-cloud-network_connectivity-v1alpha1+FILLER": "0.0.0", - "google-cloud-network_management": "2.0.1", + "google-cloud-network_management": "2.0.2", "google-cloud-network_management+FILLER": "0.0.0", - "google-cloud-network_management-v1": "2.3.0", + "google-cloud-network_management-v1": "2.4.0", "google-cloud-network_management-v1+FILLER": "0.0.0", - "google-cloud-network_security": "1.1.1", + "google-cloud-network_security": "1.1.2", "google-cloud-network_security+FILLER": "0.0.0", - "google-cloud-network_security-v1beta1": "0.11.0", + "google-cloud-network_security-v1beta1": "0.12.0", "google-cloud-network_security-v1beta1+FILLER": "0.0.0", - "google-cloud-network_services": "2.0.1", + "google-cloud-network_services": "2.0.2", "google-cloud-network_services+FILLER": "0.0.0", - "google-cloud-network_services-v1": "2.4.0", + "google-cloud-network_services-v1": "2.5.0", "google-cloud-network_services-v1+FILLER": "0.0.0", - "google-cloud-notebooks": "3.0.1", + "google-cloud-notebooks": "3.0.2", "google-cloud-notebooks+FILLER": "0.0.0", - "google-cloud-notebooks-v1": "1.1.0", + "google-cloud-notebooks-v1": "1.2.0", "google-cloud-notebooks-v1+FILLER": "0.0.0", - "google-cloud-notebooks-v1beta1": "0.13.0", + "google-cloud-notebooks-v1beta1": "0.14.0", "google-cloud-notebooks-v1beta1+FILLER": "0.0.0", - "google-cloud-notebooks-v2": "1.1.0", + "google-cloud-notebooks-v2": "1.2.0", "google-cloud-notebooks-v2+FILLER": "0.0.0", - "google-cloud-optimization": "1.3.1", + "google-cloud-optimization": "1.3.2", "google-cloud-optimization+FILLER": "0.0.0", - "google-cloud-optimization-v1": "0.12.0", + "google-cloud-optimization-v1": "0.13.0", "google-cloud-optimization-v1+FILLER": "0.0.0", - "google-cloud-oracle_database": "0.2.1", + "google-cloud-oracle_database": "0.2.2", "google-cloud-oracle_database+FILLER": "0.0.0", - "google-cloud-oracle_database-v1": "0.8.0", + "google-cloud-oracle_database-v1": "0.9.0", "google-cloud-oracle_database-v1+FILLER": "0.0.0", - "google-cloud-orchestration-airflow-service": "1.5.1", + "google-cloud-orchestration-airflow-service": "1.5.2", "google-cloud-orchestration-airflow-service+FILLER": "0.0.0", - "google-cloud-orchestration-airflow-service-v1": "1.4.0", + "google-cloud-orchestration-airflow-service-v1": "1.5.0", "google-cloud-orchestration-airflow-service-v1+FILLER": "0.0.0", - "google-cloud-org_policy": "1.5.1", + "google-cloud-org_policy": "1.5.2", "google-cloud-org_policy+FILLER": "0.0.0", - "google-cloud-org_policy-v2": "1.5.0", + "google-cloud-org_policy-v2": "1.6.0", "google-cloud-org_policy-v2+FILLER": "0.0.0", - "google-cloud-os_config": "1.7.1", + "google-cloud-os_config": "1.7.2", "google-cloud-os_config+FILLER": "0.0.0", - "google-cloud-os_config-v1": "1.4.0", + "google-cloud-os_config-v1": "1.5.0", "google-cloud-os_config-v1+FILLER": "0.0.0", - "google-cloud-os_config-v1alpha": "0.12.0", + "google-cloud-os_config-v1alpha": "0.13.0", "google-cloud-os_config-v1alpha+FILLER": "0.0.0", - "google-cloud-os_login": "2.0.2", + "google-cloud-os_login": "2.0.3", "google-cloud-os_login+FILLER": "0.0.0", - "google-cloud-os_login-v1": "1.3.0", + "google-cloud-os_login-v1": "1.4.0", "google-cloud-os_login-v1+FILLER": "0.0.0", - "google-cloud-os_login-v1beta": "0.18.0", + "google-cloud-os_login-v1beta": "0.19.0", "google-cloud-os_login-v1beta+FILLER": "0.0.0", - "google-cloud-parallelstore": "2.0.1", + "google-cloud-parallelstore": "2.0.2", "google-cloud-parallelstore+FILLER": "0.0.0", - "google-cloud-parallelstore-v1": "1.2.0", + "google-cloud-parallelstore-v1": "1.3.0", "google-cloud-parallelstore-v1+FILLER": "0.0.0", - "google-cloud-parallelstore-v1beta": "0.9.1", + "google-cloud-parallelstore-v1beta": "0.10.0", "google-cloud-parallelstore-v1beta+FILLER": "0.0.0", - "google-cloud-parameter_manager": "0.1.2", + "google-cloud-parameter_manager": "0.1.3", "google-cloud-parameter_manager+FILLER": "0.0.0", - "google-cloud-parameter_manager-v1": "0.4.0", + "google-cloud-parameter_manager-v1": "0.5.0", "google-cloud-parameter_manager-v1+FILLER": "0.0.0", - "google-cloud-phishing_protection": "0.16.2", + "google-cloud-phishing_protection": "0.16.3", "google-cloud-phishing_protection+FILLER": "0.0.0", - "google-cloud-phishing_protection-v1beta1": "0.12.0", + "google-cloud-phishing_protection-v1beta1": "0.13.0", "google-cloud-phishing_protection-v1beta1+FILLER": "0.0.0", - "google-cloud-policy_simulator": "1.3.0", + "google-cloud-policy_simulator": "1.3.1", "google-cloud-policy_simulator+FILLER": "0.0.0", - "google-cloud-policy_simulator-v1": "1.4.0", + "google-cloud-policy_simulator-v1": "1.5.0", "google-cloud-policy_simulator-v1+FILLER": "0.0.0", - "google-cloud-policy_troubleshooter": "1.7.1", + "google-cloud-policy_troubleshooter": "1.7.2", "google-cloud-policy_troubleshooter+FILLER": "0.0.0", - "google-cloud-policy_troubleshooter-iam-v3": "0.7.0", + "google-cloud-policy_troubleshooter-iam-v3": "0.8.0", "google-cloud-policy_troubleshooter-iam-v3+FILLER": "0.0.0", - "google-cloud-policy_troubleshooter-v1": "1.3.0", + "google-cloud-policy_troubleshooter-v1": "1.4.0", "google-cloud-policy_troubleshooter-v1+FILLER": "0.0.0", - "google-cloud-private_catalog": "0.6.1", + "google-cloud-private_catalog": "0.6.2", "google-cloud-private_catalog+FILLER": "0.0.0", - "google-cloud-private_catalog-v1beta1": "0.10.0", + "google-cloud-private_catalog-v1beta1": "0.11.0", "google-cloud-private_catalog-v1beta1+FILLER": "0.0.0", - "google-cloud-privileged_access_manager": "1.0.1", + "google-cloud-privileged_access_manager": "1.0.2", "google-cloud-privileged_access_manager+FILLER": "0.0.0", - "google-cloud-privileged_access_manager-v1": "1.2.0", + "google-cloud-privileged_access_manager-v1": "1.3.0", "google-cloud-privileged_access_manager-v1+FILLER": "0.0.0", - "google-cloud-profiler": "1.5.1", + "google-cloud-profiler": "1.5.2", "google-cloud-profiler+FILLER": "0.0.0", - "google-cloud-profiler-v2": "1.3.0", + "google-cloud-profiler-v2": "1.4.0", "google-cloud-profiler-v2+FILLER": "0.0.0", "google-cloud-pubsub": "3.0.2", "google-cloud-pubsub+FILLER": "0.0.0", - "google-cloud-pubsub-v1": "1.11.1", + "google-cloud-pubsub-v1": "1.12.0", "google-cloud-pubsub-v1+FILLER": "0.0.0", - "google-cloud-rapid_migration_assessment": "2.0.1", + "google-cloud-rapid_migration_assessment": "2.0.2", "google-cloud-rapid_migration_assessment+FILLER": "0.0.0", - "google-cloud-rapid_migration_assessment-v1": "2.1.0", + "google-cloud-rapid_migration_assessment-v1": "2.2.0", "google-cloud-rapid_migration_assessment-v1+FILLER": "0.0.0", - "google-cloud-recaptcha_enterprise": "2.0.2", + "google-cloud-recaptcha_enterprise": "2.0.3", "google-cloud-recaptcha_enterprise+FILLER": "0.0.0", - "google-cloud-recaptcha_enterprise-v1": "1.8.0", + "google-cloud-recaptcha_enterprise-v1": "1.9.0", "google-cloud-recaptcha_enterprise-v1+FILLER": "0.0.0", - "google-cloud-recaptcha_enterprise-v1beta1": "0.18.0", + "google-cloud-recaptcha_enterprise-v1beta1": "0.19.0", "google-cloud-recaptcha_enterprise-v1beta1+FILLER": "0.0.0", - "google-cloud-recommendation_engine": "0.7.1", + "google-cloud-recommendation_engine": "0.7.2", "google-cloud-recommendation_engine+FILLER": "0.0.0", - "google-cloud-recommendation_engine-v1beta1": "0.13.0", + "google-cloud-recommendation_engine-v1beta1": "0.14.0", "google-cloud-recommendation_engine-v1beta1+FILLER": "0.0.0", - "google-cloud-recommender": "1.6.1", + "google-cloud-recommender": "1.6.2", "google-cloud-recommender+FILLER": "0.0.0", - "google-cloud-recommender-v1": "1.3.0", + "google-cloud-recommender-v1": "1.4.0", "google-cloud-recommender-v1+FILLER": "0.0.0", - "google-cloud-redis": "2.0.2", + "google-cloud-redis": "2.0.3", "google-cloud-redis+FILLER": "0.0.0", - "google-cloud-redis-cluster": "2.0.1", + "google-cloud-redis-cluster": "2.0.2", "google-cloud-redis-cluster+FILLER": "0.0.0", - "google-cloud-redis-cluster-v1": "1.1.0", + "google-cloud-redis-cluster-v1": "1.2.0", "google-cloud-redis-cluster-v1+FILLER": "0.0.0", - "google-cloud-redis-cluster-v1beta1": "0.5.0", + "google-cloud-redis-cluster-v1beta1": "0.6.0", "google-cloud-redis-cluster-v1beta1+FILLER": "0.0.0", - "google-cloud-redis-v1": "2.1.0", + "google-cloud-redis-v1": "2.2.0", "google-cloud-redis-v1+FILLER": "0.0.0", - "google-cloud-redis-v1beta1": "0.17.0", + "google-cloud-redis-v1beta1": "0.18.0", "google-cloud-redis-v1beta1+FILLER": "0.0.0", - "google-cloud-resource_manager": "1.0.2", + "google-cloud-resource_manager": "1.0.3", "google-cloud-resource_manager+FILLER": "0.0.0", - "google-cloud-resource_manager-v3": "1.3.0", + "google-cloud-resource_manager-v3": "1.4.0", "google-cloud-resource_manager-v3+FILLER": "0.0.0", - "google-cloud-retail": "2.0.1", + "google-cloud-retail": "2.1.1", "google-cloud-retail+FILLER": "0.0.0", - "google-cloud-retail-v2": "2.3.0", + "google-cloud-retail-v2": "2.5.0", "google-cloud-retail-v2+FILLER": "0.0.0", - "google-cloud-run-client": "1.5.0", + "google-cloud-run-client": "1.5.1", "google-cloud-run-client+FILLER": "0.0.0", - "google-cloud-run-v2": "0.26.0", + "google-cloud-run-v2": "0.27.0", "google-cloud-run-v2+FILLER": "0.0.0", - "google-cloud-saas_platform-saas_service_mgmt": "0.1.0", + "google-cloud-saas_platform-saas_service_mgmt": "0.1.1", "google-cloud-saas_platform-saas_service_mgmt+FILLER": "0.0.0", - "google-cloud-saas_platform-saas_service_mgmt-v1beta1": "0.1.0", + "google-cloud-saas_platform-saas_service_mgmt-v1beta1": "0.2.0", "google-cloud-saas_platform-saas_service_mgmt-v1beta1+FILLER": "0.0.0", - "google-cloud-scheduler": "3.0.2", + "google-cloud-scheduler": "3.0.3", "google-cloud-scheduler+FILLER": "0.0.0", - "google-cloud-scheduler-v1": "1.3.0", + "google-cloud-scheduler-v1": "1.4.0", "google-cloud-scheduler-v1+FILLER": "0.0.0", - "google-cloud-scheduler-v1beta1": "0.14.0", + "google-cloud-scheduler-v1beta1": "0.15.0", "google-cloud-scheduler-v1beta1+FILLER": "0.0.0", - "google-cloud-secret_manager": "2.0.1", + "google-cloud-secret_manager": "2.0.2", "google-cloud-secret_manager+FILLER": "0.0.0", - "google-cloud-secret_manager-v1": "1.4.0", + "google-cloud-secret_manager-v1": "1.5.0", "google-cloud-secret_manager-v1+FILLER": "0.0.0", - "google-cloud-secret_manager-v1beta1": "0.18.0", + "google-cloud-secret_manager-v1beta1": "0.19.0", "google-cloud-secret_manager-v1beta1+FILLER": "0.0.0", - "google-cloud-secret_manager-v1beta2": "0.4.0", + "google-cloud-secret_manager-v1beta2": "0.5.0", "google-cloud-secret_manager-v1beta2+FILLER": "0.0.0", - "google-cloud-secure_source_manager": "2.1.0", + "google-cloud-secure_source_manager": "2.1.1", "google-cloud-secure_source_manager+FILLER": "0.0.0", - "google-cloud-secure_source_manager-v1": "2.2.1", + "google-cloud-secure_source_manager-v1": "2.3.0", "google-cloud-secure_source_manager-v1+FILLER": "0.0.0", - "google-cloud-security-private_ca": "2.0.1", + "google-cloud-security-private_ca": "2.0.2", "google-cloud-security-private_ca+FILLER": "0.0.0", - "google-cloud-security-private_ca-v1": "2.2.0", + "google-cloud-security-private_ca-v1": "2.3.0", "google-cloud-security-private_ca-v1+FILLER": "0.0.0", - "google-cloud-security-private_ca-v1beta1": "0.13.0", + "google-cloud-security-private_ca-v1beta1": "0.14.0", "google-cloud-security-private_ca-v1beta1+FILLER": "0.0.0", - "google-cloud-security-public_ca": "2.0.1", + "google-cloud-security-public_ca": "2.0.2", "google-cloud-security-public_ca+FILLER": "0.0.0", - "google-cloud-security-public_ca-v1": "1.1.0", + "google-cloud-security-public_ca-v1": "1.2.0", "google-cloud-security-public_ca-v1+FILLER": "0.0.0", - "google-cloud-security-public_ca-v1beta1": "0.9.0", + "google-cloud-security-public_ca-v1beta1": "0.10.0", "google-cloud-security-public_ca-v1beta1+FILLER": "0.0.0", - "google-cloud-security_center": "2.0.2", + "google-cloud-security_center": "2.0.3", "google-cloud-security_center+FILLER": "0.0.0", - "google-cloud-security_center-v1": "1.5.0", + "google-cloud-security_center-v1": "1.6.0", "google-cloud-security_center-v1+FILLER": "0.0.0", - "google-cloud-security_center-v1p1beta1": "0.17.0", + "google-cloud-security_center-v1p1beta1": "0.18.0", "google-cloud-security_center-v1p1beta1+FILLER": "0.0.0", - "google-cloud-security_center-v2": "1.3.0", + "google-cloud-security_center-v2": "1.4.0", "google-cloud-security_center-v2+FILLER": "0.0.0", - "google-cloud-security_center_management": "1.2.1", + "google-cloud-security_center_management": "1.2.2", "google-cloud-security_center_management+FILLER": "0.0.0", - "google-cloud-security_center_management-v1": "1.4.0", + "google-cloud-security_center_management-v1": "1.5.0", "google-cloud-security_center_management-v1+FILLER": "0.0.0", - "google-cloud-service_control": "1.5.1", + "google-cloud-service_control": "1.5.2", "google-cloud-service_control+FILLER": "0.0.0", - "google-cloud-service_control-v1": "1.3.0", + "google-cloud-service_control-v1": "1.4.0", "google-cloud-service_control-v1+FILLER": "0.0.0", - "google-cloud-service_directory": "2.0.1", + "google-cloud-service_directory": "2.0.2", "google-cloud-service_directory+FILLER": "0.0.0", - "google-cloud-service_directory-v1": "1.3.0", + "google-cloud-service_directory-v1": "1.4.0", "google-cloud-service_directory-v1+FILLER": "0.0.0", - "google-cloud-service_directory-v1beta1": "0.18.0", + "google-cloud-service_directory-v1beta1": "0.19.0", "google-cloud-service_directory-v1beta1+FILLER": "0.0.0", - "google-cloud-service_health": "2.0.1", + "google-cloud-service_health": "2.0.2", "google-cloud-service_health+FILLER": "0.0.0", - "google-cloud-service_health-v1": "2.1.0", + "google-cloud-service_health-v1": "2.2.0", "google-cloud-service_health-v1+FILLER": "0.0.0", - "google-cloud-service_management": "1.5.1", + "google-cloud-service_management": "1.5.2", "google-cloud-service_management+FILLER": "0.0.0", - "google-cloud-service_management-v1": "1.3.0", + "google-cloud-service_management-v1": "1.4.0", "google-cloud-service_management-v1+FILLER": "0.0.0", - "google-cloud-service_usage": "1.4.1", + "google-cloud-service_usage": "1.4.2", "google-cloud-service_usage+FILLER": "0.0.0", - "google-cloud-service_usage-v1": "1.3.0", + "google-cloud-service_usage-v1": "1.4.0", "google-cloud-service_usage-v1+FILLER": "0.0.0", - "google-cloud-shell": "1.5.1", + "google-cloud-shell": "1.5.2", "google-cloud-shell+FILLER": "0.0.0", - "google-cloud-shell-v1": "1.3.0", + "google-cloud-shell-v1": "1.4.0", "google-cloud-shell-v1+FILLER": "0.0.0", - "google-cloud-spanner-admin-database-v1": "1.9.0", + "google-cloud-spanner-admin-database-v1": "1.10.0", "google-cloud-spanner-admin-database-v1+FILLER": "0.0.0", - "google-cloud-spanner-admin-instance-v1": "2.1.0", + "google-cloud-spanner-admin-instance-v1": "2.2.0", "google-cloud-spanner-admin-instance-v1+FILLER": "0.0.0", - "google-cloud-spanner-v1": "1.10.0", + "google-cloud-spanner-v1": "1.11.0", "google-cloud-spanner-v1+FILLER": "0.0.0", - "google-cloud-speech": "2.0.3", + "google-cloud-speech": "2.0.4", "google-cloud-speech+FILLER": "0.0.0", - "google-cloud-speech-v1": "1.3.0", + "google-cloud-speech-v1": "1.4.0", "google-cloud-speech-v1+FILLER": "0.0.0", - "google-cloud-speech-v1p1beta1": "0.25.0", + "google-cloud-speech-v1p1beta1": "0.26.0", "google-cloud-speech-v1p1beta1+FILLER": "0.0.0", - "google-cloud-speech-v2": "1.2.1", + "google-cloud-speech-v2": "1.3.0", "google-cloud-speech-v2+FILLER": "0.0.0", "google-cloud-storage": "1.57.0", "google-cloud-storage+FILLER": "0.0.0", - "google-cloud-storage-control": "1.1.1", + "google-cloud-storage-control": "1.1.2", "google-cloud-storage-control+FILLER": "0.0.0", - "google-cloud-storage-control-v2": "1.5.0", + "google-cloud-storage-control-v2": "1.7.0", "google-cloud-storage-control-v2+FILLER": "0.0.0", - "google-cloud-storage_batch_operations": "0.1.1", + "google-cloud-storage_batch_operations": "0.1.2", "google-cloud-storage_batch_operations+FILLER": "0.0.0", - "google-cloud-storage_batch_operations-v1": "0.2.0", + "google-cloud-storage_batch_operations-v1": "0.3.0", "google-cloud-storage_batch_operations-v1+FILLER": "0.0.0", - "google-cloud-storage_insights": "2.0.1", + "google-cloud-storage_insights": "2.0.2", "google-cloud-storage_insights+FILLER": "0.0.0", - "google-cloud-storage_insights-v1": "1.2.0", + "google-cloud-storage_insights-v1": "1.3.0", "google-cloud-storage_insights-v1+FILLER": "0.0.0", - "google-cloud-storage_transfer": "1.5.1", + "google-cloud-storage_transfer": "1.5.2", "google-cloud-storage_transfer+FILLER": "0.0.0", - "google-cloud-storage_transfer-v1": "1.6.0", + "google-cloud-storage_transfer-v1": "1.7.0", "google-cloud-storage_transfer-v1+FILLER": "0.0.0", - "google-cloud-support": "1.1.2", + "google-cloud-support": "1.1.3", "google-cloud-support+FILLER": "0.0.0", - "google-cloud-support-v2": "1.4.1", + "google-cloud-support-v2": "1.5.0", "google-cloud-support-v2+FILLER": "0.0.0", - "google-cloud-support-v2beta": "0.2.0", + "google-cloud-support-v2beta": "0.3.0", "google-cloud-support-v2beta+FILLER": "0.0.0", - "google-cloud-talent": "2.0.2", + "google-cloud-talent": "2.0.3", "google-cloud-talent+FILLER": "0.0.0", - "google-cloud-talent-v4": "1.4.0", + "google-cloud-talent-v4": "1.5.0", "google-cloud-talent-v4+FILLER": "0.0.0", - "google-cloud-talent-v4beta1": "0.15.0", + "google-cloud-talent-v4beta1": "0.16.0", "google-cloud-talent-v4beta1+FILLER": "0.0.0", - "google-cloud-tasks": "3.0.2", + "google-cloud-tasks": "3.0.3", "google-cloud-tasks+FILLER": "0.0.0", - "google-cloud-tasks-v2": "1.3.0", + "google-cloud-tasks-v2": "1.4.0", "google-cloud-tasks-v2+FILLER": "0.0.0", - "google-cloud-tasks-v2beta2": "0.15.0", + "google-cloud-tasks-v2beta2": "0.16.0", "google-cloud-tasks-v2beta2+FILLER": "0.0.0", - "google-cloud-tasks-v2beta3": "0.16.0", + "google-cloud-tasks-v2beta3": "0.17.0", "google-cloud-tasks-v2beta3+FILLER": "0.0.0", - "google-cloud-telco_automation": "2.0.1", + "google-cloud-telco_automation": "2.0.2", "google-cloud-telco_automation+FILLER": "0.0.0", - "google-cloud-telco_automation-v1": "2.1.0", + "google-cloud-telco_automation-v1": "2.2.0", "google-cloud-telco_automation-v1+FILLER": "0.0.0", - "google-cloud-text_to_speech": "2.0.2", + "google-cloud-text_to_speech": "2.0.3", "google-cloud-text_to_speech+FILLER": "0.0.0", - "google-cloud-text_to_speech-v1": "1.10.0", + "google-cloud-text_to_speech-v1": "1.12.0", "google-cloud-text_to_speech-v1+FILLER": "0.0.0", - "google-cloud-text_to_speech-v1beta1": "0.22.0", + "google-cloud-text_to_speech-v1beta1": "0.24.0", "google-cloud-text_to_speech-v1beta1+FILLER": "0.0.0", - "google-cloud-tpu": "1.4.1", + "google-cloud-tpu": "1.4.2", "google-cloud-tpu+FILLER": "0.0.0", - "google-cloud-tpu-v1": "1.3.0", + "google-cloud-tpu-v1": "1.4.0", "google-cloud-tpu-v1+FILLER": "0.0.0", "google-cloud-trace": "0.45.0", "google-cloud-trace+FILLER": "0.0.0", - "google-cloud-trace-v1": "1.4.0", + "google-cloud-trace-v1": "1.5.0", "google-cloud-trace-v1+FILLER": "0.0.0", - "google-cloud-trace-v2": "1.3.0", + "google-cloud-trace-v2": "1.4.0", "google-cloud-trace-v2+FILLER": "0.0.0", - "google-cloud-translate": "3.7.2", + "google-cloud-translate": "3.7.3", "google-cloud-translate+FILLER": "0.0.0", "google-cloud-translate-v2": "1.1.0", "google-cloud-translate-v2+FILLER": "0.0.0", - "google-cloud-translate-v3": "1.5.2", + "google-cloud-translate-v3": "1.6.0", "google-cloud-translate-v3+FILLER": "0.0.0", - "google-cloud-video-live_stream": "2.0.1", + "google-cloud-video-live_stream": "2.0.2", "google-cloud-video-live_stream+FILLER": "0.0.0", - "google-cloud-video-live_stream-v1": "2.2.0", + "google-cloud-video-live_stream-v1": "2.3.0", "google-cloud-video-live_stream-v1+FILLER": "0.0.0", - "google-cloud-video-stitcher": "1.1.1", + "google-cloud-video-stitcher": "1.1.2", "google-cloud-video-stitcher+FILLER": "0.0.0", - "google-cloud-video-stitcher-v1": "1.3.0", + "google-cloud-video-stitcher-v1": "1.4.0", "google-cloud-video-stitcher-v1+FILLER": "0.0.0", - "google-cloud-video-transcoder": "2.0.1", + "google-cloud-video-transcoder": "2.0.2", "google-cloud-video-transcoder+FILLER": "0.0.0", - "google-cloud-video-transcoder-v1": "2.3.0", + "google-cloud-video-transcoder-v1": "2.4.0", "google-cloud-video-transcoder-v1+FILLER": "0.0.0", - "google-cloud-video_intelligence": "4.0.2", + "google-cloud-video_intelligence": "4.0.3", "google-cloud-video_intelligence+FILLER": "0.0.0", - "google-cloud-video_intelligence-v1": "1.3.0", + "google-cloud-video_intelligence-v1": "1.4.0", "google-cloud-video_intelligence-v1+FILLER": "0.0.0", - "google-cloud-video_intelligence-v1beta2": "0.13.0", + "google-cloud-video_intelligence-v1beta2": "0.14.0", "google-cloud-video_intelligence-v1beta2+FILLER": "0.0.0", - "google-cloud-video_intelligence-v1p1beta1": "0.13.0", + "google-cloud-video_intelligence-v1p1beta1": "0.14.0", "google-cloud-video_intelligence-v1p1beta1+FILLER": "0.0.0", - "google-cloud-video_intelligence-v1p2beta1": "0.14.0", + "google-cloud-video_intelligence-v1p2beta1": "0.15.0", "google-cloud-video_intelligence-v1p2beta1+FILLER": "0.0.0", - "google-cloud-video_intelligence-v1p3beta1": "0.10.0", + "google-cloud-video_intelligence-v1p3beta1": "0.11.0", "google-cloud-video_intelligence-v1p3beta1+FILLER": "0.0.0", - "google-cloud-vision": "2.0.2", + "google-cloud-vision": "2.0.3", "google-cloud-vision+FILLER": "0.0.0", - "google-cloud-vision-v1": "1.3.1", + "google-cloud-vision-v1": "1.4.0", "google-cloud-vision-v1+FILLER": "0.0.0", - "google-cloud-vision-v1p3beta1": "0.16.0", + "google-cloud-vision-v1p3beta1": "0.17.0", "google-cloud-vision-v1p3beta1+FILLER": "0.0.0", - "google-cloud-vision-v1p4beta1": "0.12.1", + "google-cloud-vision-v1p4beta1": "0.13.0", "google-cloud-vision-v1p4beta1+FILLER": "0.0.0", - "google-cloud-vision_ai": "1.0.1", + "google-cloud-vision_ai": "1.0.2", "google-cloud-vision_ai+FILLER": "0.0.0", - "google-cloud-vision_ai-v1": "1.1.1", + "google-cloud-vision_ai-v1": "1.2.0", "google-cloud-vision_ai-v1+FILLER": "0.0.0", - "google-cloud-vm_migration": "2.0.1", + "google-cloud-vm_migration": "2.0.2", "google-cloud-vm_migration+FILLER": "0.0.0", - "google-cloud-vm_migration-v1": "2.2.0", + "google-cloud-vm_migration-v1": "2.4.0", "google-cloud-vm_migration-v1+FILLER": "0.0.0", - "google-cloud-vmware_engine": "2.0.1", + "google-cloud-vmware_engine": "2.0.2", "google-cloud-vmware_engine+FILLER": "0.0.0", - "google-cloud-vmware_engine-v1": "1.1.0", + "google-cloud-vmware_engine-v1": "1.2.0", "google-cloud-vmware_engine-v1+FILLER": "0.0.0", - "google-cloud-vpc_access": "1.5.1", + "google-cloud-vpc_access": "1.5.2", "google-cloud-vpc_access+FILLER": "0.0.0", - "google-cloud-vpc_access-v1": "1.3.0", + "google-cloud-vpc_access-v1": "1.4.0", "google-cloud-vpc_access-v1+FILLER": "0.0.0", - "google-cloud-web_risk": "2.0.2", + "google-cloud-web_risk": "2.0.3", "google-cloud-web_risk+FILLER": "0.0.0", - "google-cloud-web_risk-v1": "1.4.0", + "google-cloud-web_risk-v1": "1.5.0", "google-cloud-web_risk-v1+FILLER": "0.0.0", - "google-cloud-web_risk-v1beta1": "0.13.0", + "google-cloud-web_risk-v1beta1": "0.14.0", "google-cloud-web_risk-v1beta1+FILLER": "0.0.0", - "google-cloud-web_security_scanner": "2.0.1", + "google-cloud-web_security_scanner": "2.0.2", "google-cloud-web_security_scanner+FILLER": "0.0.0", - "google-cloud-web_security_scanner-v1": "1.3.0", + "google-cloud-web_security_scanner-v1": "1.4.0", "google-cloud-web_security_scanner-v1+FILLER": "0.0.0", - "google-cloud-web_security_scanner-v1beta": "0.12.0", + "google-cloud-web_security_scanner-v1beta": "0.13.0", "google-cloud-web_security_scanner-v1beta+FILLER": "0.0.0", - "google-cloud-workflows": "3.0.1", + "google-cloud-workflows": "3.0.2", "google-cloud-workflows+FILLER": "0.0.0", - "google-cloud-workflows-executions-v1": "1.3.0", + "google-cloud-workflows-executions-v1": "1.4.0", "google-cloud-workflows-executions-v1+FILLER": "0.0.0", - "google-cloud-workflows-executions-v1beta": "0.11.0", + "google-cloud-workflows-executions-v1beta": "0.12.0", "google-cloud-workflows-executions-v1beta+FILLER": "0.0.0", - "google-cloud-workflows-v1": "2.2.0", + "google-cloud-workflows-v1": "2.3.0", "google-cloud-workflows-v1+FILLER": "0.0.0", - "google-cloud-workflows-v1beta": "0.13.0", + "google-cloud-workflows-v1beta": "0.14.0", "google-cloud-workflows-v1beta+FILLER": "0.0.0", - "google-cloud-workstations": "2.0.1", + "google-cloud-workstations": "2.0.2", "google-cloud-workstations+FILLER": "0.0.0", - "google-cloud-workstations-v1": "1.1.1", + "google-cloud-workstations-v1": "1.2.0", "google-cloud-workstations-v1+FILLER": "0.0.0", - "google-cloud-workstations-v1beta": "0.5.1", + "google-cloud-workstations-v1beta": "0.6.0", "google-cloud-workstations-v1beta+FILLER": "0.0.0", - "google-iam-client": "1.1.1", + "google-iam-client": "1.1.2", "google-iam-client+FILLER": "0.0.0", - "google-iam-credentials": "1.5.1", + "google-iam-credentials": "1.5.2", "google-iam-credentials+FILLER": "0.0.0", - "google-iam-credentials-v1": "1.3.0", + "google-iam-credentials-v1": "1.4.0", "google-iam-credentials-v1+FILLER": "0.0.0", - "google-iam-v1": "1.4.0", + "google-iam-v1": "1.5.0", "google-iam-v1+FILLER": "0.0.0", - "google-iam-v1beta": "0.11.0", + "google-iam-v1beta": "0.12.0", "google-iam-v1beta+FILLER": "0.0.0", - "google-iam-v2": "0.9.0", + "google-iam-v2": "0.10.0", "google-iam-v2+FILLER": "0.0.0", - "google-iam-v3": "0.1.0", + "google-iam-v3": "0.2.0", "google-iam-v3+FILLER": "0.0.0", - "google-iam-v3beta": "0.1.0", + "google-iam-v3beta": "0.2.0", "google-iam-v3beta+FILLER": "0.0.0", - "google-identity-access_context_manager": "1.5.1", + "google-identity-access_context_manager": "1.5.2", "google-identity-access_context_manager+FILLER": "0.0.0", - "google-identity-access_context_manager-v1": "0.11.0", + "google-identity-access_context_manager-v1": "0.12.0", "google-identity-access_context_manager-v1+FILLER": "0.0.0", - "google-maps-fleet_engine": "1.1.1", + "google-maps-fleet_engine": "1.1.2", "google-maps-fleet_engine+FILLER": "0.0.0", - "google-maps-fleet_engine-delivery": "1.1.1", + "google-maps-fleet_engine-delivery": "1.1.2", "google-maps-fleet_engine-delivery+FILLER": "0.0.0", - "google-maps-fleet_engine-delivery-v1": "0.7.0", + "google-maps-fleet_engine-delivery-v1": "0.8.0", "google-maps-fleet_engine-delivery-v1+FILLER": "0.0.0", - "google-maps-fleet_engine-v1": "0.7.0", + "google-maps-fleet_engine-v1": "0.8.0", "google-maps-fleet_engine-v1+FILLER": "0.0.0", - "google-shopping-css": "1.2.1", + "google-shopping-css": "1.2.2", "google-shopping-css+FILLER": "0.0.0", - "google-shopping-css-v1": "0.7.0", + "google-shopping-css-v1": "0.8.0", "google-shopping-css-v1+FILLER": "0.0.0", - "google-shopping-merchant-accounts": "0.6.0", + "google-shopping-merchant-accounts": "0.6.1", "google-shopping-merchant-accounts+FILLER": "0.0.0", - "google-shopping-merchant-accounts-v1": "0.2.0", + "google-shopping-merchant-accounts-v1": "0.3.0", "google-shopping-merchant-accounts-v1+FILLER": "0.0.0", - "google-shopping-merchant-accounts-v1beta": "0.11.0", + "google-shopping-merchant-accounts-v1beta": "0.12.0", "google-shopping-merchant-accounts-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-conversions": "0.2.1", + "google-shopping-merchant-conversions": "0.2.2", "google-shopping-merchant-conversions+FILLER": "0.0.0", - "google-shopping-merchant-conversions-v1": "0.1.0", + "google-shopping-merchant-conversions-v1": "0.2.0", "google-shopping-merchant-conversions-v1+FILLER": "0.0.0", - "google-shopping-merchant-conversions-v1beta": "0.4.0", + "google-shopping-merchant-conversions-v1beta": "0.5.0", "google-shopping-merchant-conversions-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-data_sources": "0.3.1", + "google-shopping-merchant-data_sources": "0.3.2", "google-shopping-merchant-data_sources+FILLER": "0.0.0", - "google-shopping-merchant-data_sources-v1": "0.1.0", + "google-shopping-merchant-data_sources-v1": "0.2.0", "google-shopping-merchant-data_sources-v1+FILLER": "0.0.0", - "google-shopping-merchant-data_sources-v1beta": "0.6.0", + "google-shopping-merchant-data_sources-v1beta": "0.7.0", "google-shopping-merchant-data_sources-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-inventories": "0.4.1", + "google-shopping-merchant-inventories": "0.4.2", "google-shopping-merchant-inventories+FILLER": "0.0.0", - "google-shopping-merchant-inventories-v1": "0.1.0", + "google-shopping-merchant-inventories-v1": "0.2.0", "google-shopping-merchant-inventories-v1+FILLER": "0.0.0", - "google-shopping-merchant-inventories-v1beta": "0.7.0", + "google-shopping-merchant-inventories-v1beta": "0.8.0", "google-shopping-merchant-inventories-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-issue_resolution": "0.2.0", + "google-shopping-merchant-issue_resolution": "0.2.1", "google-shopping-merchant-issue_resolution+FILLER": "0.0.0", - "google-shopping-merchant-issue_resolution-v1": "0.1.1", + "google-shopping-merchant-issue_resolution-v1": "0.2.0", "google-shopping-merchant-issue_resolution-v1+FILLER": "0.0.0", - "google-shopping-merchant-issue_resolution-v1beta": "0.2.0", + "google-shopping-merchant-issue_resolution-v1beta": "0.3.0", "google-shopping-merchant-issue_resolution-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-lfp": "0.3.1", + "google-shopping-merchant-lfp": "0.3.2", "google-shopping-merchant-lfp+FILLER": "0.0.0", - "google-shopping-merchant-lfp-v1": "0.1.0", + "google-shopping-merchant-lfp-v1": "0.2.0", "google-shopping-merchant-lfp-v1+FILLER": "0.0.0", - "google-shopping-merchant-lfp-v1beta": "0.5.0", + "google-shopping-merchant-lfp-v1beta": "0.6.0", "google-shopping-merchant-lfp-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-notifications": "0.2.1", + "google-shopping-merchant-notifications": "0.2.2", "google-shopping-merchant-notifications+FILLER": "0.0.0", - "google-shopping-merchant-notifications-v1": "0.1.0", + "google-shopping-merchant-notifications-v1": "0.2.0", "google-shopping-merchant-notifications-v1+FILLER": "0.0.0", - "google-shopping-merchant-notifications-v1beta": "0.4.0", + "google-shopping-merchant-notifications-v1beta": "0.5.0", "google-shopping-merchant-notifications-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-order_tracking": "0.1.0", + "google-shopping-merchant-order_tracking": "0.1.1", "google-shopping-merchant-order_tracking+FILLER": "0.0.0", - "google-shopping-merchant-order_tracking-v1": "0.1.0", + "google-shopping-merchant-order_tracking-v1": "0.2.0", "google-shopping-merchant-order_tracking-v1+FILLER": "0.0.0", - "google-shopping-merchant-order_tracking-v1beta": "0.1.0", + "google-shopping-merchant-order_tracking-v1beta": "0.2.0", "google-shopping-merchant-order_tracking-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-products": "0.2.2", + "google-shopping-merchant-products": "0.2.3", "google-shopping-merchant-products+FILLER": "0.0.0", - "google-shopping-merchant-products-v1": "0.1.0", + "google-shopping-merchant-products-v1": "0.2.0", "google-shopping-merchant-products-v1+FILLER": "0.0.0", - "google-shopping-merchant-products-v1beta": "0.7.0", + "google-shopping-merchant-products-v1beta": "0.8.0", "google-shopping-merchant-products-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-promotions": "0.2.1", + "google-shopping-merchant-promotions": "0.2.2", "google-shopping-merchant-promotions+FILLER": "0.0.0", - "google-shopping-merchant-promotions-v1": "0.1.0", + "google-shopping-merchant-promotions-v1": "0.2.0", "google-shopping-merchant-promotions-v1+FILLER": "0.0.0", - "google-shopping-merchant-promotions-v1beta": "0.4.0", + "google-shopping-merchant-promotions-v1beta": "0.5.0", "google-shopping-merchant-promotions-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-quota": "0.2.1", + "google-shopping-merchant-quota": "0.2.2", "google-shopping-merchant-quota+FILLER": "0.0.0", - "google-shopping-merchant-quota-v1": "0.1.0", + "google-shopping-merchant-quota-v1": "0.2.0", "google-shopping-merchant-quota-v1+FILLER": "0.0.0", - "google-shopping-merchant-quota-v1beta": "0.4.0", + "google-shopping-merchant-quota-v1beta": "0.5.0", "google-shopping-merchant-quota-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-reports": "0.4.1", + "google-shopping-merchant-reports": "0.4.2", "google-shopping-merchant-reports+FILLER": "0.0.0", - "google-shopping-merchant-reports-v1": "0.1.0", + "google-shopping-merchant-reports-v1": "0.2.0", "google-shopping-merchant-reports-v1+FILLER": "0.0.0", - "google-shopping-merchant-reports-v1beta": "0.9.0", + "google-shopping-merchant-reports-v1beta": "0.10.0", "google-shopping-merchant-reports-v1beta+FILLER": "0.0.0", - "google-shopping-merchant-reviews": "0.2.1", + "google-shopping-merchant-reviews": "0.2.2", "google-shopping-merchant-reviews+FILLER": "0.0.0", - "google-shopping-merchant-reviews-v1beta": "0.5.0", + "google-shopping-merchant-reviews-v1beta": "0.6.0", "google-shopping-merchant-reviews-v1beta+FILLER": "0.0.0", - "grafeas": "1.5.2", + "grafeas": "1.5.3", "grafeas+FILLER": "0.0.0", - "grafeas-v1": "1.4.0", + "grafeas-v1": "1.5.0", "grafeas-v1+FILLER": "0.0.0", "stackdriver": "0.23.0", "stackdriver+FILLER": "0.0.0", diff --git a/google-ads-ad_manager-v1/CHANGELOG.md b/google-ads-ad_manager-v1/CHANGELOG.md index c723561aa5f6..63b0a9dc067c 100644 --- a/google-ads-ad_manager-v1/CHANGELOG.md +++ b/google-ads-ad_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 2.0.0 (2025-07-15) ### ⚠ BREAKING CHANGES diff --git a/google-ads-ad_manager-v1/google-ads-ad_manager-v1.gemspec b/google-ads-ad_manager-v1/google-ads-ad_manager-v1.gemspec index 2e294e551b05..3f35f727145e 100644 --- a/google-ads-ad_manager-v1/google-ads-ad_manager-v1.gemspec +++ b/google-ads-ad_manager-v1/google-ads-ad_manager-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-ads-ad_manager-v1/lib/google/ads/ad_manager/v1/version.rb b/google-ads-ad_manager-v1/lib/google/ads/ad_manager/v1/version.rb index 45514c66377e..54a8f055f2db 100644 --- a/google-ads-ad_manager-v1/lib/google/ads/ad_manager/v1/version.rb +++ b/google-ads-ad_manager-v1/lib/google/ads/ad_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Ads module AdManager module V1 - VERSION = "2.0.0" + VERSION = "2.1.0" end end end diff --git a/google-ads-ad_manager-v1/snippets/snippet_metadata_google.ads.admanager.v1.json b/google-ads-ad_manager-v1/snippets/snippet_metadata_google.ads.admanager.v1.json index 6b0dfd12167e..2951c431d318 100644 --- a/google-ads-ad_manager-v1/snippets/snippet_metadata_google.ads.admanager.v1.json +++ b/google-ads-ad_manager-v1/snippets/snippet_metadata_google.ads.admanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-ads-ad_manager-v1", - "version": "2.0.0", + "version": "2.1.0", "language": "RUBY", "apis": [ { diff --git a/google-ads-ad_manager/CHANGELOG.md b/google-ads-ad_manager/CHANGELOG.md index 7727d574355d..d5f566d8d489 100644 --- a/google-ads-ad_manager/CHANGELOG.md +++ b/google-ads-ad_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.0 (2025-07-21) ### ⚠ BREAKING CHANGES diff --git a/google-ads-ad_manager/README.md b/google-ads-ad_manager/README.md index c722e67a40e0..d232616d7b33 100644 --- a/google-ads-ad_manager/README.md +++ b/google-ads-ad_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/admanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/ads/ad_manager" + +client = Google::Ads::AdManager.ad_break_service +request = ::Google::Ads::AdManager::V1::GetAdBreakRequest.new # (request fields as keyword arguments...) +response = client.get_ad_break request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-ads-ad_manager/lib/google/ads/ad_manager/version.rb b/google-ads-ad_manager/lib/google/ads/ad_manager/version.rb index 6fc78bd42abe..142a8694991c 100644 --- a/google-ads-ad_manager/lib/google/ads/ad_manager/version.rb +++ b/google-ads-ad_manager/lib/google/ads/ad_manager/version.rb @@ -20,7 +20,7 @@ module Google module Ads module AdManager - VERSION = "2.0.0" + VERSION = "2.0.1" end end end diff --git a/google-ads-marketing_platform-admin-v1alpha/CHANGELOG.md b/google-ads-marketing_platform-admin-v1alpha/CHANGELOG.md index 48b96f09cd6f..895df25a8e93 100644 --- a/google-ads-marketing_platform-admin-v1alpha/CHANGELOG.md +++ b/google-ads-marketing_platform-admin-v1alpha/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-ads-marketing_platform-admin-v1alpha/google-ads-marketing_platform-admin-v1alpha.gemspec b/google-ads-marketing_platform-admin-v1alpha/google-ads-marketing_platform-admin-v1alpha.gemspec index 5d06c9ded5f8..0c1dbfb96b99 100644 --- a/google-ads-marketing_platform-admin-v1alpha/google-ads-marketing_platform-admin-v1alpha.gemspec +++ b/google-ads-marketing_platform-admin-v1alpha/google-ads-marketing_platform-admin-v1alpha.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-ads-marketing_platform-admin-v1alpha/lib/google/ads/marketing_platform/admin/v1alpha/version.rb b/google-ads-marketing_platform-admin-v1alpha/lib/google/ads/marketing_platform/admin/v1alpha/version.rb index d2c19e049f8f..a01aa7abd185 100644 --- a/google-ads-marketing_platform-admin-v1alpha/lib/google/ads/marketing_platform/admin/v1alpha/version.rb +++ b/google-ads-marketing_platform-admin-v1alpha/lib/google/ads/marketing_platform/admin/v1alpha/version.rb @@ -22,7 +22,7 @@ module Ads module MarketingPlatform module Admin module V1alpha - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-ads-marketing_platform-admin-v1alpha/snippets/snippet_metadata_google.marketingplatform.admin.v1alpha.json b/google-ads-marketing_platform-admin-v1alpha/snippets/snippet_metadata_google.marketingplatform.admin.v1alpha.json index f46bc7f3410a..90da51c27d65 100644 --- a/google-ads-marketing_platform-admin-v1alpha/snippets/snippet_metadata_google.marketingplatform.admin.v1alpha.json +++ b/google-ads-marketing_platform-admin-v1alpha/snippets/snippet_metadata_google.marketingplatform.admin.v1alpha.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-ads-marketing_platform-admin-v1alpha", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-ads-marketing_platform-admin/CHANGELOG.md b/google-ads-marketing_platform-admin/CHANGELOG.md index 08d09aa5cdc1..d12c24c0b901 100644 --- a/google-ads-marketing_platform-admin/CHANGELOG.md +++ b/google-ads-marketing_platform-admin/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-ads-marketing_platform-admin/README.md b/google-ads-marketing_platform-admin/README.md index 73916b3ad409..d79bbd3f4181 100644 --- a/google-ads-marketing_platform-admin/README.md +++ b/google-ads-marketing_platform-admin/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/marketingplatformadmin.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/ads/marketing_platform/admin" + +client = Google::Ads::MarketingPlatform::Admin.marketingplatform_admin_service +request = ::Google::Ads::MarketingPlatform::Admin::V1alpha::GetOrganizationRequest.new # (request fields as keyword arguments...) +response = client.get_organization request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-ads-marketing_platform-admin/lib/google/ads/marketing_platform/admin/version.rb b/google-ads-marketing_platform-admin/lib/google/ads/marketing_platform/admin/version.rb index 287c9089bfcc..0b17faf3eac1 100644 --- a/google-ads-marketing_platform-admin/lib/google/ads/marketing_platform/admin/version.rb +++ b/google-ads-marketing_platform-admin/lib/google/ads/marketing_platform/admin/version.rb @@ -21,7 +21,7 @@ module Google module Ads module MarketingPlatform module Admin - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-analytics-admin-v1alpha/CHANGELOG.md b/google-analytics-admin-v1alpha/CHANGELOG.md index 30985ce9fd80..21cfaa55cbd0 100644 --- a/google-analytics-admin-v1alpha/CHANGELOG.md +++ b/google-analytics-admin-v1alpha/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.38.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.37.0 (2025-08-26) ### ⚠ BREAKING CHANGES diff --git a/google-analytics-admin-v1alpha/google-analytics-admin-v1alpha.gemspec b/google-analytics-admin-v1alpha/google-analytics-admin-v1alpha.gemspec index a2f426517ce6..455209fd923e 100644 --- a/google-analytics-admin-v1alpha/google-analytics-admin-v1alpha.gemspec +++ b/google-analytics-admin-v1alpha/google-analytics-admin-v1alpha.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-analytics-admin-v1alpha/lib/google/analytics/admin/v1alpha/version.rb b/google-analytics-admin-v1alpha/lib/google/analytics/admin/v1alpha/version.rb index 5398c086d0f5..db8d4e4acbc7 100644 --- a/google-analytics-admin-v1alpha/lib/google/analytics/admin/v1alpha/version.rb +++ b/google-analytics-admin-v1alpha/lib/google/analytics/admin/v1alpha/version.rb @@ -21,7 +21,7 @@ module Google module Analytics module Admin module V1alpha - VERSION = "0.37.0" + VERSION = "0.38.0" end end end diff --git a/google-analytics-admin-v1alpha/snippets/snippet_metadata_google.analytics.admin.v1alpha.json b/google-analytics-admin-v1alpha/snippets/snippet_metadata_google.analytics.admin.v1alpha.json index 87b30a40194b..ace15cc262e6 100644 --- a/google-analytics-admin-v1alpha/snippets/snippet_metadata_google.analytics.admin.v1alpha.json +++ b/google-analytics-admin-v1alpha/snippets/snippet_metadata_google.analytics.admin.v1alpha.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-analytics-admin-v1alpha", - "version": "0.37.0", + "version": "0.38.0", "language": "RUBY", "apis": [ { diff --git a/google-analytics-admin/CHANGELOG.md b/google-analytics-admin/CHANGELOG.md index c36be02c7c3a..ace55e9ca5b4 100644 --- a/google-analytics-admin/CHANGELOG.md +++ b/google-analytics-admin/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.2 (2025-04-29) #### Bug Fixes diff --git a/google-analytics-admin/README.md b/google-analytics-admin/README.md index 4693f5af35df..513e34a741fb 100644 --- a/google-analytics-admin/README.md +++ b/google-analytics-admin/README.md @@ -31,6 +31,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/analyticsadmin.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/analytics/admin" + +client = Google::Analytics::Admin.analytics_admin_service +request = ::Google::Analytics::Admin::V1alpha::GetAccountRequest.new # (request fields as keyword arguments...) +response = client.get_account request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-analytics-admin/lib/google/analytics/admin/version.rb b/google-analytics-admin/lib/google/analytics/admin/version.rb index 471f9b0296af..37d328827951 100644 --- a/google-analytics-admin/lib/google/analytics/admin/version.rb +++ b/google-analytics-admin/lib/google/analytics/admin/version.rb @@ -20,7 +20,7 @@ module Google module Analytics module Admin - VERSION = "0.6.2" + VERSION = "0.6.3" end end end diff --git a/google-analytics-data-v1beta/CHANGELOG.md b/google-analytics-data-v1beta/CHANGELOG.md index c4efce3d4a30..f73d847b00bd 100644 --- a/google-analytics-data-v1beta/CHANGELOG.md +++ b/google-analytics-data-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.18.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.17.0 (2025-05-12) #### Features diff --git a/google-analytics-data-v1beta/google-analytics-data-v1beta.gemspec b/google-analytics-data-v1beta/google-analytics-data-v1beta.gemspec index fed2d9ee34f7..a3f7fd6cdfb1 100644 --- a/google-analytics-data-v1beta/google-analytics-data-v1beta.gemspec +++ b/google-analytics-data-v1beta/google-analytics-data-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-analytics-data-v1beta/lib/google/analytics/data/v1beta/version.rb b/google-analytics-data-v1beta/lib/google/analytics/data/v1beta/version.rb index b34a24be4c86..445bebba72be 100644 --- a/google-analytics-data-v1beta/lib/google/analytics/data/v1beta/version.rb +++ b/google-analytics-data-v1beta/lib/google/analytics/data/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Analytics module Data module V1beta - VERSION = "0.17.0" + VERSION = "0.18.0" end end end diff --git a/google-analytics-data-v1beta/snippets/snippet_metadata_google.analytics.data.v1beta.json b/google-analytics-data-v1beta/snippets/snippet_metadata_google.analytics.data.v1beta.json index b41283a38fc3..0f1369481de7 100644 --- a/google-analytics-data-v1beta/snippets/snippet_metadata_google.analytics.data.v1beta.json +++ b/google-analytics-data-v1beta/snippets/snippet_metadata_google.analytics.data.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-analytics-data-v1beta", - "version": "0.17.0", + "version": "0.18.0", "language": "RUBY", "apis": [ { diff --git a/google-analytics-data/CHANGELOG.md b/google-analytics-data/CHANGELOG.md index 235f10ec4157..e2be9e444a91 100644 --- a/google-analytics-data/CHANGELOG.md +++ b/google-analytics-data/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.7.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.7.1 (2025-04-29) #### Bug Fixes diff --git a/google-analytics-data/README.md b/google-analytics-data/README.md index 47a6cb31bf77..6c576c0523f7 100644 --- a/google-analytics-data/README.md +++ b/google-analytics-data/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/analyticsdata.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/analytics/data" + +client = Google::Analytics::Data.analytics_data +request = ::Google::Analytics::Data::V1beta::RunReportRequest.new # (request fields as keyword arguments...) +response = client.run_report request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-analytics-data/lib/google/analytics/data/version.rb b/google-analytics-data/lib/google/analytics/data/version.rb index a5a50a080785..a0e78f51d442 100644 --- a/google-analytics-data/lib/google/analytics/data/version.rb +++ b/google-analytics-data/lib/google/analytics/data/version.rb @@ -20,7 +20,7 @@ module Google module Analytics module Data - VERSION = "0.7.1" + VERSION = "0.7.2" end end end diff --git a/google-apps-chat-v1/CHANGELOG.md b/google-apps-chat-v1/CHANGELOG.md index b9751a2000b9..34dd8ffa1884 100644 --- a/google-apps-chat-v1/CHANGELOG.md +++ b/google-apps-chat-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.15.0 (2025-08-27) ### ⚠ BREAKING CHANGES diff --git a/google-apps-chat-v1/google-apps-chat-v1.gemspec b/google-apps-chat-v1/google-apps-chat-v1.gemspec index b1ce8d7a2aca..16fe8407cfe5 100644 --- a/google-apps-chat-v1/google-apps-chat-v1.gemspec +++ b/google-apps-chat-v1/google-apps-chat-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-apps-card-v1", "> 0.0", "< 2.a" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-apps-chat-v1/lib/google/apps/chat/v1/version.rb b/google-apps-chat-v1/lib/google/apps/chat/v1/version.rb index 4ad1619644d8..a05413eb16e4 100644 --- a/google-apps-chat-v1/lib/google/apps/chat/v1/version.rb +++ b/google-apps-chat-v1/lib/google/apps/chat/v1/version.rb @@ -21,7 +21,7 @@ module Google module Apps module Chat module V1 - VERSION = "0.15.0" + VERSION = "0.16.0" end end end diff --git a/google-apps-chat-v1/snippets/snippet_metadata_google.chat.v1.json b/google-apps-chat-v1/snippets/snippet_metadata_google.chat.v1.json index 61733829a1d0..2a7c25c988f8 100644 --- a/google-apps-chat-v1/snippets/snippet_metadata_google.chat.v1.json +++ b/google-apps-chat-v1/snippets/snippet_metadata_google.chat.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-apps-chat-v1", - "version": "0.15.0", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-apps-chat/CHANGELOG.md b/google-apps-chat/CHANGELOG.md index 96823ca64800..55f998d8498d 100644 --- a/google-apps-chat/CHANGELOG.md +++ b/google-apps-chat/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-apps-chat/README.md b/google-apps-chat/README.md index a3ea90734b23..adae7450bb7e 100644 --- a/google-apps-chat/README.md +++ b/google-apps-chat/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/chat.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/apps/chat" + +client = Google::Apps::Chat.chat_service +request = ::Google::Apps::Chat::V1::CreateMessageRequest.new # (request fields as keyword arguments...) +response = client.create_message request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-apps-chat/lib/google/apps/chat/version.rb b/google-apps-chat/lib/google/apps/chat/version.rb index 6965ed24de6d..e0c68cb92bce 100644 --- a/google-apps-chat/lib/google/apps/chat/version.rb +++ b/google-apps-chat/lib/google/apps/chat/version.rb @@ -20,7 +20,7 @@ module Google module Apps module Chat - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-apps-events-subscriptions-v1/CHANGELOG.md b/google-apps-events-subscriptions-v1/CHANGELOG.md index db2b6355f07d..04fbe2bd1dd9 100644 --- a/google-apps-events-subscriptions-v1/CHANGELOG.md +++ b/google-apps-events-subscriptions-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.4.0 (2025-05-12) #### Features diff --git a/google-apps-events-subscriptions-v1/google-apps-events-subscriptions-v1.gemspec b/google-apps-events-subscriptions-v1/google-apps-events-subscriptions-v1.gemspec index 95dcca303871..85c54deb30a0 100644 --- a/google-apps-events-subscriptions-v1/google-apps-events-subscriptions-v1.gemspec +++ b/google-apps-events-subscriptions-v1/google-apps-events-subscriptions-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-apps-events-subscriptions-v1/lib/google/apps/events/subscriptions/v1/version.rb b/google-apps-events-subscriptions-v1/lib/google/apps/events/subscriptions/v1/version.rb index 4414d708212b..176854a458c7 100644 --- a/google-apps-events-subscriptions-v1/lib/google/apps/events/subscriptions/v1/version.rb +++ b/google-apps-events-subscriptions-v1/lib/google/apps/events/subscriptions/v1/version.rb @@ -22,7 +22,7 @@ module Apps module Events module Subscriptions module V1 - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-apps-events-subscriptions-v1/snippets/snippet_metadata_google.apps.events.subscriptions.v1.json b/google-apps-events-subscriptions-v1/snippets/snippet_metadata_google.apps.events.subscriptions.v1.json index eb770d531105..8d58721f8dee 100644 --- a/google-apps-events-subscriptions-v1/snippets/snippet_metadata_google.apps.events.subscriptions.v1.json +++ b/google-apps-events-subscriptions-v1/snippets/snippet_metadata_google.apps.events.subscriptions.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-apps-events-subscriptions-v1", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-apps-events-subscriptions-v1beta/CHANGELOG.md b/google-apps-events-subscriptions-v1beta/CHANGELOG.md index ecbaf4acf913..9bb2c64e7aa8 100644 --- a/google-apps-events-subscriptions-v1beta/CHANGELOG.md +++ b/google-apps-events-subscriptions-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.1.0 (2025-08-12) #### Features diff --git a/google-apps-events-subscriptions-v1beta/google-apps-events-subscriptions-v1beta.gemspec b/google-apps-events-subscriptions-v1beta/google-apps-events-subscriptions-v1beta.gemspec index e0defaf0c7b8..f757f8238923 100644 --- a/google-apps-events-subscriptions-v1beta/google-apps-events-subscriptions-v1beta.gemspec +++ b/google-apps-events-subscriptions-v1beta/google-apps-events-subscriptions-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-apps-events-subscriptions-v1beta/lib/google/apps/events/subscriptions/v1beta/version.rb b/google-apps-events-subscriptions-v1beta/lib/google/apps/events/subscriptions/v1beta/version.rb index 3186e845bad7..6e7370533e0a 100644 --- a/google-apps-events-subscriptions-v1beta/lib/google/apps/events/subscriptions/v1beta/version.rb +++ b/google-apps-events-subscriptions-v1beta/lib/google/apps/events/subscriptions/v1beta/version.rb @@ -22,7 +22,7 @@ module Apps module Events module Subscriptions module V1beta - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-apps-events-subscriptions-v1beta/snippets/snippet_metadata_google.apps.events.subscriptions.v1beta.json b/google-apps-events-subscriptions-v1beta/snippets/snippet_metadata_google.apps.events.subscriptions.v1beta.json index a66299119230..2f20e77fd765 100644 --- a/google-apps-events-subscriptions-v1beta/snippets/snippet_metadata_google.apps.events.subscriptions.v1beta.json +++ b/google-apps-events-subscriptions-v1beta/snippets/snippet_metadata_google.apps.events.subscriptions.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-apps-events-subscriptions-v1beta", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-apps-events-subscriptions/CHANGELOG.md b/google-apps-events-subscriptions/CHANGELOG.md index dc49fcd1d9fe..62fbadd15a45 100644 --- a/google-apps-events-subscriptions/CHANGELOG.md +++ b/google-apps-events-subscriptions/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-apps-events-subscriptions/README.md b/google-apps-events-subscriptions/README.md index 02e7a5c8044c..a0535f08ae6d 100644 --- a/google-apps-events-subscriptions/README.md +++ b/google-apps-events-subscriptions/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/workspaceevents.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/apps/events/subscriptions" + +client = Google::Apps::Events::Subscriptions.subscriptions_service +request = ::Google::Apps::Events::Subscriptions::V1::CreateSubscriptionRequest.new # (request fields as keyword arguments...) +response = client.create_subscription request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-apps-events-subscriptions/lib/google/apps/events/subscriptions/version.rb b/google-apps-events-subscriptions/lib/google/apps/events/subscriptions/version.rb index f3704c020ce9..83c20f67ab13 100644 --- a/google-apps-events-subscriptions/lib/google/apps/events/subscriptions/version.rb +++ b/google-apps-events-subscriptions/lib/google/apps/events/subscriptions/version.rb @@ -21,7 +21,7 @@ module Google module Apps module Events module Subscriptions - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-apps-meet-v2/CHANGELOG.md b/google-apps-meet-v2/CHANGELOG.md index e1f26085a1d8..20f2d9bdda69 100644 --- a/google-apps-meet-v2/CHANGELOG.md +++ b/google-apps-meet-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.5.0 (2025-05-12) #### Features diff --git a/google-apps-meet-v2/google-apps-meet-v2.gemspec b/google-apps-meet-v2/google-apps-meet-v2.gemspec index f8080ae8570a..ec279b83f523 100644 --- a/google-apps-meet-v2/google-apps-meet-v2.gemspec +++ b/google-apps-meet-v2/google-apps-meet-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-apps-meet-v2/lib/google/apps/meet/v2/version.rb b/google-apps-meet-v2/lib/google/apps/meet/v2/version.rb index b24a997ada78..704005b79f21 100644 --- a/google-apps-meet-v2/lib/google/apps/meet/v2/version.rb +++ b/google-apps-meet-v2/lib/google/apps/meet/v2/version.rb @@ -21,7 +21,7 @@ module Google module Apps module Meet module V2 - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-apps-meet-v2/snippets/snippet_metadata_google.apps.meet.v2.json b/google-apps-meet-v2/snippets/snippet_metadata_google.apps.meet.v2.json index c6083183e71a..6aa96152c732 100644 --- a/google-apps-meet-v2/snippets/snippet_metadata_google.apps.meet.v2.json +++ b/google-apps-meet-v2/snippets/snippet_metadata_google.apps.meet.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-apps-meet-v2", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-apps-meet-v2beta/CHANGELOG.md b/google-apps-meet-v2beta/CHANGELOG.md index 463e840c439e..2a8e7e81567b 100644 --- a/google-apps-meet-v2beta/CHANGELOG.md +++ b/google-apps-meet-v2beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.7.0 (2025-05-12) #### Features diff --git a/google-apps-meet-v2beta/google-apps-meet-v2beta.gemspec b/google-apps-meet-v2beta/google-apps-meet-v2beta.gemspec index 412f5fad0e2c..a081bae7936a 100644 --- a/google-apps-meet-v2beta/google-apps-meet-v2beta.gemspec +++ b/google-apps-meet-v2beta/google-apps-meet-v2beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-apps-meet-v2beta/lib/google/apps/meet/v2beta/version.rb b/google-apps-meet-v2beta/lib/google/apps/meet/v2beta/version.rb index c15af1942555..a244be78ca7f 100644 --- a/google-apps-meet-v2beta/lib/google/apps/meet/v2beta/version.rb +++ b/google-apps-meet-v2beta/lib/google/apps/meet/v2beta/version.rb @@ -21,7 +21,7 @@ module Google module Apps module Meet module V2beta - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-apps-meet-v2beta/snippets/snippet_metadata_google.apps.meet.v2beta.json b/google-apps-meet-v2beta/snippets/snippet_metadata_google.apps.meet.v2beta.json index c46bcefaa83e..1cfad42c5e39 100644 --- a/google-apps-meet-v2beta/snippets/snippet_metadata_google.apps.meet.v2beta.json +++ b/google-apps-meet-v2beta/snippets/snippet_metadata_google.apps.meet.v2beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-apps-meet-v2beta", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-apps-meet/CHANGELOG.md b/google-apps-meet/CHANGELOG.md index 73f0b30d2c31..6baf0c573be6 100644 --- a/google-apps-meet/CHANGELOG.md +++ b/google-apps-meet/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-apps-meet/README.md b/google-apps-meet/README.md index 6609ad2c96a7..0ae8645a0369 100644 --- a/google-apps-meet/README.md +++ b/google-apps-meet/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/meet.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/apps/meet" + +client = Google::Apps::Meet.spaces_service +request = ::Google::Apps::Meet::V2::CreateSpaceRequest.new # (request fields as keyword arguments...) +response = client.create_space request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-apps-meet/lib/google/apps/meet/version.rb b/google-apps-meet/lib/google/apps/meet/version.rb index 432aa4293d73..eef035bb8c32 100644 --- a/google-apps-meet/lib/google/apps/meet/version.rb +++ b/google-apps-meet/lib/google/apps/meet/version.rb @@ -20,7 +20,7 @@ module Google module Apps module Meet - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-area120-tables-v1alpha1/CHANGELOG.md b/google-area120-tables-v1alpha1/CHANGELOG.md index 47663b97fb68..39a604f247a4 100644 --- a/google-area120-tables-v1alpha1/CHANGELOG.md +++ b/google-area120-tables-v1alpha1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.11.0 (2025-05-12) #### Features diff --git a/google-area120-tables-v1alpha1/google-area120-tables-v1alpha1.gemspec b/google-area120-tables-v1alpha1/google-area120-tables-v1alpha1.gemspec index c4bc8a279e64..d96a7d43edc5 100644 --- a/google-area120-tables-v1alpha1/google-area120-tables-v1alpha1.gemspec +++ b/google-area120-tables-v1alpha1/google-area120-tables-v1alpha1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-area120-tables-v1alpha1/lib/google/area120/tables/v1alpha1/version.rb b/google-area120-tables-v1alpha1/lib/google/area120/tables/v1alpha1/version.rb index e38a0916b4f3..c8081cc82c71 100644 --- a/google-area120-tables-v1alpha1/lib/google/area120/tables/v1alpha1/version.rb +++ b/google-area120-tables-v1alpha1/lib/google/area120/tables/v1alpha1/version.rb @@ -21,7 +21,7 @@ module Google module Area120 module Tables module V1alpha1 - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-area120-tables-v1alpha1/snippets/snippet_metadata_google.area120.tables.v1alpha1.json b/google-area120-tables-v1alpha1/snippets/snippet_metadata_google.area120.tables.v1alpha1.json index 3380172e7a7f..f4cce5ea937a 100644 --- a/google-area120-tables-v1alpha1/snippets/snippet_metadata_google.area120.tables.v1alpha1.json +++ b/google-area120-tables-v1alpha1/snippets/snippet_metadata_google.area120.tables.v1alpha1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-area120-tables-v1alpha1", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-area120-tables/CHANGELOG.md b/google-area120-tables/CHANGELOG.md index 45ec0f5786aa..c15a6c4c100f 100644 --- a/google-area120-tables/CHANGELOG.md +++ b/google-area120-tables/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.7.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.7.1 (2025-04-29) #### Bug Fixes diff --git a/google-area120-tables/README.md b/google-area120-tables/README.md index 15ca2564e1ce..bcf423f579cf 100644 --- a/google-area120-tables/README.md +++ b/google-area120-tables/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/area120tables.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/area120/tables" + +client = Google::Area120::Tables.tables_service +request = ::Google::Area120::Tables::V1alpha1::GetTableRequest.new # (request fields as keyword arguments...) +response = client.get_table request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-area120-tables/lib/google/area120/tables/version.rb b/google-area120-tables/lib/google/area120/tables/version.rb index ddce3beda31b..ec62eb092d19 100644 --- a/google-area120-tables/lib/google/area120/tables/version.rb +++ b/google-area120-tables/lib/google/area120/tables/version.rb @@ -20,7 +20,7 @@ module Google module Area120 module Tables - VERSION = "0.7.1" + VERSION = "0.7.2" end end end diff --git a/google-cloud-access_approval-v1/CHANGELOG.md b/google-cloud-access_approval-v1/CHANGELOG.md index e0da315e2f8f..d4f35f6f84c1 100644 --- a/google-cloud-access_approval-v1/CHANGELOG.md +++ b/google-cloud-access_approval-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-access_approval-v1/google-cloud-access_approval-v1.gemspec b/google-cloud-access_approval-v1/google-cloud-access_approval-v1.gemspec index fa3eb958f463..121144fbac72 100644 --- a/google-cloud-access_approval-v1/google-cloud-access_approval-v1.gemspec +++ b/google-cloud-access_approval-v1/google-cloud-access_approval-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-access_approval-v1/lib/google/cloud/access_approval/v1/version.rb b/google-cloud-access_approval-v1/lib/google/cloud/access_approval/v1/version.rb index b28f0d0537ad..18a618ce6018 100644 --- a/google-cloud-access_approval-v1/lib/google/cloud/access_approval/v1/version.rb +++ b/google-cloud-access_approval-v1/lib/google/cloud/access_approval/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AccessApproval module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-access_approval-v1/snippets/snippet_metadata_google.cloud.accessapproval.v1.json b/google-cloud-access_approval-v1/snippets/snippet_metadata_google.cloud.accessapproval.v1.json index b1f92c5d924e..79509728f3bc 100644 --- a/google-cloud-access_approval-v1/snippets/snippet_metadata_google.cloud.accessapproval.v1.json +++ b/google-cloud-access_approval-v1/snippets/snippet_metadata_google.cloud.accessapproval.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-access_approval-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-access_approval/CHANGELOG.md b/google-cloud-access_approval/CHANGELOG.md index 1d91162a7a9b..63c2c85eb6c5 100644 --- a/google-cloud-access_approval/CHANGELOG.md +++ b/google-cloud-access_approval/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-access_approval/README.md b/google-cloud-access_approval/README.md index fa3ba48e5788..88896960f627 100644 --- a/google-cloud-access_approval/README.md +++ b/google-cloud-access_approval/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/accessapproval.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/access_approval" + +client = Google::Cloud::AccessApproval.access_approval +request = ::Google::Cloud::AccessApproval::V1::ListApprovalRequestsMessage.new # (request fields as keyword arguments...) +response = client.list_approval_requests request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-access_approval/lib/google/cloud/access_approval/version.rb b/google-cloud-access_approval/lib/google/cloud/access_approval/version.rb index 54e3c3722464..c5d02190549a 100644 --- a/google-cloud-access_approval/lib/google/cloud/access_approval/version.rb +++ b/google-cloud-access_approval/lib/google/cloud/access_approval/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AccessApproval - VERSION = "1.6.1" + VERSION = "1.6.2" end end end diff --git a/google-cloud-advisory_notifications-v1/CHANGELOG.md b/google-cloud-advisory_notifications-v1/CHANGELOG.md index d36513007836..0ffcf164ced3 100644 --- a/google-cloud-advisory_notifications-v1/CHANGELOG.md +++ b/google-cloud-advisory_notifications-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-advisory_notifications-v1/google-cloud-advisory_notifications-v1.gemspec b/google-cloud-advisory_notifications-v1/google-cloud-advisory_notifications-v1.gemspec index fdd7048dc2e7..a21a90b713ee 100644 --- a/google-cloud-advisory_notifications-v1/google-cloud-advisory_notifications-v1.gemspec +++ b/google-cloud-advisory_notifications-v1/google-cloud-advisory_notifications-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-advisory_notifications-v1/lib/google/cloud/advisory_notifications/v1/version.rb b/google-cloud-advisory_notifications-v1/lib/google/cloud/advisory_notifications/v1/version.rb index 1bdf8ab5363d..3b5d4a189845 100644 --- a/google-cloud-advisory_notifications-v1/lib/google/cloud/advisory_notifications/v1/version.rb +++ b/google-cloud-advisory_notifications-v1/lib/google/cloud/advisory_notifications/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AdvisoryNotifications module V1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-advisory_notifications-v1/snippets/snippet_metadata_google.cloud.advisorynotifications.v1.json b/google-cloud-advisory_notifications-v1/snippets/snippet_metadata_google.cloud.advisorynotifications.v1.json index 417c80ee1930..0fb387047339 100644 --- a/google-cloud-advisory_notifications-v1/snippets/snippet_metadata_google.cloud.advisorynotifications.v1.json +++ b/google-cloud-advisory_notifications-v1/snippets/snippet_metadata_google.cloud.advisorynotifications.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-advisory_notifications-v1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-advisory_notifications/CHANGELOG.md b/google-cloud-advisory_notifications/CHANGELOG.md index 9b02a5e45262..f5547d0295a8 100644 --- a/google-cloud-advisory_notifications/CHANGELOG.md +++ b/google-cloud-advisory_notifications/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-advisory_notifications/README.md b/google-cloud-advisory_notifications/README.md index f5a0c1964952..7930f7af87ba 100644 --- a/google-cloud-advisory_notifications/README.md +++ b/google-cloud-advisory_notifications/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/advisorynotifications.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/advisory_notifications" + +client = Google::Cloud::AdvisoryNotifications.advisory_notifications_service +request = ::Google::Cloud::AdvisoryNotifications::V1::ListNotificationsRequest.new # (request fields as keyword arguments...) +response = client.list_notifications request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-advisory_notifications/lib/google/cloud/advisory_notifications/version.rb b/google-cloud-advisory_notifications/lib/google/cloud/advisory_notifications/version.rb index 57879b591f6f..b2d61df42693 100644 --- a/google-cloud-advisory_notifications/lib/google/cloud/advisory_notifications/version.rb +++ b/google-cloud-advisory_notifications/lib/google/cloud/advisory_notifications/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AdvisoryNotifications - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-ai_platform-v1/CHANGELOG.md b/google-cloud-ai_platform-v1/CHANGELOG.md index 4ba9aaa7902b..87fa07d6c4b2 100644 --- a/google-cloud-ai_platform-v1/CHANGELOG.md +++ b/google-cloud-ai_platform-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 1.23.0 (2025-09-17) + +#### Features + +* add private_model_server_enabled to in Endpoint.proto ([#31516](https://github.com/googleapis/google-cloud-ruby/issues/31516)) + +### 1.22.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.21.0 (2025-08-26) #### Features diff --git a/google-cloud-ai_platform-v1/google-cloud-ai_platform-v1.gemspec b/google-cloud-ai_platform-v1/google-cloud-ai_platform-v1.gemspec index e9b2fce36543..8b4c5e0a73d3 100644 --- a/google-cloud-ai_platform-v1/google-cloud-ai_platform-v1.gemspec +++ b/google-cloud-ai_platform-v1/google-cloud-ai_platform-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-ai_platform-v1/lib/google/cloud/ai_platform/v1/version.rb b/google-cloud-ai_platform-v1/lib/google/cloud/ai_platform/v1/version.rb index 6314504f0be9..08fad3495b1b 100644 --- a/google-cloud-ai_platform-v1/lib/google/cloud/ai_platform/v1/version.rb +++ b/google-cloud-ai_platform-v1/lib/google/cloud/ai_platform/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AIPlatform module V1 - VERSION = "1.21.0" + VERSION = "1.23.0" end end end diff --git a/google-cloud-ai_platform-v1/lib/google/cloud/aiplatform/v1/endpoint_pb.rb b/google-cloud-ai_platform-v1/lib/google/cloud/aiplatform/v1/endpoint_pb.rb index 3702e1df38fc..4ad28c931d7c 100644 --- a/google-cloud-ai_platform-v1/lib/google/cloud/aiplatform/v1/endpoint_pb.rb +++ b/google-cloud-ai_platform-v1/lib/google/cloud/aiplatform/v1/endpoint_pb.rb @@ -15,7 +15,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n)google/cloud/aiplatform/v1/endpoint.proto\x12\x1agoogle.cloud.aiplatform.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x30google/cloud/aiplatform/v1/encryption_spec.proto\x1a,google/cloud/aiplatform/v1/explanation.proto\x1a#google/cloud/aiplatform/v1/io.proto\x1a\x32google/cloud/aiplatform/v1/machine_resources.proto\x1a\x33google/cloud/aiplatform/v1/service_networking.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe6\x0b\n\x08\x45ndpoint\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12G\n\x0f\x64\x65ployed_models\x18\x04 \x03(\x0b\x32).google.cloud.aiplatform.v1.DeployedModelB\x03\xe0\x41\x03\x12M\n\rtraffic_split\x18\x05 \x03(\x0b\x32\x36.google.cloud.aiplatform.v1.Endpoint.TrafficSplitEntry\x12\x0c\n\x04\x65tag\x18\x06 \x01(\t\x12@\n\x06labels\x18\x07 \x03(\x0b\x32\x30.google.cloud.aiplatform.v1.Endpoint.LabelsEntry\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x0f\x65ncryption_spec\x18\n \x01(\x0b\x32*.google.cloud.aiplatform.v1.EncryptionSpec\x12\x37\n\x07network\x18\r \x01(\tB&\xe0\x41\x01\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12*\n\x1e\x65nable_private_service_connect\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x64\n\x1eprivate_service_connect_config\x18\x15 \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.PrivateServiceConnectConfigB\x03\xe0\x41\x01\x12g\n\x1fmodel_deployment_monitoring_job\x18\x0e \x01(\tB>\xe0\x41\x03\xfa\x41\x38\n6aiplatform.googleapis.com/ModelDeploymentMonitoringJob\x12p\n\'predict_request_response_logging_config\x18\x12 \x01(\x0b\x32?.google.cloud.aiplatform.v1.PredictRequestResponseLoggingConfig\x12\"\n\x1a\x64\x65\x64icated_endpoint_enabled\x18\x18 \x01(\x08\x12#\n\x16\x64\x65\x64icated_endpoint_dns\x18\x19 \x01(\tB\x03\xe0\x41\x03\x12T\n\x18\x63lient_connection_config\x18\x17 \x01(\x0b\x32\x32.google.cloud.aiplatform.v1.ClientConnectionConfig\x12\x1a\n\rsatisfies_pzs\x18\x1b \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzi\x18\x1c \x01(\x08\x42\x03\xe0\x41\x03\x12\x65\n\x1fgen_ai_advanced_features_config\x18\x1d \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.GenAiAdvancedFeaturesConfigB\x03\xe0\x41\x01\x1a\x33\n\x11TrafficSplitEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xb5\x01\xea\x41\xb1\x01\n\"aiplatform.googleapis.com/Endpoint\x12cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb\xaa\x02\x1aGoogle.Cloud.AIPlatform.V1\xca\x02\x1aGoogle\\Cloud\\AIPlatform\\V1\xea\x02\x1dGoogle::Cloud::AIPlatform::V1b\x06proto3" +descriptor_data = "\n)google/cloud/aiplatform/v1/endpoint.proto\x12\x1agoogle.cloud.aiplatform.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x30google/cloud/aiplatform/v1/encryption_spec.proto\x1a,google/cloud/aiplatform/v1/explanation.proto\x1a#google/cloud/aiplatform/v1/io.proto\x1a\x32google/cloud/aiplatform/v1/machine_resources.proto\x1a\x33google/cloud/aiplatform/v1/service_networking.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x8c\x0c\n\x08\x45ndpoint\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12G\n\x0f\x64\x65ployed_models\x18\x04 \x03(\x0b\x32).google.cloud.aiplatform.v1.DeployedModelB\x03\xe0\x41\x03\x12M\n\rtraffic_split\x18\x05 \x03(\x0b\x32\x36.google.cloud.aiplatform.v1.Endpoint.TrafficSplitEntry\x12\x0c\n\x04\x65tag\x18\x06 \x01(\t\x12@\n\x06labels\x18\x07 \x03(\x0b\x32\x30.google.cloud.aiplatform.v1.Endpoint.LabelsEntry\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x0f\x65ncryption_spec\x18\n \x01(\x0b\x32*.google.cloud.aiplatform.v1.EncryptionSpec\x12\x37\n\x07network\x18\r \x01(\tB&\xe0\x41\x01\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12*\n\x1e\x65nable_private_service_connect\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x64\n\x1eprivate_service_connect_config\x18\x15 \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.PrivateServiceConnectConfigB\x03\xe0\x41\x01\x12g\n\x1fmodel_deployment_monitoring_job\x18\x0e \x01(\tB>\xe0\x41\x03\xfa\x41\x38\n6aiplatform.googleapis.com/ModelDeploymentMonitoringJob\x12p\n\'predict_request_response_logging_config\x18\x12 \x01(\x0b\x32?.google.cloud.aiplatform.v1.PredictRequestResponseLoggingConfig\x12\"\n\x1a\x64\x65\x64icated_endpoint_enabled\x18\x18 \x01(\x08\x12#\n\x16\x64\x65\x64icated_endpoint_dns\x18\x19 \x01(\tB\x03\xe0\x41\x03\x12T\n\x18\x63lient_connection_config\x18\x17 \x01(\x0b\x32\x32.google.cloud.aiplatform.v1.ClientConnectionConfig\x12\x1a\n\rsatisfies_pzs\x18\x1b \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzi\x18\x1c \x01(\x08\x42\x03\xe0\x41\x03\x12\x65\n\x1fgen_ai_advanced_features_config\x18\x1d \x01(\x0b\x32\x37.google.cloud.aiplatform.v1.GenAiAdvancedFeaturesConfigB\x03\xe0\x41\x01\x12$\n\x1cprivate_model_server_enabled\x18\x1e \x01(\x08\x1a\x33\n\x11TrafficSplitEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xb5\x01\xea\x41\xb1\x01\n\"aiplatform.googleapis.com/Endpoint\x12cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb\xaa\x02\x1aGoogle.Cloud.AIPlatform.V1\xca\x02\x1aGoogle\\Cloud\\AIPlatform\\V1\xea\x02\x1dGoogle::Cloud::AIPlatform::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-ai_platform-v1/proto_docs/google/cloud/aiplatform/v1/endpoint.rb b/google-cloud-ai_platform-v1/proto_docs/google/cloud/aiplatform/v1/endpoint.rb index 2cadd61b12f9..910d6bda2ea0 100644 --- a/google-cloud-ai_platform-v1/proto_docs/google/cloud/aiplatform/v1/endpoint.rb +++ b/google-cloud-ai_platform-v1/proto_docs/google/cloud/aiplatform/v1/endpoint.rb @@ -150,6 +150,9 @@ module V1 # Optional. Configuration for GenAiAdvancedFeatures. If the endpoint is # serving GenAI models, advanced features like native RAG integration can be # configured. Currently, only Model Garden models are supported. + # @!attribute [rw] private_model_server_enabled + # @return [::Boolean] + # If true, the model server will be isolated from the external internet. class Endpoint include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-ai_platform-v1/snippets/snippet_metadata_google.cloud.aiplatform.v1.json b/google-cloud-ai_platform-v1/snippets/snippet_metadata_google.cloud.aiplatform.v1.json index 7987b7f7cff5..0b391eb7fec7 100644 --- a/google-cloud-ai_platform-v1/snippets/snippet_metadata_google.cloud.aiplatform.v1.json +++ b/google-cloud-ai_platform-v1/snippets/snippet_metadata_google.cloud.aiplatform.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-ai_platform-v1", - "version": "1.21.0", + "version": "1.23.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-ai_platform/CHANGELOG.md b/google-cloud-ai_platform/CHANGELOG.md index 70b70122a591..11a34f60b3aa 100644 --- a/google-cloud-ai_platform/CHANGELOG.md +++ b/google-cloud-ai_platform/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.0 (2025-08-26) #### Features diff --git a/google-cloud-ai_platform/README.md b/google-cloud-ai_platform/README.md index aa55abb7c270..339cdd9cf558 100644 --- a/google-cloud-ai_platform/README.md +++ b/google-cloud-ai_platform/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/aiplatform.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/ai_platform" + +client = Google::Cloud::AIPlatform.data_foundry_service +request = ::Google::Cloud::AIPlatform::V1::GenerateSyntheticDataRequest.new # (request fields as keyword arguments...) +response = client.generate_synthetic_data request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-ai_platform/lib/google/cloud/ai_platform/version.rb b/google-cloud-ai_platform/lib/google/cloud/ai_platform/version.rb index 29dce59031f8..71a5be5c52b8 100644 --- a/google-cloud-ai_platform/lib/google/cloud/ai_platform/version.rb +++ b/google-cloud-ai_platform/lib/google/cloud/ai_platform/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AIPlatform - VERSION = "2.1.0" + VERSION = "2.1.1" end end end diff --git a/google-cloud-alloy_db-v1/CHANGELOG.md b/google-cloud-alloy_db-v1/CHANGELOG.md index 110a9c965b38..efaf51cad95f 100644 --- a/google-cloud-alloy_db-v1/CHANGELOG.md +++ b/google-cloud-alloy_db-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.1 (2025-07-15) #### Documentation diff --git a/google-cloud-alloy_db-v1/google-cloud-alloy_db-v1.gemspec b/google-cloud-alloy_db-v1/google-cloud-alloy_db-v1.gemspec index 7b58dba80e98..a01bfecdf11c 100644 --- a/google-cloud-alloy_db-v1/google-cloud-alloy_db-v1.gemspec +++ b/google-cloud-alloy_db-v1/google-cloud-alloy_db-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-alloy_db-v1/lib/google/cloud/alloy_db/v1/version.rb b/google-cloud-alloy_db-v1/lib/google/cloud/alloy_db/v1/version.rb index 0c458d4b14e9..e6774e62e310 100644 --- a/google-cloud-alloy_db-v1/lib/google/cloud/alloy_db/v1/version.rb +++ b/google-cloud-alloy_db-v1/lib/google/cloud/alloy_db/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AlloyDB module V1 - VERSION = "1.3.1" + VERSION = "1.4.0" end end end diff --git a/google-cloud-alloy_db-v1/snippets/snippet_metadata_google.cloud.alloydb.v1.json b/google-cloud-alloy_db-v1/snippets/snippet_metadata_google.cloud.alloydb.v1.json index 5f9324266f0f..304c9b38492f 100644 --- a/google-cloud-alloy_db-v1/snippets/snippet_metadata_google.cloud.alloydb.v1.json +++ b/google-cloud-alloy_db-v1/snippets/snippet_metadata_google.cloud.alloydb.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-alloy_db-v1", - "version": "1.3.1", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-alloy_db-v1alpha/CHANGELOG.md b/google-cloud-alloy_db-v1alpha/CHANGELOG.md index ef9fc60620f7..7e7227fbf3a9 100644 --- a/google-cloud-alloy_db-v1alpha/CHANGELOG.md +++ b/google-cloud-alloy_db-v1alpha/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.14.1 (2025-07-15) #### Documentation diff --git a/google-cloud-alloy_db-v1alpha/google-cloud-alloy_db-v1alpha.gemspec b/google-cloud-alloy_db-v1alpha/google-cloud-alloy_db-v1alpha.gemspec index 910b2a03bb47..eef80c6eca56 100644 --- a/google-cloud-alloy_db-v1alpha/google-cloud-alloy_db-v1alpha.gemspec +++ b/google-cloud-alloy_db-v1alpha/google-cloud-alloy_db-v1alpha.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-alloy_db-v1alpha/lib/google/cloud/alloy_db/v1alpha/version.rb b/google-cloud-alloy_db-v1alpha/lib/google/cloud/alloy_db/v1alpha/version.rb index c9d3a9b7fda5..3e0609b0a5ac 100644 --- a/google-cloud-alloy_db-v1alpha/lib/google/cloud/alloy_db/v1alpha/version.rb +++ b/google-cloud-alloy_db-v1alpha/lib/google/cloud/alloy_db/v1alpha/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AlloyDB module V1alpha - VERSION = "0.14.1" + VERSION = "0.15.0" end end end diff --git a/google-cloud-alloy_db-v1alpha/snippets/snippet_metadata_google.cloud.alloydb.v1alpha.json b/google-cloud-alloy_db-v1alpha/snippets/snippet_metadata_google.cloud.alloydb.v1alpha.json index 4bc2e8e4cb3b..aa96d41a3fd5 100644 --- a/google-cloud-alloy_db-v1alpha/snippets/snippet_metadata_google.cloud.alloydb.v1alpha.json +++ b/google-cloud-alloy_db-v1alpha/snippets/snippet_metadata_google.cloud.alloydb.v1alpha.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-alloy_db-v1alpha", - "version": "0.14.1", + "version": "0.15.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-alloy_db-v1beta/CHANGELOG.md b/google-cloud-alloy_db-v1beta/CHANGELOG.md index d9e653ae15cc..5530392ab28e 100644 --- a/google-cloud-alloy_db-v1beta/CHANGELOG.md +++ b/google-cloud-alloy_db-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.18.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.17.1 (2025-07-15) #### Documentation diff --git a/google-cloud-alloy_db-v1beta/google-cloud-alloy_db-v1beta.gemspec b/google-cloud-alloy_db-v1beta/google-cloud-alloy_db-v1beta.gemspec index cfbe06cfe740..a9baf96ac0c9 100644 --- a/google-cloud-alloy_db-v1beta/google-cloud-alloy_db-v1beta.gemspec +++ b/google-cloud-alloy_db-v1beta/google-cloud-alloy_db-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-alloy_db-v1beta/lib/google/cloud/alloy_db/v1beta/version.rb b/google-cloud-alloy_db-v1beta/lib/google/cloud/alloy_db/v1beta/version.rb index 64d0422539c4..a3b3294bcdcf 100644 --- a/google-cloud-alloy_db-v1beta/lib/google/cloud/alloy_db/v1beta/version.rb +++ b/google-cloud-alloy_db-v1beta/lib/google/cloud/alloy_db/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AlloyDB module V1beta - VERSION = "0.17.1" + VERSION = "0.18.0" end end end diff --git a/google-cloud-alloy_db-v1beta/snippets/snippet_metadata_google.cloud.alloydb.v1beta.json b/google-cloud-alloy_db-v1beta/snippets/snippet_metadata_google.cloud.alloydb.v1beta.json index 0b188aabd616..5a5dd7c7b3cc 100644 --- a/google-cloud-alloy_db-v1beta/snippets/snippet_metadata_google.cloud.alloydb.v1beta.json +++ b/google-cloud-alloy_db-v1beta/snippets/snippet_metadata_google.cloud.alloydb.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-alloy_db-v1beta", - "version": "0.17.1", + "version": "0.18.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-alloy_db/CHANGELOG.md b/google-cloud-alloy_db/CHANGELOG.md index ec5316447a01..46e16803d1bf 100644 --- a/google-cloud-alloy_db/CHANGELOG.md +++ b/google-cloud-alloy_db/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.0 (2025-05-16) #### Features diff --git a/google-cloud-alloy_db/README.md b/google-cloud-alloy_db/README.md index d3016afbe5f0..f8de9d7c27e2 100644 --- a/google-cloud-alloy_db/README.md +++ b/google-cloud-alloy_db/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/alloydb.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/alloy_db" + +client = Google::Cloud::AlloyDB.alloy_db_admin +request = ::Google::Cloud::AlloyDB::V1::ListClustersRequest.new # (request fields as keyword arguments...) +response = client.list_clusters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-alloy_db/lib/google/cloud/alloy_db/version.rb b/google-cloud-alloy_db/lib/google/cloud/alloy_db/version.rb index 66ffe3cfa015..19b8b4281b42 100644 --- a/google-cloud-alloy_db/lib/google/cloud/alloy_db/version.rb +++ b/google-cloud-alloy_db/lib/google/cloud/alloy_db/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AlloyDB - VERSION = "2.1.0" + VERSION = "2.1.1" end end end diff --git a/google-cloud-api_gateway-v1/CHANGELOG.md b/google-cloud-api_gateway-v1/CHANGELOG.md index 3eb6d1e5bd8a..b57d16bd190f 100644 --- a/google-cloud-api_gateway-v1/CHANGELOG.md +++ b/google-cloud-api_gateway-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-api_gateway-v1/google-cloud-api_gateway-v1.gemspec b/google-cloud-api_gateway-v1/google-cloud-api_gateway-v1.gemspec index 26e96c95668b..bbba2e20d446 100644 --- a/google-cloud-api_gateway-v1/google-cloud-api_gateway-v1.gemspec +++ b/google-cloud-api_gateway-v1/google-cloud-api_gateway-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-api_gateway-v1/lib/google/cloud/api_gateway/v1/version.rb b/google-cloud-api_gateway-v1/lib/google/cloud/api_gateway/v1/version.rb index f38622a4ba4c..4093fe9d643b 100644 --- a/google-cloud-api_gateway-v1/lib/google/cloud/api_gateway/v1/version.rb +++ b/google-cloud-api_gateway-v1/lib/google/cloud/api_gateway/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ApiGateway module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-api_gateway-v1/snippets/snippet_metadata_google.cloud.apigateway.v1.json b/google-cloud-api_gateway-v1/snippets/snippet_metadata_google.cloud.apigateway.v1.json index 3502b5a87a1e..011bb689aada 100644 --- a/google-cloud-api_gateway-v1/snippets/snippet_metadata_google.cloud.apigateway.v1.json +++ b/google-cloud-api_gateway-v1/snippets/snippet_metadata_google.cloud.apigateway.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-api_gateway-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-api_gateway/CHANGELOG.md b/google-cloud-api_gateway/CHANGELOG.md index 884d8a926da9..3b359d54ea8d 100644 --- a/google-cloud-api_gateway/CHANGELOG.md +++ b/google-cloud-api_gateway/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-api_gateway/README.md b/google-cloud-api_gateway/README.md index de621b637ca4..eed0c255080d 100644 --- a/google-cloud-api_gateway/README.md +++ b/google-cloud-api_gateway/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/apigateway.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/api_gateway" + +client = Google::Cloud::ApiGateway.api_gateway_service +request = ::Google::Cloud::ApiGateway::V1::ListGatewaysRequest.new # (request fields as keyword arguments...) +response = client.list_gateways request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-api_gateway/lib/google/cloud/api_gateway/version.rb b/google-cloud-api_gateway/lib/google/cloud/api_gateway/version.rb index 4667b9a69e47..57a919954d62 100644 --- a/google-cloud-api_gateway/lib/google/cloud/api_gateway/version.rb +++ b/google-cloud-api_gateway/lib/google/cloud/api_gateway/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ApiGateway - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-api_hub-v1/.owlbot-manifest.json b/google-cloud-api_hub-v1/.owlbot-manifest.json index 00505c7b8260..37ae526383e6 100644 --- a/google-cloud-api_hub-v1/.owlbot-manifest.json +++ b/google-cloud-api_hub-v1/.owlbot-manifest.json @@ -21,17 +21,37 @@ "lib/google/cloud/api_hub/v1/api_hub/rest.rb", "lib/google/cloud/api_hub/v1/api_hub/rest/client.rb", "lib/google/cloud/api_hub/v1/api_hub/rest/service_stub.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect/credentials.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect/paths.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect/rest.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect/rest/client.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect/rest/operations.rb", + "lib/google/cloud/api_hub/v1/api_hub_collect/rest/service_stub.rb", + "lib/google/cloud/api_hub/v1/api_hub_curate.rb", + "lib/google/cloud/api_hub/v1/api_hub_curate/credentials.rb", + "lib/google/cloud/api_hub/v1/api_hub_curate/paths.rb", + "lib/google/cloud/api_hub/v1/api_hub_curate/rest.rb", + "lib/google/cloud/api_hub/v1/api_hub_curate/rest/client.rb", + "lib/google/cloud/api_hub/v1/api_hub_curate/rest/service_stub.rb", "lib/google/cloud/api_hub/v1/api_hub_dependencies.rb", "lib/google/cloud/api_hub/v1/api_hub_dependencies/credentials.rb", "lib/google/cloud/api_hub/v1/api_hub_dependencies/paths.rb", "lib/google/cloud/api_hub/v1/api_hub_dependencies/rest.rb", "lib/google/cloud/api_hub/v1/api_hub_dependencies/rest/client.rb", "lib/google/cloud/api_hub/v1/api_hub_dependencies/rest/service_stub.rb", + "lib/google/cloud/api_hub/v1/api_hub_discovery.rb", + "lib/google/cloud/api_hub/v1/api_hub_discovery/credentials.rb", + "lib/google/cloud/api_hub/v1/api_hub_discovery/paths.rb", + "lib/google/cloud/api_hub/v1/api_hub_discovery/rest.rb", + "lib/google/cloud/api_hub/v1/api_hub_discovery/rest/client.rb", + "lib/google/cloud/api_hub/v1/api_hub_discovery/rest/service_stub.rb", "lib/google/cloud/api_hub/v1/api_hub_plugin.rb", "lib/google/cloud/api_hub/v1/api_hub_plugin/credentials.rb", "lib/google/cloud/api_hub/v1/api_hub_plugin/paths.rb", "lib/google/cloud/api_hub/v1/api_hub_plugin/rest.rb", "lib/google/cloud/api_hub/v1/api_hub_plugin/rest/client.rb", + "lib/google/cloud/api_hub/v1/api_hub_plugin/rest/operations.rb", "lib/google/cloud/api_hub/v1/api_hub_plugin/rest/service_stub.rb", "lib/google/cloud/api_hub/v1/bindings_override.rb", "lib/google/cloud/api_hub/v1/host_project_registration_service.rb", @@ -63,7 +83,13 @@ "lib/google/cloud/api_hub/v1/version.rb", "lib/google/cloud/apihub/v1/apihub_service_pb.rb", "lib/google/cloud/apihub/v1/apihub_service_services_pb.rb", + "lib/google/cloud/apihub/v1/collect_service_pb.rb", + "lib/google/cloud/apihub/v1/collect_service_services_pb.rb", "lib/google/cloud/apihub/v1/common_fields_pb.rb", + "lib/google/cloud/apihub/v1/curate_service_pb.rb", + "lib/google/cloud/apihub/v1/curate_service_services_pb.rb", + "lib/google/cloud/apihub/v1/discovery_service_pb.rb", + "lib/google/cloud/apihub/v1/discovery_service_services_pb.rb", "lib/google/cloud/apihub/v1/host_project_registration_service_pb.rb", "lib/google/cloud/apihub/v1/host_project_registration_service_services_pb.rb", "lib/google/cloud/apihub/v1/linting_service_pb.rb", @@ -80,7 +106,10 @@ "proto_docs/google/api/launch_stage.rb", "proto_docs/google/api/resource.rb", "proto_docs/google/cloud/apihub/v1/apihub_service.rb", + "proto_docs/google/cloud/apihub/v1/collect_service.rb", "proto_docs/google/cloud/apihub/v1/common_fields.rb", + "proto_docs/google/cloud/apihub/v1/curate_service.rb", + "proto_docs/google/cloud/apihub/v1/discovery_service.rb", "proto_docs/google/cloud/apihub/v1/host_project_registration_service.rb", "proto_docs/google/cloud/apihub/v1/linting_service.rb", "proto_docs/google/cloud/apihub/v1/plugin_service.rb", @@ -95,12 +124,14 @@ "proto_docs/google/rpc/status.rb", "snippets/Gemfile", "snippets/api_hub/create_api.rb", + "snippets/api_hub/create_api_operation.rb", "snippets/api_hub/create_attribute.rb", "snippets/api_hub/create_deployment.rb", "snippets/api_hub/create_external_api.rb", "snippets/api_hub/create_spec.rb", "snippets/api_hub/create_version.rb", "snippets/api_hub/delete_api.rb", + "snippets/api_hub/delete_api_operation.rb", "snippets/api_hub/delete_attribute.rb", "snippets/api_hub/delete_deployment.rb", "snippets/api_hub/delete_external_api.rb", @@ -124,19 +155,41 @@ "snippets/api_hub/list_versions.rb", "snippets/api_hub/search_resources.rb", "snippets/api_hub/update_api.rb", + "snippets/api_hub/update_api_operation.rb", "snippets/api_hub/update_attribute.rb", "snippets/api_hub/update_deployment.rb", "snippets/api_hub/update_external_api.rb", "snippets/api_hub/update_spec.rb", "snippets/api_hub/update_version.rb", + "snippets/api_hub_collect/collect_api_data.rb", + "snippets/api_hub_curate/create_curation.rb", + "snippets/api_hub_curate/delete_curation.rb", + "snippets/api_hub_curate/get_curation.rb", + "snippets/api_hub_curate/list_curations.rb", + "snippets/api_hub_curate/update_curation.rb", "snippets/api_hub_dependencies/create_dependency.rb", "snippets/api_hub_dependencies/delete_dependency.rb", "snippets/api_hub_dependencies/get_dependency.rb", "snippets/api_hub_dependencies/list_dependencies.rb", "snippets/api_hub_dependencies/update_dependency.rb", + "snippets/api_hub_discovery/get_discovered_api_observation.rb", + "snippets/api_hub_discovery/get_discovered_api_operation.rb", + "snippets/api_hub_discovery/list_discovered_api_observations.rb", + "snippets/api_hub_discovery/list_discovered_api_operations.rb", + "snippets/api_hub_plugin/create_plugin.rb", + "snippets/api_hub_plugin/create_plugin_instance.rb", + "snippets/api_hub_plugin/delete_plugin.rb", + "snippets/api_hub_plugin/delete_plugin_instance.rb", "snippets/api_hub_plugin/disable_plugin.rb", + "snippets/api_hub_plugin/disable_plugin_instance_action.rb", "snippets/api_hub_plugin/enable_plugin.rb", + "snippets/api_hub_plugin/enable_plugin_instance_action.rb", + "snippets/api_hub_plugin/execute_plugin_instance_action.rb", "snippets/api_hub_plugin/get_plugin.rb", + "snippets/api_hub_plugin/get_plugin_instance.rb", + "snippets/api_hub_plugin/list_plugin_instances.rb", + "snippets/api_hub_plugin/list_plugins.rb", + "snippets/api_hub_plugin/update_plugin_instance.rb", "snippets/host_project_registration_service/create_host_project_registration.rb", "snippets/host_project_registration_service/get_host_project_registration.rb", "snippets/host_project_registration_service/list_host_project_registrations.rb", @@ -145,6 +198,7 @@ "snippets/linting_service/lint_spec.rb", "snippets/linting_service/update_style_guide.rb", "snippets/provisioning/create_api_hub_instance.rb", + "snippets/provisioning/delete_api_hub_instance.rb", "snippets/provisioning/get_api_hub_instance.rb", "snippets/provisioning/lookup_api_hub_instance.rb", "snippets/runtime_project_attachment_service/create_runtime_project_attachment.rb", @@ -153,7 +207,10 @@ "snippets/runtime_project_attachment_service/list_runtime_project_attachments.rb", "snippets/runtime_project_attachment_service/lookup_runtime_project_attachment.rb", "snippets/snippet_metadata_google.cloud.apihub.v1.json", + "test/google/cloud/api_hub/v1/api_hub_collect_rest_test.rb", + "test/google/cloud/api_hub/v1/api_hub_curate_rest_test.rb", "test/google/cloud/api_hub/v1/api_hub_dependencies_rest_test.rb", + "test/google/cloud/api_hub/v1/api_hub_discovery_rest_test.rb", "test/google/cloud/api_hub/v1/api_hub_plugin_rest_test.rb", "test/google/cloud/api_hub/v1/api_hub_rest_test.rb", "test/google/cloud/api_hub/v1/host_project_registration_service_rest_test.rb", diff --git a/google-cloud-api_hub-v1/CHANGELOG.md b/google-cloud-api_hub-v1/CHANGELOG.md index 2e7e6d2378cb..b22e001240ff 100644 --- a/google-cloud-api_hub-v1/CHANGELOG.md +++ b/google-cloud-api_hub-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.5.0 (2025-05-12) #### Features diff --git a/google-cloud-api_hub-v1/gapic_metadata.json b/google-cloud-api_hub-v1/gapic_metadata.json index 1c63a3eb2e67..c4dc3a8012ed 100644 --- a/google-cloud-api_hub-v1/gapic_metadata.json +++ b/google-cloud-api_hub-v1/gapic_metadata.json @@ -90,6 +90,11 @@ "delete_spec" ] }, + "CreateApiOperation": { + "methods": [ + "create_api_operation" + ] + }, "GetApiOperation": { "methods": [ "get_api_operation" @@ -100,6 +105,16 @@ "list_api_operations" ] }, + "UpdateApiOperation": { + "methods": [ + "update_api_operation" + ] + }, + "DeleteApiOperation": { + "methods": [ + "delete_api_operation" + ] + }, "GetDefinition": { "methods": [ "get_definition" @@ -223,6 +238,83 @@ } } }, + "ApiHubCollect": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::ApiHub::V1::ApiHubCollect::Client", + "rpcs": { + "CollectApiData": { + "methods": [ + "collect_api_data" + ] + } + } + } + } + }, + "ApiHubCurate": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Client", + "rpcs": { + "CreateCuration": { + "methods": [ + "create_curation" + ] + }, + "GetCuration": { + "methods": [ + "get_curation" + ] + }, + "ListCurations": { + "methods": [ + "list_curations" + ] + }, + "UpdateCuration": { + "methods": [ + "update_curation" + ] + }, + "DeleteCuration": { + "methods": [ + "delete_curation" + ] + } + } + } + } + }, + "ApiHubDiscovery": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Client", + "rpcs": { + "ListDiscoveredApiObservations": { + "methods": [ + "list_discovered_api_observations" + ] + }, + "GetDiscoveredApiObservation": { + "methods": [ + "get_discovered_api_observation" + ] + }, + "ListDiscoveredApiOperations": { + "methods": [ + "list_discovered_api_operations" + ] + }, + "GetDiscoveredApiOperation": { + "methods": [ + "get_discovered_api_operation" + ] + } + } + } + } + }, "HostProjectRegistrationService": { "clients": { "grpc": { @@ -295,6 +387,61 @@ "methods": [ "disable_plugin" ] + }, + "CreatePlugin": { + "methods": [ + "create_plugin" + ] + }, + "ListPlugins": { + "methods": [ + "list_plugins" + ] + }, + "DeletePlugin": { + "methods": [ + "delete_plugin" + ] + }, + "CreatePluginInstance": { + "methods": [ + "create_plugin_instance" + ] + }, + "ExecutePluginInstanceAction": { + "methods": [ + "execute_plugin_instance_action" + ] + }, + "GetPluginInstance": { + "methods": [ + "get_plugin_instance" + ] + }, + "ListPluginInstances": { + "methods": [ + "list_plugin_instances" + ] + }, + "EnablePluginInstanceAction": { + "methods": [ + "enable_plugin_instance_action" + ] + }, + "DisablePluginInstanceAction": { + "methods": [ + "disable_plugin_instance_action" + ] + }, + "UpdatePluginInstance": { + "methods": [ + "update_plugin_instance" + ] + }, + "DeletePluginInstance": { + "methods": [ + "delete_plugin_instance" + ] } } } @@ -310,6 +457,11 @@ "create_api_hub_instance" ] }, + "DeleteApiHubInstance": { + "methods": [ + "delete_api_hub_instance" + ] + }, "GetApiHubInstance": { "methods": [ "get_api_hub_instance" diff --git a/google-cloud-api_hub-v1/google-cloud-api_hub-v1.gemspec b/google-cloud-api_hub-v1/google-cloud-api_hub-v1.gemspec index 83d58e39457b..3bec56696fd8 100644 --- a/google-cloud-api_hub-v1/google-cloud-api_hub-v1.gemspec +++ b/google-cloud-api_hub-v1/google-cloud-api_hub-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1.rb index ea39f5dd3b2c..acdb24df41ea 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1.rb @@ -18,6 +18,9 @@ require "google/cloud/api_hub/v1/api_hub" require "google/cloud/api_hub/v1/api_hub_dependencies" +require "google/cloud/api_hub/v1/api_hub_collect" +require "google/cloud/api_hub/v1/api_hub_curate" +require "google/cloud/api_hub/v1/api_hub_discovery" require "google/cloud/api_hub/v1/host_project_registration_service" require "google/cloud/api_hub/v1/linting_service" require "google/cloud/api_hub/v1/api_hub_plugin" diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/paths.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/paths.rb index ac0ee7c46c6f..a406cfc081d5 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/paths.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/paths.rb @@ -163,6 +163,27 @@ def location_path project:, location: "projects/#{project}/locations/#{location}" end + ## + # Create a fully-qualified PluginInstance resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # + # @param project [String] + # @param location [String] + # @param plugin [String] + # @param instance [String] + # + # @return [::String] + def plugin_instance_path project:, location:, plugin:, instance: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "plugin cannot contain /" if plugin.to_s.include? "/" + + "projects/#{project}/locations/#{location}/plugins/#{plugin}/instances/#{instance}" + end + ## # Create a fully-qualified Spec resource string. # diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/client.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/client.rb index 59bc4a1794d7..2d51cb89bc25 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/client.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/client.rb @@ -87,7 +87,7 @@ def self.configure default_config.rpcs.update_api.timeout = 60.0 - default_config.rpcs.delete_api.timeout = 60.0 + default_config.rpcs.delete_api.timeout = 300.0 default_config.rpcs.create_version.timeout = 60.0 @@ -103,7 +103,7 @@ def self.configure default_config.rpcs.update_version.timeout = 60.0 - default_config.rpcs.delete_version.timeout = 60.0 + default_config.rpcs.delete_version.timeout = 300.0 default_config.rpcs.create_spec.timeout = 60.0 @@ -124,7 +124,7 @@ def self.configure default_config.rpcs.update_spec.timeout = 60.0 - default_config.rpcs.delete_spec.timeout = 60.0 + default_config.rpcs.delete_spec.timeout = 300.0 default_config.rpcs.get_api_operation.timeout = 60.0 default_config.rpcs.get_api_operation.retry_policy = { @@ -553,6 +553,37 @@ def get_api request, options = nil # * `api_style.enum_values.values.display_name` - The allowed value display # name of the api style attribute associated with the ApiResource. Allowed # comparison operator is `:`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. + # + # A filter function is also supported in the filter string. The filter + # function is `id(name)`. The `id(name)` function returns the id of the + # resource name. For example, `id(name) = \"api-1\"` is equivalent to + # `name = \"projects/test-project-id/locations/test-location-id/apis/api-1\"` + # provided the parent is + # `projects/test-project-id/locations/test-location-id`. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -578,6 +609,16 @@ def get_api request, options = nil # specifies the APIs where the owner team email is _apihub@google.com_ or # the display name of the allowed value associated with the team attribute # is `ApiHub Team`. + # * `owner.email = \"apihub@google.com\" AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.enum_values.values.id: + # test_enum_id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/1765\0f90-4a29-5431-b3d0-d5532da3764c.string_values.values: + # test_string_value` - The filter string specifies the APIs where the + # owner team email is _apihub@google.com_ and the id of the allowed value + # associated with the user defined attribute of type enum is _test_enum_id_ + # and the value of the user defined attribute of type string is _test_.. # @param page_size [::Integer] # Optional. The maximum number of API resources to return. The service may # return fewer than this value. If unspecified, at most 50 Apis will be @@ -655,7 +696,7 @@ def list_apis request, options = nil ## # Update an API resource in the API hub. The following fields in the - # [API][] can be updated: + # {::Google::Cloud::ApiHub::V1::Api API} can be updated: # # * {::Google::Cloud::ApiHub::V1::Api#display_name display_name} # * {::Google::Cloud::ApiHub::V1::Api#description description} @@ -665,6 +706,7 @@ def list_apis request, options = nil # * {::Google::Cloud::ApiHub::V1::Api#team team} # * {::Google::Cloud::ApiHub::V1::Api#business_unit business_unit} # * {::Google::Cloud::ApiHub::V1::Api#maturity_level maturity_level} + # * {::Google::Cloud::ApiHub::V1::Api#api_style api_style} # * {::Google::Cloud::ApiHub::V1::Api#attributes attributes} # # The @@ -867,8 +909,11 @@ def delete_api request, options = nil # the specified id is already used by another version in the API resource. # * If not provided, a system generated id will be used. # - # This value should be 4-500 characters, and valid characters - # are /[a-z][A-Z][0-9]-_/. + # This value should be 4-500 characters, overall resource name which will be + # of format + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}`, + # its length is limited to 700 characters and valid characters are + # /[a-z][A-Z][0-9]-_/. # @param version [::Google::Cloud::ApiHub::V1::Version, ::Hash] # Required. The version to create. # @yield [result, operation] Access the result along with the TransportOperation object @@ -1065,6 +1110,30 @@ def get_version request, options = nil # * `accreditation.enum_values.values.display_name` - The allowed value # display name of the accreditations attribute associated with the Version. # Allowed comparison operators: `:`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -1092,6 +1161,12 @@ def get_version request, options = nil # compliance.enum_values.values.id: pci-dss-id` # - The id of the allowed value associated with the compliance attribute is # _gdpr-id_ or _pci-dss-id_. + # * `lifecycle.enum_values.values.id: preview-id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: + # test` - The filter string specifies that the id of the allowed value + # associated with the lifecycle attribute of the Version is _preview-id_ + # and the value of the user defined attribute of type string is _test_. # @param page_size [::Integer] # Optional. The maximum number of versions to return. The service may return # fewer than this value. If unspecified, at most 50 versions will be @@ -1400,8 +1475,11 @@ def delete_version request, options = nil # resource. # * If not provided, a system generated id will be used. # - # This value should be 4-500 characters, and valid characters - # are /[a-z][A-Z][0-9]-_/. + # This value should be 4-500 characters, overall resource name which will be + # of format + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}`, + # its length is limited to 1000 characters and valid characters are + # /[a-z][A-Z][0-9]-_/. # @param spec [::Google::Cloud::ApiHub::V1::Spec, ::Hash] # Required. The spec to create. # @yield [result, operation] Access the result along with the TransportOperation object @@ -1673,6 +1751,30 @@ def get_spec_contents request, options = nil # operators: `:`. # * `mime_type` - The MIME type of the Spec. Allowed comparison # operators: `=`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -1699,6 +1801,13 @@ def get_spec_contents request, options = nil # spec_type.enum_values.values.id: grpc-id` # - The id of the allowed value associated with the spec_type attribute is # _rest-id_ or _grpc-id_. + # * `spec_type.enum_values.values.id: rest-id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.enum_values.values.id: + # test` - The filter string specifies that the id of the allowed value + # associated with the spec_type attribute is _rest-id_ and the id of the + # allowed value associated with the user defined attribute of type enum is + # _test_. # @param page_size [::Integer] # Optional. The maximum number of specs to return. The service may return # fewer than this value. If unspecified, at most 50 specs will be @@ -1961,6 +2070,104 @@ def delete_spec request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Create an apiOperation in an API version. + # An apiOperation can be created only if the version has no apiOperations + # which were created by parsing a spec. + # + # @overload create_api_operation(request, options = nil) + # Pass arguments to `create_api_operation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::CreateApiOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::CreateApiOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_api_operation(parent: nil, api_operation_id: nil, api_operation: nil) + # Pass arguments to `create_api_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource for the operation resource. + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + # @param api_operation_id [::String] + # Optional. The ID to use for the operation resource, which will become the + # final component of the operation's resource name. This field is optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified id is already used by another operation resource in the API + # hub. + # * If not provided, a system generated id will be used. + # + # This value should be 4-500 characters, overall resource name which + # will be of format + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}`, + # its length is limited to 700 characters, and valid characters are + # /[a-z][A-Z][0-9]-_/. + # @param api_operation [::Google::Cloud::ApiHub::V1::ApiOperation, ::Hash] + # Required. The operation resource to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ApiOperation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ApiOperation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::CreateApiOperationRequest.new + # + # # Call the create_api_operation method. + # result = client.create_api_operation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::ApiOperation. + # p result + # + def create_api_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::CreateApiOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_api_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_api_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_api_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_stub.create_api_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Get details about a particular operation in API version. # @@ -2085,6 +2292,30 @@ def get_api_operation request, options = nil # * `create_time` - The time at which the ApiOperation was created. The # value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] # format. Allowed comparison operators: `>` and `<`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -2104,6 +2335,11 @@ def get_api_operation request, options = nil # * `details.http_operation.method = GET OR details.http_operation.method = # POST`. - The http operation of the method of ApiOperation is _GET_ or # _POST_. + # * `details.deprecated = True AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: + # test` - The filter string specifies that the ApiOperation is deprecated + # and the value of the user defined attribute of type string is _test_. # @param page_size [::Integer] # Optional. The maximum number of operations to return. The service may # return fewer than this value. If unspecified, at most 50 operations will be @@ -2179,6 +2415,191 @@ def list_api_operations request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Update an operation in an API version. The following fields in the + # {::Google::Cloud::ApiHub::V1::ApiOperation ApiOperation resource} can be + # updated: + # + # * [details.description][ApiOperation.details.description] + # * [details.documentation][ApiOperation.details.documentation] + # * [details.http_operation.path][ApiOperation.details.http_operation.path.path] + # * [details.http_operation.method][ApiOperation.details.http_operation.method] + # * [details.deprecated][ApiOperation.details.deprecated] + # * {::Google::Cloud::ApiHub::V1::ApiOperation#attributes attributes} + # + # The + # {::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest#update_mask update_mask} + # should be used to specify the fields being updated. + # + # An operation can be updated only if the operation was created via + # {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} API. + # If the operation was created by parsing the spec, then it can be edited by + # updating the spec. + # + # @overload update_api_operation(request, options = nil) + # Pass arguments to `update_api_operation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_api_operation(api_operation: nil, update_mask: nil) + # Pass arguments to `update_api_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param api_operation [::Google::Cloud::ApiHub::V1::ApiOperation, ::Hash] + # Required. The apiOperation resource to update. + # + # The operation resource's `name` field is used to identify the operation + # resource to update. + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ApiOperation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ApiOperation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::UpdateApiOperationRequest.new + # + # # Call the update_api_operation method. + # result = client.update_api_operation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::ApiOperation. + # p result + # + def update_api_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_api_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_api_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_api_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_stub.update_api_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Delete an operation in an API version and we can delete only the + # operations created via create API. If the operation was created by parsing + # the spec, then it can be deleted by editing or deleting the spec. + # + # @overload delete_api_operation(request, options = nil) + # Pass arguments to `delete_api_operation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_api_operation(name: nil) + # Pass arguments to `delete_api_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the operation resource to delete. + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::DeleteApiOperationRequest.new + # + # # Call the delete_api_operation method. + # result = client.delete_api_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_api_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_api_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_api_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_api_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_stub.delete_api_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Get details about a definition in an API version. # @@ -2472,6 +2893,10 @@ def get_deployment request, options = nil # comparison operators: `=`. # * `api_versions` - The API versions linked to this deployment. Allowed # comparison operators: `:`. + # * `source_project` - The project/organization at source for the + # deployment. Allowed comparison operators: `=`. + # * `source_environment` - The environment at source for the + # deployment. Allowed comparison operators: `=`. # * `deployment_type.enum_values.values.id` - The allowed value id of the # deployment_type attribute associated with the Deployment. Allowed # comparison operators: `:`. @@ -2487,6 +2912,38 @@ def get_deployment request, options = nil # * `environment.enum_values.values.display_name` - The allowed value # display name of the environment attribute associated with the deployment. # Allowed comparison operators: `:`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. + # + # A filter function is also supported in the filter string. The filter + # function is `id(name)`. The `id(name)` function returns the id of the + # resource name. For example, `id(name) = \"deployment-1\"` is equivalent to + # `name = + # \"projects/test-project-id/locations/test-location-id/deployments/deployment-1\"` + # provided the parent is + # `projects/test-project-id/locations/test-location-id`. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -2512,6 +2969,12 @@ def get_deployment request, options = nil # slo.string_values.values: \"99.99%\"` # - The allowed value id of the environment attribute Deployment is # _production-id_ or string value of the slo attribute is _99.99%_. + # * `environment.enum_values.values.id: staging-id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: + # test` - The filter string specifies that the allowed value id of the + # environment attribute associated with the Deployment is _staging-id_ and + # the value of the user defined attribute of type string is _test_. # @param page_size [::Integer] # Optional. The maximum number of deployment resources to return. The service # may return fewer than this value. If unspecified, at most 50 deployments @@ -2601,7 +3064,11 @@ def list_deployments request, options = nil # * {::Google::Cloud::ApiHub::V1::Deployment#slo slo} # * {::Google::Cloud::ApiHub::V1::Deployment#environment environment} # * {::Google::Cloud::ApiHub::V1::Deployment#attributes attributes} - # + # * [source_project] [google.cloud.apihub.v1.Deployment.source_project] + # * [source_environment] + # [google.cloud.apihub.v1.Deployment.source_environment] + # * {::Google::Cloud::ApiHub::V1::Deployment#management_url management_url} + # * {::Google::Cloud::ApiHub::V1::Deployment#source_uri source_uri} # The # {::Google::Cloud::ApiHub::V1::UpdateDeploymentRequest#update_mask update_mask} # should be used to specify the fields being updated. @@ -4077,6 +4544,11 @@ class Rpcs # attr_reader :delete_spec ## + # RPC-specific configuration for `create_api_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :create_api_operation + ## # RPC-specific configuration for `get_api_operation` # @return [::Gapic::Config::Method] # @@ -4087,6 +4559,16 @@ class Rpcs # attr_reader :list_api_operations ## + # RPC-specific configuration for `update_api_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :update_api_operation + ## + # RPC-specific configuration for `delete_api_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_api_operation + ## # RPC-specific configuration for `get_definition` # @return [::Gapic::Config::Method] # @@ -4206,10 +4688,16 @@ def initialize parent_rpcs = nil @update_spec = ::Gapic::Config::Method.new update_spec_config delete_spec_config = parent_rpcs.delete_spec if parent_rpcs.respond_to? :delete_spec @delete_spec = ::Gapic::Config::Method.new delete_spec_config + create_api_operation_config = parent_rpcs.create_api_operation if parent_rpcs.respond_to? :create_api_operation + @create_api_operation = ::Gapic::Config::Method.new create_api_operation_config get_api_operation_config = parent_rpcs.get_api_operation if parent_rpcs.respond_to? :get_api_operation @get_api_operation = ::Gapic::Config::Method.new get_api_operation_config list_api_operations_config = parent_rpcs.list_api_operations if parent_rpcs.respond_to? :list_api_operations @list_api_operations = ::Gapic::Config::Method.new list_api_operations_config + update_api_operation_config = parent_rpcs.update_api_operation if parent_rpcs.respond_to? :update_api_operation + @update_api_operation = ::Gapic::Config::Method.new update_api_operation_config + delete_api_operation_config = parent_rpcs.delete_api_operation if parent_rpcs.respond_to? :delete_api_operation + @delete_api_operation = ::Gapic::Config::Method.new delete_api_operation_config get_definition_config = parent_rpcs.get_definition if parent_rpcs.respond_to? :get_definition @get_definition = ::Gapic::Config::Method.new get_definition_config create_deployment_config = parent_rpcs.create_deployment if parent_rpcs.respond_to? :create_deployment diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/service_stub.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/service_stub.rb index 40a62d009528..ac4da5db990d 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/service_stub.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub/rest/service_stub.rb @@ -713,6 +713,46 @@ def delete_spec request_pb, options = nil end end + ## + # Baseline implementation for the create_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreateApiOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ApiOperation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ApiOperation] + # A result object deserialized from the server's reply + def create_api_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_api_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_api_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ApiOperation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the get_api_operation REST call # @@ -793,6 +833,86 @@ def list_api_operations request_pb, options = nil end end + ## + # Baseline implementation for the update_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ApiOperation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ApiOperation] + # A result object deserialized from the server's reply + def update_api_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_api_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_api_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ApiOperation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_api_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_api_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_api_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the get_definition REST call # @@ -1815,6 +1935,28 @@ def self.transcode_delete_spec_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the create_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreateApiOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_api_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/operations", + body: "api_operation", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/apis/[^/]+/versions/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # @@ -1857,6 +1999,49 @@ def self.transcode_list_api_operations_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the update_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_api_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{api_operation.name}", + body: "api_operation", + matches: [ + ["api_operation.name", %r{^projects/[^/]+/locations/[^/]+/apis/[^/]+/versions/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_api_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/apis/[^/]+/versions/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect.rb new file mode 100644 index 000000000000..15d732490205 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/api_hub/v1/version" + +require "google/cloud/api_hub/v1/api_hub_collect/credentials" +require "google/cloud/api_hub/v1/api_hub_collect/paths" +require "google/cloud/api_hub/v1/api_hub_collect/rest" + +module Google + module Cloud + module ApiHub + module V1 + ## + # This service exposes methods used for collecting various types of data from + # different first party and third party sources and push it to Hub's collect + # layer. + # + # @example Load this service and instantiate a REST client + # + # require "google/cloud/api_hub/v1/api_hub_collect/rest" + # client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new + # + module ApiHubCollect + end + end + end + end +end + +helper_path = ::File.join __dir__, "api_hub_collect", "helpers.rb" +require "google/cloud/api_hub/v1/api_hub_collect/helpers" if ::File.file? helper_path diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/credentials.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/credentials.rb new file mode 100644 index 000000000000..8858a3d43d5e --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCollect + # Credentials for the ApiHubCollect API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/paths.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/paths.rb new file mode 100644 index 000000000000..08b0ab7ddf33 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/paths.rb @@ -0,0 +1,218 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCollect + # Path helper methods for the ApiHubCollect API. + module Paths + ## + # Create a fully-qualified Api resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/apis/{api}` + # + # @param project [String] + # @param location [String] + # @param api [String] + # + # @return [::String] + def api_path project:, location:, api: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/apis/#{api}" + end + + ## + # Create a fully-qualified ApiOperation resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + # + # @param project [String] + # @param location [String] + # @param api [String] + # @param version [String] + # @param operation [String] + # + # @return [::String] + def api_operation_path project:, location:, api:, version:, operation: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "api cannot contain /" if api.to_s.include? "/" + raise ::ArgumentError, "version cannot contain /" if version.to_s.include? "/" + + "projects/#{project}/locations/#{location}/apis/#{api}/versions/#{version}/operations/#{operation}" + end + + ## + # Create a fully-qualified Attribute resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/attributes/{attribute}` + # + # @param project [String] + # @param location [String] + # @param attribute [String] + # + # @return [::String] + def attribute_path project:, location:, attribute: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/attributes/#{attribute}" + end + + ## + # Create a fully-qualified Definition resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}` + # + # @param project [String] + # @param location [String] + # @param api [String] + # @param version [String] + # @param definition [String] + # + # @return [::String] + def definition_path project:, location:, api:, version:, definition: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "api cannot contain /" if api.to_s.include? "/" + raise ::ArgumentError, "version cannot contain /" if version.to_s.include? "/" + + "projects/#{project}/locations/#{location}/apis/#{api}/versions/#{version}/definitions/#{definition}" + end + + ## + # Create a fully-qualified Deployment resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/deployments/{deployment}` + # + # @param project [String] + # @param location [String] + # @param deployment [String] + # + # @return [::String] + def deployment_path project:, location:, deployment: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/deployments/#{deployment}" + end + + ## + # Create a fully-qualified Location resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def location_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}" + end + + ## + # Create a fully-qualified PluginInstance resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # + # @param project [String] + # @param location [String] + # @param plugin [String] + # @param instance [String] + # + # @return [::String] + def plugin_instance_path project:, location:, plugin:, instance: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "plugin cannot contain /" if plugin.to_s.include? "/" + + "projects/#{project}/locations/#{location}/plugins/#{plugin}/instances/#{instance}" + end + + ## + # Create a fully-qualified Spec resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` + # + # @param project [String] + # @param location [String] + # @param api [String] + # @param version [String] + # @param spec [String] + # + # @return [::String] + def spec_path project:, location:, api:, version:, spec: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "api cannot contain /" if api.to_s.include? "/" + raise ::ArgumentError, "version cannot contain /" if version.to_s.include? "/" + + "projects/#{project}/locations/#{location}/apis/#{api}/versions/#{version}/specs/#{spec}" + end + + ## + # Create a fully-qualified Version resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + # + # @param project [String] + # @param location [String] + # @param api [String] + # @param version [String] + # + # @return [::String] + def version_path project:, location:, api:, version: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "api cannot contain /" if api.to_s.include? "/" + + "projects/#{project}/locations/#{location}/apis/#{api}/versions/#{version}" + end + + extend self + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest.rb new file mode 100644 index 000000000000..4d16f449ab17 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/api_hub/v1/version" +require "google/cloud/api_hub/v1/bindings_override" + +require "google/cloud/api_hub/v1/api_hub_collect/credentials" +require "google/cloud/api_hub/v1/api_hub_collect/paths" +require "google/cloud/api_hub/v1/api_hub_collect/rest/operations" +require "google/cloud/api_hub/v1/api_hub_collect/rest/client" + +module Google + module Cloud + module ApiHub + module V1 + ## + # This service exposes methods used for collecting various types of data from + # different first party and third party sources and push it to Hub's collect + # layer. + # + # To load this service and instantiate a REST client: + # + # require "google/cloud/api_hub/v1/api_hub_collect/rest" + # client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new + # + module ApiHubCollect + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/cloud/api_hub/v1/api_hub_collect/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/client.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/client.rb new file mode 100644 index 000000000000..5db93b64889b --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/client.rb @@ -0,0 +1,487 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/apihub/v1/collect_service_pb" +require "google/cloud/api_hub/v1/api_hub_collect/rest/service_stub" +require "google/cloud/location/rest" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCollect + module Rest + ## + # REST client for the ApiHubCollect service. + # + # This service exposes methods used for collecting various types of data from + # different first party and third party sources and push it to Hub's collect + # layer. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "apihub.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :api_hub_collect_stub + + ## + # Configure the ApiHubCollect Client class. + # + # See {::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all ApiHubCollect clients + # ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "ApiHub", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the ApiHubCollect Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @api_hub_collect_stub.universe_domain + end + + ## + # Create a new ApiHubCollect REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the ApiHubCollect client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Operations.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @config.endpoint + config.universe_domain = @config.universe_domain + end + + @api_hub_collect_stub = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @api_hub_collect_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @api_hub_collect_stub.endpoint + config.universe_domain = @api_hub_collect_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @api_hub_collect_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for long-running operations. + # + # @return [::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Operations] + # + attr_reader :operations_client + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @api_hub_collect_stub.logger + end + + # Service calls + + ## + # Collect API data from a source and push it to Hub's collect layer. + # + # @overload collect_api_data(request, options = nil) + # Pass arguments to `collect_api_data` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::CollectApiDataRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::CollectApiDataRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload collect_api_data(location: nil, collection_type: nil, plugin_instance: nil, action_id: nil, api_data: nil) + # Pass arguments to `collect_api_data` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param location [::String] + # Required. The regional location of the API hub instance and its resources. + # Format: `projects/{project}/locations/{location}` + # @param collection_type [::Google::Cloud::ApiHub::V1::CollectionType] + # Required. The type of collection. Applies to all entries in + # {::Google::Cloud::ApiHub::V1::CollectApiDataRequest#api_data api_data}. + # @param plugin_instance [::String] + # Required. The plugin instance collecting the API data. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}`. + # @param action_id [::String] + # Required. The action ID to be used for collecting the API data. + # This should map to one of the action IDs specified + # in action configs in the plugin. + # @param api_data [::Google::Cloud::ApiHub::V1::ApiData, ::Hash] + # Required. The API data to be collected. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::CollectApiDataRequest.new + # + # # Call the collect_api_data method. + # result = client.collect_api_data request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def collect_api_data request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::CollectApiDataRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.collect_api_data.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.collect_api_data.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.collect_api_data.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_collect_stub.collect_api_data request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the ApiHubCollect REST API. + # + # This class represents the configuration for ApiHubCollect REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # collect_api_data to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.collect_api_data.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.collect_api_data.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "apihub.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + + # @private + # Overrides for http bindings for the RPCs of this service + # are only used when this service is used as mixin, and only + # by the host service. + # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] + config_attr :bindings_override, {}, ::Hash, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the ApiHubCollect API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `collect_api_data` + # @return [::Gapic::Config::Method] + # + attr_reader :collect_api_data + + # @private + def initialize parent_rpcs = nil + collect_api_data_config = parent_rpcs.collect_api_data if parent_rpcs.respond_to? :collect_api_data + @collect_api_data = ::Gapic::Config::Method.new collect_api_data_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/operations.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/operations.rb new file mode 100644 index 000000000000..b9141172061e --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/operations.rb @@ -0,0 +1,914 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/operation" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCollect + module Rest + # Service that implements Longrunning Operations API. + class Operations + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "apihub.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :operations_stub + + ## + # Configuration for the ApiHubCollect Operations API. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def self.configure + @configure ||= Operations::Configuration.new + yield @configure if block_given? + @configure + end + + ## + # Configure the ApiHubCollect Operations instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Operations.configure}. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @operations_stub.universe_domain + end + + ## + # Create a new Operations client object. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Operations::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Operations.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + credentials ||= Credentials.default scope: @config.scope + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_stub = OperationsServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials + ) + + # Used by an LRO wrapper for some methods of this service + @operations_client = self + end + + # Service calls + + ## + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # + # @overload list_operations(request, options = nil) + # Pass arguments to `list_operations` via a request object, either of type + # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::ListOperationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_operations(name: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_operations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation's parent resource. + # @param filter [::String] + # The standard list filter. + # @param page_size [::Integer] + # The standard list page size. + # @param page_token [::String] + # The standard list page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::ListOperationsRequest.new + # + # # Call the list_operations method. + # result = client.list_operations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Longrunning::Operation. + # p item + # end + # + def list_operations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::ListOperationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_operations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_operations.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_operations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.list_operations request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @operations_stub, :list_operations, "operations", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # + # @overload get_operation(request, options = nil) + # Pass arguments to `get_operation` via a request object, either of type + # {::Google::Longrunning::GetOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::GetOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_operation(name: nil) + # Pass arguments to `get_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::GetOperationRequest.new + # + # # Call the get_operation method. + # result = client.get_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def get_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::GetOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.get_operation request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a long-running operation. This method indicates that the client is + # no longer interested in the operation result. It does not cancel the + # operation. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # + # @overload delete_operation(request, options = nil) + # Pass arguments to `delete_operation` via a request object, either of type + # {::Google::Longrunning::DeleteOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::DeleteOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_operation(name: nil) + # Pass arguments to `delete_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be deleted. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::DeleteOperationRequest.new + # + # # Call the delete_operation method. + # result = client.delete_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::DeleteOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.delete_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Starts asynchronous cancellation on a long-running operation. The server + # makes a best effort to cancel the operation, but success is not + # guaranteed. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. Clients can use + # Operations.GetOperation or + # other methods to check whether the cancellation succeeded or whether the + # operation completed despite cancellation. On successful cancellation, + # the operation is not deleted; instead, it becomes an operation with + # an {::Google::Longrunning::Operation#error Operation.error} value with a + # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to + # `Code.CANCELLED`. + # + # @overload cancel_operation(request, options = nil) + # Pass arguments to `cancel_operation` via a request object, either of type + # {::Google::Longrunning::CancelOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::CancelOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload cancel_operation(name: nil) + # Pass arguments to `cancel_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be cancelled. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::CancelOperationRequest.new + # + # # Call the cancel_operation method. + # result = client.cancel_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def cancel_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::CancelOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.cancel_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.cancel_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.cancel_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the Operations REST API. + # + # This class represents the configuration for Operations REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Longrunning::Operations::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_operations to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Longrunning::Operations::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Longrunning::Operations::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "apihub.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the Operations API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_operations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_operations + ## + # RPC-specific configuration for `get_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_operation + ## + # RPC-specific configuration for `delete_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_operation + ## + # RPC-specific configuration for `cancel_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_operation + + # @private + def initialize parent_rpcs = nil + list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations + @list_operations = ::Gapic::Config::Method.new list_operations_config + get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation + @get_operation = ::Gapic::Config::Method.new get_operation_config + delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation + @delete_operation = ::Gapic::Config::Method.new delete_operation_config + cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation + @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config + + yield self if block_given? + end + end + end + end + + ## + # @private + # REST service stub for the Longrunning Operations API. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + class OperationsServiceStub + def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials + end + + ## + # Baseline implementation for the list_operations REST call + # + # @param request_pb [::Google::Longrunning::ListOperationsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::ListOperationsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::ListOperationsResponse] + # A result object deserialized from the server's reply + def list_operations request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_list_operations_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_operations", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::ListOperationsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_operation REST call + # + # @param request_pb [::Google::Longrunning::GetOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def get_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_get_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_operation REST call + # + # @param request_pb [::Google::Longrunning::DeleteOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_delete_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the cancel_operation REST call + # + # @param request_pb [::Google::Longrunning::CancelOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def cancel_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_cancel_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "cancel_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the list_operations REST call + # + # @param request_pb [::Google::Longrunning::ListOperationsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_operations_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}/operations", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_operation REST call + # + # @param request_pb [::Google::Longrunning::GetOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_operation REST call + # + # @param request_pb [::Google::Longrunning::DeleteOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the cancel_operation REST call + # + # @param request_pb [::Google::Longrunning::CancelOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_cancel_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:cancel", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/service_stub.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/service_stub.rb new file mode 100644 index 000000000000..5fb60958ada2 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_collect/rest/service_stub.rb @@ -0,0 +1,143 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/apihub/v1/collect_service_pb" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCollect + module Rest + ## + # REST service stub for the ApiHubCollect service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the collect_api_data REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CollectApiDataRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def collect_api_data request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_collect_api_data_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "collect_api_data", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the collect_api_data REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CollectApiDataRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_collect_api_data_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{location}:collectApiData", + body: "*", + matches: [ + ["location", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate.rb new file mode 100644 index 000000000000..a6aa44f7de71 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/api_hub/v1/version" + +require "google/cloud/api_hub/v1/api_hub_curate/credentials" +require "google/cloud/api_hub/v1/api_hub_curate/paths" +require "google/cloud/api_hub/v1/api_hub_curate/rest" + +module Google + module Cloud + module ApiHub + module V1 + ## + # This service is used for managing curations for processing API data consumed + # from collect layer. + # + # @example Load this service and instantiate a REST client + # + # require "google/cloud/api_hub/v1/api_hub_curate/rest" + # client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + module ApiHubCurate + end + end + end + end +end + +helper_path = ::File.join __dir__, "api_hub_curate", "helpers.rb" +require "google/cloud/api_hub/v1/api_hub_curate/helpers" if ::File.file? helper_path diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/credentials.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/credentials.rb new file mode 100644 index 000000000000..cb6aaba434fc --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCurate + # Credentials for the ApiHubCurate API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/paths.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/paths.rb new file mode 100644 index 000000000000..92c08a5be895 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/paths.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCurate + # Path helper methods for the ApiHubCurate API. + module Paths + ## + # Create a fully-qualified Curation resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/curations/{curation}` + # + # @param project [String] + # @param location [String] + # @param curation [String] + # + # @return [::String] + def curation_path project:, location:, curation: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/curations/#{curation}" + end + + ## + # Create a fully-qualified Location resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def location_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}" + end + + ## + # Create a fully-qualified PluginInstance resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # + # @param project [String] + # @param location [String] + # @param plugin [String] + # @param instance [String] + # + # @return [::String] + def plugin_instance_path project:, location:, plugin:, instance: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "plugin cannot contain /" if plugin.to_s.include? "/" + + "projects/#{project}/locations/#{location}/plugins/#{plugin}/instances/#{instance}" + end + + extend self + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest.rb new file mode 100644 index 000000000000..ee6c2ea162c8 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/api_hub/v1/version" +require "google/cloud/api_hub/v1/bindings_override" + +require "google/cloud/api_hub/v1/api_hub_curate/credentials" +require "google/cloud/api_hub/v1/api_hub_curate/paths" +require "google/cloud/api_hub/v1/api_hub_curate/rest/client" + +module Google + module Cloud + module ApiHub + module V1 + ## + # This service is used for managing curations for processing API data consumed + # from collect layer. + # + # To load this service and instantiate a REST client: + # + # require "google/cloud/api_hub/v1/api_hub_curate/rest" + # client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + module ApiHubCurate + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/cloud/api_hub/v1/api_hub_curate/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest/client.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest/client.rb new file mode 100644 index 000000000000..adf2c9c0e351 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest/client.rb @@ -0,0 +1,869 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/apihub/v1/curate_service_pb" +require "google/cloud/api_hub/v1/api_hub_curate/rest/service_stub" +require "google/cloud/location/rest" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCurate + module Rest + ## + # REST client for the ApiHubCurate service. + # + # This service is used for managing curations for processing API data consumed + # from collect layer. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "apihub.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :api_hub_curate_stub + + ## + # Configure the ApiHubCurate Client class. + # + # See {::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all ApiHubCurate clients + # ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "ApiHub", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the ApiHubCurate Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @api_hub_curate_stub.universe_domain + end + + ## + # Create a new ApiHubCurate REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the ApiHubCurate client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @api_hub_curate_stub = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @api_hub_curate_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @api_hub_curate_stub.endpoint + config.universe_domain = @api_hub_curate_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @api_hub_curate_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @api_hub_curate_stub.logger + end + + # Service calls + + ## + # Create a curation resource in the API hub. + # Once a curation resource is created, plugin instances can start using it. + # + # @overload create_curation(request, options = nil) + # Pass arguments to `create_curation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::CreateCurationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::CreateCurationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_curation(parent: nil, curation_id: nil, curation: nil) + # Pass arguments to `create_curation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource for the curation resource. + # Format: `projects/{project}/locations/{location}` + # @param curation_id [::String] + # Optional. The ID to use for the curation resource, which will become the + # final component of the curations's resource name. This field is optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified ID is already used by another curation resource in the API + # hub. + # * If not provided, a system generated ID will be used. + # + # This value should be 4-500 characters, and valid characters + # are /[a-z][A-Z][0-9]-_/. + # @param curation [::Google::Cloud::ApiHub::V1::Curation, ::Hash] + # Required. The curation resource to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Curation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Curation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::CreateCurationRequest.new + # + # # Call the create_curation method. + # result = client.create_curation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Curation. + # p result + # + def create_curation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::CreateCurationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_curation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_curation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_curation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_curate_stub.create_curation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Get curation resource details. + # + # @overload get_curation(request, options = nil) + # Pass arguments to `get_curation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::GetCurationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::GetCurationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_curation(name: nil) + # Pass arguments to `get_curation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the curation resource to retrieve. + # Format: `projects/{project}/locations/{location}/curations/{curation}` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Curation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Curation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::GetCurationRequest.new + # + # # Call the get_curation method. + # result = client.get_curation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Curation. + # p result + # + def get_curation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::GetCurationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_curation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_curation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_curation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_curate_stub.get_curation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # List curation resources in the API hub. + # + # @overload list_curations(request, options = nil) + # Pass arguments to `list_curations` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::ListCurationsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::ListCurationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_curations(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_curations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of curation resources. + # Format: `projects/{project}/locations/{location}` + # @param filter [::String] + # Optional. An expression that filters the list of curation resources. + # + # A filter expression consists of a field name, a comparison + # operator, and a value for filtering. The value must be a string. The + # comparison operator must be one of: `<`, `>`, `:` or `=`. Filters are case + # insensitive. + # + # The following fields in the `curation resource` are eligible for filtering: + # + # * `create_time` - The time at which the curation was created. + # The value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + # format. Allowed comparison operators: `>` and `<`. + # * `display_name` - The display name of the curation. Allowed + # comparison operators: `=`. + # * `state` - The state of the curation. Allowed comparison operators: `=`. + # + # Expressions are combined with either `AND` logic operator or `OR` logical + # operator but not both of them together i.e. only one of the `AND` or `OR` + # operator can be used throughout the filter string and both the operators + # cannot be used together. No other logical operators are supported. At most + # three filter fields are allowed in the filter string and if provided + # more than that then `INVALID_ARGUMENT` error is returned by the API. + # + # Here are a few examples: + # + # * `create_time < \"2021-08-15T14:50:00Z\" AND create_time > + # \"2021-08-10T12:00:00Z\"` - + # The curation resource was created before _2021-08-15 14:50:00 UTC_ and + # after _2021-08-10 12:00:00 UTC_. + # @param page_size [::Integer] + # Optional. The maximum number of curation resources to return. The service + # may return fewer than this value. If unspecified, at most 50 curations will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListCurations` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters (except page_size) provided to + # `ListCurations` must match the call that provided the page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::Curation>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::Curation>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::ListCurationsRequest.new + # + # # Call the list_curations method. + # result = client.list_curations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::ApiHub::V1::Curation. + # p item + # end + # + def list_curations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::ListCurationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_curations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_curations.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_curations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_curate_stub.list_curations request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @api_hub_curate_stub, :list_curations, "curations", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Update a curation resource in the API hub. The following fields in the + # {::Google::Cloud::ApiHub::V1::Curation curation} can be updated: + # + # * {::Google::Cloud::ApiHub::V1::Curation#display_name display_name} + # * {::Google::Cloud::ApiHub::V1::Curation#description description} + # + # The + # {::Google::Cloud::ApiHub::V1::UpdateApiRequest#update_mask update_mask} + # should be used to specify the fields being updated. + # + # @overload update_curation(request, options = nil) + # Pass arguments to `update_curation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::UpdateCurationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::UpdateCurationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_curation(curation: nil, update_mask: nil) + # Pass arguments to `update_curation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param curation [::Google::Cloud::ApiHub::V1::Curation, ::Hash] + # Required. The curation resource to update. + # + # The curation resource's `name` field is used to identify the curation + # resource to update. + # Format: `projects/{project}/locations/{location}/curations/{curation}` + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Curation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Curation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::UpdateCurationRequest.new + # + # # Call the update_curation method. + # result = client.update_curation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Curation. + # p result + # + def update_curation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::UpdateCurationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_curation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_curation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_curation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_curate_stub.update_curation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Delete a curation resource in the API hub. A curation can only be deleted + # if it's not being used by any plugin instance. + # + # @overload delete_curation(request, options = nil) + # Pass arguments to `delete_curation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DeleteCurationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::DeleteCurationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_curation(name: nil) + # Pass arguments to `delete_curation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the curation resource to delete. + # Format: `projects/{project}/locations/{location}/curations/{curation}` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::DeleteCurationRequest.new + # + # # Call the delete_curation method. + # result = client.delete_curation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_curation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DeleteCurationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_curation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_curation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_curation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_curate_stub.delete_curation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the ApiHubCurate REST API. + # + # This class represents the configuration for ApiHubCurate REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_curation to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_curation.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_curation.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "apihub.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + + # @private + # Overrides for http bindings for the RPCs of this service + # are only used when this service is used as mixin, and only + # by the host service. + # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] + config_attr :bindings_override, {}, ::Hash, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the ApiHubCurate API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_curation` + # @return [::Gapic::Config::Method] + # + attr_reader :create_curation + ## + # RPC-specific configuration for `get_curation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_curation + ## + # RPC-specific configuration for `list_curations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_curations + ## + # RPC-specific configuration for `update_curation` + # @return [::Gapic::Config::Method] + # + attr_reader :update_curation + ## + # RPC-specific configuration for `delete_curation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_curation + + # @private + def initialize parent_rpcs = nil + create_curation_config = parent_rpcs.create_curation if parent_rpcs.respond_to? :create_curation + @create_curation = ::Gapic::Config::Method.new create_curation_config + get_curation_config = parent_rpcs.get_curation if parent_rpcs.respond_to? :get_curation + @get_curation = ::Gapic::Config::Method.new get_curation_config + list_curations_config = parent_rpcs.list_curations if parent_rpcs.respond_to? :list_curations + @list_curations = ::Gapic::Config::Method.new list_curations_config + update_curation_config = parent_rpcs.update_curation if parent_rpcs.respond_to? :update_curation + @update_curation = ::Gapic::Config::Method.new update_curation_config + delete_curation_config = parent_rpcs.delete_curation if parent_rpcs.respond_to? :delete_curation + @delete_curation = ::Gapic::Config::Method.new delete_curation_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest/service_stub.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest/service_stub.rb new file mode 100644 index 000000000000..bf8b01f5d30a --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_curate/rest/service_stub.rb @@ -0,0 +1,388 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/apihub/v1/curate_service_pb" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCurate + module Rest + ## + # REST service stub for the ApiHubCurate service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the create_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreateCurationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Curation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Curation] + # A result object deserialized from the server's reply + def create_curation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_curation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_curation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::Curation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetCurationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Curation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Curation] + # A result object deserialized from the server's reply + def get_curation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_curation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_curation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::Curation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_curations REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListCurationsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ListCurationsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ListCurationsResponse] + # A result object deserialized from the server's reply + def list_curations request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_curations_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_curations", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ListCurationsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::UpdateCurationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Curation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Curation] + # A result object deserialized from the server's reply + def update_curation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_curation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_curation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::Curation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeleteCurationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_curation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_curation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_curation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the create_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreateCurationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_curation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/curations", + body: "curation", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetCurationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_curation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/curations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_curations REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListCurationsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_curations_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/curations", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::UpdateCurationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_curation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{curation.name}", + body: "curation", + matches: [ + ["curation.name", %r{^projects/[^/]+/locations/[^/]+/curations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_curation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeleteCurationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_curation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/curations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery.rb new file mode 100644 index 000000000000..7dc9f4decfe3 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/api_hub/v1/version" + +require "google/cloud/api_hub/v1/api_hub_discovery/credentials" +require "google/cloud/api_hub/v1/api_hub_discovery/paths" +require "google/cloud/api_hub/v1/api_hub_discovery/rest" + +module Google + module Cloud + module ApiHub + module V1 + ## + # This service exposes methods used to manage DiscoveredApiObservations + # and DiscoveredApiOperations. + # + # @example Load this service and instantiate a REST client + # + # require "google/cloud/api_hub/v1/api_hub_discovery/rest" + # client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + module ApiHubDiscovery + end + end + end + end +end + +helper_path = ::File.join __dir__, "api_hub_discovery", "helpers.rb" +require "google/cloud/api_hub/v1/api_hub_discovery/helpers" if ::File.file? helper_path diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/credentials.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/credentials.rb new file mode 100644 index 000000000000..1e59fa8c3612 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubDiscovery + # Credentials for the ApiHubDiscovery API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/paths.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/paths.rb new file mode 100644 index 000000000000..ad069e760e11 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/paths.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubDiscovery + # Path helper methods for the ApiHubDiscovery API. + module Paths + ## + # Create a fully-qualified DiscoveredApiObservation resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/discoveredApiObservations/{discovered_api_observation}` + # + # @param project [String] + # @param location [String] + # @param discovered_api_observation [String] + # + # @return [::String] + def discovered_api_observation_path project:, location:, discovered_api_observation: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/discoveredApiObservations/#{discovered_api_observation}" + end + + ## + # Create a fully-qualified DiscoveredApiOperation resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/discoveredApiObservations/{discovered_api_observation}/discoveredApiOperations/{discovered_api_operation}` + # + # @param project [String] + # @param location [String] + # @param discovered_api_observation [String] + # @param discovered_api_operation [String] + # + # @return [::String] + def discovered_api_operation_path project:, location:, discovered_api_observation:, discovered_api_operation: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "discovered_api_observation cannot contain /" if discovered_api_observation.to_s.include? "/" + + "projects/#{project}/locations/#{location}/discoveredApiObservations/#{discovered_api_observation}/discoveredApiOperations/#{discovered_api_operation}" + end + + ## + # Create a fully-qualified Location resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def location_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}" + end + + extend self + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest.rb new file mode 100644 index 000000000000..32ee1f082c91 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/api_hub/v1/version" +require "google/cloud/api_hub/v1/bindings_override" + +require "google/cloud/api_hub/v1/api_hub_discovery/credentials" +require "google/cloud/api_hub/v1/api_hub_discovery/paths" +require "google/cloud/api_hub/v1/api_hub_discovery/rest/client" + +module Google + module Cloud + module ApiHub + module V1 + ## + # This service exposes methods used to manage DiscoveredApiObservations + # and DiscoveredApiOperations. + # + # To load this service and instantiate a REST client: + # + # require "google/cloud/api_hub/v1/api_hub_discovery/rest" + # client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + module ApiHubDiscovery + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/cloud/api_hub/v1/api_hub_discovery/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest/client.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest/client.rb new file mode 100644 index 000000000000..3e00da47ead6 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest/client.rb @@ -0,0 +1,750 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/apihub/v1/discovery_service_pb" +require "google/cloud/api_hub/v1/api_hub_discovery/rest/service_stub" +require "google/cloud/location/rest" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubDiscovery + module Rest + ## + # REST client for the ApiHubDiscovery service. + # + # This service exposes methods used to manage DiscoveredApiObservations + # and DiscoveredApiOperations. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "apihub.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :api_hub_discovery_stub + + ## + # Configure the ApiHubDiscovery Client class. + # + # See {::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all ApiHubDiscovery clients + # ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "ApiHub", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the ApiHubDiscovery Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @api_hub_discovery_stub.universe_domain + end + + ## + # Create a new ApiHubDiscovery REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the ApiHubDiscovery client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @api_hub_discovery_stub = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @api_hub_discovery_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @api_hub_discovery_stub.endpoint + config.universe_domain = @api_hub_discovery_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @api_hub_discovery_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @api_hub_discovery_stub.logger + end + + # Service calls + + ## + # Lists all the DiscoveredAPIObservations in a given project and location. + # + # @overload list_discovered_api_observations(request, options = nil) + # Pass arguments to `list_discovered_api_observations` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_discovered_api_observations(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_discovered_api_observations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of ApiObservations. + # Format: + # projects/\\{project}/locations/\\{location} + # @param page_size [::Integer] + # Optional. The maximum number of ApiObservations to return. The service may + # return fewer than this value. If unspecified, at most 10 + # ApiObservations will be returned. The maximum value is 1000; values + # above 1000 will be coerced to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListApiObservations` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to + # `ListApiObservations` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::DiscoveredApiObservation>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::DiscoveredApiObservation>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest.new + # + # # Call the list_discovered_api_observations method. + # result = client.list_discovered_api_observations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::ApiHub::V1::DiscoveredApiObservation. + # p item + # end + # + def list_discovered_api_observations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_discovered_api_observations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_discovered_api_observations.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_discovered_api_observations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_discovery_stub.list_discovered_api_observations request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @api_hub_discovery_stub, :list_discovered_api_observations, "discovered_api_observations", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a DiscoveredAPIObservation in a given project, location and + # ApiObservation. + # + # @overload get_discovered_api_observation(request, options = nil) + # Pass arguments to `get_discovered_api_observation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_discovered_api_observation(name: nil) + # Pass arguments to `get_discovered_api_observation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiscoveredApiObservation to retrieve. + # Format: + # projects/\\{project}/locations/\\{location}/discoveredApiObservations/\\{discovered_api_observation} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::DiscoveredApiObservation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::DiscoveredApiObservation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest.new + # + # # Call the get_discovered_api_observation method. + # result = client.get_discovered_api_observation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::DiscoveredApiObservation. + # p result + # + def get_discovered_api_observation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_discovered_api_observation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_discovered_api_observation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_discovered_api_observation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_discovery_stub.get_discovered_api_observation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all the DiscoveredAPIOperations in a given project, location and + # ApiObservation. + # + # @overload list_discovered_api_operations(request, options = nil) + # Pass arguments to `list_discovered_api_operations` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_discovered_api_operations(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_discovered_api_operations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of + # DiscoveredApiOperations. Format: + # projects/\\{project}/locations/\\{location}/discoveredApiObservations/\\{discovered_api_observation} + # @param page_size [::Integer] + # Optional. DiscoveredApiOperations will be returned. The maximum value is + # 1000; values above 1000 will be coerced to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListDiscoveredApiApiOperations` call. Provide this to retrieve the + # subsequent page. + # + # When paginating, all other parameters provided to + # `ListDiscoveredApiApiOperations` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::DiscoveredApiOperation>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::DiscoveredApiOperation>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest.new + # + # # Call the list_discovered_api_operations method. + # result = client.list_discovered_api_operations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::ApiHub::V1::DiscoveredApiOperation. + # p item + # end + # + def list_discovered_api_operations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_discovered_api_operations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_discovered_api_operations.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_discovered_api_operations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_discovery_stub.list_discovered_api_operations request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @api_hub_discovery_stub, :list_discovered_api_operations, "discovered_api_operations", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a DiscoveredAPIOperation in a given project, location, + # ApiObservation and ApiOperation. + # + # @overload get_discovered_api_operation(request, options = nil) + # Pass arguments to `get_discovered_api_operation` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_discovered_api_operation(name: nil) + # Pass arguments to `get_discovered_api_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiscoveredApiOperation to retrieve. + # Format: + # projects/\\{project}/locations/\\{location}/discoveredApiObservations/\\{discovered_api_observation}/discoveredApiOperations/\\{discovered_api_operation} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::DiscoveredApiOperation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::DiscoveredApiOperation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest.new + # + # # Call the get_discovered_api_operation method. + # result = client.get_discovered_api_operation request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::DiscoveredApiOperation. + # p result + # + def get_discovered_api_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_discovered_api_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_discovered_api_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_discovered_api_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_discovery_stub.get_discovered_api_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the ApiHubDiscovery REST API. + # + # This class represents the configuration for ApiHubDiscovery REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_discovered_api_observations to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_discovered_api_observations.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_discovered_api_observations.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "apihub.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + + # @private + # Overrides for http bindings for the RPCs of this service + # are only used when this service is used as mixin, and only + # by the host service. + # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] + config_attr :bindings_override, {}, ::Hash, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the ApiHubDiscovery API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_discovered_api_observations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_discovered_api_observations + ## + # RPC-specific configuration for `get_discovered_api_observation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_discovered_api_observation + ## + # RPC-specific configuration for `list_discovered_api_operations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_discovered_api_operations + ## + # RPC-specific configuration for `get_discovered_api_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_discovered_api_operation + + # @private + def initialize parent_rpcs = nil + list_discovered_api_observations_config = parent_rpcs.list_discovered_api_observations if parent_rpcs.respond_to? :list_discovered_api_observations + @list_discovered_api_observations = ::Gapic::Config::Method.new list_discovered_api_observations_config + get_discovered_api_observation_config = parent_rpcs.get_discovered_api_observation if parent_rpcs.respond_to? :get_discovered_api_observation + @get_discovered_api_observation = ::Gapic::Config::Method.new get_discovered_api_observation_config + list_discovered_api_operations_config = parent_rpcs.list_discovered_api_operations if parent_rpcs.respond_to? :list_discovered_api_operations + @list_discovered_api_operations = ::Gapic::Config::Method.new list_discovered_api_operations_config + get_discovered_api_operation_config = parent_rpcs.get_discovered_api_operation if parent_rpcs.respond_to? :get_discovered_api_operation + @get_discovered_api_operation = ::Gapic::Config::Method.new get_discovered_api_operation_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest/service_stub.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest/service_stub.rb new file mode 100644 index 000000000000..c73806715166 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_discovery/rest/service_stub.rb @@ -0,0 +1,325 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/apihub/v1/discovery_service_pb" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubDiscovery + module Rest + ## + # REST service stub for the ApiHubDiscovery service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the list_discovered_api_observations REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsResponse] + # A result object deserialized from the server's reply + def list_discovered_api_observations request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_discovered_api_observations_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_discovered_api_observations", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_discovered_api_observation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::DiscoveredApiObservation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::DiscoveredApiObservation] + # A result object deserialized from the server's reply + def get_discovered_api_observation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_discovered_api_observation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_discovered_api_observation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::DiscoveredApiObservation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_discovered_api_operations REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsResponse] + # A result object deserialized from the server's reply + def list_discovered_api_operations request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_discovered_api_operations_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_discovered_api_operations", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_discovered_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::DiscoveredApiOperation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::DiscoveredApiOperation] + # A result object deserialized from the server's reply + def get_discovered_api_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_discovered_api_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_discovered_api_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::DiscoveredApiOperation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the list_discovered_api_observations REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_discovered_api_observations_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/discoveredApiObservations", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_discovered_api_observation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_discovered_api_observation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/discoveredApiObservations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_discovered_api_operations REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_discovered_api_operations_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/discoveredApiOperations", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/discoveredApiObservations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_discovered_api_operation REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_discovered_api_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/discoveredApiObservations/[^/]+/discoveredApiOperations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/paths.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/paths.rb index c5584dc9a1dd..1329dcf9ec2f 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/paths.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/paths.rb @@ -24,6 +24,42 @@ module V1 module ApiHubPlugin # Path helper methods for the ApiHubPlugin API. module Paths + ## + # Create a fully-qualified Attribute resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/attributes/{attribute}` + # + # @param project [String] + # @param location [String] + # @param attribute [String] + # + # @return [::String] + def attribute_path project:, location:, attribute: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/attributes/#{attribute}" + end + + ## + # Create a fully-qualified Location resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def location_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}" + end + ## # Create a fully-qualified Plugin resource string. # @@ -43,6 +79,44 @@ def plugin_path project:, location:, plugin: "projects/#{project}/locations/#{location}/plugins/#{plugin}" end + ## + # Create a fully-qualified PluginInstance resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # + # @param project [String] + # @param location [String] + # @param plugin [String] + # @param instance [String] + # + # @return [::String] + def plugin_instance_path project:, location:, plugin:, instance: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "plugin cannot contain /" if plugin.to_s.include? "/" + + "projects/#{project}/locations/#{location}/plugins/#{plugin}/instances/#{instance}" + end + + ## + # Create a fully-qualified ServiceAccount resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/serviceAccounts/{service_account}` + # + # @param project [String] + # @param service_account [String] + # + # @return [::String] + def service_account_path project:, service_account: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/serviceAccounts/#{service_account}" + end + extend self end end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest.rb index 6ce51227775a..94d998fb1949 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest.rb @@ -25,6 +25,7 @@ require "google/cloud/api_hub/v1/api_hub_plugin/credentials" require "google/cloud/api_hub/v1/api_hub_plugin/paths" +require "google/cloud/api_hub/v1/api_hub_plugin/rest/operations" require "google/cloud/api_hub/v1/api_hub_plugin/rest/client" module Google diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/client.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/client.rb index 6f0b5d05ba85..c1dd6e691c88 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/client.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/client.rb @@ -156,6 +156,13 @@ def initialize @quota_project_id = @config.quota_project @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + @operations_client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Operations.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @config.endpoint + config.universe_domain = @config.universe_domain + end + @api_hub_plugin_stub = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.new( endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, @@ -164,70 +171,1027 @@ def initialize logger: @config.logger ) - @api_hub_plugin_stub.logger(stub: true)&.info do |entry| - entry.set_system_name - entry.set_service - entry.message = "Created client for #{entry.service}" - entry.set_credentials_fields credentials - entry.set "customEndpoint", @config.endpoint if @config.endpoint - entry.set "defaultTimeout", @config.timeout if @config.timeout - entry.set "quotaProject", @quota_project_id if @quota_project_id - end + @api_hub_plugin_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @api_hub_plugin_stub.endpoint + config.universe_domain = @api_hub_plugin_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @api_hub_plugin_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for long-running operations. + # + # @return [::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Operations] + # + attr_reader :operations_client + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @api_hub_plugin_stub.logger + end + + # Service calls + + ## + # Get an API Hub plugin. + # + # @overload get_plugin(request, options = nil) + # Pass arguments to `get_plugin` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::GetPluginRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::GetPluginRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_plugin(name: nil) + # Pass arguments to `get_plugin` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the plugin to retrieve. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Plugin] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::GetPluginRequest.new + # + # # Call the get_plugin method. + # result = client.get_plugin request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. + # p result + # + def get_plugin request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::GetPluginRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_plugin.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_plugin.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_plugin.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.get_plugin request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Enables a plugin. + # The `state` of the plugin after enabling is `ENABLED` + # + # @overload enable_plugin(request, options = nil) + # Pass arguments to `enable_plugin` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::EnablePluginRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::EnablePluginRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload enable_plugin(name: nil) + # Pass arguments to `enable_plugin` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the plugin to enable. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Plugin] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::EnablePluginRequest.new + # + # # Call the enable_plugin method. + # result = client.enable_plugin request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. + # p result + # + def enable_plugin request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::EnablePluginRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.enable_plugin.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.enable_plugin.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.enable_plugin.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.enable_plugin request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Disables a plugin. + # The `state` of the plugin after disabling is `DISABLED` + # + # @overload disable_plugin(request, options = nil) + # Pass arguments to `disable_plugin` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DisablePluginRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::DisablePluginRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload disable_plugin(name: nil) + # Pass arguments to `disable_plugin` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the plugin to disable. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Plugin] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::DisablePluginRequest.new + # + # # Call the disable_plugin method. + # result = client.disable_plugin request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. + # p result + # + def disable_plugin request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DisablePluginRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.disable_plugin.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.disable_plugin.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.disable_plugin.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.disable_plugin request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Create an API Hub plugin resource in the API hub. + # Once a plugin is created, it can be used to create plugin instances. + # + # @overload create_plugin(request, options = nil) + # Pass arguments to `create_plugin` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::CreatePluginRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::CreatePluginRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_plugin(parent: nil, plugin_id: nil, plugin: nil) + # Pass arguments to `create_plugin` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where this plugin will be created. + # Format: `projects/{project}/locations/{location}`. + # @param plugin_id [::String] + # Optional. The ID to use for the Plugin resource, which will become the + # final component of the Plugin's resource name. This field is optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified id is already used by another Plugin resource in the API hub + # instance. + # * If not provided, a system generated id will be used. + # + # This value should be 4-63 characters, overall resource name which will be + # of format + # `projects/{project}/locations/{location}/plugins/{plugin}`, + # its length is limited to 1000 characters and valid characters are + # /[a-z][A-Z][0-9]-_/. + # @param plugin [::Google::Cloud::ApiHub::V1::Plugin, ::Hash] + # Required. The plugin to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Plugin] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::CreatePluginRequest.new + # + # # Call the create_plugin method. + # result = client.create_plugin request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. + # p result + # + def create_plugin request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::CreatePluginRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_plugin.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_plugin.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_plugin.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.create_plugin request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # List all the plugins in a given project and location. + # + # @overload list_plugins(request, options = nil) + # Pass arguments to `list_plugins` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::ListPluginsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::ListPluginsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_plugins(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_plugins` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where this plugin will be created. + # Format: `projects/{project}/locations/{location}`. + # @param filter [::String] + # Optional. An expression that filters the list of plugins. + # + # A filter expression consists of a field name, a comparison + # operator, and a value for filtering. The value must be a string. The + # comparison operator must be one of: `<`, `>` or + # `=`. Filters are not case sensitive. + # + # The following fields in the `Plugins` are eligible for filtering: + # + # * `plugin_category` - The category of the Plugin. Allowed + # comparison operators: `=`. + # + # Expressions are combined with either `AND` logic operator or `OR` logical + # operator but not both of them together i.e. only one of the `AND` or `OR` + # operator can be used throughout the filter string and both the operators + # cannot be used together. No other logical operators are + # supported. At most three filter fields are allowed in the filter + # string and if provided more than that then `INVALID_ARGUMENT` error is + # returned by the API. + # Here are a few examples: + # + # * `plugin_category = ON_RAMP` - The plugin is of category + # on ramp. + # @param page_size [::Integer] + # Optional. The maximum number of hub plugins to return. The service may + # return fewer than this value. If unspecified, at most 50 hub plugins will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListPlugins` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters (except page_size) provided to + # `ListPlugins` must match the call that provided the page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::Plugin>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::Plugin>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::ListPluginsRequest.new + # + # # Call the list_plugins method. + # result = client.list_plugins request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::ApiHub::V1::Plugin. + # p item + # end + # + def list_plugins request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::ListPluginsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_plugins.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_plugins.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_plugins.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.list_plugins request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @api_hub_plugin_stub, :list_plugins, "plugins", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Delete a Plugin in API hub. + # Note, only user owned plugins can be deleted via this method. + # + # @overload delete_plugin(request, options = nil) + # Pass arguments to `delete_plugin` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DeletePluginRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::DeletePluginRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_plugin(name: nil) + # Pass arguments to `delete_plugin` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the Plugin resource to delete. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::DeletePluginRequest.new + # + # # Call the delete_plugin method. + # result = client.delete_plugin request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_plugin request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DeletePluginRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_plugin.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_plugin.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_plugin.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.delete_plugin request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a Plugin instance in the API hub. + # + # @overload create_plugin_instance(request, options = nil) + # Pass arguments to `create_plugin_instance` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_plugin_instance(parent: nil, plugin_instance_id: nil, plugin_instance: nil) + # Pass arguments to `create_plugin_instance` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent of the plugin instance resource. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}` + # @param plugin_instance_id [::String] + # Optional. The ID to use for the plugin instance, which will become the + # final component of the plugin instance's resource name. This field is + # optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified id is already used by another plugin instance in the plugin + # resource. + # * If not provided, a system generated id will be used. + # + # This value should be 4-63 characters, and valid characters + # are /[a-z][A-Z][0-9]-_/. + # @param plugin_instance [::Google::Cloud::ApiHub::V1::PluginInstance, ::Hash] + # Required. The plugin instance to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest.new + # + # # Call the create_plugin_instance method. + # result = client.create_plugin_instance request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_plugin_instance request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_plugin_instance.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_plugin_instance.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_plugin_instance.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.create_plugin_instance request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Executes a plugin instance in the API hub. + # + # @overload execute_plugin_instance_action(request, options = nil) + # Pass arguments to `execute_plugin_instance_action` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload execute_plugin_instance_action(name: nil, action_execution_detail: nil) + # Pass arguments to `execute_plugin_instance_action` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the plugin instance to execute. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @param action_execution_detail [::Google::Cloud::ApiHub::V1::ActionExecutionDetail, ::Hash] + # Required. The execution details for the action to execute. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest.new + # + # # Call the execute_plugin_instance_action method. + # result = client.execute_plugin_instance_action request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def execute_plugin_instance_action request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.execute_plugin_instance_action.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.execute_plugin_instance_action.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.execute_plugin_instance_action.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.execute_plugin_instance_action request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Get an API Hub plugin instance. + # + # @overload get_plugin_instance(request, options = nil) + # Pass arguments to `get_plugin_instance` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_plugin_instance(name: nil) + # Pass arguments to `get_plugin_instance` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the plugin instance to retrieve. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::PluginInstance] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::PluginInstance] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::GetPluginInstanceRequest.new + # + # # Call the get_plugin_instance method. + # result = client.get_plugin_instance request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::PluginInstance. + # p result + # + def get_plugin_instance request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_plugin_instance.metadata.to_h - @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| - config.credentials = credentials - config.quota_project = @quota_project_id - config.endpoint = @api_hub_plugin_stub.endpoint - config.universe_domain = @api_hub_plugin_stub.universe_domain - config.bindings_override = @config.bindings_override - config.logger = @api_hub_plugin_stub.logger if config.respond_to? :logger= + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_plugin_instance.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_plugin_instance.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.get_plugin_instance request, options do |result, operation| + yield result, operation if block_given? end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) end ## - # Get the associated client for mix-in of the Locations. + # List all the plugins in a given project and location. + # `-` can be used as wildcard value for \\{plugin_id} # - # @return [Google::Cloud::Location::Locations::Rest::Client] + # @overload list_plugin_instances(request, options = nil) + # Pass arguments to `list_plugin_instances` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest} or an equivalent Hash. # - attr_reader :location_client - - ## - # The logger used for request/response debug logging. + # @param request [::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @return [Logger] + # @overload list_plugin_instances(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_plugin_instances` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). # - def logger - @api_hub_plugin_stub.logger - end + # @param parent [::String] + # Required. The parent resource where this plugin will be created. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # To list plugin instances for multiple plugins, + # use the - character instead of the plugin ID. + # @param filter [::String] + # Optional. An expression that filters the list of plugin instances. + # + # A filter expression consists of a field name, a comparison + # operator, and a value for filtering. The value must be a string. The + # comparison operator must be one of: `<`, `>` or + # `=`. Filters are not case sensitive. + # + # The following fields in the `PluginInstances` are eligible for filtering: + # + # * `state` - The state of the Plugin Instance. Allowed + # comparison operators: `=`. + # + # A filter function is also supported in the filter string. The filter + # function is `id(name)`. The `id(name)` function returns the id of the + # resource name. For example, `id(name) = \"plugin-instance-1\"` is + # equivalent to `name = + # \"projects/test-project-id/locations/test-location-id/plugins/plugin-1/instances/plugin-instance-1\"` + # provided the parent is + # `projects/test-project-id/locations/test-location-id/plugins/plugin-1`. + # + # Expressions are combined with either `AND` logic operator or `OR` logical + # operator but not both of them together i.e. only one of the `AND` or `OR` + # operator can be used throughout the filter string and both the operators + # cannot be used together. No other logical operators are + # supported. At most three filter fields are allowed in the filter + # string and if provided more than that then `INVALID_ARGUMENT` error is + # returned by the API. + # Here are a few examples: + # + # * `state = ENABLED` - The plugin instance is in enabled state. + # @param page_size [::Integer] + # Optional. The maximum number of hub plugins to return. The service may + # return fewer than this value. If unspecified, at most 50 hub plugins will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListPluginInstances` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListPluginInstances` + # must match the call that provided the page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::PluginInstance>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::ApiHub::V1::PluginInstance>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::ListPluginInstancesRequest.new + # + # # Call the list_plugin_instances method. + # result = client.list_plugin_instances request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::ApiHub::V1::PluginInstance. + # p item + # end + # + def list_plugin_instances request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? - # Service calls + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_plugin_instances.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_plugin_instances.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_plugin_instances.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.list_plugin_instances request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @api_hub_plugin_stub, :list_plugin_instances, "plugin_instances", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end ## - # Get details about an API Hub plugin. + # Enables a plugin instance in the API hub. # - # @overload get_plugin(request, options = nil) - # Pass arguments to `get_plugin` via a request object, either of type - # {::Google::Cloud::ApiHub::V1::GetPluginRequest} or an equivalent Hash. + # @overload enable_plugin_instance_action(request, options = nil) + # Pass arguments to `enable_plugin_instance_action` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest} or an equivalent Hash. # - # @param request [::Google::Cloud::ApiHub::V1::GetPluginRequest, ::Hash] + # @param request [::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest, ::Hash] # A request object representing the call parameters. Required. To specify no # parameters, or to keep all the default parameter values, pass an empty Hash. # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload get_plugin(name: nil) - # Pass arguments to `get_plugin` via keyword arguments. Note that at + # @overload enable_plugin_instance_action(name: nil, action_id: nil) + # Pass arguments to `enable_plugin_instance_action` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). # # @param name [::String] - # Required. The name of the plugin to retrieve. - # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # Required. The name of the plugin instance to enable. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @param action_id [::String] + # Required. The action id to enable. # @yield [result, operation] Access the result along with the TransportOperation object - # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam result [::Gapic::Operation] # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @return [::Google::Cloud::ApiHub::V1::Plugin] + # @return [::Gapic::Operation] # # @raise [::Google::Cloud::Error] if the REST call is aborted. # @@ -238,24 +1202,31 @@ def logger # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new # # # Create a request. To set request fields, pass in keyword arguments. - # request = Google::Cloud::ApiHub::V1::GetPluginRequest.new - # - # # Call the get_plugin method. - # result = client.get_plugin request - # - # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. - # p result + # request = Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest.new + # + # # Call the enable_plugin_instance_action method. + # result = client.enable_plugin_instance_action request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end # - def get_plugin request, options = nil + def enable_plugin_instance_action request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? - request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::GetPluginRequest + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults - call_metadata = @config.rpcs.get_plugin.metadata.to_h + call_metadata = @config.rpcs.enable_plugin_instance_action.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ @@ -266,48 +1237,52 @@ def get_plugin request, options = nil call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id - options.apply_defaults timeout: @config.rpcs.get_plugin.timeout, + options.apply_defaults timeout: @config.rpcs.enable_plugin_instance_action.timeout, metadata: call_metadata, - retry_policy: @config.rpcs.get_plugin.retry_policy + retry_policy: @config.rpcs.enable_plugin_instance_action.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy - @api_hub_plugin_stub.get_plugin request, options do |result, operation| + @api_hub_plugin_stub.enable_plugin_instance_action request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options yield result, operation if block_given? + throw :response, result end rescue ::Gapic::Rest::Error => e raise ::Google::Cloud::Error.from_error(e) end ## - # Enables a plugin. - # The `state` of the plugin after enabling is `ENABLED` + # Disables a plugin instance in the API hub. # - # @overload enable_plugin(request, options = nil) - # Pass arguments to `enable_plugin` via a request object, either of type - # {::Google::Cloud::ApiHub::V1::EnablePluginRequest} or an equivalent Hash. + # @overload disable_plugin_instance_action(request, options = nil) + # Pass arguments to `disable_plugin_instance_action` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest} or an equivalent Hash. # - # @param request [::Google::Cloud::ApiHub::V1::EnablePluginRequest, ::Hash] + # @param request [::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest, ::Hash] # A request object representing the call parameters. Required. To specify no # parameters, or to keep all the default parameter values, pass an empty Hash. # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload enable_plugin(name: nil) - # Pass arguments to `enable_plugin` via keyword arguments. Note that at + # @overload disable_plugin_instance_action(name: nil, action_id: nil) + # Pass arguments to `disable_plugin_instance_action` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). # # @param name [::String] - # Required. The name of the plugin to enable. - # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # Required. The name of the plugin instance to disable. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @param action_id [::String] + # Required. The action id to disable. # @yield [result, operation] Access the result along with the TransportOperation object - # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam result [::Gapic::Operation] # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @return [::Google::Cloud::ApiHub::V1::Plugin] + # @return [::Gapic::Operation] # # @raise [::Google::Cloud::Error] if the REST call is aborted. # @@ -318,24 +1293,130 @@ def get_plugin request, options = nil # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new # # # Create a request. To set request fields, pass in keyword arguments. - # request = Google::Cloud::ApiHub::V1::EnablePluginRequest.new + # request = Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest.new + # + # # Call the disable_plugin_instance_action method. + # result = client.disable_plugin_instance_action request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end # - # # Call the enable_plugin method. - # result = client.enable_plugin request + def disable_plugin_instance_action request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.disable_plugin_instance_action.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.disable_plugin_instance_action.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.disable_plugin_instance_action.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @api_hub_plugin_stub.disable_plugin_instance_action request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a plugin instance in the API hub. + # The following fields in the + # {::Google::Cloud::ApiHub::V1::PluginInstance plugin_instance} can be updated + # currently: + # + # * {::Google::Cloud::ApiHub::V1::PluginInstance#display_name display_name} + # * [schedule_cron_expression][PluginInstance.actions.schedule_cron_expression] + # + # The + # {::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest#update_mask update_mask} + # should be used to specify the fields being updated. + # + # To update the + # {::Google::Cloud::ApiHub::V1::PluginInstance#auth_config auth_config} and + # {::Google::Cloud::ApiHub::V1::PluginInstance#additional_config additional_config} + # of the plugin instance, use the + # [ApplyPluginInstanceConfig][google.cloud.apihub.v1.ApiHubPlugin.ApplyPluginInstanceConfig] + # method. + # + # @overload update_plugin_instance(request, options = nil) + # Pass arguments to `update_plugin_instance` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. + # @overload update_plugin_instance(plugin_instance: nil, update_mask: nil) + # Pass arguments to `update_plugin_instance` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param plugin_instance [::Google::Cloud::ApiHub::V1::PluginInstance, ::Hash] + # Required. The plugin instance to update. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::PluginInstance] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::PluginInstance] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest.new + # + # # Call the update_plugin_instance method. + # result = client.update_plugin_instance request + # + # # The returned object is of type Google::Cloud::ApiHub::V1::PluginInstance. # p result # - def enable_plugin request, options = nil + def update_plugin_instance request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? - request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::EnablePluginRequest + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults - call_metadata = @config.rpcs.enable_plugin.metadata.to_h + call_metadata = @config.rpcs.update_plugin_instance.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ @@ -346,15 +1427,15 @@ def enable_plugin request, options = nil call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id - options.apply_defaults timeout: @config.rpcs.enable_plugin.timeout, + options.apply_defaults timeout: @config.rpcs.update_plugin_instance.timeout, metadata: call_metadata, - retry_policy: @config.rpcs.enable_plugin.retry_policy + retry_policy: @config.rpcs.update_plugin_instance.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy - @api_hub_plugin_stub.enable_plugin request, options do |result, operation| + @api_hub_plugin_stub.update_plugin_instance request, options do |result, operation| yield result, operation if block_given? end rescue ::Gapic::Rest::Error => e @@ -362,32 +1443,32 @@ def enable_plugin request, options = nil end ## - # Disables a plugin. - # The `state` of the plugin after disabling is `DISABLED` + # Deletes a plugin instance in the API hub. # - # @overload disable_plugin(request, options = nil) - # Pass arguments to `disable_plugin` via a request object, either of type - # {::Google::Cloud::ApiHub::V1::DisablePluginRequest} or an equivalent Hash. + # @overload delete_plugin_instance(request, options = nil) + # Pass arguments to `delete_plugin_instance` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest} or an equivalent Hash. # - # @param request [::Google::Cloud::ApiHub::V1::DisablePluginRequest, ::Hash] + # @param request [::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest, ::Hash] # A request object representing the call parameters. Required. To specify no # parameters, or to keep all the default parameter values, pass an empty Hash. # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload disable_plugin(name: nil) - # Pass arguments to `disable_plugin` via keyword arguments. Note that at + # @overload delete_plugin_instance(name: nil) + # Pass arguments to `delete_plugin_instance` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). # # @param name [::String] - # Required. The name of the plugin to disable. - # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # Required. The name of the plugin instance to delete. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}`. # @yield [result, operation] Access the result along with the TransportOperation object - # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam result [::Gapic::Operation] # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @return [::Google::Cloud::ApiHub::V1::Plugin] + # @return [::Gapic::Operation] # # @raise [::Google::Cloud::Error] if the REST call is aborted. # @@ -398,24 +1479,31 @@ def enable_plugin request, options = nil # client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new # # # Create a request. To set request fields, pass in keyword arguments. - # request = Google::Cloud::ApiHub::V1::DisablePluginRequest.new - # - # # Call the disable_plugin method. - # result = client.disable_plugin request - # - # # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. - # p result + # request = Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest.new + # + # # Call the delete_plugin_instance method. + # result = client.delete_plugin_instance request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end # - def disable_plugin request, options = nil + def delete_plugin_instance request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? - request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DisablePluginRequest + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults - call_metadata = @config.rpcs.disable_plugin.metadata.to_h + call_metadata = @config.rpcs.delete_plugin_instance.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ @@ -426,16 +1514,18 @@ def disable_plugin request, options = nil call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id - options.apply_defaults timeout: @config.rpcs.disable_plugin.timeout, + options.apply_defaults timeout: @config.rpcs.delete_plugin_instance.timeout, metadata: call_metadata, - retry_policy: @config.rpcs.disable_plugin.retry_policy + retry_policy: @config.rpcs.delete_plugin_instance.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy - @api_hub_plugin_stub.disable_plugin request, options do |result, operation| + @api_hub_plugin_stub.delete_plugin_instance request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options yield result, operation if block_given? + throw :response, result end rescue ::Gapic::Rest::Error => e raise ::Google::Cloud::Error.from_error(e) @@ -609,6 +1699,61 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :disable_plugin + ## + # RPC-specific configuration for `create_plugin` + # @return [::Gapic::Config::Method] + # + attr_reader :create_plugin + ## + # RPC-specific configuration for `list_plugins` + # @return [::Gapic::Config::Method] + # + attr_reader :list_plugins + ## + # RPC-specific configuration for `delete_plugin` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_plugin + ## + # RPC-specific configuration for `create_plugin_instance` + # @return [::Gapic::Config::Method] + # + attr_reader :create_plugin_instance + ## + # RPC-specific configuration for `execute_plugin_instance_action` + # @return [::Gapic::Config::Method] + # + attr_reader :execute_plugin_instance_action + ## + # RPC-specific configuration for `get_plugin_instance` + # @return [::Gapic::Config::Method] + # + attr_reader :get_plugin_instance + ## + # RPC-specific configuration for `list_plugin_instances` + # @return [::Gapic::Config::Method] + # + attr_reader :list_plugin_instances + ## + # RPC-specific configuration for `enable_plugin_instance_action` + # @return [::Gapic::Config::Method] + # + attr_reader :enable_plugin_instance_action + ## + # RPC-specific configuration for `disable_plugin_instance_action` + # @return [::Gapic::Config::Method] + # + attr_reader :disable_plugin_instance_action + ## + # RPC-specific configuration for `update_plugin_instance` + # @return [::Gapic::Config::Method] + # + attr_reader :update_plugin_instance + ## + # RPC-specific configuration for `delete_plugin_instance` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_plugin_instance # @private def initialize parent_rpcs = nil @@ -618,6 +1763,28 @@ def initialize parent_rpcs = nil @enable_plugin = ::Gapic::Config::Method.new enable_plugin_config disable_plugin_config = parent_rpcs.disable_plugin if parent_rpcs.respond_to? :disable_plugin @disable_plugin = ::Gapic::Config::Method.new disable_plugin_config + create_plugin_config = parent_rpcs.create_plugin if parent_rpcs.respond_to? :create_plugin + @create_plugin = ::Gapic::Config::Method.new create_plugin_config + list_plugins_config = parent_rpcs.list_plugins if parent_rpcs.respond_to? :list_plugins + @list_plugins = ::Gapic::Config::Method.new list_plugins_config + delete_plugin_config = parent_rpcs.delete_plugin if parent_rpcs.respond_to? :delete_plugin + @delete_plugin = ::Gapic::Config::Method.new delete_plugin_config + create_plugin_instance_config = parent_rpcs.create_plugin_instance if parent_rpcs.respond_to? :create_plugin_instance + @create_plugin_instance = ::Gapic::Config::Method.new create_plugin_instance_config + execute_plugin_instance_action_config = parent_rpcs.execute_plugin_instance_action if parent_rpcs.respond_to? :execute_plugin_instance_action + @execute_plugin_instance_action = ::Gapic::Config::Method.new execute_plugin_instance_action_config + get_plugin_instance_config = parent_rpcs.get_plugin_instance if parent_rpcs.respond_to? :get_plugin_instance + @get_plugin_instance = ::Gapic::Config::Method.new get_plugin_instance_config + list_plugin_instances_config = parent_rpcs.list_plugin_instances if parent_rpcs.respond_to? :list_plugin_instances + @list_plugin_instances = ::Gapic::Config::Method.new list_plugin_instances_config + enable_plugin_instance_action_config = parent_rpcs.enable_plugin_instance_action if parent_rpcs.respond_to? :enable_plugin_instance_action + @enable_plugin_instance_action = ::Gapic::Config::Method.new enable_plugin_instance_action_config + disable_plugin_instance_action_config = parent_rpcs.disable_plugin_instance_action if parent_rpcs.respond_to? :disable_plugin_instance_action + @disable_plugin_instance_action = ::Gapic::Config::Method.new disable_plugin_instance_action_config + update_plugin_instance_config = parent_rpcs.update_plugin_instance if parent_rpcs.respond_to? :update_plugin_instance + @update_plugin_instance = ::Gapic::Config::Method.new update_plugin_instance_config + delete_plugin_instance_config = parent_rpcs.delete_plugin_instance if parent_rpcs.respond_to? :delete_plugin_instance + @delete_plugin_instance = ::Gapic::Config::Method.new delete_plugin_instance_config yield self if block_given? end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/operations.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/operations.rb new file mode 100644 index 000000000000..67c1cd4a462f --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/operations.rb @@ -0,0 +1,914 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/operation" + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubPlugin + module Rest + # Service that implements Longrunning Operations API. + class Operations + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "apihub.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :operations_stub + + ## + # Configuration for the ApiHubPlugin Operations API. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def self.configure + @configure ||= Operations::Configuration.new + yield @configure if block_given? + @configure + end + + ## + # Configure the ApiHubPlugin Operations instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Operations.configure}. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @operations_stub.universe_domain + end + + ## + # Create a new Operations client object. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Operations::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Operations.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + credentials ||= Credentials.default scope: @config.scope + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_stub = OperationsServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials + ) + + # Used by an LRO wrapper for some methods of this service + @operations_client = self + end + + # Service calls + + ## + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # + # @overload list_operations(request, options = nil) + # Pass arguments to `list_operations` via a request object, either of type + # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::ListOperationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_operations(name: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_operations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation's parent resource. + # @param filter [::String] + # The standard list filter. + # @param page_size [::Integer] + # The standard list page size. + # @param page_token [::String] + # The standard list page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::ListOperationsRequest.new + # + # # Call the list_operations method. + # result = client.list_operations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Longrunning::Operation. + # p item + # end + # + def list_operations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::ListOperationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_operations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_operations.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_operations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.list_operations request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @operations_stub, :list_operations, "operations", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # + # @overload get_operation(request, options = nil) + # Pass arguments to `get_operation` via a request object, either of type + # {::Google::Longrunning::GetOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::GetOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_operation(name: nil) + # Pass arguments to `get_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::GetOperationRequest.new + # + # # Call the get_operation method. + # result = client.get_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def get_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::GetOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.get_operation request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a long-running operation. This method indicates that the client is + # no longer interested in the operation result. It does not cancel the + # operation. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # + # @overload delete_operation(request, options = nil) + # Pass arguments to `delete_operation` via a request object, either of type + # {::Google::Longrunning::DeleteOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::DeleteOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_operation(name: nil) + # Pass arguments to `delete_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be deleted. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::DeleteOperationRequest.new + # + # # Call the delete_operation method. + # result = client.delete_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::DeleteOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.delete_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Starts asynchronous cancellation on a long-running operation. The server + # makes a best effort to cancel the operation, but success is not + # guaranteed. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. Clients can use + # Operations.GetOperation or + # other methods to check whether the cancellation succeeded or whether the + # operation completed despite cancellation. On successful cancellation, + # the operation is not deleted; instead, it becomes an operation with + # an {::Google::Longrunning::Operation#error Operation.error} value with a + # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to + # `Code.CANCELLED`. + # + # @overload cancel_operation(request, options = nil) + # Pass arguments to `cancel_operation` via a request object, either of type + # {::Google::Longrunning::CancelOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::CancelOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload cancel_operation(name: nil) + # Pass arguments to `cancel_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be cancelled. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::CancelOperationRequest.new + # + # # Call the cancel_operation method. + # result = client.cancel_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def cancel_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::CancelOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.cancel_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.cancel_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.cancel_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the Operations REST API. + # + # This class represents the configuration for Operations REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Longrunning::Operations::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_operations to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Longrunning::Operations::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Longrunning::Operations::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "apihub.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the Operations API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_operations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_operations + ## + # RPC-specific configuration for `get_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_operation + ## + # RPC-specific configuration for `delete_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_operation + ## + # RPC-specific configuration for `cancel_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_operation + + # @private + def initialize parent_rpcs = nil + list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations + @list_operations = ::Gapic::Config::Method.new list_operations_config + get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation + @get_operation = ::Gapic::Config::Method.new get_operation_config + delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation + @delete_operation = ::Gapic::Config::Method.new delete_operation_config + cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation + @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config + + yield self if block_given? + end + end + end + end + + ## + # @private + # REST service stub for the Longrunning Operations API. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + class OperationsServiceStub + def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials + end + + ## + # Baseline implementation for the list_operations REST call + # + # @param request_pb [::Google::Longrunning::ListOperationsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::ListOperationsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::ListOperationsResponse] + # A result object deserialized from the server's reply + def list_operations request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_list_operations_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_operations", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::ListOperationsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_operation REST call + # + # @param request_pb [::Google::Longrunning::GetOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def get_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_get_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_operation REST call + # + # @param request_pb [::Google::Longrunning::DeleteOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_delete_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the cancel_operation REST call + # + # @param request_pb [::Google::Longrunning::CancelOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def cancel_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_cancel_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "cancel_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the list_operations REST call + # + # @param request_pb [::Google::Longrunning::ListOperationsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_operations_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}/operations", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_operation REST call + # + # @param request_pb [::Google::Longrunning::GetOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_operation REST call + # + # @param request_pb [::Google::Longrunning::DeleteOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the cancel_operation REST call + # + # @param request_pb [::Google::Longrunning::CancelOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_cancel_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:cancel", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/service_stub.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/service_stub.rb index e23421cc530d..b132677bd647 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/service_stub.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/api_hub_plugin/rest/service_stub.rb @@ -193,6 +193,446 @@ def disable_plugin request_pb, options = nil end end + ## + # Baseline implementation for the create_plugin REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreatePluginRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::Plugin] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::Plugin] + # A result object deserialized from the server's reply + def create_plugin request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_plugin_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_plugin", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::Plugin.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_plugins REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListPluginsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ListPluginsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ListPluginsResponse] + # A result object deserialized from the server's reply + def list_plugins request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_plugins_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_plugins", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ListPluginsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_plugin REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeletePluginRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def delete_plugin request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_plugin_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_plugin", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the create_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def create_plugin_instance request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_plugin_instance_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_plugin_instance", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the execute_plugin_instance_action REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def execute_plugin_instance_action request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_execute_plugin_instance_action_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "execute_plugin_instance_action", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::PluginInstance] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::PluginInstance] + # A result object deserialized from the server's reply + def get_plugin_instance request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_plugin_instance_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_plugin_instance", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::PluginInstance.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_plugin_instances REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::ListPluginInstancesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::ListPluginInstancesResponse] + # A result object deserialized from the server's reply + def list_plugin_instances request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_plugin_instances_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_plugin_instances", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::ListPluginInstancesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the enable_plugin_instance_action REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def enable_plugin_instance_action request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_enable_plugin_instance_action_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "enable_plugin_instance_action", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the disable_plugin_instance_action REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def disable_plugin_instance_action request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_disable_plugin_instance_action_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "disable_plugin_instance_action", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ApiHub::V1::PluginInstance] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ApiHub::V1::PluginInstance] + # A result object deserialized from the server's reply + def update_plugin_instance request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_plugin_instance_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_plugin_instance", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ApiHub::V1::PluginInstance.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def delete_plugin_instance request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_plugin_instance_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_plugin_instance", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -257,6 +697,243 @@ def self.transcode_disable_plugin_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the create_plugin REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreatePluginRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_plugin_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/plugins", + body: "plugin", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_plugins REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListPluginsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_plugins_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/plugins", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_plugin REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeletePluginRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_plugin_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_plugin_instance_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/instances", + body: "plugin_instance", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the execute_plugin_instance_action REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_execute_plugin_instance_action_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:executeAction", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/instances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_plugin_instance_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/instances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_plugin_instances REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_plugin_instances_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/instances", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the enable_plugin_instance_action REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_enable_plugin_instance_action_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:enableAction", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/instances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the disable_plugin_instance_action REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_disable_plugin_instance_action_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:disableAction", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/instances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_plugin_instance_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{plugin_instance.name}", + body: "plugin_instance", + matches: [ + ["plugin_instance.name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/instances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_plugin_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_plugin_instance_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/plugins/[^/]+/instances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/client.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/client.rb index 23dd4d0e77bd..4df04511c06e 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/client.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/client.rb @@ -316,6 +316,95 @@ def create_api_hub_instance request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Deletes the API hub instance. + # + # @overload delete_api_hub_instance(request, options = nil) + # Pass arguments to `delete_api_hub_instance` via a request object, either of type + # {::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_api_hub_instance(name: nil) + # Pass arguments to `delete_api_hub_instance` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the Api Hub instance to delete. + # Format: + # `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/api_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ApiHub::V1::Provisioning::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest.new + # + # # Call the delete_api_hub_instance method. + # result = client.delete_api_hub_instance request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_api_hub_instance request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_api_hub_instance.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ApiHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_api_hub_instance.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_api_hub_instance.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @provisioning_stub.delete_api_hub_instance request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Gets details of a single API Hub instance. # @@ -637,6 +726,11 @@ class Rpcs # attr_reader :create_api_hub_instance ## + # RPC-specific configuration for `delete_api_hub_instance` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_api_hub_instance + ## # RPC-specific configuration for `get_api_hub_instance` # @return [::Gapic::Config::Method] # @@ -651,6 +745,8 @@ class Rpcs def initialize parent_rpcs = nil create_api_hub_instance_config = parent_rpcs.create_api_hub_instance if parent_rpcs.respond_to? :create_api_hub_instance @create_api_hub_instance = ::Gapic::Config::Method.new create_api_hub_instance_config + delete_api_hub_instance_config = parent_rpcs.delete_api_hub_instance if parent_rpcs.respond_to? :delete_api_hub_instance + @delete_api_hub_instance = ::Gapic::Config::Method.new delete_api_hub_instance_config get_api_hub_instance_config = parent_rpcs.get_api_hub_instance if parent_rpcs.respond_to? :get_api_hub_instance @get_api_hub_instance = ::Gapic::Config::Method.new get_api_hub_instance_config lookup_api_hub_instance_config = parent_rpcs.lookup_api_hub_instance if parent_rpcs.respond_to? :lookup_api_hub_instance diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/service_stub.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/service_stub.rb index cb502a0cce8c..31241d4c3760 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/service_stub.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/provisioning/rest/service_stub.rb @@ -113,6 +113,46 @@ def create_api_hub_instance request_pb, options = nil end end + ## + # Baseline implementation for the delete_api_hub_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def delete_api_hub_instance request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_api_hub_instance_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_api_hub_instance", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the get_api_hub_instance REST call # @@ -215,6 +255,27 @@ def self.transcode_create_api_hub_instance_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the delete_api_hub_instance REST call + # + # @param request_pb [::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_api_hub_instance_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/apiHubInstances/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/rest.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/rest.rb index d9c5d7ea2d63..d1cf2790346e 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/rest.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/rest.rb @@ -18,6 +18,9 @@ require "google/cloud/api_hub/v1/api_hub/rest" require "google/cloud/api_hub/v1/api_hub_dependencies/rest" +require "google/cloud/api_hub/v1/api_hub_collect/rest" +require "google/cloud/api_hub/v1/api_hub_curate/rest" +require "google/cloud/api_hub/v1/api_hub_discovery/rest" require "google/cloud/api_hub/v1/host_project_registration_service/rest" require "google/cloud/api_hub/v1/linting_service/rest" require "google/cloud/api_hub/v1/api_hub_plugin/rest" diff --git a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/version.rb b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/version.rb index 2c224487b631..47f3b7633092 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/version.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/api_hub/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ApiHub module V1 - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_pb.rb index d3acc65efc07..a6a7052c48a1 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_pb.rb @@ -13,7 +13,7 @@ require 'google/protobuf/field_mask_pb' -descriptor_data = "\n+google/cloud/apihub/v1/apihub_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\x89\x01\n\x10\x43reateApiRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x61pihub.googleapis.com/Api\x12\x13\n\x06\x61pi_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12-\n\x03\x61pi\x18\x03 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiB\x03\xe0\x41\x02\"@\n\rGetApiRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x61pihub.googleapis.com/Api\"w\n\x10UpdateApiRequest\x12-\n\x03\x61pi\x18\x01 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"W\n\x10\x44\x65leteApiRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x61pihub.googleapis.com/Api\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x8a\x01\n\x0fListApisRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x61pihub.googleapis.com/Api\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"V\n\x10ListApisResponse\x12)\n\x04\x61pis\x18\x01 \x03(\x0b\x32\x1b.google.cloud.apihub.v1.Api\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x99\x01\n\x14\x43reateVersionRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x61pihub.googleapis.com/Api\x12\x17\n\nversion_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x35\n\x07version\x18\x03 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionB\x03\xe0\x41\x02\"H\n\x11GetVersionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\"\x83\x01\n\x14UpdateVersionRequest\x12\x35\n\x07version\x18\x01 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"_\n\x14\x44\x65leteVersionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x92\x01\n\x13ListVersionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x61pihub.googleapis.com/Version\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"b\n\x14ListVersionsResponse\x12\x31\n\x08versions\x18\x01 \x03(\x0b\x32\x1f.google.cloud.apihub.v1.Version\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x91\x01\n\x11\x43reateSpecRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x14\n\x07spec_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12/\n\x04spec\x18\x03 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecB\x03\xe0\x41\x02\"B\n\x0eGetSpecRequest\x12\x30\n\x04name\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\"z\n\x11UpdateSpecRequest\x12/\n\x04spec\x18\x01 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"E\n\x11\x44\x65leteSpecRequest\x12\x30\n\x04name\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\"\x8c\x01\n\x10ListSpecsRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\x12\x1a\x61pihub.googleapis.com/Spec\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"Y\n\x11ListSpecsResponse\x12+\n\x05specs\x18\x01 \x03(\x0b\x32\x1c.google.cloud.apihub.v1.Spec\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"J\n\x16GetSpecContentsRequest\x12\x30\n\x04name\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\"R\n\x16GetApiOperationRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"apihub.googleapis.com/ApiOperation\"\x9c\x01\n\x18ListApiOperationsRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"apihub.googleapis.com/ApiOperation\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"r\n\x19ListApiOperationsResponse\x12<\n\x0e\x61pi_operations\x18\x01 \x03(\x0b\x32$.google.cloud.apihub.v1.ApiOperation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"N\n\x14GetDefinitionRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Definition\"\xac\x01\n\x17\x43reateDeploymentRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Deployment\x12\x1a\n\rdeployment_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12;\n\ndeployment\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentB\x03\xe0\x41\x02\"N\n\x14GetDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Deployment\"\x8c\x01\n\x17UpdateDeploymentRequest\x12;\n\ndeployment\x18\x01 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"Q\n\x17\x44\x65leteDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Deployment\"\x98\x01\n\x16ListDeploymentsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Deployment\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"k\n\x17ListDeploymentsResponse\x12\x37\n\x0b\x64\x65ployments\x18\x01 \x03(\x0b\x32\".google.cloud.apihub.v1.Deployment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa7\x01\n\x16\x43reateAttributeRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1f\x61pihub.googleapis.com/Attribute\x12\x19\n\x0c\x61ttribute_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x39\n\tattribute\x18\x03 \x01(\x0b\x32!.google.cloud.apihub.v1.AttributeB\x03\xe0\x41\x02\"L\n\x13GetAttributeRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x61pihub.googleapis.com/Attribute\"\x89\x01\n\x16UpdateAttributeRequest\x12\x39\n\tattribute\x18\x01 \x01(\x0b\x32!.google.cloud.apihub.v1.AttributeB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"O\n\x16\x44\x65leteAttributeRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x61pihub.googleapis.com/Attribute\"\x96\x01\n\x15ListAttributesRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1f\x61pihub.googleapis.com/Attribute\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"h\n\x16ListAttributesResponse\x12\x35\n\nattributes\x18\x01 \x03(\x0b\x32!.google.cloud.apihub.v1.Attribute\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xaf\x01\n\x16SearchResourcesRequest\x12;\n\x08location\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xd9\x02\n\x0e\x41piHubResource\x12*\n\x03\x61pi\x18\x01 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiH\x00\x12\x39\n\toperation\x18\x02 \x01(\x0b\x32$.google.cloud.apihub.v1.ApiOperationH\x00\x12\x38\n\ndeployment\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentH\x00\x12,\n\x04spec\x18\x04 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecH\x00\x12\x38\n\ndefinition\x18\x05 \x01(\x0b\x32\".google.cloud.apihub.v1.DefinitionH\x00\x12\x32\n\x07version\x18\x06 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionH\x00\x42\n\n\x08resource\"H\n\x0cSearchResult\x12\x38\n\x08resource\x18\x01 \x01(\x0b\x32&.google.cloud.apihub.v1.ApiHubResource\"p\n\x17SearchResourcesResponse\x12<\n\x0esearch_results\x18\x01 \x03(\x0b\x32$.google.cloud.apihub.v1.SearchResult\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xac\x01\n\x17\x43reateDependencyRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Dependency\x12\x1a\n\rdependency_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12;\n\ndependency\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.DependencyB\x03\xe0\x41\x02\"N\n\x14GetDependencyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Dependency\"\x8c\x01\n\x17UpdateDependencyRequest\x12;\n\ndependency\x18\x01 \x01(\x0b\x32\".google.cloud.apihub.v1.DependencyB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"Q\n\x17\x44\x65leteDependencyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Dependency\"\x99\x01\n\x17ListDependenciesRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Dependency\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"m\n\x18ListDependenciesResponse\x12\x38\n\x0c\x64\x65pendencies\x18\x01 \x03(\x0b\x32\".google.cloud.apihub.v1.Dependency\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xb3\x01\n\x18\x43reateExternalApiRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!apihub.googleapis.com/ExternalApi\x12\x1c\n\x0f\x65xternal_api_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12>\n\x0c\x65xternal_api\x18\x03 \x01(\x0b\x32#.google.cloud.apihub.v1.ExternalApiB\x03\xe0\x41\x02\"P\n\x15GetExternalApiRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!apihub.googleapis.com/ExternalApi\"\x90\x01\n\x18UpdateExternalApiRequest\x12>\n\x0c\x65xternal_api\x18\x01 \x01(\x0b\x32#.google.cloud.apihub.v1.ExternalApiB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"S\n\x18\x44\x65leteExternalApiRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!apihub.googleapis.com/ExternalApi\"\x85\x01\n\x17ListExternalApisRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!apihub.googleapis.com/ExternalApi\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"o\n\x18ListExternalApisResponse\x12:\n\rexternal_apis\x18\x01 \x03(\x0b\x32#.google.cloud.apihub.v1.ExternalApi\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xba\x31\n\x06\x41piHub\x12\x9d\x01\n\tCreateApi\x12(.google.cloud.apihub.v1.CreateApiRequest\x1a\x1b.google.cloud.apihub.v1.Api\"I\xda\x41\x11parent,api,api_id\x82\xd3\xe4\x93\x02/\"(/v1/{parent=projects/*/locations/*}/apis:\x03\x61pi\x12\x85\x01\n\x06GetApi\x12%.google.cloud.apihub.v1.GetApiRequest\x1a\x1b.google.cloud.apihub.v1.Api\"7\xda\x41\x04name\x82\xd3\xe4\x93\x02*\x12(/v1/{name=projects/*/locations/*/apis/*}\x12\x98\x01\n\x08ListApis\x12\'.google.cloud.apihub.v1.ListApisRequest\x1a(.google.cloud.apihub.v1.ListApisResponse\"9\xda\x41\x06parent\x82\xd3\xe4\x93\x02*\x12(/v1/{parent=projects/*/locations/*}/apis\x12\x9f\x01\n\tUpdateApi\x12(.google.cloud.apihub.v1.UpdateApiRequest\x1a\x1b.google.cloud.apihub.v1.Api\"K\xda\x41\x0f\x61pi,update_mask\x82\xd3\xe4\x93\x02\x33\x32,/v1/{api.name=projects/*/locations/*/apis/*}:\x03\x61pi\x12\x86\x01\n\tDeleteApi\x12(.google.cloud.apihub.v1.DeleteApiRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x82\xd3\xe4\x93\x02**(/v1/{name=projects/*/locations/*/apis/*}\x12\xc0\x01\n\rCreateVersion\x12,.google.cloud.apihub.v1.CreateVersionRequest\x1a\x1f.google.cloud.apihub.v1.Version\"`\xda\x41\x19parent,version,version_id\x82\xd3\xe4\x93\x02>\"3/v1/{parent=projects/*/locations/*/apis/*}/versions:\x07version\x12\x9c\x01\n\nGetVersion\x12).google.cloud.apihub.v1.GetVersionRequest\x1a\x1f.google.cloud.apihub.v1.Version\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=projects/*/locations/*/apis/*/versions/*}\x12\xaf\x01\n\x0cListVersions\x12+.google.cloud.apihub.v1.ListVersionsRequest\x1a,.google.cloud.apihub.v1.ListVersionsResponse\"D\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{parent=projects/*/locations/*/apis/*}/versions\x12\xc2\x01\n\rUpdateVersion\x12,.google.cloud.apihub.v1.UpdateVersionRequest\x1a\x1f.google.cloud.apihub.v1.Version\"b\xda\x41\x13version,update_mask\x82\xd3\xe4\x93\x02\x46\x32;/v1/{version.name=projects/*/locations/*/apis/*/versions/*}:\x07version\x12\x99\x01\n\rDeleteVersion\x12,.google.cloud.apihub.v1.DeleteVersionRequest\x1a\x16.google.protobuf.Empty\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35*3/v1/{name=projects/*/locations/*/apis/*/versions/*}\x12\xb6\x01\n\nCreateSpec\x12).google.cloud.apihub.v1.CreateSpecRequest\x1a\x1c.google.cloud.apihub.v1.Spec\"_\xda\x41\x13parent,spec,spec_id\x82\xd3\xe4\x93\x02\x43\";/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs:\x04spec\x12\x9b\x01\n\x07GetSpec\x12&.google.cloud.apihub.v1.GetSpecRequest\x1a\x1c.google.cloud.apihub.v1.Spec\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\x12;/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}\x12\xbc\x01\n\x0fGetSpecContents\x12..google.cloud.apihub.v1.GetSpecContentsRequest\x1a$.google.cloud.apihub.v1.SpecContents\"S\xda\x41\x04name\x82\xd3\xe4\x93\x02\x46\x12\x44/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:contents\x12\xae\x01\n\tListSpecs\x12(.google.cloud.apihub.v1.ListSpecsRequest\x1a).google.cloud.apihub.v1.ListSpecsResponse\"L\xda\x41\x06parent\x82\xd3\xe4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs\x12\xb8\x01\n\nUpdateSpec\x12).google.cloud.apihub.v1.UpdateSpecRequest\x1a\x1c.google.cloud.apihub.v1.Spec\"a\xda\x41\x10spec,update_mask\x82\xd3\xe4\x93\x02H2@/v1/{spec.name=projects/*/locations/*/apis/*/versions/*/specs/*}:\x04spec\x12\x9b\x01\n\nDeleteSpec\x12).google.cloud.apihub.v1.DeleteSpecRequest\x1a\x16.google.protobuf.Empty\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=*;/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}\x12\xb8\x01\n\x0fGetApiOperation\x12..google.cloud.apihub.v1.GetApiOperationRequest\x1a$.google.cloud.apihub.v1.ApiOperation\"O\xda\x41\x04name\x82\xd3\xe4\x93\x02\x42\x12@/v1/{name=projects/*/locations/*/apis/*/versions/*/operations/*}\x12\xcb\x01\n\x11ListApiOperations\x12\x30.google.cloud.apihub.v1.ListApiOperationsRequest\x1a\x31.google.cloud.apihub.v1.ListApiOperationsResponse\"Q\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x42\x12@/v1/{parent=projects/*/locations/*/apis/*/versions/*}/operations\x12\xb3\x01\n\rGetDefinition\x12,.google.cloud.apihub.v1.GetDefinitionRequest\x1a\".google.cloud.apihub.v1.Definition\"P\xda\x41\x04name\x82\xd3\xe4\x93\x02\x43\x12\x41/v1/{name=projects/*/locations/*/apis/*/versions/*/definitions/*}\x12\xce\x01\n\x10\x43reateDeployment\x12/.google.cloud.apihub.v1.CreateDeploymentRequest\x1a\".google.cloud.apihub.v1.Deployment\"e\xda\x41\x1fparent,deployment,deployment_id\x82\xd3\xe4\x93\x02=\"//v1/{parent=projects/*/locations/*}/deployments:\ndeployment\x12\xa1\x01\n\rGetDeployment\x12,.google.cloud.apihub.v1.GetDeploymentRequest\x1a\".google.cloud.apihub.v1.Deployment\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/deployments/*}\x12\xb4\x01\n\x0fListDeployments\x12..google.cloud.apihub.v1.ListDeploymentsRequest\x1a/.google.cloud.apihub.v1.ListDeploymentsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/deployments\x12\xd0\x01\n\x10UpdateDeployment\x12/.google.cloud.apihub.v1.UpdateDeploymentRequest\x1a\".google.cloud.apihub.v1.Deployment\"g\xda\x41\x16\x64\x65ployment,update_mask\x82\xd3\xe4\x93\x02H2:/v1/{deployment.name=projects/*/locations/*/deployments/*}:\ndeployment\x12\x9b\x01\n\x10\x44\x65leteDeployment\x12/.google.cloud.apihub.v1.DeleteDeploymentRequest\x1a\x16.google.protobuf.Empty\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/deployments/*}\x12\xc7\x01\n\x0f\x43reateAttribute\x12..google.cloud.apihub.v1.CreateAttributeRequest\x1a!.google.cloud.apihub.v1.Attribute\"a\xda\x41\x1dparent,attribute,attribute_id\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/attributes:\tattribute\x12\x9d\x01\n\x0cGetAttribute\x12+.google.cloud.apihub.v1.GetAttributeRequest\x1a!.google.cloud.apihub.v1.Attribute\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=projects/*/locations/*/attributes/*}\x12\xc9\x01\n\x0fUpdateAttribute\x12..google.cloud.apihub.v1.UpdateAttributeRequest\x1a!.google.cloud.apihub.v1.Attribute\"c\xda\x41\x15\x61ttribute,update_mask\x82\xd3\xe4\x93\x02\x45\x32\x38/v1/{attribute.name=projects/*/locations/*/attributes/*}:\tattribute\x12\x98\x01\n\x0f\x44\x65leteAttribute\x12..google.cloud.apihub.v1.DeleteAttributeRequest\x1a\x16.google.protobuf.Empty\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30*./v1/{name=projects/*/locations/*/attributes/*}\x12\xb0\x01\n\x0eListAttributes\x12-.google.cloud.apihub.v1.ListAttributesRequest\x1a..google.cloud.apihub.v1.ListAttributesResponse\"?\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=projects/*/locations/*}/attributes\x12\xc5\x01\n\x0fSearchResources\x12..google.cloud.apihub.v1.SearchResourcesRequest\x1a/.google.cloud.apihub.v1.SearchResourcesResponse\"Q\xda\x41\x0elocation,query\x82\xd3\xe4\x93\x02:\"5/v1/{location=projects/*/locations/*}:searchResources:\x01*\x12\xd8\x01\n\x11\x43reateExternalApi\x12\x30.google.cloud.apihub.v1.CreateExternalApiRequest\x1a#.google.cloud.apihub.v1.ExternalApi\"l\xda\x41#parent,external_api,external_api_id\x82\xd3\xe4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/externalApis:\x0c\x65xternal_api\x12\xa5\x01\n\x0eGetExternalApi\x12-.google.cloud.apihub.v1.GetExternalApiRequest\x1a#.google.cloud.apihub.v1.ExternalApi\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/externalApis/*}\x12\xda\x01\n\x11UpdateExternalApi\x12\x30.google.cloud.apihub.v1.UpdateExternalApiRequest\x1a#.google.cloud.apihub.v1.ExternalApi\"n\xda\x41\x18\x65xternal_api,update_mask\x82\xd3\xe4\x93\x02M2=/v1/{external_api.name=projects/*/locations/*/externalApis/*}:\x0c\x65xternal_api\x12\x9e\x01\n\x11\x44\x65leteExternalApi\x12\x30.google.cloud.apihub.v1.DeleteExternalApiRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/externalApis/*}\x12\xb8\x01\n\x10ListExternalApis\x12/.google.cloud.apihub.v1.ListExternalApisRequest\x1a\x30.google.cloud.apihub.v1.ListExternalApisResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/externalApis\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platform2\x84\x08\n\x12\x41piHubDependencies\x12\xcf\x01\n\x10\x43reateDependency\x12/.google.cloud.apihub.v1.CreateDependencyRequest\x1a\".google.cloud.apihub.v1.Dependency\"f\xda\x41\x1fparent,dependency,dependency_id\x82\xd3\xe4\x93\x02>\"0/v1/{parent=projects/*/locations/*}/dependencies:\ndependency\x12\xa2\x01\n\rGetDependency\x12,.google.cloud.apihub.v1.GetDependencyRequest\x1a\".google.cloud.apihub.v1.Dependency\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/dependencies/*}\x12\xd1\x01\n\x10UpdateDependency\x12/.google.cloud.apihub.v1.UpdateDependencyRequest\x1a\".google.cloud.apihub.v1.Dependency\"h\xda\x41\x16\x64\x65pendency,update_mask\x82\xd3\xe4\x93\x02I2;/v1/{dependency.name=projects/*/locations/*/dependencies/*}:\ndependency\x12\x9c\x01\n\x10\x44\x65leteDependency\x12/.google.cloud.apihub.v1.DeleteDependencyRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/dependencies/*}\x12\xb8\x01\n\x10ListDependencies\x12/.google.cloud.apihub.v1.ListDependenciesRequest\x1a\x30.google.cloud.apihub.v1.ListDependenciesResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/dependencies\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb4\x01\n\x1a\x63om.google.cloud.apihub.v1B\x12\x41piHubServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" +descriptor_data = "\n+google/cloud/apihub/v1/apihub_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\x89\x01\n\x10\x43reateApiRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x61pihub.googleapis.com/Api\x12\x13\n\x06\x61pi_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12-\n\x03\x61pi\x18\x03 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiB\x03\xe0\x41\x02\"@\n\rGetApiRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x61pihub.googleapis.com/Api\"w\n\x10UpdateApiRequest\x12-\n\x03\x61pi\x18\x01 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"W\n\x10\x44\x65leteApiRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x61pihub.googleapis.com/Api\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x8a\x01\n\x0fListApisRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x61pihub.googleapis.com/Api\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"V\n\x10ListApisResponse\x12)\n\x04\x61pis\x18\x01 \x03(\x0b\x32\x1b.google.cloud.apihub.v1.Api\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x99\x01\n\x14\x43reateVersionRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x61pihub.googleapis.com/Api\x12\x17\n\nversion_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x35\n\x07version\x18\x03 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionB\x03\xe0\x41\x02\"H\n\x11GetVersionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\"\x83\x01\n\x14UpdateVersionRequest\x12\x35\n\x07version\x18\x01 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"_\n\x14\x44\x65leteVersionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x92\x01\n\x13ListVersionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x61pihub.googleapis.com/Version\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"b\n\x14ListVersionsResponse\x12\x31\n\x08versions\x18\x01 \x03(\x0b\x32\x1f.google.cloud.apihub.v1.Version\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x91\x01\n\x11\x43reateSpecRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x14\n\x07spec_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12/\n\x04spec\x18\x03 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecB\x03\xe0\x41\x02\"B\n\x0eGetSpecRequest\x12\x30\n\x04name\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\"z\n\x11UpdateSpecRequest\x12/\n\x04spec\x18\x01 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"E\n\x11\x44\x65leteSpecRequest\x12\x30\n\x04name\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\"\x8c\x01\n\x10ListSpecsRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\x12\x1a\x61pihub.googleapis.com/Spec\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"Y\n\x11ListSpecsResponse\x12+\n\x05specs\x18\x01 \x03(\x0b\x32\x1c.google.cloud.apihub.v1.Spec\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"J\n\x16GetSpecContentsRequest\x12\x30\n\x04name\x18\x01 \x01(\tB\"\xe0\x41\x02\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\"\xb8\x01\n\x19\x43reateApiOperationRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"apihub.googleapis.com/ApiOperation\x12\x1d\n\x10\x61pi_operation_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12@\n\rapi_operation\x18\x03 \x01(\x0b\x32$.google.cloud.apihub.v1.ApiOperationB\x03\xe0\x41\x02\"R\n\x16GetApiOperationRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"apihub.googleapis.com/ApiOperation\"\x93\x01\n\x19UpdateApiOperationRequest\x12@\n\rapi_operation\x18\x01 \x01(\x0b\x32$.google.cloud.apihub.v1.ApiOperationB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"U\n\x19\x44\x65leteApiOperationRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"apihub.googleapis.com/ApiOperation\"\x9c\x01\n\x18ListApiOperationsRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"apihub.googleapis.com/ApiOperation\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"r\n\x19ListApiOperationsResponse\x12<\n\x0e\x61pi_operations\x18\x01 \x03(\x0b\x32$.google.cloud.apihub.v1.ApiOperation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"N\n\x14GetDefinitionRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Definition\"\xac\x01\n\x17\x43reateDeploymentRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Deployment\x12\x1a\n\rdeployment_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12;\n\ndeployment\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentB\x03\xe0\x41\x02\"N\n\x14GetDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Deployment\"\x8c\x01\n\x17UpdateDeploymentRequest\x12;\n\ndeployment\x18\x01 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"Q\n\x17\x44\x65leteDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Deployment\"\x98\x01\n\x16ListDeploymentsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Deployment\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"k\n\x17ListDeploymentsResponse\x12\x37\n\x0b\x64\x65ployments\x18\x01 \x03(\x0b\x32\".google.cloud.apihub.v1.Deployment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa7\x01\n\x16\x43reateAttributeRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1f\x61pihub.googleapis.com/Attribute\x12\x19\n\x0c\x61ttribute_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x39\n\tattribute\x18\x03 \x01(\x0b\x32!.google.cloud.apihub.v1.AttributeB\x03\xe0\x41\x02\"L\n\x13GetAttributeRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x61pihub.googleapis.com/Attribute\"\x89\x01\n\x16UpdateAttributeRequest\x12\x39\n\tattribute\x18\x01 \x01(\x0b\x32!.google.cloud.apihub.v1.AttributeB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"O\n\x16\x44\x65leteAttributeRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x61pihub.googleapis.com/Attribute\"\x96\x01\n\x15ListAttributesRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1f\x61pihub.googleapis.com/Attribute\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"h\n\x16ListAttributesResponse\x12\x35\n\nattributes\x18\x01 \x03(\x0b\x32!.google.cloud.apihub.v1.Attribute\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xaf\x01\n\x16SearchResourcesRequest\x12;\n\x08location\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xd9\x02\n\x0e\x41piHubResource\x12*\n\x03\x61pi\x18\x01 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiH\x00\x12\x39\n\toperation\x18\x02 \x01(\x0b\x32$.google.cloud.apihub.v1.ApiOperationH\x00\x12\x38\n\ndeployment\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentH\x00\x12,\n\x04spec\x18\x04 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecH\x00\x12\x38\n\ndefinition\x18\x05 \x01(\x0b\x32\".google.cloud.apihub.v1.DefinitionH\x00\x12\x32\n\x07version\x18\x06 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionH\x00\x42\n\n\x08resource\"H\n\x0cSearchResult\x12\x38\n\x08resource\x18\x01 \x01(\x0b\x32&.google.cloud.apihub.v1.ApiHubResource\"p\n\x17SearchResourcesResponse\x12<\n\x0esearch_results\x18\x01 \x03(\x0b\x32$.google.cloud.apihub.v1.SearchResult\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xac\x01\n\x17\x43reateDependencyRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Dependency\x12\x1a\n\rdependency_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12;\n\ndependency\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.DependencyB\x03\xe0\x41\x02\"N\n\x14GetDependencyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Dependency\"\x8c\x01\n\x17UpdateDependencyRequest\x12;\n\ndependency\x18\x01 \x01(\x0b\x32\".google.cloud.apihub.v1.DependencyB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"Q\n\x17\x44\x65leteDependencyRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n apihub.googleapis.com/Dependency\"\x99\x01\n\x17ListDependenciesRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 apihub.googleapis.com/Dependency\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"m\n\x18ListDependenciesResponse\x12\x38\n\x0c\x64\x65pendencies\x18\x01 \x03(\x0b\x32\".google.cloud.apihub.v1.Dependency\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xb3\x01\n\x18\x43reateExternalApiRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!apihub.googleapis.com/ExternalApi\x12\x1c\n\x0f\x65xternal_api_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12>\n\x0c\x65xternal_api\x18\x03 \x01(\x0b\x32#.google.cloud.apihub.v1.ExternalApiB\x03\xe0\x41\x02\"P\n\x15GetExternalApiRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!apihub.googleapis.com/ExternalApi\"\x90\x01\n\x18UpdateExternalApiRequest\x12>\n\x0c\x65xternal_api\x18\x01 \x01(\x0b\x32#.google.cloud.apihub.v1.ExternalApiB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"S\n\x18\x44\x65leteExternalApiRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!apihub.googleapis.com/ExternalApi\"\x85\x01\n\x17ListExternalApisRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!apihub.googleapis.com/ExternalApi\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"o\n\x18ListExternalApisResponse\x12:\n\rexternal_apis\x18\x01 \x03(\x0b\x32#.google.cloud.apihub.v1.ExternalApi\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xd2\x36\n\x06\x41piHub\x12\x9d\x01\n\tCreateApi\x12(.google.cloud.apihub.v1.CreateApiRequest\x1a\x1b.google.cloud.apihub.v1.Api\"I\xda\x41\x11parent,api,api_id\x82\xd3\xe4\x93\x02/\"(/v1/{parent=projects/*/locations/*}/apis:\x03\x61pi\x12\x85\x01\n\x06GetApi\x12%.google.cloud.apihub.v1.GetApiRequest\x1a\x1b.google.cloud.apihub.v1.Api\"7\xda\x41\x04name\x82\xd3\xe4\x93\x02*\x12(/v1/{name=projects/*/locations/*/apis/*}\x12\x98\x01\n\x08ListApis\x12\'.google.cloud.apihub.v1.ListApisRequest\x1a(.google.cloud.apihub.v1.ListApisResponse\"9\xda\x41\x06parent\x82\xd3\xe4\x93\x02*\x12(/v1/{parent=projects/*/locations/*}/apis\x12\x9f\x01\n\tUpdateApi\x12(.google.cloud.apihub.v1.UpdateApiRequest\x1a\x1b.google.cloud.apihub.v1.Api\"K\xda\x41\x0f\x61pi,update_mask\x82\xd3\xe4\x93\x02\x33\x32,/v1/{api.name=projects/*/locations/*/apis/*}:\x03\x61pi\x12\x86\x01\n\tDeleteApi\x12(.google.cloud.apihub.v1.DeleteApiRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x82\xd3\xe4\x93\x02**(/v1/{name=projects/*/locations/*/apis/*}\x12\xc0\x01\n\rCreateVersion\x12,.google.cloud.apihub.v1.CreateVersionRequest\x1a\x1f.google.cloud.apihub.v1.Version\"`\xda\x41\x19parent,version,version_id\x82\xd3\xe4\x93\x02>\"3/v1/{parent=projects/*/locations/*/apis/*}/versions:\x07version\x12\x9c\x01\n\nGetVersion\x12).google.cloud.apihub.v1.GetVersionRequest\x1a\x1f.google.cloud.apihub.v1.Version\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=projects/*/locations/*/apis/*/versions/*}\x12\xaf\x01\n\x0cListVersions\x12+.google.cloud.apihub.v1.ListVersionsRequest\x1a,.google.cloud.apihub.v1.ListVersionsResponse\"D\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{parent=projects/*/locations/*/apis/*}/versions\x12\xc2\x01\n\rUpdateVersion\x12,.google.cloud.apihub.v1.UpdateVersionRequest\x1a\x1f.google.cloud.apihub.v1.Version\"b\xda\x41\x13version,update_mask\x82\xd3\xe4\x93\x02\x46\x32;/v1/{version.name=projects/*/locations/*/apis/*/versions/*}:\x07version\x12\x99\x01\n\rDeleteVersion\x12,.google.cloud.apihub.v1.DeleteVersionRequest\x1a\x16.google.protobuf.Empty\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35*3/v1/{name=projects/*/locations/*/apis/*/versions/*}\x12\xb6\x01\n\nCreateSpec\x12).google.cloud.apihub.v1.CreateSpecRequest\x1a\x1c.google.cloud.apihub.v1.Spec\"_\xda\x41\x13parent,spec,spec_id\x82\xd3\xe4\x93\x02\x43\";/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs:\x04spec\x12\x9b\x01\n\x07GetSpec\x12&.google.cloud.apihub.v1.GetSpecRequest\x1a\x1c.google.cloud.apihub.v1.Spec\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\x12;/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}\x12\xbc\x01\n\x0fGetSpecContents\x12..google.cloud.apihub.v1.GetSpecContentsRequest\x1a$.google.cloud.apihub.v1.SpecContents\"S\xda\x41\x04name\x82\xd3\xe4\x93\x02\x46\x12\x44/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}:contents\x12\xae\x01\n\tListSpecs\x12(.google.cloud.apihub.v1.ListSpecsRequest\x1a).google.cloud.apihub.v1.ListSpecsResponse\"L\xda\x41\x06parent\x82\xd3\xe4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/apis/*/versions/*}/specs\x12\xb8\x01\n\nUpdateSpec\x12).google.cloud.apihub.v1.UpdateSpecRequest\x1a\x1c.google.cloud.apihub.v1.Spec\"a\xda\x41\x10spec,update_mask\x82\xd3\xe4\x93\x02H2@/v1/{spec.name=projects/*/locations/*/apis/*/versions/*/specs/*}:\x04spec\x12\x9b\x01\n\nDeleteSpec\x12).google.cloud.apihub.v1.DeleteSpecRequest\x1a\x16.google.protobuf.Empty\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=*;/v1/{name=projects/*/locations/*/apis/*/versions/*/specs/*}\x12\xee\x01\n\x12\x43reateApiOperation\x12\x31.google.cloud.apihub.v1.CreateApiOperationRequest\x1a$.google.cloud.apihub.v1.ApiOperation\"\x7f\xda\x41%parent,api_operation,api_operation_id\x82\xd3\xe4\x93\x02Q\"@/v1/{parent=projects/*/locations/*/apis/*/versions/*}/operations:\rapi_operation\x12\xb8\x01\n\x0fGetApiOperation\x12..google.cloud.apihub.v1.GetApiOperationRequest\x1a$.google.cloud.apihub.v1.ApiOperation\"O\xda\x41\x04name\x82\xd3\xe4\x93\x02\x42\x12@/v1/{name=projects/*/locations/*/apis/*/versions/*/operations/*}\x12\xcb\x01\n\x11ListApiOperations\x12\x30.google.cloud.apihub.v1.ListApiOperationsRequest\x1a\x31.google.cloud.apihub.v1.ListApiOperationsResponse\"Q\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x42\x12@/v1/{parent=projects/*/locations/*/apis/*/versions/*}/operations\x12\xf1\x01\n\x12UpdateApiOperation\x12\x31.google.cloud.apihub.v1.UpdateApiOperationRequest\x1a$.google.cloud.apihub.v1.ApiOperation\"\x81\x01\xda\x41\x19\x61pi_operation,update_mask\x82\xd3\xe4\x93\x02_2N/v1/{api_operation.name=projects/*/locations/*/apis/*/versions/*/operations/*}:\rapi_operation\x12\xb0\x01\n\x12\x44\x65leteApiOperation\x12\x31.google.cloud.apihub.v1.DeleteApiOperationRequest\x1a\x16.google.protobuf.Empty\"O\xda\x41\x04name\x82\xd3\xe4\x93\x02\x42*@/v1/{name=projects/*/locations/*/apis/*/versions/*/operations/*}\x12\xb3\x01\n\rGetDefinition\x12,.google.cloud.apihub.v1.GetDefinitionRequest\x1a\".google.cloud.apihub.v1.Definition\"P\xda\x41\x04name\x82\xd3\xe4\x93\x02\x43\x12\x41/v1/{name=projects/*/locations/*/apis/*/versions/*/definitions/*}\x12\xce\x01\n\x10\x43reateDeployment\x12/.google.cloud.apihub.v1.CreateDeploymentRequest\x1a\".google.cloud.apihub.v1.Deployment\"e\xda\x41\x1fparent,deployment,deployment_id\x82\xd3\xe4\x93\x02=\"//v1/{parent=projects/*/locations/*}/deployments:\ndeployment\x12\xa1\x01\n\rGetDeployment\x12,.google.cloud.apihub.v1.GetDeploymentRequest\x1a\".google.cloud.apihub.v1.Deployment\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/deployments/*}\x12\xb4\x01\n\x0fListDeployments\x12..google.cloud.apihub.v1.ListDeploymentsRequest\x1a/.google.cloud.apihub.v1.ListDeploymentsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/deployments\x12\xd0\x01\n\x10UpdateDeployment\x12/.google.cloud.apihub.v1.UpdateDeploymentRequest\x1a\".google.cloud.apihub.v1.Deployment\"g\xda\x41\x16\x64\x65ployment,update_mask\x82\xd3\xe4\x93\x02H2:/v1/{deployment.name=projects/*/locations/*/deployments/*}:\ndeployment\x12\x9b\x01\n\x10\x44\x65leteDeployment\x12/.google.cloud.apihub.v1.DeleteDeploymentRequest\x1a\x16.google.protobuf.Empty\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/deployments/*}\x12\xc7\x01\n\x0f\x43reateAttribute\x12..google.cloud.apihub.v1.CreateAttributeRequest\x1a!.google.cloud.apihub.v1.Attribute\"a\xda\x41\x1dparent,attribute,attribute_id\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/attributes:\tattribute\x12\x9d\x01\n\x0cGetAttribute\x12+.google.cloud.apihub.v1.GetAttributeRequest\x1a!.google.cloud.apihub.v1.Attribute\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=projects/*/locations/*/attributes/*}\x12\xc9\x01\n\x0fUpdateAttribute\x12..google.cloud.apihub.v1.UpdateAttributeRequest\x1a!.google.cloud.apihub.v1.Attribute\"c\xda\x41\x15\x61ttribute,update_mask\x82\xd3\xe4\x93\x02\x45\x32\x38/v1/{attribute.name=projects/*/locations/*/attributes/*}:\tattribute\x12\x98\x01\n\x0f\x44\x65leteAttribute\x12..google.cloud.apihub.v1.DeleteAttributeRequest\x1a\x16.google.protobuf.Empty\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30*./v1/{name=projects/*/locations/*/attributes/*}\x12\xb0\x01\n\x0eListAttributes\x12-.google.cloud.apihub.v1.ListAttributesRequest\x1a..google.cloud.apihub.v1.ListAttributesResponse\"?\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=projects/*/locations/*}/attributes\x12\xc5\x01\n\x0fSearchResources\x12..google.cloud.apihub.v1.SearchResourcesRequest\x1a/.google.cloud.apihub.v1.SearchResourcesResponse\"Q\xda\x41\x0elocation,query\x82\xd3\xe4\x93\x02:\"5/v1/{location=projects/*/locations/*}:searchResources:\x01*\x12\xd8\x01\n\x11\x43reateExternalApi\x12\x30.google.cloud.apihub.v1.CreateExternalApiRequest\x1a#.google.cloud.apihub.v1.ExternalApi\"l\xda\x41#parent,external_api,external_api_id\x82\xd3\xe4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/externalApis:\x0c\x65xternal_api\x12\xa5\x01\n\x0eGetExternalApi\x12-.google.cloud.apihub.v1.GetExternalApiRequest\x1a#.google.cloud.apihub.v1.ExternalApi\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/externalApis/*}\x12\xda\x01\n\x11UpdateExternalApi\x12\x30.google.cloud.apihub.v1.UpdateExternalApiRequest\x1a#.google.cloud.apihub.v1.ExternalApi\"n\xda\x41\x18\x65xternal_api,update_mask\x82\xd3\xe4\x93\x02M2=/v1/{external_api.name=projects/*/locations/*/externalApis/*}:\x0c\x65xternal_api\x12\x9e\x01\n\x11\x44\x65leteExternalApi\x12\x30.google.cloud.apihub.v1.DeleteExternalApiRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/externalApis/*}\x12\xb8\x01\n\x10ListExternalApis\x12/.google.cloud.apihub.v1.ListExternalApisRequest\x1a\x30.google.cloud.apihub.v1.ListExternalApisResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/externalApis\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platform2\x84\x08\n\x12\x41piHubDependencies\x12\xcf\x01\n\x10\x43reateDependency\x12/.google.cloud.apihub.v1.CreateDependencyRequest\x1a\".google.cloud.apihub.v1.Dependency\"f\xda\x41\x1fparent,dependency,dependency_id\x82\xd3\xe4\x93\x02>\"0/v1/{parent=projects/*/locations/*}/dependencies:\ndependency\x12\xa2\x01\n\rGetDependency\x12,.google.cloud.apihub.v1.GetDependencyRequest\x1a\".google.cloud.apihub.v1.Dependency\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/dependencies/*}\x12\xd1\x01\n\x10UpdateDependency\x12/.google.cloud.apihub.v1.UpdateDependencyRequest\x1a\".google.cloud.apihub.v1.Dependency\"h\xda\x41\x16\x64\x65pendency,update_mask\x82\xd3\xe4\x93\x02I2;/v1/{dependency.name=projects/*/locations/*/dependencies/*}:\ndependency\x12\x9c\x01\n\x10\x44\x65leteDependency\x12/.google.cloud.apihub.v1.DeleteDependencyRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/dependencies/*}\x12\xb8\x01\n\x10ListDependencies\x12/.google.cloud.apihub.v1.ListDependenciesRequest\x1a\x30.google.cloud.apihub.v1.ListDependenciesResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/dependencies\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb4\x01\n\x1a\x63om.google.cloud.apihub.v1B\x12\x41piHubServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -64,7 +64,10 @@ module V1 ListSpecsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListSpecsRequest").msgclass ListSpecsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListSpecsResponse").msgclass GetSpecContentsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetSpecContentsRequest").msgclass + CreateApiOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CreateApiOperationRequest").msgclass GetApiOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetApiOperationRequest").msgclass + UpdateApiOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.UpdateApiOperationRequest").msgclass + DeleteApiOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DeleteApiOperationRequest").msgclass ListApiOperationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListApiOperationsRequest").msgclass ListApiOperationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListApiOperationsResponse").msgclass GetDefinitionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetDefinitionRequest").msgclass diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_services_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_services_pb.rb index b2d5f0424245..2f724a8f1db4 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_services_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/apihub_service_services_pb.rb @@ -41,7 +41,7 @@ class Service # List API resources in the API hub. rpc :ListApis, ::Google::Cloud::ApiHub::V1::ListApisRequest, ::Google::Cloud::ApiHub::V1::ListApisResponse # Update an API resource in the API hub. The following fields in the - # [API][] can be updated: + # [API][google.cloud.apihub.v1.Api] can be updated: # # * [display_name][google.cloud.apihub.v1.Api.display_name] # * [description][google.cloud.apihub.v1.Api.description] @@ -51,6 +51,7 @@ class Service # * [team][google.cloud.apihub.v1.Api.team] # * [business_unit][google.cloud.apihub.v1.Api.business_unit] # * [maturity_level][google.cloud.apihub.v1.Api.maturity_level] + # * [api_style][google.cloud.apihub.v1.Api.api_style] # * [attributes][google.cloud.apihub.v1.Api.attributes] # # The @@ -148,10 +149,38 @@ class Service # Deleting a spec will also delete the associated operations from the # version. rpc :DeleteSpec, ::Google::Cloud::ApiHub::V1::DeleteSpecRequest, ::Google::Protobuf::Empty + # Create an apiOperation in an API version. + # An apiOperation can be created only if the version has no apiOperations + # which were created by parsing a spec. + rpc :CreateApiOperation, ::Google::Cloud::ApiHub::V1::CreateApiOperationRequest, ::Google::Cloud::ApiHub::V1::ApiOperation # Get details about a particular operation in API version. rpc :GetApiOperation, ::Google::Cloud::ApiHub::V1::GetApiOperationRequest, ::Google::Cloud::ApiHub::V1::ApiOperation # List operations in an API version. rpc :ListApiOperations, ::Google::Cloud::ApiHub::V1::ListApiOperationsRequest, ::Google::Cloud::ApiHub::V1::ListApiOperationsResponse + # Update an operation in an API version. The following fields in the + # [ApiOperation resource][google.cloud.apihub.v1.ApiOperation] can be + # updated: + # + # * [details.description][ApiOperation.details.description] + # * [details.documentation][ApiOperation.details.documentation] + # * [details.http_operation.path][ApiOperation.details.http_operation.path.path] + # * [details.http_operation.method][ApiOperation.details.http_operation.method] + # * [details.deprecated][ApiOperation.details.deprecated] + # * [attributes][google.cloud.apihub.v1.ApiOperation.attributes] + # + # The + # [update_mask][google.cloud.apihub.v1.UpdateApiOperationRequest.update_mask] + # should be used to specify the fields being updated. + # + # An operation can be updated only if the operation was created via + # [CreateApiOperation][google.cloud.apihub.v1.ApiHub.CreateApiOperation] API. + # If the operation was created by parsing the spec, then it can be edited by + # updating the spec. + rpc :UpdateApiOperation, ::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest, ::Google::Cloud::ApiHub::V1::ApiOperation + # Delete an operation in an API version and we can delete only the + # operations created via create API. If the operation was created by parsing + # the spec, then it can be deleted by editing or deleting the spec. + rpc :DeleteApiOperation, ::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest, ::Google::Protobuf::Empty # Get details about a definition in an API version. rpc :GetDefinition, ::Google::Cloud::ApiHub::V1::GetDefinitionRequest, ::Google::Cloud::ApiHub::V1::Definition # Create a deployment resource in the API hub. @@ -175,7 +204,11 @@ class Service # * [slo][google.cloud.apihub.v1.Deployment.slo] # * [environment][google.cloud.apihub.v1.Deployment.environment] # * [attributes][google.cloud.apihub.v1.Deployment.attributes] - # + # * [source_project] [google.cloud.apihub.v1.Deployment.source_project] + # * [source_environment] + # [google.cloud.apihub.v1.Deployment.source_environment] + # * [management_url][google.cloud.apihub.v1.Deployment.management_url] + # * [source_uri][google.cloud.apihub.v1.Deployment.source_uri] # The # [update_mask][google.cloud.apihub.v1.UpdateDeploymentRequest.update_mask] # should be used to specify the fields being updated. diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/collect_service_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/collect_service_pb.rb new file mode 100644 index 000000000000..cf6372601c10 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/collect_service_pb.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/apihub/v1/collect_service.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' +require 'google/cloud/apihub/v1/common_fields_pb' +require 'google/longrunning/operations_pb' +require 'google/protobuf/timestamp_pb' + + +descriptor_data = "\n,google/cloud/apihub/v1/collect_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\x1a#google/longrunning/operations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb1\x02\n\x15\x43ollectApiDataRequest\x12;\n\x08location\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x44\n\x0f\x63ollection_type\x18\x02 \x01(\x0e\x32&.google.cloud.apihub.v1.CollectionTypeB\x03\xe0\x41\x02\x12\x45\n\x0fplugin_instance\x18\x03 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/PluginInstance\x12\x16\n\taction_id\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x08\x61pi_data\x18\x05 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.ApiDataB\x03\xe0\x41\x02\"\\\n\x07\x41piData\x12I\n\x11\x61pi_metadata_list\x18\x01 \x01(\x0b\x32\'.google.cloud.apihub.v1.ApiMetadataListB\x03\xe0\x41\x01H\x00\x42\x06\n\x04\x44\x61ta\"Q\n\x0f\x41piMetadataList\x12>\n\x0c\x61pi_metadata\x18\x01 \x03(\x0b\x32#.google.cloud.apihub.v1.APIMetadataB\x03\xe0\x41\x02\"\x94\x02\n\x0b\x41PIMetadata\x12-\n\x03\x61pi\x18\x01 \x01(\x0b\x32\x1b.google.cloud.apihub.v1.ApiB\x03\xe0\x41\x02\x12>\n\x08versions\x18\x02 \x03(\x0b\x32\'.google.cloud.apihub.v1.VersionMetadataB\x03\xe0\x41\x01\x12\x18\n\x0boriginal_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12=\n\x14original_create_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12=\n\x14original_update_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\"\xe0\x02\n\x0fVersionMetadata\x12\x35\n\x07version\x18\x01 \x01(\x0b\x32\x1f.google.cloud.apihub.v1.VersionB\x03\xe0\x41\x02\x12\x38\n\x05specs\x18\x02 \x03(\x0b\x32$.google.cloud.apihub.v1.SpecMetadataB\x03\xe0\x41\x01\x12\x44\n\x0b\x64\x65ployments\x18\x04 \x03(\x0b\x32*.google.cloud.apihub.v1.DeploymentMetadataB\x03\xe0\x41\x01\x12\x18\n\x0boriginal_id\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12=\n\x14original_create_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12=\n\x14original_update_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\"\xd7\x01\n\x0cSpecMetadata\x12/\n\x04spec\x18\x01 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.SpecB\x03\xe0\x41\x02\x12\x18\n\x0boriginal_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12=\n\x14original_create_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12=\n\x14original_update_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\"\xe9\x01\n\x12\x44\x65ploymentMetadata\x12;\n\ndeployment\x18\x01 \x01(\x0b\x32\".google.cloud.apihub.v1.DeploymentB\x03\xe0\x41\x02\x12\x18\n\x0boriginal_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12=\n\x14original_create_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12=\n\x14original_update_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\"\x18\n\x16\x43ollectApiDataResponse*i\n\x0e\x43ollectionType\x12\x1f\n\x1b\x43OLLECTION_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x43OLLECTION_TYPE_UPSERT\x10\x01\x12\x1a\n\x16\x43OLLECTION_TYPE_DELETE\x10\x02\x32\xcf\x02\n\rApiHubCollect\x12\xf2\x01\n\x0e\x43ollectApiData\x12-.google.cloud.apihub.v1.CollectApiDataRequest\x1a\x1d.google.longrunning.Operation\"\x91\x01\xca\x41+\n\x16\x43ollectApiDataResponse\x12\x11OperationMetadata\xda\x41!location,collection_type,api_data\x82\xd3\xe4\x93\x02\x39\"4/v1/{location=projects/*/locations/*}:collectApiData:\x01*\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb5\x01\n\x1a\x63om.google.cloud.apihub.v1B\x13\x43ollectServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.cloud.apihub.v1.Api", "google/cloud/apihub/v1/common_fields.proto"], + ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module ApiHub + module V1 + CollectApiDataRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CollectApiDataRequest").msgclass + ApiData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApiData").msgclass + ApiMetadataList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApiMetadataList").msgclass + APIMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.APIMetadata").msgclass + VersionMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.VersionMetadata").msgclass + SpecMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.SpecMetadata").msgclass + DeploymentMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DeploymentMetadata").msgclass + CollectApiDataResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CollectApiDataResponse").msgclass + CollectionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CollectionType").enummodule + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/collect_service_services_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/collect_service_services_pb.rb new file mode 100644 index 000000000000..fb45b9393239 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/collect_service_services_pb.rb @@ -0,0 +1,47 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/apihub/v1/collect_service.proto for package 'Google.Cloud.ApiHub.V1' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/apihub/v1/collect_service_pb' + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCollect + # This service exposes methods used for collecting various types of data from + # different first party and third party sources and push it to Hub's collect + # layer. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.apihub.v1.ApiHubCollect' + + # Collect API data from a source and push it to Hub's collect layer. + rpc :CollectApiData, ::Google::Cloud::ApiHub::V1::CollectApiDataRequest, ::Google::Longrunning::Operation + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/common_fields_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/common_fields_pb.rb index d7dea78c2211..c10299ca0485 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/common_fields_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/common_fields_pb.rb @@ -9,7 +9,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n*google/cloud/apihub/v1/common_fields.proto\x12\x16google.cloud.apihub.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf5\x07\n\x03\x41pi\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x31\n\x05owner\x18\x05 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.OwnerB\x03\xe0\x41\x01\x12\x37\n\x08versions\x18\x06 \x03(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x41\n\x0btarget_user\x18\t \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12:\n\x04team\x18\n \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x43\n\rbusiness_unit\x18\x0b \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x44\n\x0ematurity_level\x18\x0c \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x44\n\nattributes\x18\r \x03(\x0b\x32+.google.cloud.apihub.v1.Api.AttributesEntryB\x03\xe0\x41\x01\x12?\n\tapi_style\x18\x0e \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12?\n\x10selected_version\x18\x0f \x01(\tB%\xe0\x41\x01\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:]\xea\x41Z\n\x19\x61pihub.googleapis.com/Api\x12\x32projects/{project}/locations/{location}/apis/{api}*\x04\x61pis2\x03\x61pi\"\xa8\x08\n\x07Version\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x31\n\x05specs\x18\x05 \x03(\tB\"\xe0\x41\x03\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\x12\x42\n\x0e\x61pi_operations\x18\x06 \x03(\tB*\xe0\x41\x03\xfa\x41$\n\"apihub.googleapis.com/ApiOperation\x12=\n\x0b\x64\x65\x66initions\x18\x07 \x03(\tB(\xe0\x41\x03\xfa\x41\"\n apihub.googleapis.com/Definition\x12=\n\x0b\x64\x65ployments\x18\x08 \x03(\tB(\xe0\x41\x01\xfa\x41\"\n apihub.googleapis.com/Deployment\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12?\n\tlifecycle\x18\x0b \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12@\n\ncompliance\x18\x0c \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x43\n\raccreditation\x18\r \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12H\n\nattributes\x18\x0e \x03(\x0b\x32/.google.cloud.apihub.v1.Version.AttributesEntryB\x03\xe0\x41\x01\x12\x45\n\x13selected_deployment\x18\x10 \x01(\tB(\xe0\x41\x01\xfa\x41\"\n apihub.googleapis.com/Deployment\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:|\xea\x41y\n\x1d\x61pihub.googleapis.com/Version\x12\x45projects/{project}/locations/{location}/apis/{api}/versions/{version}*\x08versions2\x07version\"\xae\x07\n\x04Spec\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12?\n\tspec_type\x18\x03 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x02\x12>\n\x08\x63ontents\x18\x04 \x01(\x0b\x32$.google.cloud.apihub.v1.SpecContentsB\x06\xe0\x41\x01\xe0\x41\x04\x12\x39\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32#.google.cloud.apihub.v1.SpecDetailsB\x03\xe0\x41\x03\x12\x17\n\nsource_uri\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\rlint_response\x18\t \x01(\x0b\x32$.google.cloud.apihub.v1.LintResponseB\x03\xe0\x41\x01\x12\x45\n\nattributes\x18\n \x03(\x0b\x32,.google.cloud.apihub.v1.Spec.AttributesEntryB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x0b \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x46\n\x0cparsing_mode\x18\x0c \x01(\x0e\x32(.google.cloud.apihub.v1.Spec.ParsingModeB\x06\xe0\x41\x01\xe0\x41\x04\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01\"D\n\x0bParsingMode\x12\x1c\n\x18PARSING_MODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RELAXED\x10\x01\x12\n\n\x06STRICT\x10\x02:\x80\x01\xea\x41}\n\x1a\x61pihub.googleapis.com/Spec\x12Rprojects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}*\x05specs2\x04spec\"\xc2\x06\n\nDeployment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x45\n\x0f\x64\x65ployment_type\x18\x05 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x02\x12\x19\n\x0cresource_uri\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tendpoints\x18\x07 \x03(\tB\x03\xe0\x41\x02\x12\x19\n\x0c\x61pi_versions\x18\x08 \x03(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x39\n\x03slo\x18\x0b \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x41\n\x0b\x65nvironment\x18\x0c \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12K\n\nattributes\x18\r \x03(\x0b\x32\x32.google.cloud.apihub.v1.Deployment.AttributesEntryB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:\x80\x01\xea\x41}\n apihub.googleapis.com/Deployment\x12@projects/{project}/locations/{location}/deployments/{deployment}*\x0b\x64\x65ployments2\ndeployment\"\xd0\x04\n\x0c\x41piOperation\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x30\n\x04spec\x18\x02 \x01(\tB\"\xe0\x41\x03\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\x12>\n\x07\x64\x65tails\x18\x03 \x01(\x0b\x32(.google.cloud.apihub.v1.OperationDetailsB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12M\n\nattributes\x18\x06 \x03(\x0b\x32\x34.google.cloud.apihub.v1.ApiOperation.AttributesEntryB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:\xa3\x01\xea\x41\x9f\x01\n\"apihub.googleapis.com/ApiOperation\x12\\projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}*\rapiOperations2\x0c\x61piOperation\"\xae\x05\n\nDefinition\x12\x35\n\x06schema\x18\x04 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.SchemaB\x03\xe0\x41\x03H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x30\n\x04spec\x18\x02 \x01(\tB\"\xe0\x41\x03\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\x12:\n\x04type\x18\x03 \x01(\x0e\x32\'.google.cloud.apihub.v1.Definition.TypeB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12K\n\nattributes\x18\x07 \x03(\x0b\x32\x32.google.cloud.apihub.v1.Definition.AttributesEntryB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01\"(\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06SCHEMA\x10\x01:\x9f\x01\xea\x41\x9b\x01\n apihub.googleapis.com/Definition\x12^projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}*\x0b\x64\x65\x66initions2\ndefinitionB\x07\n\x05value\"\xbc\x08\n\tAttribute\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12N\n\x0f\x64\x65\x66inition_type\x18\x04 \x01(\x0e\x32\x30.google.cloud.apihub.v1.Attribute.DefinitionTypeB\x03\xe0\x41\x03\x12;\n\x05scope\x18\x05 \x01(\x0e\x32\'.google.cloud.apihub.v1.Attribute.ScopeB\x03\xe0\x41\x02\x12\x42\n\tdata_type\x18\x06 \x01(\x0e\x32*.google.cloud.apihub.v1.Attribute.DataTypeB\x03\xe0\x41\x02\x12K\n\x0e\x61llowed_values\x18\x07 \x03(\x0b\x32..google.cloud.apihub.v1.Attribute.AllowedValueB\x03\xe0\x41\x01\x12\x18\n\x0b\x63\x61rdinality\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01\x12\x16\n\tmandatory\x18\t \x01(\x08\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1al\n\x0c\x41llowedValue\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\timmutable\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"W\n\x0e\x44\x65\x66initionType\x12\x1f\n\x1b\x44\x45\x46INITION_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eSYSTEM_DEFINED\x10\x01\x12\x10\n\x0cUSER_DEFINED\x10\x02\"\x9f\x01\n\x05Scope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41PI\x10\x01\x12\x0b\n\x07VERSION\x10\x02\x12\x08\n\x04SPEC\x10\x03\x12\x11\n\rAPI_OPERATION\x10\x04\x12\x0e\n\nDEPLOYMENT\x10\x05\x12\x0e\n\nDEPENDENCY\x10\x06\x12\x0e\n\nDEFINITION\x10\x07\x12\x10\n\x0c\x45XTERNAL_API\x10\x08\x12\n\n\x06PLUGIN\x10\t\"E\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x45NUM\x10\x01\x12\x08\n\x04JSON\x10\x02\x12\n\n\x06STRING\x10\x03:{\xea\x41x\n\x1f\x61pihub.googleapis.com/Attribute\x12>projects/{project}/locations/{location}/attributes/{attribute}*\nattributes2\tattribute\"=\n\x0cSpecContents\x12\x15\n\x08\x63ontents\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x16\n\tmime_type\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x84\x01\n\x0bSpecDetails\x12P\n\x15open_api_spec_details\x18\x02 \x01(\x0b\x32*.google.cloud.apihub.v1.OpenApiSpecDetailsB\x03\xe0\x41\x03H\x00\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\"\x8c\x02\n\x12OpenApiSpecDetails\x12\x46\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\x31.google.cloud.apihub.v1.OpenApiSpecDetails.FormatB\x03\xe0\x41\x03\x12\x14\n\x07version\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x31\n\x05owner\x18\x03 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.OwnerB\x03\xe0\x41\x03\"e\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\x15\n\x11OPEN_API_SPEC_2_0\x10\x01\x12\x15\n\x11OPEN_API_SPEC_3_0\x10\x02\x12\x15\n\x11OPEN_API_SPEC_3_1\x10\x03\"\xd6\x01\n\x10OperationDetails\x12?\n\x0ehttp_operation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.HttpOperationH\x00\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x41\n\rdocumentation\x18\x02 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x03\x12\x17\n\ndeprecated\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\x42\x0b\n\toperation\"\xfa\x01\n\rHttpOperation\x12/\n\x04path\x18\x01 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.PathB\x03\xe0\x41\x03\x12\x41\n\x06method\x18\x02 \x01(\x0e\x32,.google.cloud.apihub.v1.HttpOperation.MethodB\x03\xe0\x41\x03\"u\n\x06Method\x12\x16\n\x12METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03GET\x10\x01\x12\x07\n\x03PUT\x10\x02\x12\x08\n\x04POST\x10\x03\x12\n\n\x06\x44\x45LETE\x10\x04\x12\x0b\n\x07OPTIONS\x10\x05\x12\x08\n\x04HEAD\x10\x06\x12\t\n\x05PATCH\x10\x07\x12\t\n\x05TRACE\x10\x08\"3\n\x04Path\x12\x11\n\x04path\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x03\";\n\x06Schema\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\traw_value\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x03\"6\n\x05Owner\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x65mail\x18\x02 \x01(\tB\x03\xe0\x41\x02\"*\n\rDocumentation\x12\x19\n\x0c\x65xternal_uri\x18\x01 \x01(\tB\x03\xe0\x41\x01\"\xe2\x03\n\x0f\x41ttributeValues\x12R\n\x0b\x65num_values\x18\x02 \x01(\x0b\x32;.google.cloud.apihub.v1.AttributeValues.EnumAttributeValuesH\x00\x12V\n\rstring_values\x18\x03 \x01(\x0b\x32=.google.cloud.apihub.v1.AttributeValues.StringAttributeValuesH\x00\x12T\n\x0bjson_values\x18\x04 \x01(\x0b\x32=.google.cloud.apihub.v1.AttributeValues.StringAttributeValuesH\x00\x12:\n\tattribute\x18\x01 \x01(\tB\'\xe0\x41\x03\xfa\x41!\n\x1f\x61pihub.googleapis.com/Attribute\x1aZ\n\x13\x45numAttributeValues\x12\x43\n\x06values\x18\x01 \x03(\x0b\x32..google.cloud.apihub.v1.Attribute.AllowedValueB\x03\xe0\x41\x02\x1a,\n\x15StringAttributeValues\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x02\x42\x07\n\x05Value\"\xbe\x07\n\nDependency\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12K\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x31.google.cloud.apihub.v1.DependencyEntityReferenceB\x06\xe0\x41\x05\xe0\x41\x02\x12K\n\x08supplier\x18\x03 \x01(\x0b\x32\x31.google.cloud.apihub.v1.DependencyEntityReferenceB\x06\xe0\x41\x05\xe0\x41\x02\x12<\n\x05state\x18\x04 \x01(\x0e\x32(.google.cloud.apihub.v1.Dependency.StateB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12M\n\x0e\x64iscovery_mode\x18\x06 \x01(\x0e\x32\x30.google.cloud.apihub.v1.Dependency.DiscoveryModeB\x03\xe0\x41\x03\x12H\n\x0c\x65rror_detail\x18\x07 \x01(\x0b\x32-.google.cloud.apihub.v1.DependencyErrorDetailB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12K\n\nattributes\x18\n \x03(\x0b\x32\x32.google.cloud.apihub.v1.Dependency.AttributesEntryB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01\";\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08PROPOSED\x10\x01\x12\r\n\tVALIDATED\x10\x02\";\n\rDiscoveryMode\x12\x1e\n\x1a\x44ISCOVERY_MODE_UNSPECIFIED\x10\x00\x12\n\n\x06MANUAL\x10\x01:\x82\x01\xea\x41\x7f\n apihub.googleapis.com/Dependency\x12\x41projects/{project}/locations/{location}/dependencies/{dependency}*\x0c\x64\x65pendencies2\ndependency\"\x8d\x01\n\x19\x44\x65pendencyEntityReference\x12!\n\x17operation_resource_name\x18\x02 \x01(\tH\x00\x12$\n\x1a\x65xternal_api_resource_name\x18\x03 \x01(\tH\x00\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x42\x0c\n\nidentifier\"\xe5\x01\n\x15\x44\x65pendencyErrorDetail\x12G\n\x05\x65rror\x18\x01 \x01(\x0e\x32\x33.google.cloud.apihub.v1.DependencyErrorDetail.ErrorB\x03\xe0\x41\x01\x12\x33\n\nerror_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"N\n\x05\x45rror\x12\x15\n\x11\x45RROR_UNSPECIFIED\x10\x00\x12\x16\n\x12SUPPLIER_NOT_FOUND\x10\x01\x12\x16\n\x12SUPPLIER_RECREATED\x10\x02\"\x9f\x03\n\x0cLintResponse\x12\x32\n\x06issues\x18\x01 \x03(\x0b\x32\x1d.google.cloud.apihub.v1.IssueB\x03\xe0\x41\x01\x12G\n\x07summary\x18\x02 \x03(\x0b\x32\x31.google.cloud.apihub.v1.LintResponse.SummaryEntryB\x03\xe0\x41\x01\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32!.google.cloud.apihub.v1.LintStateB\x03\xe0\x41\x02\x12\x13\n\x06source\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x06linter\x18\x05 \x01(\x0e\x32\x1e.google.cloud.apihub.v1.LinterB\x03\xe0\x41\x02\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x1a[\n\x0cSummaryEntry\x12\x37\n\x08severity\x18\x01 \x01(\x0e\x32 .google.cloud.apihub.v1.SeverityB\x03\xe0\x41\x02\x12\x12\n\x05\x63ount\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\"\xaf\x01\n\x05Issue\x12\x11\n\x04\x63ode\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04path\x18\x02 \x03(\tB\x03\xe0\x41\x02\x12\x14\n\x07message\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\x08severity\x18\x04 \x01(\x0e\x32 .google.cloud.apihub.v1.SeverityB\x03\xe0\x41\x02\x12\x31\n\x05range\x18\x05 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.RangeB\x03\xe0\x41\x02\"k\n\x05Range\x12\x31\n\x05start\x18\x01 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.PointB\x03\xe0\x41\x02\x12/\n\x03\x65nd\x18\x02 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.PointB\x03\xe0\x41\x02\"2\n\x05Point\x12\x11\n\x04line\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x16\n\tcharacter\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\xf3\x05\n\x0e\x41piHubInstance\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x05state\x18\x04 \x01(\x0e\x32,.google.cloud.apihub.v1.ApiHubInstance.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x42\n\x06\x63onfig\x18\x06 \x01(\x0b\x32-.google.cloud.apihub.v1.ApiHubInstance.ConfigB\x03\xe0\x41\x02\x12G\n\x06labels\x18\x07 \x03(\x0b\x32\x32.google.cloud.apihub.v1.ApiHubInstance.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tB\x03\xe0\x41\x01\x1a$\n\x06\x43onfig\x12\x1a\n\rcmek_key_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\n\n\x06\x41\x43TIVE\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06:\x97\x01\xea\x41\x93\x01\n$apihub.googleapis.com/ApiHubInstance\x12Jprojects/{project}/locations/{location}/apiHubInstances/{api_hub_instance}*\x0f\x61piHubInstances2\x0e\x61piHubInstance\"\xe4\x04\n\x0b\x45xternalApi\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tendpoints\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x12\n\x05paths\x18\x05 \x03(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x06 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12L\n\nattributes\x18\x07 \x03(\x0b\x32\x33.google.cloud.apihub.v1.ExternalApi.AttributesEntryB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:\x87\x01\xea\x41\x83\x01\n!apihub.googleapis.com/ExternalApi\x12\x43projects/{project}/locations/{location}/externalApis/{external_api}*\x0c\x65xternalApis2\x0b\x65xternalApi*U\n\tLintState\x12\x1a\n\x16LINT_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12LINT_STATE_SUCCESS\x10\x01\x12\x14\n\x10LINT_STATE_ERROR\x10\x02*9\n\x06Linter\x12\x16\n\x12LINTER_UNSPECIFIED\x10\x00\x12\x0c\n\x08SPECTRAL\x10\x01\x12\t\n\x05OTHER\x10\x02*t\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x12\n\x0eSEVERITY_ERROR\x10\x01\x12\x14\n\x10SEVERITY_WARNING\x10\x02\x12\x11\n\rSEVERITY_INFO\x10\x03\x12\x11\n\rSEVERITY_HINT\x10\x04\x42\x9b\x02\n\x1a\x63om.google.cloud.apihub.v1B\x11\x43ommonFieldsProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1\xea\x41\x65\n#aiplatform.googleapis.com/Extension\x12>projects/{project}/locations/{location}/extensions/{extension}b\x06proto3" +descriptor_data = "\n*google/cloud/apihub/v1/common_fields.proto\x12\x16google.cloud.apihub.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc2\n\n\x03\x41pi\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x31\n\x05owner\x18\x05 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.OwnerB\x03\xe0\x41\x01\x12\x37\n\x08versions\x18\x06 \x03(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x41\n\x0btarget_user\x18\t \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12:\n\x04team\x18\n \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x43\n\rbusiness_unit\x18\x0b \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x44\n\x0ematurity_level\x18\x0c \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x44\n\nattributes\x18\r \x03(\x0b\x32+.google.cloud.apihub.v1.Api.AttributesEntryB\x03\xe0\x41\x01\x12?\n\tapi_style\x18\x0e \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12?\n\x10selected_version\x18\x0f \x01(\tB%\xe0\x41\x01\xfa\x41\x1f\n\x1d\x61pihub.googleapis.com/Version\x12\x46\n\x10\x61pi_requirements\x18\x10 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x18\n\x0b\x66ingerprint\x18\x11 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0fsource_metadata\x18\x12 \x03(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\x12Q\n\x1b\x61pi_functional_requirements\x18\x13 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12P\n\x1a\x61pi_technical_requirements\x18\x14 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:]\xea\x41Z\n\x19\x61pihub.googleapis.com/Api\x12\x32projects/{project}/locations/{location}/apis/{api}*\x04\x61pis2\x03\x61pi\"\xee\x08\n\x07Version\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x31\n\x05specs\x18\x05 \x03(\tB\"\xe0\x41\x03\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\x12\x42\n\x0e\x61pi_operations\x18\x06 \x03(\tB*\xe0\x41\x03\xfa\x41$\n\"apihub.googleapis.com/ApiOperation\x12=\n\x0b\x64\x65\x66initions\x18\x07 \x03(\tB(\xe0\x41\x03\xfa\x41\"\n apihub.googleapis.com/Definition\x12=\n\x0b\x64\x65ployments\x18\x08 \x03(\tB(\xe0\x41\x01\xfa\x41\"\n apihub.googleapis.com/Deployment\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12?\n\tlifecycle\x18\x0b \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12@\n\ncompliance\x18\x0c \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x43\n\raccreditation\x18\r \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12H\n\nattributes\x18\x0e \x03(\x0b\x32/.google.cloud.apihub.v1.Version.AttributesEntryB\x03\xe0\x41\x01\x12\x45\n\x13selected_deployment\x18\x10 \x01(\tB(\xe0\x41\x01\xfa\x41\"\n apihub.googleapis.com/Deployment\x12\x44\n\x0fsource_metadata\x18\x11 \x03(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:|\xea\x41y\n\x1d\x61pihub.googleapis.com/Version\x12\x45projects/{project}/locations/{location}/apis/{api}/versions/{version}*\x08versions2\x07version\"\xf4\x07\n\x04Spec\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12?\n\tspec_type\x18\x03 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x02\x12>\n\x08\x63ontents\x18\x04 \x01(\x0b\x32$.google.cloud.apihub.v1.SpecContentsB\x06\xe0\x41\x01\xe0\x41\x04\x12\x39\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32#.google.cloud.apihub.v1.SpecDetailsB\x03\xe0\x41\x03\x12\x17\n\nsource_uri\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\rlint_response\x18\t \x01(\x0b\x32$.google.cloud.apihub.v1.LintResponseB\x03\xe0\x41\x01\x12\x45\n\nattributes\x18\n \x03(\x0b\x32,.google.cloud.apihub.v1.Spec.AttributesEntryB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x0b \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x46\n\x0cparsing_mode\x18\x0c \x01(\x0e\x32(.google.cloud.apihub.v1.Spec.ParsingModeB\x06\xe0\x41\x01\xe0\x41\x04\x12\x44\n\x0fsource_metadata\x18\r \x03(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01\"D\n\x0bParsingMode\x12\x1c\n\x18PARSING_MODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RELAXED\x10\x01\x12\n\n\x06STRICT\x10\x02:\x80\x01\xea\x41}\n\x1a\x61pihub.googleapis.com/Spec\x12Rprojects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}*\x05specs2\x04spec\"\xce\x08\n\nDeployment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x45\n\x0f\x64\x65ployment_type\x18\x05 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x02\x12\x19\n\x0cresource_uri\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tendpoints\x18\x07 \x03(\tB\x03\xe0\x41\x02\x12\x19\n\x0c\x61pi_versions\x18\x08 \x03(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x39\n\x03slo\x18\x0b \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x41\n\x0b\x65nvironment\x18\x0c \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12K\n\nattributes\x18\r \x03(\x0b\x32\x32.google.cloud.apihub.v1.Deployment.AttributesEntryB\x03\xe0\x41\x01\x12\x44\n\x0fsource_metadata\x18\x0e \x03(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\x12\x44\n\x0emanagement_url\x18\x0f \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12@\n\nsource_uri\x18\x10 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x1b\n\x0esource_project\x18\x11 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12source_environment\x18\x12 \x01(\tB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:\x80\x01\xea\x41}\n apihub.googleapis.com/Deployment\x12@projects/{project}/locations/{location}/deployments/{deployment}*\x0b\x64\x65ployments2\ndeployment\"\x96\x05\n\x0c\x41piOperation\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x30\n\x04spec\x18\x02 \x01(\tB\"\xe0\x41\x03\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\x12>\n\x07\x64\x65tails\x18\x03 \x01(\x0b\x32(.google.cloud.apihub.v1.OperationDetailsB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12M\n\nattributes\x18\x06 \x03(\x0b\x32\x34.google.cloud.apihub.v1.ApiOperation.AttributesEntryB\x03\xe0\x41\x01\x12\x44\n\x0fsource_metadata\x18\x07 \x03(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:\xa3\x01\xea\x41\x9f\x01\n\"apihub.googleapis.com/ApiOperation\x12\\projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}*\rapiOperations2\x0c\x61piOperation\"\xae\x05\n\nDefinition\x12\x35\n\x06schema\x18\x04 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.SchemaB\x03\xe0\x41\x03H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x30\n\x04spec\x18\x02 \x01(\tB\"\xe0\x41\x03\xfa\x41\x1c\n\x1a\x61pihub.googleapis.com/Spec\x12:\n\x04type\x18\x03 \x01(\x0e\x32\'.google.cloud.apihub.v1.Definition.TypeB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12K\n\nattributes\x18\x07 \x03(\x0b\x32\x32.google.cloud.apihub.v1.Definition.AttributesEntryB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01\"(\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06SCHEMA\x10\x01:\x9f\x01\xea\x41\x9b\x01\n apihub.googleapis.com/Definition\x12^projects/{project}/locations/{location}/apis/{api}/versions/{version}/definitions/{definition}*\x0b\x64\x65\x66initions2\ndefinitionB\x07\n\x05value\"\xc5\x08\n\tAttribute\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12N\n\x0f\x64\x65\x66inition_type\x18\x04 \x01(\x0e\x32\x30.google.cloud.apihub.v1.Attribute.DefinitionTypeB\x03\xe0\x41\x03\x12;\n\x05scope\x18\x05 \x01(\x0e\x32\'.google.cloud.apihub.v1.Attribute.ScopeB\x03\xe0\x41\x02\x12\x42\n\tdata_type\x18\x06 \x01(\x0e\x32*.google.cloud.apihub.v1.Attribute.DataTypeB\x03\xe0\x41\x02\x12K\n\x0e\x61llowed_values\x18\x07 \x03(\x0b\x32..google.cloud.apihub.v1.Attribute.AllowedValueB\x03\xe0\x41\x01\x12\x18\n\x0b\x63\x61rdinality\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01\x12\x16\n\tmandatory\x18\t \x01(\x08\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1al\n\x0c\x41llowedValue\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\timmutable\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"W\n\x0e\x44\x65\x66initionType\x12\x1f\n\x1b\x44\x45\x46INITION_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eSYSTEM_DEFINED\x10\x01\x12\x10\n\x0cUSER_DEFINED\x10\x02\"\x9f\x01\n\x05Scope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41PI\x10\x01\x12\x0b\n\x07VERSION\x10\x02\x12\x08\n\x04SPEC\x10\x03\x12\x11\n\rAPI_OPERATION\x10\x04\x12\x0e\n\nDEPLOYMENT\x10\x05\x12\x0e\n\nDEPENDENCY\x10\x06\x12\x0e\n\nDEFINITION\x10\x07\x12\x10\n\x0c\x45XTERNAL_API\x10\x08\x12\n\n\x06PLUGIN\x10\t\"N\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x45NUM\x10\x01\x12\x08\n\x04JSON\x10\x02\x12\n\n\x06STRING\x10\x03\x12\x07\n\x03URI\x10\x04:{\xea\x41x\n\x1f\x61pihub.googleapis.com/Attribute\x12>projects/{project}/locations/{location}/attributes/{attribute}*\nattributes2\tattribute\"=\n\x0cSpecContents\x12\x15\n\x08\x63ontents\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x16\n\tmime_type\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x84\x01\n\x0bSpecDetails\x12P\n\x15open_api_spec_details\x18\x02 \x01(\x0b\x32*.google.cloud.apihub.v1.OpenApiSpecDetailsB\x03\xe0\x41\x03H\x00\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\"\x8c\x02\n\x12OpenApiSpecDetails\x12\x46\n\x06\x66ormat\x18\x01 \x01(\x0e\x32\x31.google.cloud.apihub.v1.OpenApiSpecDetails.FormatB\x03\xe0\x41\x03\x12\x14\n\x07version\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x31\n\x05owner\x18\x03 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.OwnerB\x03\xe0\x41\x03\"e\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\x15\n\x11OPEN_API_SPEC_2_0\x10\x01\x12\x15\n\x11OPEN_API_SPEC_3_0\x10\x02\x12\x15\n\x11OPEN_API_SPEC_3_1\x10\x03\"\xd6\x01\n\x10OperationDetails\x12?\n\x0ehttp_operation\x18\x04 \x01(\x0b\x32%.google.cloud.apihub.v1.HttpOperationH\x00\x12\x18\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x02 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x17\n\ndeprecated\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x42\x0b\n\toperation\"\xfa\x01\n\rHttpOperation\x12/\n\x04path\x18\x01 \x01(\x0b\x32\x1c.google.cloud.apihub.v1.PathB\x03\xe0\x41\x01\x12\x41\n\x06method\x18\x02 \x01(\x0e\x32,.google.cloud.apihub.v1.HttpOperation.MethodB\x03\xe0\x41\x01\"u\n\x06Method\x12\x16\n\x12METHOD_UNSPECIFIED\x10\x00\x12\x07\n\x03GET\x10\x01\x12\x07\n\x03PUT\x10\x02\x12\x08\n\x04POST\x10\x03\x12\n\n\x06\x44\x45LETE\x10\x04\x12\x0b\n\x07OPTIONS\x10\x05\x12\x08\n\x04HEAD\x10\x06\x12\t\n\x05PATCH\x10\x07\x12\t\n\x05TRACE\x10\x08\"3\n\x04Path\x12\x11\n\x04path\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x01\";\n\x06Schema\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\traw_value\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x03\"6\n\x05Owner\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x65mail\x18\x02 \x01(\tB\x03\xe0\x41\x02\"*\n\rDocumentation\x12\x19\n\x0c\x65xternal_uri\x18\x01 \x01(\tB\x03\xe0\x41\x01\"\xb7\x04\n\x0f\x41ttributeValues\x12R\n\x0b\x65num_values\x18\x02 \x01(\x0b\x32;.google.cloud.apihub.v1.AttributeValues.EnumAttributeValuesH\x00\x12V\n\rstring_values\x18\x03 \x01(\x0b\x32=.google.cloud.apihub.v1.AttributeValues.StringAttributeValuesH\x00\x12T\n\x0bjson_values\x18\x04 \x01(\x0b\x32=.google.cloud.apihub.v1.AttributeValues.StringAttributeValuesH\x00\x12S\n\nuri_values\x18\x05 \x01(\x0b\x32=.google.cloud.apihub.v1.AttributeValues.StringAttributeValuesH\x00\x12:\n\tattribute\x18\x01 \x01(\tB\'\xe0\x41\x03\xfa\x41!\n\x1f\x61pihub.googleapis.com/Attribute\x1aZ\n\x13\x45numAttributeValues\x12\x43\n\x06values\x18\x01 \x03(\x0b\x32..google.cloud.apihub.v1.Attribute.AllowedValueB\x03\xe0\x41\x02\x1a,\n\x15StringAttributeValues\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x02\x42\x07\n\x05Value\"\xbe\x07\n\nDependency\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12K\n\x08\x63onsumer\x18\x02 \x01(\x0b\x32\x31.google.cloud.apihub.v1.DependencyEntityReferenceB\x06\xe0\x41\x05\xe0\x41\x02\x12K\n\x08supplier\x18\x03 \x01(\x0b\x32\x31.google.cloud.apihub.v1.DependencyEntityReferenceB\x06\xe0\x41\x05\xe0\x41\x02\x12<\n\x05state\x18\x04 \x01(\x0e\x32(.google.cloud.apihub.v1.Dependency.StateB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12M\n\x0e\x64iscovery_mode\x18\x06 \x01(\x0e\x32\x30.google.cloud.apihub.v1.Dependency.DiscoveryModeB\x03\xe0\x41\x03\x12H\n\x0c\x65rror_detail\x18\x07 \x01(\x0b\x32-.google.cloud.apihub.v1.DependencyErrorDetailB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12K\n\nattributes\x18\n \x03(\x0b\x32\x32.google.cloud.apihub.v1.Dependency.AttributesEntryB\x03\xe0\x41\x01\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01\";\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08PROPOSED\x10\x01\x12\r\n\tVALIDATED\x10\x02\";\n\rDiscoveryMode\x12\x1e\n\x1a\x44ISCOVERY_MODE_UNSPECIFIED\x10\x00\x12\n\n\x06MANUAL\x10\x01:\x82\x01\xea\x41\x7f\n apihub.googleapis.com/Dependency\x12\x41projects/{project}/locations/{location}/dependencies/{dependency}*\x0c\x64\x65pendencies2\ndependency\"\x8d\x01\n\x19\x44\x65pendencyEntityReference\x12!\n\x17operation_resource_name\x18\x02 \x01(\tH\x00\x12$\n\x1a\x65xternal_api_resource_name\x18\x03 \x01(\tH\x00\x12\x19\n\x0c\x64isplay_name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x42\x0c\n\nidentifier\"\xe5\x01\n\x15\x44\x65pendencyErrorDetail\x12G\n\x05\x65rror\x18\x01 \x01(\x0e\x32\x33.google.cloud.apihub.v1.DependencyErrorDetail.ErrorB\x03\xe0\x41\x01\x12\x33\n\nerror_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"N\n\x05\x45rror\x12\x15\n\x11\x45RROR_UNSPECIFIED\x10\x00\x12\x16\n\x12SUPPLIER_NOT_FOUND\x10\x01\x12\x16\n\x12SUPPLIER_RECREATED\x10\x02\"\x9f\x03\n\x0cLintResponse\x12\x32\n\x06issues\x18\x01 \x03(\x0b\x32\x1d.google.cloud.apihub.v1.IssueB\x03\xe0\x41\x01\x12G\n\x07summary\x18\x02 \x03(\x0b\x32\x31.google.cloud.apihub.v1.LintResponse.SummaryEntryB\x03\xe0\x41\x01\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32!.google.cloud.apihub.v1.LintStateB\x03\xe0\x41\x02\x12\x13\n\x06source\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x06linter\x18\x05 \x01(\x0e\x32\x1e.google.cloud.apihub.v1.LinterB\x03\xe0\x41\x02\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x1a[\n\x0cSummaryEntry\x12\x37\n\x08severity\x18\x01 \x01(\x0e\x32 .google.cloud.apihub.v1.SeverityB\x03\xe0\x41\x02\x12\x12\n\x05\x63ount\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\"\xaf\x01\n\x05Issue\x12\x11\n\x04\x63ode\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04path\x18\x02 \x03(\tB\x03\xe0\x41\x02\x12\x14\n\x07message\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\x08severity\x18\x04 \x01(\x0e\x32 .google.cloud.apihub.v1.SeverityB\x03\xe0\x41\x02\x12\x31\n\x05range\x18\x05 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.RangeB\x03\xe0\x41\x02\"k\n\x05Range\x12\x31\n\x05start\x18\x01 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.PointB\x03\xe0\x41\x02\x12/\n\x03\x65nd\x18\x02 \x01(\x0b\x32\x1d.google.cloud.apihub.v1.PointB\x03\xe0\x41\x02\"2\n\x05Point\x12\x11\n\x04line\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x16\n\tcharacter\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\xd2\x07\n\x0e\x41piHubInstance\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x05state\x18\x04 \x01(\x0e\x32,.google.cloud.apihub.v1.ApiHubInstance.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x42\n\x06\x63onfig\x18\x06 \x01(\x0b\x32-.google.cloud.apihub.v1.ApiHubInstance.ConfigB\x03\xe0\x41\x02\x12G\n\x06labels\x18\x07 \x03(\x0b\x32\x32.google.cloud.apihub.v1.ApiHubInstance.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tB\x03\xe0\x41\x01\x1a\x82\x02\n\x06\x43onfig\x12\x1a\n\rcmek_key_name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0e\x64isable_search\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1c\n\x0fvertex_location\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12Z\n\x0f\x65ncryption_type\x18\x04 \x01(\x0e\x32<.google.cloud.apihub.v1.ApiHubInstance.Config.EncryptionTypeB\x03\xe0\x41\x01\"E\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04GMEK\x10\x01\x12\x08\n\x04\x43MEK\x10\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\n\n\x06\x41\x43TIVE\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06:\x97\x01\xea\x41\x93\x01\n$apihub.googleapis.com/ApiHubInstance\x12Jprojects/{project}/locations/{location}/apiHubInstances/{api_hub_instance}*\x0f\x61piHubInstances2\x0e\x61piHubInstance\"\xe4\x04\n\x0b\x45xternalApi\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tendpoints\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x12\n\x05paths\x18\x05 \x03(\tB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\x06 \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12L\n\nattributes\x18\x07 \x03(\x0b\x32\x33.google.cloud.apihub.v1.ExternalApi.AttributesEntryB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1aZ\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValues:\x02\x38\x01:\x87\x01\xea\x41\x83\x01\n!apihub.googleapis.com/ExternalApi\x12\x43projects/{project}/locations/{location}/externalApis/{external_api}*\x0c\x65xternalApis2\x0b\x65xternalApi\"Y\n\x11\x43onfigValueOption\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\"%\n\x06Secret\x12\x1b\n\x0esecret_version\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xf2\x03\n\x16\x43onfigVariableTemplate\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12Q\n\nvalue_type\x18\x02 \x01(\x0e\x32\x38.google.cloud.apihub.v1.ConfigVariableTemplate.ValueTypeB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1d\n\x10validation_regex\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08required\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x12\x44\n\x0c\x65num_options\x18\x06 \x03(\x0b\x32).google.cloud.apihub.v1.ConfigValueOptionB\x03\xe0\x41\x01\x12L\n\x14multi_select_options\x18\x07 \x03(\x0b\x32).google.cloud.apihub.v1.ConfigValueOptionB\x03\xe0\x41\x01\"\x8f\x01\n\tValueType\x12\x1a\n\x16VALUE_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06STRING\x10\x01\x12\x07\n\x03INT\x10\x02\x12\x08\n\x04\x42OOL\x10\x03\x12\n\n\x06SECRET\x10\x04\x12\x08\n\x04\x45NUM\x10\x05\x12\x10\n\x0cMULTI_SELECT\x10\x06\x12\x10\n\x0cMULTI_STRING\x10\x07\x12\r\n\tMULTI_INT\x10\x08\"\xba\x05\n\x0e\x43onfigVariable\x12\x1b\n\x0cstring_value\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x00\x12\x18\n\tint_value\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x12\x19\n\nbool_value\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01H\x00\x12;\n\x0csecret_value\x18\x05 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.SecretB\x03\xe0\x41\x01H\x00\x12\x44\n\nenum_value\x18\x06 \x01(\x0b\x32).google.cloud.apihub.v1.ConfigValueOptionB\x03\xe0\x41\x01H\x00\x12\\\n\x13multi_select_values\x18\x07 \x01(\x0b\x32\x38.google.cloud.apihub.v1.ConfigVariable.MultiSelectValuesB\x03\xe0\x41\x01H\x00\x12\\\n\x13multi_string_values\x18\x08 \x01(\x0b\x32\x38.google.cloud.apihub.v1.ConfigVariable.MultiStringValuesB\x03\xe0\x41\x01H\x00\x12V\n\x10multi_int_values\x18\t \x01(\x0b\x32\x35.google.cloud.apihub.v1.ConfigVariable.MultiIntValuesB\x03\xe0\x41\x01H\x00\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x03\x1aS\n\x11MultiSelectValues\x12>\n\x06values\x18\x01 \x03(\x0b\x32).google.cloud.apihub.v1.ConfigValueOptionB\x03\xe0\x41\x01\x1a(\n\x11MultiStringValues\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a%\n\x0eMultiIntValues\x12\x13\n\x06values\x18\x01 \x03(\x05\x42\x03\xe0\x41\x01\x42\x07\n\x05value\"`\n\x1aGoogleServiceAccountConfig\x12\x42\n\x0fservice_account\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccount\"\xce\x07\n\nAuthConfig\x12[\n\x1dgoogle_service_account_config\x18\x02 \x01(\x0b\x32\x32.google.cloud.apihub.v1.GoogleServiceAccountConfigH\x00\x12U\n\x14user_password_config\x18\x03 \x01(\x0b\x32\x35.google.cloud.apihub.v1.AuthConfig.UserPasswordConfigH\x00\x12I\n\x0e\x61pi_key_config\x18\x04 \x01(\x0b\x32/.google.cloud.apihub.v1.AuthConfig.ApiKeyConfigH\x00\x12l\n oauth2_client_credentials_config\x18\x05 \x01(\x0b\x32@.google.cloud.apihub.v1.AuthConfig.Oauth2ClientCredentialsConfigH\x00\x12\x38\n\tauth_type\x18\x01 \x01(\x0e\x32 .google.cloud.apihub.v1.AuthTypeB\x03\xe0\x41\x02\x1a\x62\n\x12UserPasswordConfig\x12\x15\n\x08username\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x35\n\x08password\x18\x02 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.SecretB\x03\xe0\x41\x02\x1as\n\x1dOauth2ClientCredentialsConfig\x12\x16\n\tclient_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12:\n\rclient_secret\x18\x02 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.SecretB\x03\xe0\x41\x02\x1a\xb5\x02\n\x0c\x41piKeyConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x34\n\x07\x61pi_key\x18\x02 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.SecretB\x03\xe0\x41\x02\x12g\n\x15http_element_location\x18\x03 \x01(\x0e\x32\x43.google.cloud.apihub.v1.AuthConfig.ApiKeyConfig.HttpElementLocationB\x03\xe0\x41\x02\"s\n\x13HttpElementLocation\x12%\n!HTTP_ELEMENT_LOCATION_UNSPECIFIED\x10\x00\x12\t\n\x05QUERY\x10\x01\x12\n\n\x06HEADER\x10\x02\x12\x08\n\x04PATH\x10\x03\x12\x08\n\x04\x42ODY\x10\x04\x12\n\n\x06\x43OOKIE\x10\x05\x42\x08\n\x06\x63onfig\"\xbf\x04\n\x0eSourceMetadata\x12o\n\x1dplugin_instance_action_source\x18\x01 \x01(\x0b\x32\x41.google.cloud.apihub.v1.SourceMetadata.PluginInstanceActionSourceB\x03\xe0\x41\x03H\x00\x12K\n\x0bsource_type\x18\x02 \x01(\x0e\x32\x31.google.cloud.apihub.v1.SourceMetadata.SourceTypeB\x03\xe0\x41\x03\x12!\n\x14original_resource_id\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x1doriginal_resource_create_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x46\n\x1doriginal_resource_update_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1a{\n\x1aPluginInstanceActionSource\x12\x45\n\x0fplugin_instance\x18\x01 \x01(\tB,\xe0\x41\x03\xfa\x41&\n$apihub.googleapis.com/PluginInstance\x12\x16\n\taction_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\"5\n\nSourceType\x12\x1b\n\x17SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06PLUGIN\x10\x01\x42\x08\n\x06source\"\x90\x08\n\x18\x44iscoveredApiObservation\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12J\n\x05style\x18\x02 \x01(\x0e\x32\x36.google.cloud.apihub.v1.DiscoveredApiObservation.StyleB\x03\xe0\x41\x01\x12\x17\n\nserver_ips\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x15\n\x08hostname\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x41\n\x18last_event_detected_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12\x43\n\x10source_locations\x18\x06 \x03(\tB)\xe0\x41\x01\xfa\x41#\n!locations.googleapis.com/Location\x12 \n\x13\x61pi_operation_count\x18\x07 \x01(\x03\x42\x03\xe0\x41\x01\x12\x13\n\x06origin\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12V\n\x0csource_types\x18\t \x03(\x0e\x32;.google.cloud.apihub.v1.DiscoveredApiObservation.SourceTypeB\x03\xe0\x41\x01\x12#\n\x16known_operations_count\x18\n \x01(\x03\x42\x03\xe0\x41\x03\x12%\n\x18unknown_operations_count\x18\x0b \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x44\n\x0fsource_metadata\x18\x0e \x01(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\"?\n\x05Style\x12\x15\n\x11STYLE_UNSPECIFIED\x10\x00\x12\x08\n\x04REST\x10\x01\x12\x08\n\x04GRPC\x10\x02\x12\x0b\n\x07GRAPHQL\x10\x03\"C\n\nSourceType\x12\x1b\n\x17SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07GCP_XLB\x10\x01\x12\x0b\n\x07GCP_ILB\x10\x02:\xc9\x01\xea\x41\xc5\x01\n.apihub.googleapis.com/DiscoveredApiObservation\x12^projects/{project}/locations/{location}/discoveredApiObservations/{discovered_api_observation}*\x19\x64iscoveredApiObservations2\x18\x64iscoveredApiObservation\"\xd8\x07\n\x16\x44iscoveredApiOperation\x12K\n\x0ehttp_operation\x18\x02 \x01(\x0b\x32,.google.cloud.apihub.v1.HttpOperationDetailsB\x03\xe0\x41\x01H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x38\n\x0f\x66irst_seen_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12\x37\n\x0elast_seen_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\x03\x42\x03\xe0\x41\x01\x12Z\n\x0e\x63lassification\x18\x06 \x01(\x0e\x32=.google.cloud.apihub.v1.DiscoveredApiOperation.ClassificationB\x03\xe0\x41\x03\x12V\n\rmatch_results\x18\x07 \x03(\x0b\x32:.google.cloud.apihub.v1.DiscoveredApiOperation.MatchResultB\x03\xe0\x41\x03\x12\x44\n\x0fsource_metadata\x18\x08 \x01(\x0b\x32&.google.cloud.apihub.v1.SourceMetadataB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1a \n\x0bMatchResult\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\"H\n\x0e\x43lassification\x12\x1e\n\x1a\x43LASSIFICATION_UNSPECIFIED\x10\x00\x12\t\n\x05KNOWN\x10\x01\x12\x0b\n\x07UNKNOWN\x10\x02:\xf7\x01\xea\x41\xf3\x01\n,apihub.googleapis.com/DiscoveredApiOperation\x12\x91\x01projects/{project}/locations/{location}/discoveredApiObservations/{discovered_api_observation}/discoveredApiOperations/{discovered_api_operation}*\x17\x64iscoveredApiOperations2\x16\x64iscoveredApiOperationB\x0b\n\toperation\"\xa4\x0c\n\x14HttpOperationDetails\x12\x42\n\x0ehttp_operation\x18\x01 \x01(\x0b\x32%.google.cloud.apihub.v1.HttpOperationB\x03\xe0\x41\x02\x12P\n\x0bpath_params\x18\x02 \x03(\x0b\x32\x36.google.cloud.apihub.v1.HttpOperationDetails.PathParamB\x03\xe0\x41\x01\x12X\n\x0cquery_params\x18\x03 \x03(\x0b\x32=.google.cloud.apihub.v1.HttpOperationDetails.QueryParamsEntryB\x03\xe0\x41\x01\x12N\n\x07request\x18\x04 \x01(\x0b\x32\x38.google.cloud.apihub.v1.HttpOperationDetails.HttpRequestB\x03\xe0\x41\x01\x12P\n\x08response\x18\x05 \x01(\x0b\x32\x39.google.cloud.apihub.v1.HttpOperationDetails.HttpResponseB\x03\xe0\x41\x01\x1aq\n\tPathParam\x12\x15\n\x08position\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12M\n\tdata_type\x18\x02 \x01(\x0e\x32\x35.google.cloud.apihub.v1.HttpOperationDetails.DataTypeB\x03\xe0\x41\x01\x1a\x82\x01\n\nQueryParam\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05\x63ount\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x12M\n\tdata_type\x18\x03 \x01(\x0e\x32\x35.google.cloud.apihub.v1.HttpOperationDetails.DataTypeB\x03\xe0\x41\x01\x1ao\n\x06Header\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12H\n\tdata_type\x18\x03 \x01(\x0e\x32\x35.google.cloud.apihub.v1.HttpOperationDetails.DataType\x1a\xcf\x01\n\x0bHttpRequest\x12[\n\x07headers\x18\x01 \x03(\x0b\x32\x45.google.cloud.apihub.v1.HttpOperationDetails.HttpRequest.HeadersEntryB\x03\xe0\x41\x01\x1a\x63\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.apihub.v1.HttpOperationDetails.Header:\x02\x38\x01\x1a\xf2\x02\n\x0cHttpResponse\x12\\\n\x07headers\x18\x01 \x03(\x0b\x32\x46.google.cloud.apihub.v1.HttpOperationDetails.HttpResponse.HeadersEntryB\x03\xe0\x41\x01\x12i\n\x0eresponse_codes\x18\x02 \x03(\x0b\x32L.google.cloud.apihub.v1.HttpOperationDetails.HttpResponse.ResponseCodesEntryB\x03\xe0\x41\x01\x1a\x63\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.apihub.v1.HttpOperationDetails.Header:\x02\x38\x01\x1a\x34\n\x12ResponseCodesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1ak\n\x10QueryParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x46\n\x05value\x18\x02 \x01(\x0b\x32\x37.google.cloud.apihub.v1.HttpOperationDetails.QueryParam:\x02\x38\x01\"]\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x42OOL\x10\x01\x12\x0b\n\x07INTEGER\x10\x02\x12\t\n\x05\x46LOAT\x10\x03\x12\n\n\x06STRING\x10\x04\x12\x08\n\x04UUID\x10\x05*U\n\tLintState\x12\x1a\n\x16LINT_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12LINT_STATE_SUCCESS\x10\x01\x12\x14\n\x10LINT_STATE_ERROR\x10\x02*9\n\x06Linter\x12\x16\n\x12LINTER_UNSPECIFIED\x10\x00\x12\x0c\n\x08SPECTRAL\x10\x01\x12\t\n\x05OTHER\x10\x02*t\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x12\n\x0eSEVERITY_ERROR\x10\x01\x12\x14\n\x10SEVERITY_WARNING\x10\x02\x12\x11\n\rSEVERITY_INFO\x10\x03\x12\x11\n\rSEVERITY_HINT\x10\x04*\x8d\x01\n\x08\x41uthType\x12\x19\n\x15\x41UTH_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07NO_AUTH\x10\x01\x12\x1a\n\x16GOOGLE_SERVICE_ACCOUNT\x10\x02\x12\x11\n\rUSER_PASSWORD\x10\x03\x12\x0b\n\x07\x41PI_KEY\x10\x04\x12\x1d\n\x19OAUTH2_CLIENT_CREDENTIALS\x10\x05*T\n\x0ePluginCategory\x12\x1f\n\x1bPLUGIN_CATEGORY_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x41PI_GATEWAY\x10\x01\x12\x10\n\x0c\x41PI_PRODUCER\x10\x02\x42\xf7\x02\n\x1a\x63om.google.cloud.apihub.v1B\x11\x43ommonFieldsProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1\xea\x41\x65\n#aiplatform.googleapis.com/Extension\x12>projects/{project}/locations/{location}/extensions/{extension}\xea\x41Y\n!iam.googleapis.com/ServiceAccount\x12\x34projects/{project}/serviceAccounts/{service_account}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -81,11 +81,44 @@ module V1 OperationMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.OperationMetadata").msgclass ApiHubInstance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApiHubInstance").msgclass ApiHubInstance::Config = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApiHubInstance.Config").msgclass + ApiHubInstance::Config::EncryptionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApiHubInstance.Config.EncryptionType").enummodule ApiHubInstance::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApiHubInstance.State").enummodule ExternalApi = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExternalApi").msgclass + ConfigValueOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigValueOption").msgclass + Secret = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Secret").msgclass + ConfigVariableTemplate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigVariableTemplate").msgclass + ConfigVariableTemplate::ValueType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigVariableTemplate.ValueType").enummodule + ConfigVariable = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigVariable").msgclass + ConfigVariable::MultiSelectValues = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigVariable.MultiSelectValues").msgclass + ConfigVariable::MultiStringValues = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigVariable.MultiStringValues").msgclass + ConfigVariable::MultiIntValues = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ConfigVariable.MultiIntValues").msgclass + GoogleServiceAccountConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GoogleServiceAccountConfig").msgclass + AuthConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.AuthConfig").msgclass + AuthConfig::UserPasswordConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.AuthConfig.UserPasswordConfig").msgclass + AuthConfig::Oauth2ClientCredentialsConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.AuthConfig.Oauth2ClientCredentialsConfig").msgclass + AuthConfig::ApiKeyConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.AuthConfig.ApiKeyConfig").msgclass + AuthConfig::ApiKeyConfig::HttpElementLocation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.AuthConfig.ApiKeyConfig.HttpElementLocation").enummodule + SourceMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.SourceMetadata").msgclass + SourceMetadata::PluginInstanceActionSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.SourceMetadata.PluginInstanceActionSource").msgclass + SourceMetadata::SourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.SourceMetadata.SourceType").enummodule + DiscoveredApiObservation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DiscoveredApiObservation").msgclass + DiscoveredApiObservation::Style = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DiscoveredApiObservation.Style").enummodule + DiscoveredApiObservation::SourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DiscoveredApiObservation.SourceType").enummodule + DiscoveredApiOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DiscoveredApiOperation").msgclass + DiscoveredApiOperation::MatchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DiscoveredApiOperation.MatchResult").msgclass + DiscoveredApiOperation::Classification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DiscoveredApiOperation.Classification").enummodule + HttpOperationDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails").msgclass + HttpOperationDetails::PathParam = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails.PathParam").msgclass + HttpOperationDetails::QueryParam = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails.QueryParam").msgclass + HttpOperationDetails::Header = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails.Header").msgclass + HttpOperationDetails::HttpRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails.HttpRequest").msgclass + HttpOperationDetails::HttpResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails.HttpResponse").msgclass + HttpOperationDetails::DataType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.HttpOperationDetails.DataType").enummodule LintState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.LintState").enummodule Linter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Linter").enummodule Severity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Severity").enummodule + AuthType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.AuthType").enummodule + PluginCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginCategory").enummodule end end end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/curate_service_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/curate_service_pb.rb new file mode 100644 index 000000000000..1098c4e32687 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/curate_service_pb.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/apihub/v1/curate_service.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' +require 'google/protobuf/empty_pb' +require 'google/protobuf/field_mask_pb' +require 'google/protobuf/timestamp_pb' + + +descriptor_data = "\n+google/cloud/apihub/v1/curate_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa2\x01\n\x15\x43reateCurationRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x61pihub.googleapis.com/Curation\x12\x18\n\x0b\x63uration_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x37\n\x08\x63uration\x18\x03 \x01(\x0b\x32 .google.cloud.apihub.v1.CurationB\x03\xe0\x41\x02\"J\n\x12GetCurationRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x61pihub.googleapis.com/Curation\"\x86\x01\n\x15UpdateCurationRequest\x12\x37\n\x08\x63uration\x18\x01 \x01(\x0b\x32 .google.cloud.apihub.v1.CurationB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"M\n\x15\x44\x65leteCurationRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x61pihub.googleapis.com/Curation\"\x94\x01\n\x14ListCurationsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1e\x61pihub.googleapis.com/Curation\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"e\n\x15ListCurationsResponse\x12\x33\n\tcurations\x18\x01 \x03(\x0b\x32 .google.cloud.apihub.v1.Curation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc4\x07\n\x08\x43uration\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x37\n\x08\x65ndpoint\x18\x04 \x01(\x0b\x32 .google.cloud.apihub.v1.EndpointB\x03\xe0\x41\x02\x12]\n\x17plugin_instance_actions\x18\x05 \x03(\x0b\x32\x37.google.cloud.apihub.v1.Curation.PluginInstanceActionIDB\x03\xe0\x41\x03\x12V\n\x14last_execution_state\x18\x06 \x01(\x0e\x32\x33.google.cloud.apihub.v1.Curation.LastExecutionStateB\x03\xe0\x41\x03\x12R\n\x19last_execution_error_code\x18\x07 \x01(\x0e\x32*.google.cloud.apihub.v1.Curation.ErrorCodeB\x03\xe0\x41\x03\x12)\n\x1clast_execution_error_message\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1aw\n\x16PluginInstanceActionID\x12\x45\n\x0fplugin_instance\x18\x01 \x01(\tB,\xe0\x41\x03\xfa\x41&\n$apihub.googleapis.com/PluginInstance\x12\x16\n\taction_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\"U\n\x12LastExecutionState\x12$\n LAST_EXECUTION_STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"M\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\x12\x10\n\x0cUNAUTHORIZED\x10\x02:v\xea\x41s\n\x1e\x61pihub.googleapis.com/Curation\x12\xda\x41\x06parent\x82\xd3\xe4\x93\x02/\x12-/v1/{parent=projects/*/locations/*}/curations\x12\xc2\x01\n\x0eUpdateCuration\x12-.google.cloud.apihub.v1.UpdateCurationRequest\x1a .google.cloud.apihub.v1.Curation\"_\xda\x41\x14\x63uration,update_mask\x82\xd3\xe4\x93\x02\x42\x32\x36/v1/{curation.name=projects/*/locations/*/curations/*}:\x08\x63uration\x12\x95\x01\n\x0e\x44\x65leteCuration\x12-.google.cloud.apihub.v1.DeleteCurationRequest\x1a\x16.google.protobuf.Empty\"<\xda\x41\x04name\x82\xd3\xe4\x93\x02/*-/v1/{name=projects/*/locations/*/curations/*}\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb4\x01\n\x1a\x63om.google.cloud.apihub.v1B\x12\x43urateServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], + ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module ApiHub + module V1 + CreateCurationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CreateCurationRequest").msgclass + GetCurationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetCurationRequest").msgclass + UpdateCurationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.UpdateCurationRequest").msgclass + DeleteCurationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DeleteCurationRequest").msgclass + ListCurationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListCurationsRequest").msgclass + ListCurationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListCurationsResponse").msgclass + Curation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Curation").msgclass + Curation::PluginInstanceActionID = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Curation.PluginInstanceActionID").msgclass + Curation::LastExecutionState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Curation.LastExecutionState").enummodule + Curation::ErrorCode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Curation.ErrorCode").enummodule + Endpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Endpoint").msgclass + ApplicationIntegrationEndpointDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ApplicationIntegrationEndpointDetails").msgclass + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/curate_service_services_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/curate_service_services_pb.rb new file mode 100644 index 000000000000..9862407c5260 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/curate_service_services_pb.rb @@ -0,0 +1,64 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/apihub/v1/curate_service.proto for package 'Google.Cloud.ApiHub.V1' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/apihub/v1/curate_service_pb' + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubCurate + # This service is used for managing curations for processing API data consumed + # from collect layer. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.apihub.v1.ApiHubCurate' + + # Create a curation resource in the API hub. + # Once a curation resource is created, plugin instances can start using it. + rpc :CreateCuration, ::Google::Cloud::ApiHub::V1::CreateCurationRequest, ::Google::Cloud::ApiHub::V1::Curation + # Get curation resource details. + rpc :GetCuration, ::Google::Cloud::ApiHub::V1::GetCurationRequest, ::Google::Cloud::ApiHub::V1::Curation + # List curation resources in the API hub. + rpc :ListCurations, ::Google::Cloud::ApiHub::V1::ListCurationsRequest, ::Google::Cloud::ApiHub::V1::ListCurationsResponse + # Update a curation resource in the API hub. The following fields in the + # [curation][google.cloud.apihub.v1.Curation] can be updated: + # + # * [display_name][google.cloud.apihub.v1.Curation.display_name] + # * [description][google.cloud.apihub.v1.Curation.description] + # + # The + # [update_mask][google.cloud.apihub.v1.UpdateApiRequest.update_mask] + # should be used to specify the fields being updated. + rpc :UpdateCuration, ::Google::Cloud::ApiHub::V1::UpdateCurationRequest, ::Google::Cloud::ApiHub::V1::Curation + # Delete a curation resource in the API hub. A curation can only be deleted + # if it's not being used by any plugin instance. + rpc :DeleteCuration, ::Google::Cloud::ApiHub::V1::DeleteCurationRequest, ::Google::Protobuf::Empty + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/discovery_service_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/discovery_service_pb.rb new file mode 100644 index 000000000000..c5e856d65525 --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/discovery_service_pb.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/apihub/v1/discovery_service.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' +require 'google/cloud/apihub/v1/common_fields_pb' + + +descriptor_data = "\n.google/cloud/apihub/v1/discovery_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\"\x9f\x01\n$ListDiscoveredApiObservationsRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.apihub.googleapis.com/DiscoveredApiObservation\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x97\x01\n%ListDiscoveredApiObservationsResponse\x12U\n\x1b\x64iscovered_api_observations\x18\x01 \x03(\x0b\x32\x30.google.cloud.apihub.v1.DiscoveredApiObservation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9b\x01\n\"ListDiscoveredApiOperationsRequest\x12\x44\n\x06parent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\x12,apihub.googleapis.com/DiscoveredApiOperation\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x91\x01\n#ListDiscoveredApiOperationsResponse\x12Q\n\x19\x64iscovered_api_operations\x18\x01 \x03(\x0b\x32..google.cloud.apihub.v1.DiscoveredApiOperation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"j\n\"GetDiscoveredApiObservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.apihub.googleapis.com/DiscoveredApiObservation\"f\n GetDiscoveredApiOperationRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,apihub.googleapis.com/DiscoveredApiOperation2\x9a\x08\n\x0f\x41piHubDiscovery\x12\xec\x01\n\x1dListDiscoveredApiObservations\x12<.google.cloud.apihub.v1.ListDiscoveredApiObservationsRequest\x1a=.google.cloud.apihub.v1.ListDiscoveredApiObservationsResponse\"N\xda\x41\x06parent\x82\xd3\xe4\x93\x02?\x12=/v1/{parent=projects/*/locations/*}/discoveredApiObservations\x12\xd9\x01\n\x1bGetDiscoveredApiObservation\x12:.google.cloud.apihub.v1.GetDiscoveredApiObservationRequest\x1a\x30.google.cloud.apihub.v1.DiscoveredApiObservation\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?\x12=/v1/{name=projects/*/locations/*/discoveredApiObservations/*}\x12\x80\x02\n\x1bListDiscoveredApiOperations\x12:.google.cloud.apihub.v1.ListDiscoveredApiOperationsRequest\x1a;.google.cloud.apihub.v1.ListDiscoveredApiOperationsResponse\"h\xda\x41\x06parent\x82\xd3\xe4\x93\x02Y\x12W/v1/{parent=projects/*/locations/*/discoveredApiObservations/*}/discoveredApiOperations\x12\xed\x01\n\x19GetDiscoveredApiOperation\x12\x38.google.cloud.apihub.v1.GetDiscoveredApiOperationRequest\x1a..google.cloud.apihub.v1.DiscoveredApiOperation\"f\xda\x41\x04name\x82\xd3\xe4\x93\x02Y\x12W/v1/{name=projects/*/locations/*/discoveredApiObservations/*/discoveredApiOperations/*}\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb7\x01\n\x1a\x63om.google.cloud.apihub.v1B\x15\x44iscoveryServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.cloud.apihub.v1.DiscoveredApiObservation", "google/cloud/apihub/v1/common_fields.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module ApiHub + module V1 + ListDiscoveredApiObservationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListDiscoveredApiObservationsRequest").msgclass + ListDiscoveredApiObservationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListDiscoveredApiObservationsResponse").msgclass + ListDiscoveredApiOperationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListDiscoveredApiOperationsRequest").msgclass + ListDiscoveredApiOperationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListDiscoveredApiOperationsResponse").msgclass + GetDiscoveredApiObservationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetDiscoveredApiObservationRequest").msgclass + GetDiscoveredApiOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetDiscoveredApiOperationRequest").msgclass + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/discovery_service_services_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/discovery_service_services_pb.rb new file mode 100644 index 000000000000..595c6fec303b --- /dev/null +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/discovery_service_services_pb.rb @@ -0,0 +1,55 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/apihub/v1/discovery_service.proto for package 'Google.Cloud.ApiHub.V1' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/apihub/v1/discovery_service_pb' + +module Google + module Cloud + module ApiHub + module V1 + module ApiHubDiscovery + # This service exposes methods used to manage DiscoveredApiObservations + # and DiscoveredApiOperations. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.apihub.v1.ApiHubDiscovery' + + # Lists all the DiscoveredAPIObservations in a given project and location. + rpc :ListDiscoveredApiObservations, ::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest, ::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsResponse + # Gets a DiscoveredAPIObservation in a given project, location and + # ApiObservation. + rpc :GetDiscoveredApiObservation, ::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest, ::Google::Cloud::ApiHub::V1::DiscoveredApiObservation + # Lists all the DiscoveredAPIOperations in a given project, location and + # ApiObservation. + rpc :ListDiscoveredApiOperations, ::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest, ::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsResponse + # Gets a DiscoveredAPIOperation in a given project, location, + # ApiObservation and ApiOperation. + rpc :GetDiscoveredApiOperation, ::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest, ::Google::Cloud::ApiHub::V1::DiscoveredApiOperation + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_pb.rb index 61710a900d23..19ce8558d216 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_pb.rb @@ -9,9 +9,13 @@ require 'google/api/field_behavior_pb' require 'google/api/resource_pb' require 'google/cloud/apihub/v1/common_fields_pb' +require 'google/longrunning/operations_pb' +require 'google/protobuf/empty_pb' +require 'google/protobuf/field_mask_pb' +require 'google/protobuf/timestamp_pb' -descriptor_data = "\n+google/cloud/apihub/v1/plugin_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\"\xef\x02\n\x06Plugin\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12:\n\x04type\x18\x03 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x38\n\x05state\x18\x05 \x01(\x0e\x32$.google.cloud.apihub.v1.Plugin.StateB\x03\xe0\x41\x03\"9\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02:l\xea\x41i\n\x1c\x61pihub.googleapis.com/Plugin\x12\x38projects/{project}/locations/{location}/plugins/{plugin}*\x07plugins2\x06plugin\"F\n\x10GetPluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\"I\n\x13\x45nablePluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\"J\n\x14\x44isablePluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin2\xb8\x04\n\x0c\x41piHubPlugin\x12\x91\x01\n\tGetPlugin\x12(.google.cloud.apihub.v1.GetPluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\":\xda\x41\x04name\x82\xd3\xe4\x93\x02-\x12+/v1/{name=projects/*/locations/*/plugins/*}\x12\xa1\x01\n\x0c\x45nablePlugin\x12+.google.cloud.apihub.v1.EnablePluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\"2/v1/{name=projects/*/locations/*/plugins/*}:enable:\x01*\x12\xa4\x01\n\rDisablePlugin\x12,.google.cloud.apihub.v1.DisablePluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\"E\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38\"3/v1/{name=projects/*/locations/*/plugins/*}:disable:\x01*\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb4\x01\n\x1a\x63om.google.cloud.apihub.v1B\x12PluginServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" +descriptor_data = "\n+google/cloud/apihub/v1/plugin_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd0\x0b\n\x06Plugin\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12:\n\x04type\x18\x03 \x01(\x0b\x32\'.google.cloud.apihub.v1.AttributeValuesB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x38\n\x05state\x18\x05 \x01(\x0e\x32$.google.cloud.apihub.v1.Plugin.StateB\x03\xe0\x41\x03\x12I\n\x0eownership_type\x18\x06 \x01(\x0e\x32,.google.cloud.apihub.v1.Plugin.OwnershipTypeB\x03\xe0\x41\x03\x12K\n\x0fhosting_service\x18\x07 \x01(\x0b\x32-.google.cloud.apihub.v1.Plugin.HostingServiceB\x03\xe0\x41\x01\x12G\n\x0e\x61\x63tions_config\x18\x08 \x03(\x0b\x32*.google.cloud.apihub.v1.PluginActionConfigB\x03\xe0\x41\x01\x12\x41\n\rdocumentation\x18\t \x01(\x0b\x32%.google.cloud.apihub.v1.DocumentationB\x03\xe0\x41\x01\x12\x44\n\x0fplugin_category\x18\x0b \x01(\x0e\x32&.google.cloud.apihub.v1.PluginCategoryB\x03\xe0\x41\x01\x12K\n\x0f\x63onfig_template\x18\x0c \x01(\x0b\x32-.google.cloud.apihub.v1.Plugin.ConfigTemplateB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12>\n\x0cgateway_type\x18\x0f \x01(\x0e\x32#.google.cloud.apihub.v1.GatewayTypeB\x03\xe0\x41\x01\x1a*\n\x0eHostingService\x12\x18\n\x0bservice_uri\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\xfc\x02\n\x0e\x43onfigTemplate\x12\x63\n\x14\x61uth_config_template\x18\x01 \x01(\x0b\x32@.google.cloud.apihub.v1.Plugin.ConfigTemplate.AuthConfigTemplateB\x03\xe0\x41\x01\x12W\n\x1a\x61\x64\x64itional_config_template\x18\x02 \x03(\x0b\x32..google.cloud.apihub.v1.ConfigVariableTemplateB\x03\xe0\x41\x01\x1a\xab\x01\n\x12\x41uthConfigTemplate\x12\x43\n\x14supported_auth_types\x18\x01 \x03(\x0e\x32 .google.cloud.apihub.v1.AuthTypeB\x03\xe0\x41\x02\x12P\n\x0fservice_account\x18\x02 \x01(\x0b\x32\x32.google.cloud.apihub.v1.GoogleServiceAccountConfigB\x03\xe0\x41\x01\"9\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"Q\n\rOwnershipType\x12\x1e\n\x1aOWNERSHIP_TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cSYSTEM_OWNED\x10\x01\x12\x0e\n\nUSER_OWNED\x10\x02:l\xea\x41i\n\x1c\x61pihub.googleapis.com/Plugin\x12\x38projects/{project}/locations/{location}/plugins/{plugin}*\x07plugins2\x06plugin\"\xb1\x02\n\x12PluginActionConfig\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12Q\n\x0ctrigger_mode\x18\x04 \x01(\x0e\x32\x36.google.cloud.apihub.v1.PluginActionConfig.TriggerModeB\x03\xe0\x41\x02\"\x81\x01\n\x0bTriggerMode\x12\x1c\n\x18TRIGGER_MODE_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41PI_HUB_ON_DEMAND_TRIGGER\x10\x01\x12\x1c\n\x18\x41PI_HUB_SCHEDULE_TRIGGER\x10\x02\x12\x17\n\x13NON_API_HUB_MANAGED\x10\x03\"F\n\x10GetPluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\"I\n\x13\x45nablePluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\"J\n\x14\x44isablePluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\"\xa9\x05\n\x14PluginInstanceAction\x12K\n\x13hub_instance_action\x18\x06 \x01(\x0b\x32\'.google.cloud.apihub.v1.ExecutionStatusB\x03\xe0\x41\x01H\x00\x12\x16\n\taction_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x46\n\x05state\x18\x02 \x01(\x0e\x32\x32.google.cloud.apihub.v1.PluginInstanceAction.StateB\x03\xe0\x41\x03\x12%\n\x18schedule_cron_expression\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0f\x63uration_config\x18\x05 \x01(\x0b\x32&.google.cloud.apihub.v1.CurationConfigB\x03\xe0\x41\x01\x12\x1f\n\x12schedule_time_zone\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fservice_account\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12Y\n\x0fresource_config\x18\t \x01(\x0b\x32;.google.cloud.apihub.v1.PluginInstanceAction.ResourceConfigB\x03\xe0\x41\x03\x1ai\n\x0eResourceConfig\x12<\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32\".google.cloud.apihub.v1.ActionTypeB\x03\xe0\x41\x03\x12\x19\n\x0cpubsub_topic\x18\x02 \x01(\tB\x03\xe0\x41\x03\"a\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\x0c\n\x08\x45NABLING\x10\x03\x12\r\n\tDISABLING\x10\x04\x12\t\n\x05\x45RROR\x10\x05\x42\x0f\n\raction_status\"\xfa\x06\n\x0ePluginInstance\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12<\n\x0b\x61uth_config\x18\x03 \x01(\x0b\x32\".google.cloud.apihub.v1.AuthConfigB\x03\xe0\x41\x01\x12\\\n\x11\x61\x64\x64itional_config\x18\x04 \x03(\x0b\x32<.google.cloud.apihub.v1.PluginInstance.AdditionalConfigEntryB\x03\xe0\x41\x01\x12@\n\x05state\x18\x05 \x01(\x0e\x32,.google.cloud.apihub.v1.PluginInstance.StateB\x03\xe0\x41\x03\x12\x1a\n\rerror_message\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x42\n\x07\x61\x63tions\x18\x07 \x03(\x0b\x32,.google.cloud.apihub.v1.PluginInstanceActionB\x03\xe0\x41\x02\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1e\n\x11source_project_id\x18\x0b \x01(\tB\x03\xe0\x41\x01\x1a_\n\x15\x41\x64\x64itionalConfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.google.cloud.apihub.v1.ConfigVariable:\x02\x38\x01\"r\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x13\n\x0f\x41PPLYING_CONFIG\x10\x03\x12\t\n\x05\x45RROR\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\x0c\n\x08\x44\x45LETING\x10\x06:\x9a\x01\xea\x41\x96\x01\n$apihub.googleapis.com/PluginInstance\x12Mprojects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}*\x0fpluginInstances2\x0epluginInstance\"\xe5\x01\n\x0e\x43urationConfig\x12U\n\x0f\x63ustom_curation\x18\x02 \x01(\x0b\x32\x35.google.cloud.apihub.v1.CurationConfig.CustomCurationB\x03\xe0\x41\x01H\x00\x12@\n\rcuration_type\x18\x01 \x01(\x0e\x32$.google.cloud.apihub.v1.CurationTypeB\x03\xe0\x41\x02\x1a\'\n\x0e\x43ustomCuration\x12\x15\n\x08\x63uration\x18\x01 \x01(\tB\x03\xe0\x41\x02\x42\x11\n\x0f\x63uration_config\"\xd0\x04\n\x0f\x45xecutionStatus\x12\x63\n\x17\x63urrent_execution_state\x18\x01 \x01(\x0e\x32=.google.cloud.apihub.v1.ExecutionStatus.CurrentExecutionStateB\x03\xe0\x41\x03\x12R\n\x0elast_execution\x18\x02 \x01(\x0b\x32\x35.google.cloud.apihub.v1.ExecutionStatus.LastExecutionB\x03\xe0\x41\x03\x1a\xa3\x02\n\rLastExecution\x12Q\n\x06result\x18\x01 \x01(\x0e\x32<.google.cloud.apihub.v1.ExecutionStatus.LastExecution.ResultB\x03\xe0\x41\x03\x12\x1a\n\rerror_message\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x33\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\";\n\x06Result\x12\x16\n\x12RESULT_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"^\n\x15\x43urrentExecutionState\x12\'\n#CURRENT_EXECUTION_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x0f\n\x0bNOT_RUNNING\x10\x02\"\x98\x01\n\x13\x43reatePluginRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1c\x61pihub.googleapis.com/Plugin\x12\x16\n\tplugin_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x33\n\x06plugin\x18\x03 \x01(\x0b\x32\x1e.google.cloud.apihub.v1.PluginB\x03\xe0\x41\x02\"I\n\x13\x44\x65letePluginRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\"\x90\x01\n\x12ListPluginsRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1c\x61pihub.googleapis.com/Plugin\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"_\n\x13ListPluginsResponse\x12/\n\x07plugins\x18\x01 \x03(\x0b\x32\x1e.google.cloud.apihub.v1.Plugin\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xba\x01\n\x1b\x43reatePluginInstanceRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x61pihub.googleapis.com/Plugin\x12\x1f\n\x12plugin_instance_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0fplugin_instance\x18\x03 \x01(\x0b\x32&.google.cloud.apihub.v1.PluginInstanceB\x03\xe0\x41\x02\"\xb5\x01\n\"ExecutePluginInstanceActionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/PluginInstance\x12S\n\x17\x61\x63tion_execution_detail\x18\x02 \x01(\x0b\x32-.google.cloud.apihub.v1.ActionExecutionDetailB\x03\xe0\x41\x02\"/\n\x15\x41\x63tionExecutionDetail\x12\x16\n\taction_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"%\n#ExecutePluginInstanceActionResponse\"V\n\x18GetPluginInstanceRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/PluginInstance\"\xa0\x01\n\x1aListPluginInstancesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$apihub.googleapis.com/PluginInstance\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"x\n\x1bListPluginInstancesResponse\x12@\n\x10plugin_instances\x18\x01 \x03(\x0b\x32&.google.cloud.apihub.v1.PluginInstance\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"w\n!EnablePluginInstanceActionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/PluginInstance\x12\x16\n\taction_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"$\n\"EnablePluginInstanceActionResponse\"x\n\"DisablePluginInstanceActionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/PluginInstance\x12\x16\n\taction_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"%\n#DisablePluginInstanceActionResponse\"\x99\x01\n\x1bUpdatePluginInstanceRequest\x12\x44\n\x0fplugin_instance\x18\x01 \x01(\x0b\x32&.google.cloud.apihub.v1.PluginInstanceB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"Y\n\x1b\x44\x65letePluginInstanceRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/PluginInstance*S\n\nActionType\x12\x1b\n\x17\x41\x43TION_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rSYNC_METADATA\x10\x01\x12\x15\n\x11SYNC_RUNTIME_DATA\x10\x02*\xcc\x01\n\x0bGatewayType\x12\x1c\n\x18GATEWAY_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x41PIGEE_X_AND_HYBRID\x10\x01\x12\x1c\n\x18\x41PIGEE_EDGE_PUBLIC_CLOUD\x10\x02\x12\x1d\n\x19\x41PIGEE_EDGE_PRIVATE_CLOUD\x10\x03\x12\x15\n\x11\x43LOUD_API_GATEWAY\x10\x04\x12\x13\n\x0f\x43LOUD_ENDPOINTS\x10\x05\x12\x11\n\rAPI_DISCOVERY\x10\x06\x12\n\n\x06OTHERS\x10\x07*z\n\x0c\x43urationType\x12\x1d\n\x19\x43URATION_TYPE_UNSPECIFIED\x10\x00\x12%\n!DEFAULT_CURATION_FOR_API_METADATA\x10\x01\x12$\n CUSTOM_CURATION_FOR_API_METADATA\x10\x02\x32\x9f\x18\n\x0c\x41piHubPlugin\x12\x91\x01\n\tGetPlugin\x12(.google.cloud.apihub.v1.GetPluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\":\xda\x41\x04name\x82\xd3\xe4\x93\x02-\x12+/v1/{name=projects/*/locations/*/plugins/*}\x12\xa1\x01\n\x0c\x45nablePlugin\x12+.google.cloud.apihub.v1.EnablePluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\"2/v1/{name=projects/*/locations/*/plugins/*}:enable:\x01*\x12\xa4\x01\n\rDisablePlugin\x12,.google.cloud.apihub.v1.DisablePluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\"E\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38\"3/v1/{name=projects/*/locations/*/plugins/*}:disable:\x01*\x12\xb2\x01\n\x0c\x43reatePlugin\x12+.google.cloud.apihub.v1.CreatePluginRequest\x1a\x1e.google.cloud.apihub.v1.Plugin\"U\xda\x41\x17parent,plugin,plugin_id\x82\xd3\xe4\x93\x02\x35\"+/v1/{parent=projects/*/locations/*}/plugins:\x06plugin\x12\xa4\x01\n\x0bListPlugins\x12*.google.cloud.apihub.v1.ListPluginsRequest\x1a+.google.cloud.apihub.v1.ListPluginsResponse\"<\xda\x41\x06parent\x82\xd3\xe4\x93\x02-\x12+/v1/{parent=projects/*/locations/*}/plugins\x12\xc3\x01\n\x0c\x44\x65letePlugin\x12+.google.cloud.apihub.v1.DeletePluginRequest\x1a\x1d.google.longrunning.Operation\"g\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02-*+/v1/{name=projects/*/locations/*/plugins/*}\x12\x8f\x02\n\x14\x43reatePluginInstance\x12\x33.google.cloud.apihub.v1.CreatePluginInstanceRequest\x1a\x1d.google.longrunning.Operation\"\xa2\x01\xca\x41#\n\x0ePluginInstance\x12\x11OperationMetadata\xda\x41)parent,plugin_instance,plugin_instance_id\x82\xd3\xe4\x93\x02J\"7/v1/{parent=projects/*/locations/*/plugins/*}/instances:\x0fplugin_instance\x12\xa5\x02\n\x1b\x45xecutePluginInstanceAction\x12:.google.cloud.apihub.v1.ExecutePluginInstanceActionRequest\x1a\x1d.google.longrunning.Operation\"\xaa\x01\xca\x41\x38\n#ExecutePluginInstanceActionResponse\x12\x11OperationMetadata\xda\x41\x1cname,action_execution_detail\x82\xd3\xe4\x93\x02J\"E/v1/{name=projects/*/locations/*/plugins/*/instances/*}:executeAction:\x01*\x12\xb5\x01\n\x11GetPluginInstance\x12\x30.google.cloud.apihub.v1.GetPluginInstanceRequest\x1a&.google.cloud.apihub.v1.PluginInstance\"F\xda\x41\x04name\x82\xd3\xe4\x93\x02\x39\x12\x37/v1/{name=projects/*/locations/*/plugins/*/instances/*}\x12\xc8\x01\n\x13ListPluginInstances\x12\x32.google.cloud.apihub.v1.ListPluginInstancesRequest\x1a\x33.google.cloud.apihub.v1.ListPluginInstancesResponse\"H\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x39\x12\x37/v1/{parent=projects/*/locations/*/plugins/*}/instances\x12\x93\x02\n\x1a\x45nablePluginInstanceAction\x12\x39.google.cloud.apihub.v1.EnablePluginInstanceActionRequest\x1a\x1d.google.longrunning.Operation\"\x9a\x01\xca\x41\x37\n\"EnablePluginInstanceActionResponse\x12\x11OperationMetadata\xda\x41\x0ename,action_id\x82\xd3\xe4\x93\x02I\"D/v1/{name=projects/*/locations/*/plugins/*/instances/*}:enableAction:\x01*\x12\x97\x02\n\x1b\x44isablePluginInstanceAction\x12:.google.cloud.apihub.v1.DisablePluginInstanceActionRequest\x1a\x1d.google.longrunning.Operation\"\x9c\x01\xca\x41\x38\n#DisablePluginInstanceActionResponse\x12\x11OperationMetadata\xda\x41\x0ename,action_id\x82\xd3\xe4\x93\x02J\"E/v1/{name=projects/*/locations/*/plugins/*/instances/*}:disableAction:\x01*\x12\xf3\x01\n\x14UpdatePluginInstance\x12\x33.google.cloud.apihub.v1.UpdatePluginInstanceRequest\x1a&.google.cloud.apihub.v1.PluginInstance\"~\xda\x41\x1bplugin_instance,update_mask\x82\xd3\xe4\x93\x02Z2G/v1/{plugin_instance.name=projects/*/locations/*/plugins/*/instances/*}:\x0fplugin_instance\x12\xdf\x01\n\x14\x44\x65letePluginInstance\x12\x33.google.cloud.apihub.v1.DeletePluginInstanceRequest\x1a\x1d.google.longrunning.Operation\"s\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x39*7/v1/{name=projects/*/locations/*/plugins/*/instances/*}\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb4\x01\n\x1a\x63om.google.cloud.apihub.v1B\x12PluginServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -27,6 +31,8 @@ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" imports = [ ["google.cloud.apihub.v1.AttributeValues", "google/cloud/apihub/v1/common_fields.proto"], + ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], + ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], ] imports.each do |type_name, expected_filename| import_file = pool.lookup(type_name).file_descriptor @@ -43,10 +49,47 @@ module Cloud module ApiHub module V1 Plugin = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Plugin").msgclass + Plugin::HostingService = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Plugin.HostingService").msgclass + Plugin::ConfigTemplate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Plugin.ConfigTemplate").msgclass + Plugin::ConfigTemplate::AuthConfigTemplate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Plugin.ConfigTemplate.AuthConfigTemplate").msgclass Plugin::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Plugin.State").enummodule + Plugin::OwnershipType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.Plugin.OwnershipType").enummodule + PluginActionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginActionConfig").msgclass + PluginActionConfig::TriggerMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginActionConfig.TriggerMode").enummodule GetPluginRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetPluginRequest").msgclass EnablePluginRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.EnablePluginRequest").msgclass DisablePluginRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DisablePluginRequest").msgclass + PluginInstanceAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginInstanceAction").msgclass + PluginInstanceAction::ResourceConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginInstanceAction.ResourceConfig").msgclass + PluginInstanceAction::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginInstanceAction.State").enummodule + PluginInstance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginInstance").msgclass + PluginInstance::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.PluginInstance.State").enummodule + CurationConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CurationConfig").msgclass + CurationConfig::CustomCuration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CurationConfig.CustomCuration").msgclass + ExecutionStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExecutionStatus").msgclass + ExecutionStatus::LastExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExecutionStatus.LastExecution").msgclass + ExecutionStatus::LastExecution::Result = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExecutionStatus.LastExecution.Result").enummodule + ExecutionStatus::CurrentExecutionState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExecutionStatus.CurrentExecutionState").enummodule + CreatePluginRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CreatePluginRequest").msgclass + DeletePluginRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DeletePluginRequest").msgclass + ListPluginsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListPluginsRequest").msgclass + ListPluginsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListPluginsResponse").msgclass + CreatePluginInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CreatePluginInstanceRequest").msgclass + ExecutePluginInstanceActionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExecutePluginInstanceActionRequest").msgclass + ActionExecutionDetail = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ActionExecutionDetail").msgclass + ExecutePluginInstanceActionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ExecutePluginInstanceActionResponse").msgclass + GetPluginInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetPluginInstanceRequest").msgclass + ListPluginInstancesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListPluginInstancesRequest").msgclass + ListPluginInstancesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ListPluginInstancesResponse").msgclass + EnablePluginInstanceActionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.EnablePluginInstanceActionRequest").msgclass + EnablePluginInstanceActionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.EnablePluginInstanceActionResponse").msgclass + DisablePluginInstanceActionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DisablePluginInstanceActionRequest").msgclass + DisablePluginInstanceActionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DisablePluginInstanceActionResponse").msgclass + UpdatePluginInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.UpdatePluginInstanceRequest").msgclass + DeletePluginInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DeletePluginInstanceRequest").msgclass + ActionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.ActionType").enummodule + GatewayType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GatewayType").enummodule + CurationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CurationType").enummodule end end end diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_services_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_services_pb.rb index 69a03e1be5d1..210595470ec4 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_services_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/plugin_service_services_pb.rb @@ -33,7 +33,7 @@ class Service self.unmarshal_class_method = :decode self.service_name = 'google.cloud.apihub.v1.ApiHubPlugin' - # Get details about an API Hub plugin. + # Get an API Hub plugin. rpc :GetPlugin, ::Google::Cloud::ApiHub::V1::GetPluginRequest, ::Google::Cloud::ApiHub::V1::Plugin # Enables a plugin. # The `state` of the plugin after enabling is `ENABLED` @@ -41,6 +41,48 @@ class Service # Disables a plugin. # The `state` of the plugin after disabling is `DISABLED` rpc :DisablePlugin, ::Google::Cloud::ApiHub::V1::DisablePluginRequest, ::Google::Cloud::ApiHub::V1::Plugin + # Create an API Hub plugin resource in the API hub. + # Once a plugin is created, it can be used to create plugin instances. + rpc :CreatePlugin, ::Google::Cloud::ApiHub::V1::CreatePluginRequest, ::Google::Cloud::ApiHub::V1::Plugin + # List all the plugins in a given project and location. + rpc :ListPlugins, ::Google::Cloud::ApiHub::V1::ListPluginsRequest, ::Google::Cloud::ApiHub::V1::ListPluginsResponse + # Delete a Plugin in API hub. + # Note, only user owned plugins can be deleted via this method. + rpc :DeletePlugin, ::Google::Cloud::ApiHub::V1::DeletePluginRequest, ::Google::Longrunning::Operation + # Creates a Plugin instance in the API hub. + rpc :CreatePluginInstance, ::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest, ::Google::Longrunning::Operation + # Executes a plugin instance in the API hub. + rpc :ExecutePluginInstanceAction, ::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest, ::Google::Longrunning::Operation + # Get an API Hub plugin instance. + rpc :GetPluginInstance, ::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest, ::Google::Cloud::ApiHub::V1::PluginInstance + # List all the plugins in a given project and location. + # `-` can be used as wildcard value for {plugin_id} + rpc :ListPluginInstances, ::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest, ::Google::Cloud::ApiHub::V1::ListPluginInstancesResponse + # Enables a plugin instance in the API hub. + rpc :EnablePluginInstanceAction, ::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest, ::Google::Longrunning::Operation + # Disables a plugin instance in the API hub. + rpc :DisablePluginInstanceAction, ::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest, ::Google::Longrunning::Operation + # Updates a plugin instance in the API hub. + # The following fields in the + # [plugin_instance][google.cloud.apihub.v1.PluginInstance] can be updated + # currently: + # + # * [display_name][google.cloud.apihub.v1.PluginInstance.display_name] + # * [schedule_cron_expression][PluginInstance.actions.schedule_cron_expression] + # + # The + # [update_mask][google.cloud.apihub.v1.UpdatePluginInstanceRequest.update_mask] + # should be used to specify the fields being updated. + # + # To update the + # [auth_config][google.cloud.apihub.v1.PluginInstance.auth_config] and + # [additional_config][google.cloud.apihub.v1.PluginInstance.additional_config] + # of the plugin instance, use the + # [ApplyPluginInstanceConfig][google.cloud.apihub.v1.ApiHubPlugin.ApplyPluginInstanceConfig] + # method. + rpc :UpdatePluginInstance, ::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest, ::Google::Cloud::ApiHub::V1::PluginInstance + # Deletes a plugin instance in the API hub. + rpc :DeletePluginInstance, ::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest, ::Google::Longrunning::Operation end Stub = Service.rpc_stub_class diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_pb.rb index 9b0a1b2efff8..8af414f648a5 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_pb.rb @@ -10,9 +10,10 @@ require 'google/api/resource_pb' require 'google/cloud/apihub/v1/common_fields_pb' require 'google/longrunning/operations_pb' +require 'google/protobuf/empty_pb' -descriptor_data = "\n1google/cloud/apihub/v1/provisioning_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\x1a#google/longrunning/operations.proto\"\xc1\x01\n\x1b\x43reateApiHubInstanceRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12 \n\x13\x61pi_hub_instance_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x10\x61pi_hub_instance\x18\x03 \x01(\x0b\x32&.google.cloud.apihub.v1.ApiHubInstanceB\x03\xe0\x41\x02\"V\n\x18GetApiHubInstanceRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/ApiHubInstance\"[\n\x1bLookupApiHubInstanceRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$apihub.googleapis.com/ApiHubInstance\"`\n\x1cLookupApiHubInstanceResponse\x12@\n\x10\x61pi_hub_instance\x18\x01 \x01(\x0b\x32&.google.cloud.apihub.v1.ApiHubInstance2\xef\x05\n\x0cProvisioning\x12\x8e\x02\n\x14\x43reateApiHubInstance\x12\x33.google.cloud.apihub.v1.CreateApiHubInstanceRequest\x1a\x1d.google.longrunning.Operation\"\xa1\x01\xca\x41#\n\x0e\x41piHubInstance\x12\x11OperationMetadata\xda\x41+parent,api_hub_instance,api_hub_instance_id\x82\xd3\xe4\x93\x02G\"3/v1/{parent=projects/*/locations/*}/apiHubInstances:\x10\x61pi_hub_instance\x12\xb1\x01\n\x11GetApiHubInstance\x12\x30.google.cloud.apihub.v1.GetApiHubInstanceRequest\x1a&.google.cloud.apihub.v1.ApiHubInstance\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=projects/*/locations/*/apiHubInstances/*}\x12\xce\x01\n\x14LookupApiHubInstance\x12\x33.google.cloud.apihub.v1.LookupApiHubInstanceRequest\x1a\x34.google.cloud.apihub.v1.LookupApiHubInstanceResponse\"K\xda\x41\x06parent\x82\xd3\xe4\x93\x02<\x12:/v1/{parent=projects/*/locations/*}/apiHubInstances:lookup\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xba\x01\n\x1a\x63om.google.cloud.apihub.v1B\x18ProvisioningServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" +descriptor_data = "\n1google/cloud/apihub/v1/provisioning_service.proto\x12\x16google.cloud.apihub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a*google/cloud/apihub/v1/common_fields.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xc1\x01\n\x1b\x43reateApiHubInstanceRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12 \n\x13\x61pi_hub_instance_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x10\x61pi_hub_instance\x18\x03 \x01(\x0b\x32&.google.cloud.apihub.v1.ApiHubInstanceB\x03\xe0\x41\x02\"Y\n\x1b\x44\x65leteApiHubInstanceRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/ApiHubInstance\"V\n\x18GetApiHubInstanceRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$apihub.googleapis.com/ApiHubInstance\"[\n\x1bLookupApiHubInstanceRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$apihub.googleapis.com/ApiHubInstance\"`\n\x1cLookupApiHubInstanceResponse\x12@\n\x10\x61pi_hub_instance\x18\x01 \x01(\x0b\x32&.google.cloud.apihub.v1.ApiHubInstance2\xcd\x07\n\x0cProvisioning\x12\x8e\x02\n\x14\x43reateApiHubInstance\x12\x33.google.cloud.apihub.v1.CreateApiHubInstanceRequest\x1a\x1d.google.longrunning.Operation\"\xa1\x01\xca\x41#\n\x0e\x41piHubInstance\x12\x11OperationMetadata\xda\x41+parent,api_hub_instance,api_hub_instance_id\x82\xd3\xe4\x93\x02G\"3/v1/{parent=projects/*/locations/*}/apiHubInstances:\x10\x61pi_hub_instance\x12\xdb\x01\n\x14\x44\x65leteApiHubInstance\x12\x33.google.cloud.apihub.v1.DeleteApiHubInstanceRequest\x1a\x1d.google.longrunning.Operation\"o\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35*3/v1/{name=projects/*/locations/*/apiHubInstances/*}\x12\xb1\x01\n\x11GetApiHubInstance\x12\x30.google.cloud.apihub.v1.GetApiHubInstanceRequest\x1a&.google.cloud.apihub.v1.ApiHubInstance\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=projects/*/locations/*/apiHubInstances/*}\x12\xce\x01\n\x14LookupApiHubInstance\x12\x33.google.cloud.apihub.v1.LookupApiHubInstanceRequest\x1a\x34.google.cloud.apihub.v1.LookupApiHubInstanceResponse\"K\xda\x41\x06parent\x82\xd3\xe4\x93\x02<\x12:/v1/{parent=projects/*/locations/*}/apiHubInstances:lookup\x1aI\xca\x41\x15\x61pihub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xba\x01\n\x1a\x63om.google.cloud.apihub.v1B\x18ProvisioningServiceProtoP\x01Z2cloud.google.com/go/apihub/apiv1/apihubpb;apihubpb\xaa\x02\x16Google.Cloud.ApiHub.V1\xca\x02\x16Google\\Cloud\\ApiHub\\V1\xea\x02\x19Google::Cloud::ApiHub::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -44,6 +45,7 @@ module Cloud module ApiHub module V1 CreateApiHubInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.CreateApiHubInstanceRequest").msgclass + DeleteApiHubInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.DeleteApiHubInstanceRequest").msgclass GetApiHubInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.GetApiHubInstanceRequest").msgclass LookupApiHubInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.LookupApiHubInstanceRequest").msgclass LookupApiHubInstanceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.apihub.v1.LookupApiHubInstanceResponse").msgclass diff --git a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_services_pb.rb b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_services_pb.rb index 8fa264912862..7d3bd3a69830 100644 --- a/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_services_pb.rb +++ b/google-cloud-api_hub-v1/lib/google/cloud/apihub/v1/provisioning_service_services_pb.rb @@ -35,6 +35,8 @@ class Service # Provisions instance resources for the API Hub. rpc :CreateApiHubInstance, ::Google::Cloud::ApiHub::V1::CreateApiHubInstanceRequest, ::Google::Longrunning::Operation + # Deletes the API hub instance. + rpc :DeleteApiHubInstance, ::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest, ::Google::Longrunning::Operation # Gets details of a single API Hub instance. rpc :GetApiHubInstance, ::Google::Cloud::ApiHub::V1::GetApiHubInstanceRequest, ::Google::Cloud::ApiHub::V1::ApiHubInstance # Looks up an Api Hub instance in a given GCP project. There will always be diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/apihub_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/apihub_service.rb index 8811d141283e..8b5baaff7275 100644 --- a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/apihub_service.rb +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/apihub_service.rb @@ -138,6 +138,37 @@ class DeleteApiRequest # * `api_style.enum_values.values.display_name` - The allowed value display # name of the api style attribute associated with the ApiResource. Allowed # comparison operator is `:`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. + # + # A filter function is also supported in the filter string. The filter + # function is `id(name)`. The `id(name)` function returns the id of the + # resource name. For example, `id(name) = \"api-1\"` is equivalent to + # `name = \"projects/test-project-id/locations/test-location-id/apis/api-1\"` + # provided the parent is + # `projects/test-project-id/locations/test-location-id`. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -163,6 +194,16 @@ class DeleteApiRequest # specifies the APIs where the owner team email is _apihub@google.com_ or # the display name of the allowed value associated with the team attribute # is `ApiHub Team`. + # * `owner.email = \"apihub@google.com\" AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.enum_values.values.id: + # test_enum_id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/1765\0f90-4a29-5431-b3d0-d5532da3764c.string_values.values: + # test_string_value` - The filter string specifies the APIs where the + # owner team email is _apihub@google.com_ and the id of the allowed value + # associated with the user defined attribute of type enum is _test_enum_id_ + # and the value of the user defined attribute of type string is _test_.. # @!attribute [rw] page_size # @return [::Integer] # Optional. The maximum number of API resources to return. The service may @@ -209,8 +250,11 @@ class ListApisResponse # the specified id is already used by another version in the API resource. # * If not provided, a system generated id will be used. # - # This value should be 4-500 characters, and valid characters - # are /[a-z][A-Z][0-9]-_/. + # This value should be 4-500 characters, overall resource name which will be + # of format + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}`, + # its length is limited to 700 characters and valid characters are + # /[a-z][A-Z][0-9]-_/. # @!attribute [rw] version # @return [::Google::Cloud::ApiHub::V1::Version] # Required. The version to create. @@ -303,6 +347,30 @@ class DeleteVersionRequest # * `accreditation.enum_values.values.display_name` - The allowed value # display name of the accreditations attribute associated with the Version. # Allowed comparison operators: `:`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -330,6 +398,12 @@ class DeleteVersionRequest # compliance.enum_values.values.id: pci-dss-id` # - The id of the allowed value associated with the compliance attribute is # _gdpr-id_ or _pci-dss-id_. + # * `lifecycle.enum_values.values.id: preview-id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: + # test` - The filter string specifies that the id of the allowed value + # associated with the lifecycle attribute of the Version is _preview-id_ + # and the value of the user defined attribute of type string is _test_. # @!attribute [rw] page_size # @return [::Integer] # Optional. The maximum number of versions to return. The service may return @@ -378,8 +452,11 @@ class ListVersionsResponse # resource. # * If not provided, a system generated id will be used. # - # This value should be 4-500 characters, and valid characters - # are /[a-z][A-Z][0-9]-_/. + # This value should be 4-500 characters, overall resource name which will be + # of format + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}`, + # its length is limited to 1000 characters and valid characters are + # /[a-z][A-Z][0-9]-_/. # @!attribute [rw] spec # @return [::Google::Cloud::ApiHub::V1::Spec] # Required. The spec to create. @@ -459,6 +536,30 @@ class DeleteSpecRequest # operators: `:`. # * `mime_type` - The MIME type of the Spec. Allowed comparison # operators: `=`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -485,6 +586,13 @@ class DeleteSpecRequest # spec_type.enum_values.values.id: grpc-id` # - The id of the allowed value associated with the spec_type attribute is # _rest-id_ or _grpc-id_. + # * `spec_type.enum_values.values.id: rest-id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.enum_values.values.id: + # test` - The filter string specifies that the id of the allowed value + # associated with the spec_type attribute is _rest-id_ and the id of the + # allowed value associated with the user defined attribute of type enum is + # _test_. # @!attribute [rw] page_size # @return [::Integer] # Optional. The maximum number of specs to return. The service may return @@ -506,7 +614,7 @@ class ListSpecsRequest # The {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#list_specs ListSpecs} method's response. # @!attribute [rw] specs # @return [::Array<::Google::Cloud::ApiHub::V1::Spec>] - # The specs corresponding to an API. + # The specs corresponding to an API Version. # @!attribute [rw] next_page_token # @return [::String] # A token, which can be sent as `page_token` to retrieve the next page. @@ -528,6 +636,36 @@ class GetSpecContentsRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # The {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} + # method's request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource for the operation resource. + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + # @!attribute [rw] api_operation_id + # @return [::String] + # Optional. The ID to use for the operation resource, which will become the + # final component of the operation's resource name. This field is optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified id is already used by another operation resource in the API + # hub. + # * If not provided, a system generated id will be used. + # + # This value should be 4-500 characters, overall resource name which + # will be of format + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}`, + # its length is limited to 700 characters, and valid characters are + # /[a-z][A-Z][0-9]-_/. + # @!attribute [rw] api_operation + # @return [::Google::Cloud::ApiHub::V1::ApiOperation] + # Required. The operation resource to create. + class CreateApiOperationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # The {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#get_api_operation GetApiOperation} method's # request. # @!attribute [rw] name @@ -540,6 +678,36 @@ class GetApiOperationRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # The {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#update_api_operation UpdateApiOperation} + # method's request. + # @!attribute [rw] api_operation + # @return [::Google::Cloud::ApiHub::V1::ApiOperation] + # Required. The apiOperation resource to update. + # + # The operation resource's `name` field is used to identify the operation + # resource to update. + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Required. The list of fields to update. + class UpdateApiOperationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#delete_api_operation DeleteApiOperation} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the operation resource to delete. + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + class DeleteApiOperationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # The {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#list_api_operations ListApiOperations} # method's request. # @!attribute [rw] parent @@ -570,6 +738,30 @@ class GetApiOperationRequest # * `create_time` - The time at which the ApiOperation was created. The # value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] # format. Allowed comparison operators: `>` and `<`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -589,6 +781,11 @@ class GetApiOperationRequest # * `details.http_operation.method = GET OR details.http_operation.method = # POST`. - The http operation of the method of ApiOperation is _GET_ or # _POST_. + # * `details.deprecated = True AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: + # test` - The filter string specifies that the ApiOperation is deprecated + # and the value of the user defined attribute of type string is _test_. # @!attribute [rw] page_size # @return [::Integer] # Optional. The maximum number of operations to return. The service may @@ -612,9 +809,6 @@ class ListApiOperationsRequest # @!attribute [rw] api_operations # @return [::Array<::Google::Cloud::ApiHub::V1::ApiOperation>] # The operations corresponding to an API version. - # Only following field will be populated in the response: name, - # spec, details.deprecated, details.http_operation.path.path, - # details.http_operation.method and details.documentation.external_uri. # @!attribute [rw] next_page_token # @return [::String] # A token, which can be sent as `page_token` to retrieve the next page. @@ -727,6 +921,10 @@ class DeleteDeploymentRequest # comparison operators: `=`. # * `api_versions` - The API versions linked to this deployment. Allowed # comparison operators: `:`. + # * `source_project` - The project/organization at source for the + # deployment. Allowed comparison operators: `=`. + # * `source_environment` - The environment at source for the + # deployment. Allowed comparison operators: `=`. # * `deployment_type.enum_values.values.id` - The allowed value id of the # deployment_type attribute associated with the Deployment. Allowed # comparison operators: `:`. @@ -742,6 +940,38 @@ class DeleteDeploymentRequest # * `environment.enum_values.values.display_name` - The allowed value # display name of the environment attribute associated with the deployment. # Allowed comparison operators: `:`. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.id` - The + # allowed value id of the user defined enum attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-id is a placeholder that can be replaced with + # any user defined enum attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.enum_values.values.display_name` + # - The allowed value display name of the user defined enum attribute + # associated with the Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-enum-display-name is a placeholder that can be + # replaced with any user defined enum attribute enum name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.string_values.values` - The + # allowed value of the user defined string attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-string is a placeholder that can be replaced with + # any user defined string attribute name. + # * `attributes.projects/test-project-id/locations/test-location-id/ + # attributes/user-defined-attribute-id.json_values.values` - The + # allowed value of the user defined JSON attribute associated with the + # Resource. Allowed comparison operator is `:`. Here + # user-defined-attribute-json is a placeholder that can be replaced with + # any user defined JSON attribute name. + # + # A filter function is also supported in the filter string. The filter + # function is `id(name)`. The `id(name)` function returns the id of the + # resource name. For example, `id(name) = \"deployment-1\"` is equivalent to + # `name = + # \"projects/test-project-id/locations/test-location-id/deployments/deployment-1\"` + # provided the parent is + # `projects/test-project-id/locations/test-location-id`. # # Expressions are combined with either `AND` logic operator or `OR` logical # operator but not both of them together i.e. only one of the `AND` or `OR` @@ -767,6 +997,12 @@ class DeleteDeploymentRequest # slo.string_values.values: \"99.99%\"` # - The allowed value id of the environment attribute Deployment is # _production-id_ or string value of the slo attribute is _99.99%_. + # * `environment.enum_values.values.id: staging-id AND + # attributes.projects/test-project-id/locations/test-location-id/ + # attributes/17650f90-4a29-4971-b3c0-d5532da3764b.string_values.values: + # test` - The filter string specifies that the allowed value id of the + # environment attribute associated with the Deployment is _staging-id_ and + # the value of the user defined attribute of type string is _test_. # @!attribute [rw] page_size # @return [::Integer] # Optional. The maximum number of deployment resources to return. The service @@ -1015,19 +1251,21 @@ class SearchResourcesRequest # @!attribute [rw] operation # @return [::Google::Cloud::ApiHub::V1::ApiOperation] # This represents ApiOperation resource in search results. Only name, - # and description fields are populated in search results. + # description, spec and details fields are populated in search results. # # Note: The following fields are mutually exclusive: `operation`, `api`, `deployment`, `spec`, `definition`, `version`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] deployment # @return [::Google::Cloud::ApiHub::V1::Deployment] # This represents Deployment resource in search results. Only name, - # display_name and description fields are populated in search results. + # display_name, description, deployment_type and api_versions fields are + # populated in search results. # # Note: The following fields are mutually exclusive: `deployment`, `api`, `operation`, `spec`, `definition`, `version`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] spec # @return [::Google::Cloud::ApiHub::V1::Spec] # This represents Spec resource in search results. Only name, - # display_name and description fields are populated in search results. + # display_name, description, spec_type and documentation fields are + # populated in search results. # # Note: The following fields are mutually exclusive: `spec`, `api`, `operation`, `deployment`, `definition`, `version`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] definition @@ -1039,7 +1277,8 @@ class SearchResourcesRequest # @!attribute [rw] version # @return [::Google::Cloud::ApiHub::V1::Version] # This represents Version resource in search results. Only name, - # display_name and description fields are populated in search results. + # display_name, description, lifecycle, compliance and accreditation fields + # are populated in search results. # # Note: The following fields are mutually exclusive: `version`, `api`, `operation`, `deployment`, `spec`, `definition`. If a field in that set is populated, all other fields in the set will automatically be cleared. class ApiHubResource @@ -1206,7 +1445,6 @@ class ListDependenciesRequest # @!attribute [rw] dependencies # @return [::Array<::Google::Cloud::ApiHub::V1::Dependency>] # The dependency resources present in the API hub. - # Only following field will be populated in the response: name. # @!attribute [rw] next_page_token # @return [::String] # A token, which can be sent as `page_token` to retrieve the next page. @@ -1313,8 +1551,6 @@ class ListExternalApisRequest # @!attribute [rw] external_apis # @return [::Array<::Google::Cloud::ApiHub::V1::ExternalApi>] # The External API resources present in the API hub. - # Only following fields will be populated in the response: name, - # display_name, documentation.external_uri. # @!attribute [rw] next_page_token # @return [::String] # A token, which can be sent as `page_token` to retrieve the next page. diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/collect_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/collect_service.rb new file mode 100644 index 000000000000..83ce614bb54e --- /dev/null +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/collect_service.rb @@ -0,0 +1,188 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module ApiHub + module V1 + # The CollectApiData method's request. + # @!attribute [rw] location + # @return [::String] + # Required. The regional location of the API hub instance and its resources. + # Format: `projects/{project}/locations/{location}` + # @!attribute [rw] collection_type + # @return [::Google::Cloud::ApiHub::V1::CollectionType] + # Required. The type of collection. Applies to all entries in + # {::Google::Cloud::ApiHub::V1::CollectApiDataRequest#api_data api_data}. + # @!attribute [rw] plugin_instance + # @return [::String] + # Required. The plugin instance collecting the API data. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}`. + # @!attribute [rw] action_id + # @return [::String] + # Required. The action ID to be used for collecting the API data. + # This should map to one of the action IDs specified + # in action configs in the plugin. + # @!attribute [rw] api_data + # @return [::Google::Cloud::ApiHub::V1::ApiData] + # Required. The API data to be collected. + class CollectApiDataRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The API data to be collected. + # @!attribute [rw] api_metadata_list + # @return [::Google::Cloud::ApiHub::V1::ApiMetadataList] + # Optional. The list of API metadata. + class ApiData + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The message to hold repeated API metadata. + # @!attribute [rw] api_metadata + # @return [::Array<::Google::Cloud::ApiHub::V1::APIMetadata>] + # Required. The list of API metadata. + class ApiMetadataList + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The API metadata. + # @!attribute [rw] api + # @return [::Google::Cloud::ApiHub::V1::Api] + # Required. The API resource to be pushed to Hub's collect layer. The ID of + # the API resource will be generated by Hub to ensure uniqueness across all + # APIs across systems. + # @!attribute [rw] versions + # @return [::Array<::Google::Cloud::ApiHub::V1::VersionMetadata>] + # Optional. The list of versions present in an API resource. + # @!attribute [rw] original_id + # @return [::String] + # Optional. The unique identifier of the API in the system where it was + # originally created. + # @!attribute [rw] original_create_time + # @return [::Google::Protobuf::Timestamp] + # Optional. Timestamp indicating when the API was created at the source. + # @!attribute [rw] original_update_time + # @return [::Google::Protobuf::Timestamp] + # Required. Timestamp indicating when the API was last updated at the source. + class APIMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The metadata associated with a version of the API resource. + # @!attribute [rw] version + # @return [::Google::Cloud::ApiHub::V1::Version] + # Required. Represents a version of the API resource in API hub. The ID of + # the version will be generated by Hub. + # @!attribute [rw] specs + # @return [::Array<::Google::Cloud::ApiHub::V1::SpecMetadata>] + # Optional. The specs associated with this version. + # Note that an API version can be associated with multiple specs. + # @!attribute [rw] deployments + # @return [::Array<::Google::Cloud::ApiHub::V1::DeploymentMetadata>] + # Optional. The deployments linked to this API version. + # Note: A particular API version could be deployed to multiple deployments + # (for dev deployment, UAT deployment, etc.) + # @!attribute [rw] original_id + # @return [::String] + # Optional. The unique identifier of the version in the system where it was + # originally created. + # @!attribute [rw] original_create_time + # @return [::Google::Protobuf::Timestamp] + # Optional. Timestamp indicating when the version was created at the source. + # @!attribute [rw] original_update_time + # @return [::Google::Protobuf::Timestamp] + # Required. Timestamp indicating when the version was last updated at the + # source. + class VersionMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The metadata associated with a spec of the API version. + # @!attribute [rw] spec + # @return [::Google::Cloud::ApiHub::V1::Spec] + # Required. The spec resource to be pushed to Hub's collect layer. The ID of + # the spec will be generated by Hub. + # @!attribute [rw] original_id + # @return [::String] + # Optional. The unique identifier of the spec in the system where it was + # originally created. + # @!attribute [rw] original_create_time + # @return [::Google::Protobuf::Timestamp] + # Optional. Timestamp indicating when the spec was created at the source. + # @!attribute [rw] original_update_time + # @return [::Google::Protobuf::Timestamp] + # Required. Timestamp indicating when the spec was last updated at the + # source. + class SpecMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The metadata associated with a deployment. + # @!attribute [rw] deployment + # @return [::Google::Cloud::ApiHub::V1::Deployment] + # Required. The deployment resource to be pushed to Hub's collect layer. The + # ID of the deployment will be generated by Hub. + # @!attribute [rw] original_id + # @return [::String] + # Optional. The unique identifier of the deployment in the system where it + # was originally created. + # @!attribute [rw] original_create_time + # @return [::Google::Protobuf::Timestamp] + # Optional. Timestamp indicating when the deployment was created at the + # source. + # @!attribute [rw] original_update_time + # @return [::Google::Protobuf::Timestamp] + # Required. Timestamp indicating when the deployment was last updated at the + # source. + class DeploymentMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The CollectApiData method's response. + class CollectApiDataResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The type of the collect request. + module CollectionType + # The default value. This value is used if the collection type is omitted. + COLLECTION_TYPE_UNSPECIFIED = 0 + + # The collection type is upsert. This should be used when an API is created + # or updated at the source. + COLLECTION_TYPE_UPSERT = 1 + + # The collection type is delete. This should be used when an API is deleted + # at the source. + COLLECTION_TYPE_DELETE = 2 + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/common_fields.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/common_fields.rb index d9c711809802..9c74d6140e90 100644 --- a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/common_fields.rb +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/common_fields.rb @@ -114,6 +114,40 @@ module V1 # This can be used when special handling is needed on client side for # particular version of the API. Format is # `projects/{project}/locations/{location}/apis/{api}/versions/{version}` + # @!attribute [rw] api_requirements + # @return [::Google::Cloud::ApiHub::V1::AttributeValues] + # Optional. The api requirement doc associated with the API resource. + # Carinality is 1 for this attribute. This maps to the following system + # defined attribute: + # `projects/{project}/locations/{location}/attributes/system-api-requirements` + # attribute. The value of the attribute should be a proper URI, and in case + # of Cloud Storage URI, it should point to a Cloud Storage object, + # not a directory. + # @!attribute [rw] fingerprint + # @return [::String] + # Optional. Fingerprint of the API resource. + # @!attribute [r] source_metadata + # @return [::Array<::Google::Cloud::ApiHub::V1::SourceMetadata>] + # Output only. The list of sources and metadata from the sources of the API + # resource. + # @!attribute [rw] api_functional_requirements + # @return [::Google::Cloud::ApiHub::V1::AttributeValues] + # Optional. The api functional requirements associated with the API resource. + # Carinality is 1 for this attribute. + # This maps to the following system defined attribute: + # `projects/{project}/locations/{location}/attributes/system-api-functional-requirements` + # attribute. The value of the attribute should be a proper URI, and in case + # of Cloud Storage URI, it should point to a Cloud Storage object, + # not a directory. + # @!attribute [rw] api_technical_requirements + # @return [::Google::Cloud::ApiHub::V1::AttributeValues] + # Optional. The api technical requirements associated with the API resource. + # Carinality is 1 for this attribute. This maps to the following system + # defined attribute: + # `projects/{project}/locations/{location}/attributes/system-api-technical-requirements` + # attribute. The value of the attribute should be a proper URI, and in case + # of Cloud Storage URI, it should point to a Cloud Storage object, + # not a directory. class Api include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -219,6 +253,10 @@ class AttributesEntry # particular deployment linked to the version. # Format is # `projects/{project}/locations/{location}/deployments/{deployment}` + # @!attribute [r] source_metadata + # @return [::Array<::Google::Cloud::ApiHub::V1::SourceMetadata>] + # Output only. The list of sources and metadata from the sources of the + # version. class Version include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -291,6 +329,9 @@ class AttributesEntry # @return [::Google::Cloud::ApiHub::V1::Spec::ParsingMode] # Optional. Input only. Enum specifying the parsing mode for OpenAPI # Specification (OAS) parsing. + # @!attribute [r] source_metadata + # @return [::Array<::Google::Cloud::ApiHub::V1::SourceMetadata>] + # Output only. The list of sources and metadata from the sources of the spec. class Spec include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -356,9 +397,12 @@ module ParsingMode # attribute. # @!attribute [rw] resource_uri # @return [::String] - # Required. A URI to the runtime resource. This URI can be used to manage the - # resource. For example, if the runtime resource is of type APIGEE_PROXY, - # then this field will contain the URI to the management UI of the proxy. + # Required. The resource URI identifies the deployment within its gateway. + # For Apigee gateways, its recommended to use the format: + # organizations/\\{org}/environments/\\{env}/apis/\\{api}. + # For ex: if a proxy with name `orders` is deployed in `staging` + # environment of `cymbal` organization, the resource URI would be: + # `organizations/cymbal/environments/staging/apis/orders`. # @!attribute [rw] endpoints # @return [::Array<::String>] # Required. The endpoints at which this deployment resource is listening for @@ -401,6 +445,38 @@ module ParsingMode # deployment resource. The key is the attribute name. It will be of the # format: `projects/{project}/locations/{location}/attributes/{attribute}`. # The value is the attribute values associated with the resource. + # @!attribute [r] source_metadata + # @return [::Array<::Google::Cloud::ApiHub::V1::SourceMetadata>] + # Output only. The list of sources and metadata from the sources of the + # deployment. + # @!attribute [rw] management_url + # @return [::Google::Cloud::ApiHub::V1::AttributeValues] + # Optional. The uri where users can navigate to for the management of the + # deployment. This maps to the following system defined attribute: + # `projects/{project}/locations/{location}/attributes/system-management-url` + # The number of values for this attribute will be based on the + # cardinality of the attribute. The same can be retrieved via GetAttribute + # API. The value of the attribute should be a valid URL. + # @!attribute [rw] source_uri + # @return [::Google::Cloud::ApiHub::V1::AttributeValues] + # Optional. The uri where additional source specific information for this + # deployment can be found. This maps to the following system defined + # attribute: + # `projects/{project}/locations/{location}/attributes/system-source-uri` + # The number of values for this attribute will be based on the + # cardinality of the attribute. The same can be retrieved via GetAttribute + # API. The value of the attribute should be a valid URI, and in case + # of Cloud Storage URI, it should point to a Cloud Storage object, + # not a directory. + # @!attribute [rw] source_project + # @return [::String] + # Optional. The project to which the deployment belongs. + # For GCP gateways, this will refer to the project identifier. + # For others like Edge/OPDK, this will refer to the org identifier. + # @!attribute [rw] source_environment + # @return [::String] + # Optional. The environment at source for the deployment. + # For example: prod, dev, staging, etc. class Deployment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -420,6 +496,10 @@ class AttributesEntry # added or an existing spec is updated/deleted in a version. # Currently, an operation will be created only corresponding to OpenAPI spec as # parsing is supported for OpenAPI spec. + # Alternatively operations can be managed via create,update and delete APIs, + # creation of apiOperation can be possible only for version with no parsed + # operations and update/delete can be possible only for operations created via + # create API. # @!attribute [rw] name # @return [::String] # Identifier. The name of the operation. @@ -428,12 +508,16 @@ class AttributesEntry # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` # @!attribute [r] spec # @return [::String] - # Output only. The name of the spec from where the operation was parsed. - # Format is + # Output only. The name of the spec will be of the format: # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/specs/{spec}` - # @!attribute [r] details + # Note:The name of the spec will be empty if the operation is created via + # {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} API. + # @!attribute [rw] details # @return [::Google::Cloud::ApiHub::V1::OperationDetails] - # Output only. Operation details. + # Optional. Operation details. + # Note: Even though this field is optional, it is required for + # {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} + # API and we will fail the request if not provided. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time at which the operation was created. @@ -446,6 +530,10 @@ class AttributesEntry # operation resource. The key is the attribute name. It will be of the # format: `projects/{project}/locations/{location}/attributes/{attribute}`. # The value is the attribute values associated with the resource. + # @!attribute [r] source_metadata + # @return [::Array<::Google::Cloud::ApiHub::V1::SourceMetadata>] + # Output only. The list of sources and metadata from the sources of the API + # operation. class ApiOperation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -661,6 +749,9 @@ module DataType # Attribute's value is of type string. STRING = 3 + + # Attribute's value is of type uri. + URI = 4 end end @@ -732,18 +823,18 @@ module Format # @!attribute [rw] http_operation # @return [::Google::Cloud::ApiHub::V1::HttpOperation] # The HTTP Operation. - # @!attribute [r] description + # @!attribute [rw] description # @return [::String] - # Output only. Description of the operation behavior. + # Optional. Description of the operation behavior. # For OpenAPI spec, this will map to `operation.description` in the # spec, in case description is empty, `operation.summary` will be used. - # @!attribute [r] documentation + # @!attribute [rw] documentation # @return [::Google::Cloud::ApiHub::V1::Documentation] - # Output only. Additional external documentation for this operation. + # Optional. Additional external documentation for this operation. # For OpenAPI spec, this will map to `operation.documentation` in the spec. - # @!attribute [r] deprecated + # @!attribute [rw] deprecated # @return [::Boolean] - # Output only. For OpenAPI spec, this will be set if `operation.deprecated`is + # Optional. For OpenAPI spec, this will be set if `operation.deprecated`is # marked as `true` in the spec. class OperationDetails include ::Google::Protobuf::MessageExts @@ -751,12 +842,18 @@ class OperationDetails end # The HTTP Operation. - # @!attribute [r] path + # @!attribute [rw] path # @return [::Google::Cloud::ApiHub::V1::Path] - # Output only. The path details for the Operation. - # @!attribute [r] method + # Optional. The path details for the Operation. + # Note: Even though this field is optional, it is required for + # {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} + # API and we will fail the request if not provided. + # @!attribute [rw] method # @return [::Google::Cloud::ApiHub::V1::HttpOperation::Method] - # Output only. Operation method + # Optional. Operation method + # Note: Even though this field is optional, it is required for + # {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} + # API and we will fail the request if not provided. class HttpOperation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -793,12 +890,15 @@ module Method end # The path details derived from the spec. - # @!attribute [r] path + # @!attribute [rw] path # @return [::String] - # Output only. Complete path relative to server endpoint. - # @!attribute [r] description + # Optional. Complete path relative to server endpoint. + # Note: Even though this field is optional, it is required for + # {::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation CreateApiOperation} + # API and we will fail the request if not provided. + # @!attribute [rw] description # @return [::String] - # Output only. A short description for the path applicable to all operations. + # Optional. A short description for the path applicable to all operations. class Path include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -849,19 +949,25 @@ class Documentation # The attribute values associated with a resource in case attribute data # type is enum. # - # Note: The following fields are mutually exclusive: `enum_values`, `string_values`, `json_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `enum_values`, `string_values`, `json_values`, `uri_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] string_values # @return [::Google::Cloud::ApiHub::V1::AttributeValues::StringAttributeValues] # The attribute values associated with a resource in case attribute data # type is string. # - # Note: The following fields are mutually exclusive: `string_values`, `enum_values`, `json_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `string_values`, `enum_values`, `json_values`, `uri_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] json_values # @return [::Google::Cloud::ApiHub::V1::AttributeValues::StringAttributeValues] # The attribute values associated with a resource in case attribute data # type is JSON. # - # Note: The following fields are mutually exclusive: `json_values`, `enum_values`, `string_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `json_values`, `enum_values`, `string_values`, `uri_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] uri_values + # @return [::Google::Cloud::ApiHub::V1::AttributeValues::StringAttributeValues] + # The attribute values associated with a resource in case attribute data + # type is URL, URI or IP, like gs://bucket-name/object-name. + # + # Note: The following fields are mutually exclusive: `uri_values`, `enum_values`, `string_values`, `json_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] attribute # @return [::String] # Output only. The name of the attribute. @@ -892,8 +998,8 @@ class StringAttributeValues # A dependency resource defined in the API hub describes a dependency directed # from a consumer to a supplier entity. A dependency can be defined between two - # [Operations][google.cloud.apihub.v1.Operation] or between - # an [Operation][google.cloud.apihub.v1.Operation] and [External + # {::Google::Cloud::ApiHub::V1::ApiOperation Operations} or between + # an {::Google::Cloud::ApiHub::V1::ApiOperation Operation} and [External # API][google.cloud.apihub.v1.ExternalApi]. # @!attribute [rw] name # @return [::String] @@ -1119,7 +1225,7 @@ class Point # @return [::Boolean] # Output only. Identifies whether the user has requested cancellation # of the operation. Operations that have been cancelled successfully - # have [Operation.error][] value with a + # have {::Google::Longrunning::Operation#error Operation.error} value with a # {::Google::Rpc::Status#code google.rpc.Status.code} of 1, corresponding to # `Code.CANCELLED`. # @!attribute [r] api_version @@ -1167,13 +1273,39 @@ class ApiHubInstance # Available configurations to provision an ApiHub Instance. # @!attribute [rw] cmek_key_name # @return [::String] - # Required. The Customer Managed Encryption Key (CMEK) used for data + # Optional. The Customer Managed Encryption Key (CMEK) used for data # encryption. The CMEK name should follow the format of # `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`, # where the location must match the instance location. + # If the CMEK is not provided, a GMEK will be created for the instance. + # @!attribute [rw] disable_search + # @return [::Boolean] + # Optional. If true, the search will be disabled for the instance. The + # default value is false. + # @!attribute [rw] vertex_location + # @return [::String] + # Optional. The name of the Vertex AI location where the data store is + # stored. + # @!attribute [rw] encryption_type + # @return [::Google::Cloud::ApiHub::V1::ApiHubInstance::Config::EncryptionType] + # Optional. Encryption type for the region. If the encryption type is CMEK, + # the cmek_key_name must be provided. If no encryption type is provided, + # GMEK will be used. class Config include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # Types of data encryption. + module EncryptionType + # Encryption type unspecified. + ENCRYPTION_TYPE_UNSPECIFIED = 0 + + # Default encryption using Google managed encryption key. + GMEK = 1 + + # Encryption using customer managed encryption key. + CMEK = 2 + end end # @!attribute [rw] key @@ -1259,6 +1391,631 @@ class AttributesEntry end end + # ConfigValueOption represents an option for a config variable of type enum or + # multi select. + # @!attribute [rw] id + # @return [::String] + # Required. Id of the option. + # @!attribute [rw] display_name + # @return [::String] + # Required. Display name of the option. + # @!attribute [rw] description + # @return [::String] + # Optional. Description of the option. + class ConfigValueOption + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Secret provides a reference to entries in Secret Manager. + # @!attribute [rw] secret_version + # @return [::String] + # Required. The resource name of the secret version in the format, + # format as: `projects/*/secrets/*/versions/*`. + class Secret + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # ConfigVariableTemplate represents a configuration variable template present + # in a Plugin Config. + # @!attribute [rw] id + # @return [::String] + # Required. ID of the config variable. Must be unique within the + # configuration. + # @!attribute [rw] value_type + # @return [::Google::Cloud::ApiHub::V1::ConfigVariableTemplate::ValueType] + # Required. Type of the parameter: string, int, bool etc. + # @!attribute [rw] description + # @return [::String] + # Optional. Description. + # @!attribute [rw] validation_regex + # @return [::String] + # Optional. Regular expression in RE2 syntax used for validating the `value` + # of a `ConfigVariable`. + # @!attribute [rw] required + # @return [::Boolean] + # Optional. Flag represents that this `ConfigVariable` must be provided for a + # PluginInstance. + # @!attribute [rw] enum_options + # @return [::Array<::Google::Cloud::ApiHub::V1::ConfigValueOption>] + # Optional. Enum options. To be populated if `ValueType` is `ENUM`. + # @!attribute [rw] multi_select_options + # @return [::Array<::Google::Cloud::ApiHub::V1::ConfigValueOption>] + # Optional. Multi select options. To be populated if `ValueType` is + # `MULTI_SELECT`. + class ConfigVariableTemplate + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # ValueType indicates the data type of the value. + module ValueType + # Value type is not specified. + VALUE_TYPE_UNSPECIFIED = 0 + + # Value type is string. + STRING = 1 + + # Value type is integer. + INT = 2 + + # Value type is boolean. + BOOL = 3 + + # Value type is secret. + SECRET = 4 + + # Value type is enum. + ENUM = 5 + + # Value type is multi select. + MULTI_SELECT = 6 + + # Value type is multi string. + MULTI_STRING = 7 + + # Value type is multi int. + MULTI_INT = 8 + end + end + + # ConfigVariable represents a additional configuration variable present in a + # PluginInstance Config or AuthConfig, based on a ConfigVariableTemplate. + # @!attribute [rw] string_value + # @return [::String] + # Optional. The config variable value in case of config variable of type + # string. + # + # Note: The following fields are mutually exclusive: `string_value`, `int_value`, `bool_value`, `secret_value`, `enum_value`, `multi_select_values`, `multi_string_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] int_value + # @return [::Integer] + # Optional. The config variable value in case of config variable of type + # integer. + # + # Note: The following fields are mutually exclusive: `int_value`, `string_value`, `bool_value`, `secret_value`, `enum_value`, `multi_select_values`, `multi_string_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] bool_value + # @return [::Boolean] + # Optional. The config variable value in case of config variable of type + # boolean. + # + # Note: The following fields are mutually exclusive: `bool_value`, `string_value`, `int_value`, `secret_value`, `enum_value`, `multi_select_values`, `multi_string_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] secret_value + # @return [::Google::Cloud::ApiHub::V1::Secret] + # Optional. The config variable value in case of config variable of type + # secret. + # + # Note: The following fields are mutually exclusive: `secret_value`, `string_value`, `int_value`, `bool_value`, `enum_value`, `multi_select_values`, `multi_string_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] enum_value + # @return [::Google::Cloud::ApiHub::V1::ConfigValueOption] + # Optional. The config variable value in case of config variable of type + # enum. + # + # Note: The following fields are mutually exclusive: `enum_value`, `string_value`, `int_value`, `bool_value`, `secret_value`, `multi_select_values`, `multi_string_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] multi_select_values + # @return [::Google::Cloud::ApiHub::V1::ConfigVariable::MultiSelectValues] + # Optional. The config variable value in case of config variable of type + # multi select. + # + # Note: The following fields are mutually exclusive: `multi_select_values`, `string_value`, `int_value`, `bool_value`, `secret_value`, `enum_value`, `multi_string_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] multi_string_values + # @return [::Google::Cloud::ApiHub::V1::ConfigVariable::MultiStringValues] + # Optional. The config variable value in case of config variable of type + # multi string. + # + # Note: The following fields are mutually exclusive: `multi_string_values`, `string_value`, `int_value`, `bool_value`, `secret_value`, `enum_value`, `multi_select_values`, `multi_int_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] multi_int_values + # @return [::Google::Cloud::ApiHub::V1::ConfigVariable::MultiIntValues] + # Optional. The config variable value in case of config variable of type + # multi integer. + # + # Note: The following fields are mutually exclusive: `multi_int_values`, `string_value`, `int_value`, `bool_value`, `secret_value`, `enum_value`, `multi_select_values`, `multi_string_values`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] key + # @return [::String] + # Output only. Key will be the + # {::Google::Cloud::ApiHub::V1::ConfigVariableTemplate#id id} to uniquely identify + # the config variable. + class ConfigVariable + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The config variable value of data type multi select. + # @!attribute [rw] values + # @return [::Array<::Google::Cloud::ApiHub::V1::ConfigValueOption>] + # Optional. The config variable value of data type multi select. + class MultiSelectValues + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The config variable value of data type multi string. + # @!attribute [rw] values + # @return [::Array<::String>] + # Optional. The config variable value of data type multi string. + class MultiStringValues + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The config variable value of data type multi int. + # @!attribute [rw] values + # @return [::Array<::Integer>] + # Optional. The config variable value of data type multi int. + class MultiIntValues + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Config for Google service account authentication. + # @!attribute [rw] service_account + # @return [::String] + # Required. The service account to be used for authenticating request. + # + # The `iam.serviceAccounts.getAccessToken` permission should be granted on + # this service account to the impersonator service account. + class GoogleServiceAccountConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # AuthConfig represents the authentication information. + # @!attribute [rw] google_service_account_config + # @return [::Google::Cloud::ApiHub::V1::GoogleServiceAccountConfig] + # Google Service Account. + # + # Note: The following fields are mutually exclusive: `google_service_account_config`, `user_password_config`, `api_key_config`, `oauth2_client_credentials_config`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] user_password_config + # @return [::Google::Cloud::ApiHub::V1::AuthConfig::UserPasswordConfig] + # User Password. + # + # Note: The following fields are mutually exclusive: `user_password_config`, `google_service_account_config`, `api_key_config`, `oauth2_client_credentials_config`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] api_key_config + # @return [::Google::Cloud::ApiHub::V1::AuthConfig::ApiKeyConfig] + # Api Key Config. + # + # Note: The following fields are mutually exclusive: `api_key_config`, `google_service_account_config`, `user_password_config`, `oauth2_client_credentials_config`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] oauth2_client_credentials_config + # @return [::Google::Cloud::ApiHub::V1::AuthConfig::Oauth2ClientCredentialsConfig] + # Oauth2.0 Client Credentials. + # + # Note: The following fields are mutually exclusive: `oauth2_client_credentials_config`, `google_service_account_config`, `user_password_config`, `api_key_config`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] auth_type + # @return [::Google::Cloud::ApiHub::V1::AuthType] + # Required. The authentication type. + class AuthConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Parameters to support Username and Password Authentication. + # @!attribute [rw] username + # @return [::String] + # Required. Username. + # @!attribute [rw] password + # @return [::Google::Cloud::ApiHub::V1::Secret] + # Required. Secret version reference containing the password. + # The `secretmanager.versions.access` permission should be + # granted to the service account accessing the secret. + class UserPasswordConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Parameters to support Oauth 2.0 client credentials grant authentication. + # See https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details. + # @!attribute [rw] client_id + # @return [::String] + # Required. The client identifier. + # @!attribute [rw] client_secret + # @return [::Google::Cloud::ApiHub::V1::Secret] + # Required. Secret version reference containing the client secret. + # The `secretmanager.versions.access` permission should be + # granted to the service account accessing the secret. + class Oauth2ClientCredentialsConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Config for authentication with API key. + # @!attribute [rw] name + # @return [::String] + # Required. The parameter name of the API key. + # E.g. If the API request is "https://example.com/act?api_key=", + # "api_key" would be the parameter name. + # @!attribute [rw] api_key + # @return [::Google::Cloud::ApiHub::V1::Secret] + # Required. The name of the SecretManager secret version resource storing + # the API key. Format: + # `projects/{project}/secrets/{secrete}/versions/{version}`. The + # `secretmanager.versions.access` permission should be granted to the + # service account accessing the secret. + # @!attribute [rw] http_element_location + # @return [::Google::Cloud::ApiHub::V1::AuthConfig::ApiKeyConfig::HttpElementLocation] + # Required. The location of the API key. + # The default value is QUERY. + class ApiKeyConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Enum of location an HTTP element can be. + module HttpElementLocation + # HTTP element location not specified. + HTTP_ELEMENT_LOCATION_UNSPECIFIED = 0 + + # Element is in the HTTP request query. + QUERY = 1 + + # Element is in the HTTP request header. + HEADER = 2 + + # Element is in the HTTP request path. + PATH = 3 + + # Element is in the HTTP request body. + BODY = 4 + + # Element is in the HTTP request cookie. + COOKIE = 5 + end + end + end + + # SourceMetadata represents the metadata for a resource at the source. + # @!attribute [r] plugin_instance_action_source + # @return [::Google::Cloud::ApiHub::V1::SourceMetadata::PluginInstanceActionSource] + # Output only. The source of the resource is a plugin instance action. + # @!attribute [r] source_type + # @return [::Google::Cloud::ApiHub::V1::SourceMetadata::SourceType] + # Output only. The type of the source. + # @!attribute [r] original_resource_id + # @return [::String] + # Output only. The unique identifier of the resource at the source. + # @!attribute [r] original_resource_create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the resource was created at the source. + # @!attribute [r] original_resource_update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the resource was last updated at the source. + class SourceMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # PluginInstanceActionSource represents the plugin instance action source. + # @!attribute [r] plugin_instance + # @return [::String] + # Output only. The resource name of the source plugin instance. + # Format is + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @!attribute [r] action_id + # @return [::String] + # Output only. The id of the plugin instance action. + class PluginInstanceActionSource + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The possible types of the source. + module SourceType + # Source type not specified. + SOURCE_TYPE_UNSPECIFIED = 0 + + # Source type plugin. + PLUGIN = 1 + end + end + + # Respresents an API Observation observed in one of the sources. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the discovered API Observation. + # + # Format: + # `projects/{project}/locations/{location}/discoveredApiObservations/{discovered_api_observation}` + # @!attribute [rw] style + # @return [::Google::Cloud::ApiHub::V1::DiscoveredApiObservation::Style] + # Optional. Style of ApiObservation + # @!attribute [rw] server_ips + # @return [::Array<::String>] + # Optional. The IP address (IPv4 or IPv6) of the origin server that the + # request was sent to. This field can include port information. Examples: + # `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + # @!attribute [rw] hostname + # @return [::String] + # Optional. The hostname of requests processed for this Observation. + # @!attribute [rw] last_event_detected_time + # @return [::Google::Protobuf::Timestamp] + # Optional. Last event detected time stamp + # @!attribute [rw] source_locations + # @return [::Array<::String>] + # Optional. The location of the observation source. + # @!attribute [rw] api_operation_count + # @return [::Integer] + # Optional. The number of observed API Operations. + # @!attribute [rw] origin + # @return [::String] + # Optional. For an observation pushed from a gcp resource, this would be the + # gcp project id. + # @!attribute [rw] source_types + # @return [::Array<::Google::Cloud::ApiHub::V1::DiscoveredApiObservation::SourceType>] + # Optional. The type of the source from which the observation was collected. + # @!attribute [r] known_operations_count + # @return [::Integer] + # Output only. The number of known API Operations. + # @!attribute [r] unknown_operations_count + # @return [::Integer] + # Output only. The number of unknown API Operations. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Create time stamp of the observation in API Hub. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Update time stamp of the observation in API Hub. + # @!attribute [r] source_metadata + # @return [::Google::Cloud::ApiHub::V1::SourceMetadata] + # Output only. The metadata of the source from which the observation was + # collected. + class DiscoveredApiObservation + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # DiscoveredApiObservation protocol style + module Style + # Unknown style + STYLE_UNSPECIFIED = 0 + + # Style is Rest API + REST = 1 + + # Style is Grpc API + GRPC = 2 + + # Style is GraphQL API + GRAPHQL = 3 + end + + # The possible types of the source from which the observation was collected. + module SourceType + # Source type not specified. + SOURCE_TYPE_UNSPECIFIED = 0 + + # GCP external load balancer. + GCP_XLB = 1 + + # GCP internal load balancer. + GCP_ILB = 2 + end + end + + # DiscoveredApiOperation represents an API Operation observed in one of the + # sources. + # @!attribute [rw] http_operation + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails] + # Optional. An HTTP Operation. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the discovered API Operation. + # + # Format: + # `projects/{project}/locations/{location}/discoveredApiObservations/{discovered_api_observation}/discoveredApiOperations/{discovered_api_operation}` + # @!attribute [rw] first_seen_time + # @return [::Google::Protobuf::Timestamp] + # Optional. First seen time stamp + # @!attribute [rw] last_seen_time + # @return [::Google::Protobuf::Timestamp] + # Optional. Last seen time stamp + # @!attribute [rw] count + # @return [::Integer] + # Optional. The number of occurrences of this API Operation. + # @!attribute [r] classification + # @return [::Google::Cloud::ApiHub::V1::DiscoveredApiOperation::Classification] + # Output only. The classification of the discovered API operation. + # @!attribute [r] match_results + # @return [::Array<::Google::Cloud::ApiHub::V1::DiscoveredApiOperation::MatchResult>] + # Output only. The list of matched results for the discovered API operation. + # This will be populated only if the classification is known. The current + # usecase is for a single match. Keeping it repeated to support multiple + # matches in future. + # @!attribute [r] source_metadata + # @return [::Google::Cloud::ApiHub::V1::SourceMetadata] + # Output only. The metadata of the source from which the api operation was + # collected. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Create time stamp of the discovered API operation in API Hub. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Update time stamp of the discovered API operation in API Hub. + class DiscoveredApiOperation + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # MatchResult represents the result of matching a discovered API operation + # with a catalog API operation. + # @!attribute [r] name + # @return [::String] + # Output only. The name of the matched API Operation. + # + # Format: + # `projects/{project}/locations/{location}/apis/{api}/versions/{version}/operations/{operation}` + class MatchResult + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The classification of the discovered API operation. + module Classification + # Operation is not classified as known or unknown. + CLASSIFICATION_UNSPECIFIED = 0 + + # Operation has a matched catalog operation. + KNOWN = 1 + + # Operation does not have a matched catalog operation. + UNKNOWN = 2 + end + end + + # An HTTP-based API Operation, sometimes called a "REST" Operation. + # @!attribute [rw] http_operation + # @return [::Google::Cloud::ApiHub::V1::HttpOperation] + # Required. An HTTP Operation. + # @!attribute [rw] path_params + # @return [::Array<::Google::Cloud::ApiHub::V1::HttpOperationDetails::PathParam>] + # Optional. Path params of HttpOperation + # @!attribute [rw] query_params + # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ApiHub::V1::HttpOperationDetails::QueryParam}] + # Optional. Query params of HttpOperation + # @!attribute [rw] request + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::HttpRequest] + # Optional. Request metadata. + # @!attribute [rw] response + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::HttpResponse] + # Optional. Response metadata. + class HttpOperationDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # HTTP Path parameter. + # @!attribute [rw] position + # @return [::Integer] + # Optional. Segment location in the path, 1-indexed + # @!attribute [rw] data_type + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::DataType] + # Optional. Data type of path param + class PathParam + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # An aggregation of HTTP query parameter occurrences. + # @!attribute [rw] name + # @return [::String] + # Required. Name of query param + # @!attribute [rw] count + # @return [::Integer] + # Optional. The number of occurrences of this query parameter across + # transactions. + # @!attribute [rw] data_type + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::DataType] + # Optional. Data type of path param + class QueryParam + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # An aggregation of HTTP header occurrences. + # @!attribute [rw] name + # @return [::String] + # Header name. + # @!attribute [rw] count + # @return [::Integer] + # The number of occurrences of this Header across transactions. + # @!attribute [rw] data_type + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::DataType] + # Data type of header + class Header + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # An aggregation of HTTP requests. + # @!attribute [rw] headers + # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ApiHub::V1::HttpOperationDetails::Header}] + # Optional. Unordered map from header name to header metadata + class HttpRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::Header] + class HeadersEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # An aggregation of HTTP responses. + # @!attribute [rw] headers + # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ApiHub::V1::HttpOperationDetails::Header}] + # Optional. Unordered map from header name to header metadata + # @!attribute [rw] response_codes + # @return [::Google::Protobuf::Map{::Integer => ::Integer}] + # Optional. Map of status code to observed count + class HttpResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::Header] + class HeadersEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] key + # @return [::Integer] + # @!attribute [rw] value + # @return [::Integer] + class ResponseCodesEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::Google::Cloud::ApiHub::V1::HttpOperationDetails::QueryParam] + class QueryParamsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Type of data + module DataType + # Unspecified data type + DATA_TYPE_UNSPECIFIED = 0 + + # Boolean data type + BOOL = 1 + + # Integer data type + INTEGER = 2 + + # Float data type + FLOAT = 3 + + # String data type + STRING = 4 + + # UUID data type + UUID = 5 + end + end + # Lint state represents success or failure for linting. module LintState # Lint state unspecified. @@ -1300,6 +2057,40 @@ module Severity # Severity hint. SEVERITY_HINT = 4 end + + # AuthType represents the authentication type. + module AuthType + # Authentication type not specified. + AUTH_TYPE_UNSPECIFIED = 0 + + # No authentication. + NO_AUTH = 1 + + # Google service account authentication. + GOOGLE_SERVICE_ACCOUNT = 2 + + # Username and password authentication. + USER_PASSWORD = 3 + + # API Key authentication. + API_KEY = 4 + + # Oauth 2.0 client credentials grant authentication. + OAUTH2_CLIENT_CREDENTIALS = 5 + end + + # Enum for the plugin category. + module PluginCategory + # Default unspecified plugin type. + PLUGIN_CATEGORY_UNSPECIFIED = 0 + + # API_GATEWAY plugins represent plugins built for API Gateways like Apigee. + API_GATEWAY = 1 + + # API_PRODUCER plugins represent plugins built for API Producers like + # Cloud Run, Application Integration etc. + API_PRODUCER = 2 + end end end end diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/curate_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/curate_service.rb new file mode 100644 index 000000000000..a42668908236 --- /dev/null +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/curate_service.rb @@ -0,0 +1,268 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module ApiHub + module V1 + # The [CreateCuration][ApiHub.CreateCuration] method's request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource for the curation resource. + # Format: `projects/{project}/locations/{location}` + # @!attribute [rw] curation_id + # @return [::String] + # Optional. The ID to use for the curation resource, which will become the + # final component of the curations's resource name. This field is optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified ID is already used by another curation resource in the API + # hub. + # * If not provided, a system generated ID will be used. + # + # This value should be 4-500 characters, and valid characters + # are /[a-z][A-Z][0-9]-_/. + # @!attribute [rw] curation + # @return [::Google::Cloud::ApiHub::V1::Curation] + # Required. The curation resource to create. + class CreateCurationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The [GetCuration][ApiHub.GetCuration] method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the curation resource to retrieve. + # Format: `projects/{project}/locations/{location}/curations/{curation}` + class GetCurationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The [UpdateCuration][ApiHub.UpdateCuration] method's request. + # @!attribute [rw] curation + # @return [::Google::Cloud::ApiHub::V1::Curation] + # Required. The curation resource to update. + # + # The curation resource's `name` field is used to identify the curation + # resource to update. + # Format: `projects/{project}/locations/{location}/curations/{curation}` + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. The list of fields to update. + class UpdateCurationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The [DeleteCuration][ApiHub.DeleteCuration] method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the curation resource to delete. + # Format: `projects/{project}/locations/{location}/curations/{curation}` + class DeleteCurationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The [ListCurations][ApiHub.ListCurations] method's request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of curation resources. + # Format: `projects/{project}/locations/{location}` + # @!attribute [rw] filter + # @return [::String] + # Optional. An expression that filters the list of curation resources. + # + # A filter expression consists of a field name, a comparison + # operator, and a value for filtering. The value must be a string. The + # comparison operator must be one of: `<`, `>`, `:` or `=`. Filters are case + # insensitive. + # + # The following fields in the `curation resource` are eligible for filtering: + # + # * `create_time` - The time at which the curation was created. + # The value should be in the (RFC3339)[https://tools.ietf.org/html/rfc3339] + # format. Allowed comparison operators: `>` and `<`. + # * `display_name` - The display name of the curation. Allowed + # comparison operators: `=`. + # * `state` - The state of the curation. Allowed comparison operators: `=`. + # + # Expressions are combined with either `AND` logic operator or `OR` logical + # operator but not both of them together i.e. only one of the `AND` or `OR` + # operator can be used throughout the filter string and both the operators + # cannot be used together. No other logical operators are supported. At most + # three filter fields are allowed in the filter string and if provided + # more than that then `INVALID_ARGUMENT` error is returned by the API. + # + # Here are a few examples: + # + # * `create_time < \"2021-08-15T14:50:00Z\" AND create_time > + # \"2021-08-10T12:00:00Z\"` - + # The curation resource was created before _2021-08-15 14:50:00 UTC_ and + # after _2021-08-10 12:00:00 UTC_. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of curation resources to return. The service + # may return fewer than this value. If unspecified, at most 50 curations will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListCurations` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters (except page_size) provided to + # `ListCurations` must match the call that provided the page token. + class ListCurationsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The [ListCurations][ApiHub.ListCurations] method's response. + # @!attribute [rw] curations + # @return [::Array<::Google::Cloud::ApiHub::V1::Curation>] + # The curation resources present in the API hub. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListCurationsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A curation resource in the API Hub. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the curation. + # + # Format: + # `projects/{project}/locations/{location}/curations/{curation}` + # @!attribute [rw] display_name + # @return [::String] + # Required. The display name of the curation. + # @!attribute [rw] description + # @return [::String] + # Optional. The description of the curation. + # @!attribute [rw] endpoint + # @return [::Google::Cloud::ApiHub::V1::Endpoint] + # Required. The endpoint to be triggered for curation. + # @!attribute [r] plugin_instance_actions + # @return [::Array<::Google::Cloud::ApiHub::V1::Curation::PluginInstanceActionID>] + # Output only. The plugin instances and associated actions that are using the + # curation. Note: A particular curation could be used by multiple plugin + # instances or multiple actions in a plugin instance. + # @!attribute [r] last_execution_state + # @return [::Google::Cloud::ApiHub::V1::Curation::LastExecutionState] + # Output only. The last execution state of the curation. + # @!attribute [r] last_execution_error_code + # @return [::Google::Cloud::ApiHub::V1::Curation::ErrorCode] + # Output only. The error code of the last execution of the curation. The + # error code is populated only when the last execution state is failed. + # @!attribute [r] last_execution_error_message + # @return [::String] + # Output only. Error message describing the failure, if any, during the last + # execution of the curation. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the curation was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the curation was last updated. + class Curation + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The plugin instance and associated action that is using the curation. + # @!attribute [r] plugin_instance + # @return [::String] + # Output only. Plugin instance that is using the curation. + # Format is + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @!attribute [r] action_id + # @return [::String] + # Output only. The action ID that is using the curation. + # This should map to one of the action IDs specified + # in action configs in the plugin. + class PluginInstanceActionID + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The state of the last execution of the curation. + module LastExecutionState + # Default unspecified state. + LAST_EXECUTION_STATE_UNSPECIFIED = 0 + + # The last curation execution was successful. + SUCCEEDED = 1 + + # The last curation execution failed. + FAILED = 2 + end + + # The error codes for failed executions. + module ErrorCode + # Default unspecified error code. + ERROR_CODE_UNSPECIFIED = 0 + + # The execution failed due to an internal error. + INTERNAL_ERROR = 1 + + # The curation is not authorized to trigger the endpoint uri. + UNAUTHORIZED = 2 + end + end + + # The endpoint to be triggered for curation. + # The endpoint will be invoked with a request payload containing + # [ApiMetadata][google.cloud.apihub.v1.ApiHub.ApiMetadata]. + # Response should contain curated data in the form of + # [ApiMetadata][google.cloud.apihub.v1.ApiHub.ApiMetadata]. + # @!attribute [rw] application_integration_endpoint_details + # @return [::Google::Cloud::ApiHub::V1::ApplicationIntegrationEndpointDetails] + # Required. The details of the Application Integration endpoint to be + # triggered for curation. + class Endpoint + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The details of the Application Integration endpoint to be triggered for + # curation. + # @!attribute [rw] uri + # @return [::String] + # Required. The endpoint URI should be a valid REST URI for triggering an + # Application Integration. Format: + # `https://integrations.googleapis.com/v1/{name=projects/*/locations/*/integrations/*}:execute` + # or + # `https://{location}-integrations.googleapis.com/v1/{name=projects/*/locations/*/integrations/*}:execute` + # @!attribute [rw] trigger_id + # @return [::String] + # Required. The API trigger ID of the Application Integration workflow. + class ApplicationIntegrationEndpointDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/discovery_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/discovery_service.rb new file mode 100644 index 000000000000..3acba692f01b --- /dev/null +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/discovery_service.rb @@ -0,0 +1,124 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module ApiHub + module V1 + # Message for requesting list of DiscoveredApiObservations + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of ApiObservations. + # Format: + # projects/\\{project}/locations/\\{location} + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of ApiObservations to return. The service may + # return fewer than this value. If unspecified, at most 10 + # ApiObservations will be returned. The maximum value is 1000; values + # above 1000 will be coerced to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListApiObservations` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to + # `ListApiObservations` must match the call that provided the page + # token. + class ListDiscoveredApiObservationsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for response to listing DiscoveredApiObservations + # @!attribute [rw] discovered_api_observations + # @return [::Array<::Google::Cloud::ApiHub::V1::DiscoveredApiObservation>] + # The DiscoveredApiObservation from the specified project and location. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListDiscoveredApiObservationsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for requesting list of DiscoveredApiOperations + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of + # DiscoveredApiOperations. Format: + # projects/\\{project}/locations/\\{location}/discoveredApiObservations/\\{discovered_api_observation} + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. DiscoveredApiOperations will be returned. The maximum value is + # 1000; values above 1000 will be coerced to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous + # `ListDiscoveredApiApiOperations` call. Provide this to retrieve the + # subsequent page. + # + # When paginating, all other parameters provided to + # `ListDiscoveredApiApiOperations` must match the call that provided the page + # token. + class ListDiscoveredApiOperationsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for response to listing DiscoveredApiOperations + # @!attribute [rw] discovered_api_operations + # @return [::Array<::Google::Cloud::ApiHub::V1::DiscoveredApiOperation>] + # The DiscoveredApiOperations from the specified project, location + # and DiscoveredApiObservation. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListDiscoveredApiOperationsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for requesting a DiscoveredApiObservation + # @!attribute [rw] name + # @return [::String] + # Required. The name of the DiscoveredApiObservation to retrieve. + # Format: + # projects/\\{project}/locations/\\{location}/discoveredApiObservations/\\{discovered_api_observation} + class GetDiscoveredApiObservationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for requesting a DiscoveredApiOperation + # @!attribute [rw] name + # @return [::String] + # Required. The name of the DiscoveredApiOperation to retrieve. + # Format: + # projects/\\{project}/locations/\\{location}/discoveredApiObservations/\\{discovered_api_observation}/discoveredApiOperations/\\{discovered_api_operation} + class GetDiscoveredApiOperationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/linting_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/linting_service.rb index 445f171ece03..f6ea22cadeb7 100644 --- a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/linting_service.rb +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/linting_service.rb @@ -21,7 +21,8 @@ module Google module Cloud module ApiHub module V1 - # The [GetStyleGuide][ApiHub.GetStyleGuide] method's request. + # The {::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide GetStyleGuide} + # method's request. # @!attribute [rw] name # @return [::String] # Required. The name of the spec to retrieve. @@ -32,7 +33,9 @@ class GetStyleGuideRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # The [UpdateStyleGuide][ApiHub.UpdateStyleGuide] method's request. + # The + # {::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#update_style_guide UpdateStyleGuide} + # method's request. # @!attribute [rw] style_guide # @return [::Google::Cloud::ApiHub::V1::StyleGuide] # Required. The Style guide resource to update. @@ -44,7 +47,9 @@ class UpdateStyleGuideRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # The [GetStyleGuideContents][ApiHub.GetStyleGuideContents] method's request. + # The + # {::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide_contents GetStyleGuideContents} + # method's request. # @!attribute [rw] name # @return [::String] # Required. The name of the StyleGuide whose contents need to be retrieved. @@ -56,7 +61,8 @@ class GetStyleGuideContentsRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # The [LintSpec][ApiHub.LintSpec] method's request. + # The {::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#lint_spec LintSpec} method's + # request. # @!attribute [rw] name # @return [::String] # Required. The name of the spec to be linted. diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/plugin_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/plugin_service.rb index f896124a4d14..43d139ec69ba 100644 --- a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/plugin_service.rb +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/plugin_service.rb @@ -32,7 +32,7 @@ module V1 # (Unicode code points). # @!attribute [rw] type # @return [::Google::Cloud::ApiHub::V1::AttributeValues] - # Required. The type of the API. + # Optional. The type of the API. # This maps to the following system defined attribute: # `projects/{project}/locations/{location}/attributes/system-plugin-type` # attribute. @@ -40,6 +40,7 @@ module V1 # cardinality of the attribute. The same can be retrieved via GetAttribute # API. All values should be from the list of allowed values defined for the # attribute. + # Note this field is not required for plugins developed via plugin framework. # @!attribute [rw] description # @return [::String] # Optional. The plugin description. Max length is 2000 characters (Unicode @@ -47,10 +48,105 @@ module V1 # @!attribute [r] state # @return [::Google::Cloud::ApiHub::V1::Plugin::State] # Output only. Represents the state of the plugin. + # Note this field will not be set for plugins developed via plugin + # framework as the state will be managed at plugin instance level. + # @!attribute [r] ownership_type + # @return [::Google::Cloud::ApiHub::V1::Plugin::OwnershipType] + # Output only. The type of the plugin, indicating whether it is + # 'SYSTEM_OWNED' or 'USER_OWNED'. + # @!attribute [rw] hosting_service + # @return [::Google::Cloud::ApiHub::V1::Plugin::HostingService] + # Optional. This field is optional. It is used to notify the plugin hosting + # service for any lifecycle changes of the plugin instance and trigger + # execution of plugin instance actions in case of API hub managed actions. + # + # This field should be provided if the plugin instance lifecycle of the + # developed plugin needs to be managed from API hub. Also, in this case the + # plugin hosting service interface needs to be implemented. + # + # This field should not be provided if the plugin wants to manage plugin + # instance lifecycle events outside of hub interface and use plugin framework + # for only registering of plugin and plugin instances to capture the source + # of data into hub. Note, in this case the plugin hosting service interface + # is not required to be implemented. Also, the plugin instance lifecycle + # actions will be disabled from API hub's UI. + # @!attribute [rw] actions_config + # @return [::Array<::Google::Cloud::ApiHub::V1::PluginActionConfig>] + # Optional. The configuration of actions supported by the plugin. + # **REQUIRED**: This field must be provided when creating or updating a + # Plugin. The server will reject requests if this field is missing. + # @!attribute [rw] documentation + # @return [::Google::Cloud::ApiHub::V1::Documentation] + # Optional. The documentation of the plugin, that explains how to set up and + # use the plugin. + # @!attribute [rw] plugin_category + # @return [::Google::Cloud::ApiHub::V1::PluginCategory] + # Optional. The category of the plugin, identifying its primary category or + # purpose. This field is required for all plugins. + # @!attribute [rw] config_template + # @return [::Google::Cloud::ApiHub::V1::Plugin::ConfigTemplate] + # Optional. The configuration template for the plugin. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp indicating when the plugin was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp indicating when the plugin was last updated. + # @!attribute [rw] gateway_type + # @return [::Google::Cloud::ApiHub::V1::GatewayType] + # Optional. The type of the gateway. class Plugin include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + # The information related to the service implemented by the plugin + # developer, used to invoke the plugin's functionality. + # @!attribute [rw] service_uri + # @return [::String] + # Optional. The URI of the service implemented by the plugin developer, + # used to invoke the plugin's functionality. This information is only + # required for user defined plugins. + class HostingService + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # ConfigTemplate represents the configuration template for a plugin. + # @!attribute [rw] auth_config_template + # @return [::Google::Cloud::ApiHub::V1::Plugin::ConfigTemplate::AuthConfigTemplate] + # Optional. The authentication template for the plugin. + # @!attribute [rw] additional_config_template + # @return [::Array<::Google::Cloud::ApiHub::V1::ConfigVariableTemplate>] + # Optional. The list of additional configuration variables for the plugin's + # configuration. + class ConfigTemplate + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # AuthConfigTemplate represents the authentication template for a plugin. + # @!attribute [rw] supported_auth_types + # @return [::Array<::Google::Cloud::ApiHub::V1::AuthType>] + # Required. The list of authentication types supported by the plugin. + # @!attribute [rw] service_account + # @return [::Google::Cloud::ApiHub::V1::GoogleServiceAccountConfig] + # Optional. The service account of the plugin hosting service. + # This service account should be granted the required permissions on the + # Auth Config parameters provided while creating the plugin instances + # corresponding to this plugin. + # + # For example, if the plugin instance auth config requires a secret + # manager secret, the service account should be granted the + # secretmanager.versions.access permission on the corresponding secret, + # if the plugin instance auth config contains a service account, the + # service account should be granted the + # iam.serviceAccounts.getAccessToken permission on the corresponding + # service account. + class AuthConfigTemplate + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + # Possible states a plugin can have. Note that this enum may receive new # values in the future. Consumers are advised to always code against the # enum values expecting new states can be added later on. @@ -64,6 +160,68 @@ module State # The plugin is disabled. DISABLED = 2 end + + # Ownership type of the plugin. + module OwnershipType + # Default unspecified type. + OWNERSHIP_TYPE_UNSPECIFIED = 0 + + # System owned plugins are defined by API hub and are available out of the + # box in API hub. + SYSTEM_OWNED = 1 + + # User owned plugins are defined by the user and need to be explicitly + # added to API hub via + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin CreatePlugin} method. + USER_OWNED = 2 + end + end + + # PluginActionConfig represents the configuration of an action supported by a + # plugin. + # @!attribute [rw] id + # @return [::String] + # Required. The id of the action. + # @!attribute [rw] display_name + # @return [::String] + # Required. The display name of the action. + # @!attribute [rw] description + # @return [::String] + # Required. The description of the operation performed by the action. + # @!attribute [rw] trigger_mode + # @return [::Google::Cloud::ApiHub::V1::PluginActionConfig::TriggerMode] + # Required. The trigger mode supported by the action. + class PluginActionConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Execution mode of the action. + module TriggerMode + # Default unspecified mode. + TRIGGER_MODE_UNSPECIFIED = 0 + + # This action can be executed by invoking + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action ExecutePluginInstanceAction} + # API with the given action id. To support this, the plugin hosting service + # should handle this action id as part of execute call. + API_HUB_ON_DEMAND_TRIGGER = 1 + + # This action will be executed on schedule by invoking + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action ExecutePluginInstanceAction} + # API with the given action id. To set the schedule, the user can provide + # the cron expression in the + # [PluginAction][PluginAction.schedule_cron_expression] field for a given + # plugin instance. To support this, the plugin hosting service should + # handle this action id as part of execute call. + # Note, on demand execution will be supported by default in this trigger + # mode. + API_HUB_SCHEDULE_TRIGGER = 2 + + # The execution of this plugin is not handled by API hub. In this case, + # the plugin hosting service need not handle this action id as part of + # the execute call. + NON_API_HUB_MANAGED = 3 + end end # The {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin GetPlugin} method's @@ -98,6 +256,646 @@ class DisablePluginRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # PluginInstanceAction represents an action which can be executed in the plugin + # instance. + # @!attribute [rw] hub_instance_action + # @return [::Google::Cloud::ApiHub::V1::ExecutionStatus] + # Optional. The execution information for the plugin instance action done + # corresponding to an API hub instance. + # @!attribute [rw] action_id + # @return [::String] + # Required. This should map to one of the [action + # id][google.cloud.apihub.v1.PluginActionConfig.id] specified in + # {::Google::Cloud::ApiHub::V1::Plugin#actions_config actions_config} in the + # plugin. + # @!attribute [r] state + # @return [::Google::Cloud::ApiHub::V1::PluginInstanceAction::State] + # Output only. The current state of the plugin action in the plugin instance. + # @!attribute [rw] schedule_cron_expression + # @return [::String] + # Optional. The schedule for this plugin instance action. This can only be + # set if the plugin supports API_HUB_SCHEDULE_TRIGGER mode for this action. + # @!attribute [rw] curation_config + # @return [::Google::Cloud::ApiHub::V1::CurationConfig] + # Optional. This configuration should be provided if the plugin action is + # publishing data to API hub curate layer. + # @!attribute [rw] schedule_time_zone + # @return [::String] + # Optional. The time zone for the schedule cron expression. If not provided, + # UTC will be used. + # @!attribute [rw] service_account + # @return [::String] + # Optional. The service account used to publish data. Note, the service + # account will only be accepted for non GCP plugins like OPDK. + # @!attribute [r] resource_config + # @return [::Google::Cloud::ApiHub::V1::PluginInstanceAction::ResourceConfig] + # Output only. The configuration of resources created for a given plugin + # instance action. Note these will be returned only in case of Non-GCP + # plugins like OPDK. + class PluginInstanceAction + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The configuration of resources created for a given plugin instance action. + # @!attribute [r] action_type + # @return [::Google::Cloud::ApiHub::V1::ActionType] + # Output only. The type of the action. + # @!attribute [r] pubsub_topic + # @return [::String] + # Output only. The pubsub topic to publish the data to. Format is + # projects/\\{project}/topics/\\{topic} + class ResourceConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # State represents the state of the plugin instance action. + module State + # Default unspecified state. + STATE_UNSPECIFIED = 0 + + # The action is enabled in the plugin instance i.e., executions can + # be triggered for this action. + ENABLED = 1 + + # The action is disabled in the plugin instance i.e., no executions + # can be triggered for this action. This state indicates that the user + # explicitly disabled the instance, and no further action is needed unless + # the user wants to re-enable it. + DISABLED = 2 + + # The action in the plugin instance is being enabled. + ENABLING = 3 + + # The action in the plugin instance is being disabled. + DISABLING = 4 + + # The ERROR state can come while enabling/disabling plugin instance action. + # Users can retrigger enable, disable via + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin_instance_action EnablePluginInstanceAction} + # and + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin_instance_action DisablePluginInstanceAction} + # to restore the action back to enabled/disabled state. Note enable/disable + # on actions can only be triggered if plugin instance is in Active state. + ERROR = 5 + end + end + + # Represents a plugin instance resource in the API Hub. + # A PluginInstance is a specific instance of a hub plugin with its own + # configuration, state, and execution details. + # @!attribute [rw] name + # @return [::String] + # Identifier. The unique name of the plugin instance resource. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @!attribute [rw] display_name + # @return [::String] + # Required. The display name for this plugin instance. Max length is 255 + # characters. + # @!attribute [rw] auth_config + # @return [::Google::Cloud::ApiHub::V1::AuthConfig] + # Optional. The authentication information for this plugin instance. + # @!attribute [rw] additional_config + # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::ApiHub::V1::ConfigVariable}] + # Optional. The additional information for this plugin instance corresponding + # to the additional config template of the plugin. This information will be + # sent to plugin hosting service on each call to plugin hosted service. The + # key will be the config_variable_template.display_name to uniquely identify + # the config variable. + # @!attribute [r] state + # @return [::Google::Cloud::ApiHub::V1::PluginInstance::State] + # Output only. The current state of the plugin instance (e.g., enabled, + # disabled, provisioning). + # @!attribute [r] error_message + # @return [::String] + # Output only. Error message describing the failure, if any, during Create, + # Delete or ApplyConfig operation corresponding to the plugin instance.This + # field will only be populated if the plugin instance is in the ERROR or + # FAILED state. + # @!attribute [rw] actions + # @return [::Array<::Google::Cloud::ApiHub::V1::PluginInstanceAction>] + # Required. The action status for the plugin instance. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp indicating when the plugin instance was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp indicating when the plugin instance was last + # updated. + # @!attribute [rw] source_project_id + # @return [::String] + # Optional. The source project id of the plugin instance. This will be the id + # of runtime project in case of gcp based plugins and org id in case of non + # gcp based plugins. This field will be a required field for Google provided + # on-ramp plugins. + class PluginInstance + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::Google::Cloud::ApiHub::V1::ConfigVariable] + class AdditionalConfigEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # State represents the state of the plugin instance. + module State + # Default unspecified state. + STATE_UNSPECIFIED = 0 + + # The plugin instance is being created. + CREATING = 1 + + # The plugin instance is active and ready for executions. This is the only + # state where executions can run on the plugin instance. + ACTIVE = 2 + + # The updated config that contains + # {::Google::Cloud::ApiHub::V1::PluginInstance#additional_config additional_config} + # and {::Google::Cloud::ApiHub::V1::PluginInstance#auth_config auth_config} is + # being applied. + APPLYING_CONFIG = 3 + + # The ERROR state can come while applying config. Users + # can retrigger + # [ApplyPluginInstanceConfig][google.cloud.apihub.v1.ApiHubPlugin.ApplyPluginInstanceConfig] + # to restore the plugin instance back to active state. Note, In case the + # ERROR state happens while applying config (auth_config, + # additional_config), the plugin instance will reflect the config which was + # trying to be applied while error happened. In order to overwrite, trigger + # ApplyConfig with a new config. + ERROR = 4 + + # The plugin instance is in a failed state. This indicates that an + # unrecoverable error occurred during a previous operation (Create, + # Delete). + FAILED = 5 + + # The plugin instance is being deleted. Delete is only possible if there is + # no other operation running on the plugin instance and plugin instance + # action. + DELETING = 6 + end + end + + # The curation information for this plugin instance. + # @!attribute [rw] custom_curation + # @return [::Google::Cloud::ApiHub::V1::CurationConfig::CustomCuration] + # Optional. Custom curation information for this plugin instance. + # @!attribute [rw] curation_type + # @return [::Google::Cloud::ApiHub::V1::CurationType] + # Required. The curation type for this plugin instance. + class CurationConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Custom curation information for this plugin instance. + # @!attribute [rw] curation + # @return [::String] + # Required. The unique name of the curation resource. This will be the name + # of the curation resource in the format: + # `projects/{project}/locations/{location}/curations/{curation}` + class CustomCuration + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # The execution status for the plugin instance. + # @!attribute [r] current_execution_state + # @return [::Google::Cloud::ApiHub::V1::ExecutionStatus::CurrentExecutionState] + # Output only. The current state of the execution. + # @!attribute [r] last_execution + # @return [::Google::Cloud::ApiHub::V1::ExecutionStatus::LastExecution] + # Output only. The last execution of the plugin instance. + class ExecutionStatus + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The result of the last execution of the plugin instance. + # @!attribute [r] result + # @return [::Google::Cloud::ApiHub::V1::ExecutionStatus::LastExecution::Result] + # Output only. The result of the last execution of the plugin instance. + # @!attribute [r] error_message + # @return [::String] + # Output only. Error message describing the failure, if any, during the + # last execution. + # @!attribute [r] start_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The last execution start time of the plugin instance. + # @!attribute [r] end_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The last execution end time of the plugin instance. + class LastExecution + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Enum for the result of the last execution of the plugin instance. + module Result + # Default unspecified execution result. + RESULT_UNSPECIFIED = 0 + + # The plugin instance executed successfully. + SUCCEEDED = 1 + + # The plugin instance execution failed. + FAILED = 2 + end + end + + # Enum for the current state of the execution. + module CurrentExecutionState + # Default unspecified execution state. + CURRENT_EXECUTION_STATE_UNSPECIFIED = 0 + + # The plugin instance is executing. + RUNNING = 1 + + # The plugin instance is not running an execution. + NOT_RUNNING = 2 + end + end + + # The {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin CreatePlugin} method's + # request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource where this plugin will be created. + # Format: `projects/{project}/locations/{location}`. + # @!attribute [rw] plugin_id + # @return [::String] + # Optional. The ID to use for the Plugin resource, which will become the + # final component of the Plugin's resource name. This field is optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified id is already used by another Plugin resource in the API hub + # instance. + # * If not provided, a system generated id will be used. + # + # This value should be 4-63 characters, overall resource name which will be + # of format + # `projects/{project}/locations/{location}/plugins/{plugin}`, + # its length is limited to 1000 characters and valid characters are + # /[a-z][A-Z][0-9]-_/. + # @!attribute [rw] plugin + # @return [::Google::Cloud::ApiHub::V1::Plugin] + # Required. The plugin to create. + class CreatePluginRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The [DeletePlugin][ApiHub.DeletePlugin] method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the Plugin resource to delete. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}` + class DeletePluginRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugins ListPlugins} method's + # request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource where this plugin will be created. + # Format: `projects/{project}/locations/{location}`. + # @!attribute [rw] filter + # @return [::String] + # Optional. An expression that filters the list of plugins. + # + # A filter expression consists of a field name, a comparison + # operator, and a value for filtering. The value must be a string. The + # comparison operator must be one of: `<`, `>` or + # `=`. Filters are not case sensitive. + # + # The following fields in the `Plugins` are eligible for filtering: + # + # * `plugin_category` - The category of the Plugin. Allowed + # comparison operators: `=`. + # + # Expressions are combined with either `AND` logic operator or `OR` logical + # operator but not both of them together i.e. only one of the `AND` or `OR` + # operator can be used throughout the filter string and both the operators + # cannot be used together. No other logical operators are + # supported. At most three filter fields are allowed in the filter + # string and if provided more than that then `INVALID_ARGUMENT` error is + # returned by the API. + # Here are a few examples: + # + # * `plugin_category = ON_RAMP` - The plugin is of category + # on ramp. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of hub plugins to return. The service may + # return fewer than this value. If unspecified, at most 50 hub plugins will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListPlugins` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters (except page_size) provided to + # `ListPlugins` must match the call that provided the page token. + class ListPluginsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugins ListPlugins} method's + # response. + # @!attribute [rw] plugins + # @return [::Array<::Google::Cloud::ApiHub::V1::Plugin>] + # The plugins from the specified parent resource. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListPluginsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin_instance CreatePluginInstance} + # method's request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent of the plugin instance resource. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}` + # @!attribute [rw] plugin_instance_id + # @return [::String] + # Optional. The ID to use for the plugin instance, which will become the + # final component of the plugin instance's resource name. This field is + # optional. + # + # * If provided, the same will be used. The service will throw an error if + # the specified id is already used by another plugin instance in the plugin + # resource. + # * If not provided, a system generated id will be used. + # + # This value should be 4-63 characters, and valid characters + # are /[a-z][A-Z][0-9]-_/. + # @!attribute [rw] plugin_instance + # @return [::Google::Cloud::ApiHub::V1::PluginInstance] + # Required. The plugin instance to create. + class CreatePluginInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action ExecutePluginInstanceAction} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the plugin instance to execute. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @!attribute [rw] action_execution_detail + # @return [::Google::Cloud::ApiHub::V1::ActionExecutionDetail] + # Required. The execution details for the action to execute. + class ExecutePluginInstanceActionRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The details for the action to execute. + # @!attribute [rw] action_id + # @return [::String] + # Required. The action id of the plugin to execute. + class ActionExecutionDetail + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action ExecutePluginInstanceAction} + # method's response. + class ExecutePluginInstanceActionResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin_instance GetPluginInstance} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the plugin instance to retrieve. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + class GetPluginInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugin_instances ListPluginInstances} + # method's request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource where this plugin will be created. + # Format: `projects/{project}/locations/{location}/plugins/{plugin}`. + # To list plugin instances for multiple plugins, + # use the - character instead of the plugin ID. + # @!attribute [rw] filter + # @return [::String] + # Optional. An expression that filters the list of plugin instances. + # + # A filter expression consists of a field name, a comparison + # operator, and a value for filtering. The value must be a string. The + # comparison operator must be one of: `<`, `>` or + # `=`. Filters are not case sensitive. + # + # The following fields in the `PluginInstances` are eligible for filtering: + # + # * `state` - The state of the Plugin Instance. Allowed + # comparison operators: `=`. + # + # A filter function is also supported in the filter string. The filter + # function is `id(name)`. The `id(name)` function returns the id of the + # resource name. For example, `id(name) = \"plugin-instance-1\"` is + # equivalent to `name = + # \"projects/test-project-id/locations/test-location-id/plugins/plugin-1/instances/plugin-instance-1\"` + # provided the parent is + # `projects/test-project-id/locations/test-location-id/plugins/plugin-1`. + # + # Expressions are combined with either `AND` logic operator or `OR` logical + # operator but not both of them together i.e. only one of the `AND` or `OR` + # operator can be used throughout the filter string and both the operators + # cannot be used together. No other logical operators are + # supported. At most three filter fields are allowed in the filter + # string and if provided more than that then `INVALID_ARGUMENT` error is + # returned by the API. + # Here are a few examples: + # + # * `state = ENABLED` - The plugin instance is in enabled state. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of hub plugins to return. The service may + # return fewer than this value. If unspecified, at most 50 hub plugins will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListPluginInstances` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListPluginInstances` + # must match the call that provided the page token. + class ListPluginInstancesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugin_instances ListPluginInstances} + # method's response. + # @!attribute [rw] plugin_instances + # @return [::Array<::Google::Cloud::ApiHub::V1::PluginInstance>] + # The plugin instances from the specified parent resource. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListPluginInstancesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin_instance_action EnablePluginInstanceAction} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the plugin instance to enable. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @!attribute [rw] action_id + # @return [::String] + # Required. The action id to enable. + class EnablePluginInstanceActionRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin_instance_action EnablePluginInstanceAction} + # method's response. + class EnablePluginInstanceActionResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin_instance_action DisablePluginInstanceAction} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the plugin instance to disable. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}` + # @!attribute [rw] action_id + # @return [::String] + # Required. The action id to disable. + class DisablePluginInstanceActionRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin_instance_action DisablePluginInstanceAction} + # method's response. + class DisablePluginInstanceActionResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#update_plugin_instance UpdatePluginInstance} + # method's request. + # @!attribute [rw] plugin_instance + # @return [::Google::Cloud::ApiHub::V1::PluginInstance] + # Required. The plugin instance to update. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. The list of fields to update. + class UpdatePluginInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The + # {::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin_instance DeletePluginInstance} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the plugin instance to delete. + # Format: + # `projects/{project}/locations/{location}/plugins/{plugin}/instances/{instance}`. + class DeletePluginInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Enum for the action type. + module ActionType + # Default unspecified action type. + ACTION_TYPE_UNSPECIFIED = 0 + + # Action type for sync metadata. + SYNC_METADATA = 1 + + # Action type for sync runtime data. + SYNC_RUNTIME_DATA = 2 + end + + # Enum for the gateway type. + module GatewayType + # The gateway type is not specified. + GATEWAY_TYPE_UNSPECIFIED = 0 + + # The gateway type is Apigee X and Hybrid. + APIGEE_X_AND_HYBRID = 1 + + # The gateway type is Apigee Edge Public Cloud. + APIGEE_EDGE_PUBLIC_CLOUD = 2 + + # The gateway type is Apigee Edge Private Cloud. + APIGEE_EDGE_PRIVATE_CLOUD = 3 + + # The gateway type is Cloud API Gateway. + CLOUD_API_GATEWAY = 4 + + # The gateway type is Cloud Endpoints. + CLOUD_ENDPOINTS = 5 + + # The gateway type is API Discovery. + API_DISCOVERY = 6 + + # The gateway type for any other types of gateways. + OTHERS = 7 + end + + # Enum for the curation type. + module CurationType + # Default unspecified curation type. + CURATION_TYPE_UNSPECIFIED = 0 + + # Default curation for API metadata will be used. + DEFAULT_CURATION_FOR_API_METADATA = 1 + + # Custom curation for API metadata will be used. + CUSTOM_CURATION_FOR_API_METADATA = 2 + end end end end diff --git a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/provisioning_service.rb b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/provisioning_service.rb index e23156a1af83..a67a021c1f3a 100644 --- a/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/provisioning_service.rb +++ b/google-cloud-api_hub-v1/proto_docs/google/cloud/apihub/v1/provisioning_service.rb @@ -44,6 +44,19 @@ class CreateApiHubInstanceRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # The + # {::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#delete_api_hub_instance DeleteApiHubInstance} + # method's request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the Api Hub instance to delete. + # Format: + # `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`. + class DeleteApiHubInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # The # {::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#get_api_hub_instance GetApiHubInstance} # method's request. diff --git a/google-cloud-api_hub-v1/snippets/api_hub/create_api_operation.rb b/google-cloud-api_hub-v1/snippets/api_hub/create_api_operation.rb new file mode 100644 index 000000000000..c02418ee30e8 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub/create_api_operation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHub_CreateApiOperation_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the create_api_operation call in the ApiHub service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation. +# +def create_api_operation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::CreateApiOperationRequest.new + + # Call the create_api_operation method. + result = client.create_api_operation request + + # The returned object is of type Google::Cloud::ApiHub::V1::ApiOperation. + p result +end +# [END apihub_v1_generated_ApiHub_CreateApiOperation_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub/delete_api_operation.rb b/google-cloud-api_hub-v1/snippets/api_hub/delete_api_operation.rb new file mode 100644 index 000000000000..b273d0a77985 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub/delete_api_operation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHub_DeleteApiOperation_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the delete_api_operation call in the ApiHub service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#delete_api_operation. +# +def delete_api_operation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::DeleteApiOperationRequest.new + + # Call the delete_api_operation method. + result = client.delete_api_operation request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END apihub_v1_generated_ApiHub_DeleteApiOperation_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub/update_api_operation.rb b/google-cloud-api_hub-v1/snippets/api_hub/update_api_operation.rb new file mode 100644 index 000000000000..716b553f4945 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub/update_api_operation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHub_UpdateApiOperation_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the update_api_operation call in the ApiHub service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#update_api_operation. +# +def update_api_operation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::UpdateApiOperationRequest.new + + # Call the update_api_operation method. + result = client.update_api_operation request + + # The returned object is of type Google::Cloud::ApiHub::V1::ApiOperation. + p result +end +# [END apihub_v1_generated_ApiHub_UpdateApiOperation_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_collect/collect_api_data.rb b/google-cloud-api_hub-v1/snippets/api_hub_collect/collect_api_data.rb new file mode 100644 index 000000000000..abcdaac5ceaa --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_collect/collect_api_data.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubCollect_CollectApiData_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the collect_api_data call in the ApiHubCollect service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client#collect_api_data. +# +def collect_api_data + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::CollectApiDataRequest.new + + # Call the collect_api_data method. + result = client.collect_api_data request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubCollect_CollectApiData_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_curate/create_curation.rb b/google-cloud-api_hub-v1/snippets/api_hub_curate/create_curation.rb new file mode 100644 index 000000000000..89eadb38fbf1 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_curate/create_curation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubCurate_CreateCuration_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the create_curation call in the ApiHubCurate service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#create_curation. +# +def create_curation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::CreateCurationRequest.new + + # Call the create_curation method. + result = client.create_curation request + + # The returned object is of type Google::Cloud::ApiHub::V1::Curation. + p result +end +# [END apihub_v1_generated_ApiHubCurate_CreateCuration_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_curate/delete_curation.rb b/google-cloud-api_hub-v1/snippets/api_hub_curate/delete_curation.rb new file mode 100644 index 000000000000..c1749420ab81 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_curate/delete_curation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubCurate_DeleteCuration_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the delete_curation call in the ApiHubCurate service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#delete_curation. +# +def delete_curation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::DeleteCurationRequest.new + + # Call the delete_curation method. + result = client.delete_curation request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END apihub_v1_generated_ApiHubCurate_DeleteCuration_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_curate/get_curation.rb b/google-cloud-api_hub-v1/snippets/api_hub_curate/get_curation.rb new file mode 100644 index 000000000000..7156a1e82574 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_curate/get_curation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubCurate_GetCuration_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the get_curation call in the ApiHubCurate service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#get_curation. +# +def get_curation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::GetCurationRequest.new + + # Call the get_curation method. + result = client.get_curation request + + # The returned object is of type Google::Cloud::ApiHub::V1::Curation. + p result +end +# [END apihub_v1_generated_ApiHubCurate_GetCuration_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_curate/list_curations.rb b/google-cloud-api_hub-v1/snippets/api_hub_curate/list_curations.rb new file mode 100644 index 000000000000..d69798f4f2cc --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_curate/list_curations.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubCurate_ListCurations_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the list_curations call in the ApiHubCurate service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#list_curations. +# +def list_curations + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::ListCurationsRequest.new + + # Call the list_curations method. + result = client.list_curations request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::ApiHub::V1::Curation. + p item + end +end +# [END apihub_v1_generated_ApiHubCurate_ListCurations_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_curate/update_curation.rb b/google-cloud-api_hub-v1/snippets/api_hub_curate/update_curation.rb new file mode 100644 index 000000000000..a07bb789390c --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_curate/update_curation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubCurate_UpdateCuration_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the update_curation call in the ApiHubCurate service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#update_curation. +# +def update_curation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::UpdateCurationRequest.new + + # Call the update_curation method. + result = client.update_curation request + + # The returned object is of type Google::Cloud::ApiHub::V1::Curation. + p result +end +# [END apihub_v1_generated_ApiHubCurate_UpdateCuration_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_discovery/get_discovered_api_observation.rb b/google-cloud-api_hub-v1/snippets/api_hub_discovery/get_discovered_api_observation.rb new file mode 100644 index 000000000000..8a9b728b4006 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_discovery/get_discovered_api_observation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubDiscovery_GetDiscoveredApiObservation_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the get_discovered_api_observation call in the ApiHubDiscovery service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#get_discovered_api_observation. +# +def get_discovered_api_observation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest.new + + # Call the get_discovered_api_observation method. + result = client.get_discovered_api_observation request + + # The returned object is of type Google::Cloud::ApiHub::V1::DiscoveredApiObservation. + p result +end +# [END apihub_v1_generated_ApiHubDiscovery_GetDiscoveredApiObservation_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_discovery/get_discovered_api_operation.rb b/google-cloud-api_hub-v1/snippets/api_hub_discovery/get_discovered_api_operation.rb new file mode 100644 index 000000000000..81247cb5644f --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_discovery/get_discovered_api_operation.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubDiscovery_GetDiscoveredApiOperation_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the get_discovered_api_operation call in the ApiHubDiscovery service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#get_discovered_api_operation. +# +def get_discovered_api_operation + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest.new + + # Call the get_discovered_api_operation method. + result = client.get_discovered_api_operation request + + # The returned object is of type Google::Cloud::ApiHub::V1::DiscoveredApiOperation. + p result +end +# [END apihub_v1_generated_ApiHubDiscovery_GetDiscoveredApiOperation_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_discovery/list_discovered_api_observations.rb b/google-cloud-api_hub-v1/snippets/api_hub_discovery/list_discovered_api_observations.rb new file mode 100644 index 000000000000..1fe9bdd9b992 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_discovery/list_discovered_api_observations.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubDiscovery_ListDiscoveredApiObservations_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the list_discovered_api_observations call in the ApiHubDiscovery service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#list_discovered_api_observations. +# +def list_discovered_api_observations + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest.new + + # Call the list_discovered_api_observations method. + result = client.list_discovered_api_observations request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::ApiHub::V1::DiscoveredApiObservation. + p item + end +end +# [END apihub_v1_generated_ApiHubDiscovery_ListDiscoveredApiObservations_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_discovery/list_discovered_api_operations.rb b/google-cloud-api_hub-v1/snippets/api_hub_discovery/list_discovered_api_operations.rb new file mode 100644 index 000000000000..ec086e1916a7 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_discovery/list_discovered_api_operations.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubDiscovery_ListDiscoveredApiOperations_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the list_discovered_api_operations call in the ApiHubDiscovery service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#list_discovered_api_operations. +# +def list_discovered_api_operations + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest.new + + # Call the list_discovered_api_operations method. + result = client.list_discovered_api_operations request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::ApiHub::V1::DiscoveredApiOperation. + p item + end +end +# [END apihub_v1_generated_ApiHubDiscovery_ListDiscoveredApiOperations_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/create_plugin.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/create_plugin.rb new file mode 100644 index 000000000000..ae36a5452a6b --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/create_plugin.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_CreatePlugin_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the create_plugin call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin. +# +def create_plugin + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::CreatePluginRequest.new + + # Call the create_plugin method. + result = client.create_plugin request + + # The returned object is of type Google::Cloud::ApiHub::V1::Plugin. + p result +end +# [END apihub_v1_generated_ApiHubPlugin_CreatePlugin_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/create_plugin_instance.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/create_plugin_instance.rb new file mode 100644 index 000000000000..44ca175ef36d --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/create_plugin_instance.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_CreatePluginInstance_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the create_plugin_instance call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin_instance. +# +def create_plugin_instance + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest.new + + # Call the create_plugin_instance method. + result = client.create_plugin_instance request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubPlugin_CreatePluginInstance_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/delete_plugin.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/delete_plugin.rb new file mode 100644 index 000000000000..3df9ab658d99 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/delete_plugin.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_DeletePlugin_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the delete_plugin call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin. +# +def delete_plugin + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::DeletePluginRequest.new + + # Call the delete_plugin method. + result = client.delete_plugin request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubPlugin_DeletePlugin_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/delete_plugin_instance.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/delete_plugin_instance.rb new file mode 100644 index 000000000000..3e6840f648a0 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/delete_plugin_instance.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_DeletePluginInstance_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the delete_plugin_instance call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin_instance. +# +def delete_plugin_instance + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest.new + + # Call the delete_plugin_instance method. + result = client.delete_plugin_instance request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubPlugin_DeletePluginInstance_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/disable_plugin_instance_action.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/disable_plugin_instance_action.rb new file mode 100644 index 000000000000..06c7932f70e9 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/disable_plugin_instance_action.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_DisablePluginInstanceAction_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the disable_plugin_instance_action call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin_instance_action. +# +def disable_plugin_instance_action + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest.new + + # Call the disable_plugin_instance_action method. + result = client.disable_plugin_instance_action request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubPlugin_DisablePluginInstanceAction_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/enable_plugin_instance_action.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/enable_plugin_instance_action.rb new file mode 100644 index 000000000000..dcce1787c8fc --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/enable_plugin_instance_action.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_EnablePluginInstanceAction_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the enable_plugin_instance_action call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin_instance_action. +# +def enable_plugin_instance_action + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest.new + + # Call the enable_plugin_instance_action method. + result = client.enable_plugin_instance_action request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubPlugin_EnablePluginInstanceAction_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/execute_plugin_instance_action.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/execute_plugin_instance_action.rb new file mode 100644 index 000000000000..e33799d32f19 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/execute_plugin_instance_action.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_ExecutePluginInstanceAction_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the execute_plugin_instance_action call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action. +# +def execute_plugin_instance_action + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest.new + + # Call the execute_plugin_instance_action method. + result = client.execute_plugin_instance_action request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_ApiHubPlugin_ExecutePluginInstanceAction_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/get_plugin_instance.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/get_plugin_instance.rb new file mode 100644 index 000000000000..49a38111a1e6 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/get_plugin_instance.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_GetPluginInstance_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the get_plugin_instance call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin_instance. +# +def get_plugin_instance + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::GetPluginInstanceRequest.new + + # Call the get_plugin_instance method. + result = client.get_plugin_instance request + + # The returned object is of type Google::Cloud::ApiHub::V1::PluginInstance. + p result +end +# [END apihub_v1_generated_ApiHubPlugin_GetPluginInstance_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/list_plugin_instances.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/list_plugin_instances.rb new file mode 100644 index 000000000000..24a4157f4bc7 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/list_plugin_instances.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_ListPluginInstances_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the list_plugin_instances call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugin_instances. +# +def list_plugin_instances + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::ListPluginInstancesRequest.new + + # Call the list_plugin_instances method. + result = client.list_plugin_instances request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::ApiHub::V1::PluginInstance. + p item + end +end +# [END apihub_v1_generated_ApiHubPlugin_ListPluginInstances_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/list_plugins.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/list_plugins.rb new file mode 100644 index 000000000000..bf6cfa2ce4ec --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/list_plugins.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_ListPlugins_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the list_plugins call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugins. +# +def list_plugins + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::ListPluginsRequest.new + + # Call the list_plugins method. + result = client.list_plugins request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::ApiHub::V1::Plugin. + p item + end +end +# [END apihub_v1_generated_ApiHubPlugin_ListPlugins_sync] diff --git a/google-cloud-api_hub-v1/snippets/api_hub_plugin/update_plugin_instance.rb b/google-cloud-api_hub-v1/snippets/api_hub_plugin/update_plugin_instance.rb new file mode 100644 index 000000000000..27bef9230630 --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/api_hub_plugin/update_plugin_instance.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_ApiHubPlugin_UpdatePluginInstance_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the update_plugin_instance call in the ApiHubPlugin service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#update_plugin_instance. +# +def update_plugin_instance + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest.new + + # Call the update_plugin_instance method. + result = client.update_plugin_instance request + + # The returned object is of type Google::Cloud::ApiHub::V1::PluginInstance. + p result +end +# [END apihub_v1_generated_ApiHubPlugin_UpdatePluginInstance_sync] diff --git a/google-cloud-api_hub-v1/snippets/provisioning/delete_api_hub_instance.rb b/google-cloud-api_hub-v1/snippets/provisioning/delete_api_hub_instance.rb new file mode 100644 index 000000000000..2a9dcb30352e --- /dev/null +++ b/google-cloud-api_hub-v1/snippets/provisioning/delete_api_hub_instance.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START apihub_v1_generated_Provisioning_DeleteApiHubInstance_sync] +require "google/cloud/api_hub/v1" + +## +# Snippet for the delete_api_hub_instance call in the Provisioning service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#delete_api_hub_instance. +# +def delete_api_hub_instance + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ApiHub::V1::Provisioning::Rest::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest.new + + # Call the delete_api_hub_instance method. + result = client.delete_api_hub_instance request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END apihub_v1_generated_Provisioning_DeleteApiHubInstance_sync] diff --git a/google-cloud-api_hub-v1/snippets/snippet_metadata_google.cloud.apihub.v1.json b/google-cloud-api_hub-v1/snippets/snippet_metadata_google.cloud.apihub.v1.json index 624477a53c53..c453af4be609 100644 --- a/google-cloud-api_hub-v1/snippets/snippet_metadata_google.cloud.apihub.v1.json +++ b/google-cloud-api_hub-v1/snippets/snippet_metadata_google.cloud.apihub.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-api_hub-v1", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { @@ -651,6 +651,46 @@ } ] }, + { + "region_tag": "apihub_v1_generated_ApiHub_CreateApiOperation_sync", + "title": "Snippet for the create_api_operation call in the ApiHub service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation.", + "file": "api_hub/create_api_operation.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_api_operation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#create_api_operation", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::CreateApiOperationRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::ApiOperation", + "client": { + "short_name": "ApiHub::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client" + }, + "method": { + "short_name": "CreateApiOperation", + "full_name": "google.cloud.apihub.v1.ApiHub.CreateApiOperation", + "service": { + "short_name": "ApiHub", + "full_name": "google.cloud.apihub.v1.ApiHub" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, { "region_tag": "apihub_v1_generated_ApiHub_GetApiOperation_sync", "title": "Snippet for the get_api_operation call in the ApiHub service", @@ -731,6 +771,86 @@ } ] }, + { + "region_tag": "apihub_v1_generated_ApiHub_UpdateApiOperation_sync", + "title": "Snippet for the update_api_operation call in the ApiHub service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#update_api_operation.", + "file": "api_hub/update_api_operation.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_api_operation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#update_api_operation", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::ApiOperation", + "client": { + "short_name": "ApiHub::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client" + }, + "method": { + "short_name": "UpdateApiOperation", + "full_name": "google.cloud.apihub.v1.ApiHub.UpdateApiOperation", + "service": { + "short_name": "ApiHub", + "full_name": "google.cloud.apihub.v1.ApiHub" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHub_DeleteApiOperation_sync", + "title": "Snippet for the delete_api_operation call in the ApiHub service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#delete_api_operation.", + "file": "api_hub/delete_api_operation.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_api_operation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client#delete_api_operation", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "ApiHub::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client" + }, + "method": { + "short_name": "DeleteApiOperation", + "full_name": "google.cloud.apihub.v1.ApiHub.DeleteApiOperation", + "service": { + "short_name": "ApiHub", + "full_name": "google.cloud.apihub.v1.ApiHub" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, { "region_tag": "apihub_v1_generated_ApiHub_GetDefinition_sync", "title": "Snippet for the get_definition call in the ApiHub service", @@ -1612,32 +1732,32 @@ ] }, { - "region_tag": "apihub_v1_generated_HostProjectRegistrationService_CreateHostProjectRegistration_sync", - "title": "Snippet for the create_host_project_registration call in the HostProjectRegistrationService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#create_host_project_registration.", - "file": "host_project_registration_service/create_host_project_registration.rb", + "region_tag": "apihub_v1_generated_ApiHubCollect_CollectApiData_sync", + "title": "Snippet for the collect_api_data call in the ApiHubCollect service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client#collect_api_data.", + "file": "api_hub_collect/collect_api_data.rb", "language": "RUBY", "client_method": { - "short_name": "create_host_project_registration", - "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#create_host_project_registration", + "short_name": "collect_api_data", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client#collect_api_data", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::CreateHostProjectRegistrationRequest", + "type": "::Google::Cloud::ApiHub::V1::CollectApiDataRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::HostProjectRegistration", + "result_type": "::Google::Longrunning::Operation", "client": { - "short_name": "HostProjectRegistrationService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client" + "short_name": "ApiHubCollect::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client" }, "method": { - "short_name": "CreateHostProjectRegistration", - "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService.CreateHostProjectRegistration", + "short_name": "CollectApiData", + "full_name": "google.cloud.apihub.v1.ApiHubCollect.CollectApiData", "service": { - "short_name": "HostProjectRegistrationService", - "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService" + "short_name": "ApiHubCollect", + "full_name": "google.cloud.apihub.v1.ApiHubCollect" } } }, @@ -1646,38 +1766,38 @@ "segments": [ { "start": 20, - "end": 46, + "end": 53, "type": "FULL" } ] }, { - "region_tag": "apihub_v1_generated_HostProjectRegistrationService_GetHostProjectRegistration_sync", - "title": "Snippet for the get_host_project_registration call in the HostProjectRegistrationService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#get_host_project_registration.", - "file": "host_project_registration_service/get_host_project_registration.rb", + "region_tag": "apihub_v1_generated_ApiHubCurate_CreateCuration_sync", + "title": "Snippet for the create_curation call in the ApiHubCurate service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#create_curation.", + "file": "api_hub_curate/create_curation.rb", "language": "RUBY", "client_method": { - "short_name": "get_host_project_registration", - "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#get_host_project_registration", + "short_name": "create_curation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#create_curation", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::GetHostProjectRegistrationRequest", + "type": "::Google::Cloud::ApiHub::V1::CreateCurationRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::HostProjectRegistration", + "result_type": "::Google::Cloud::ApiHub::V1::Curation", "client": { - "short_name": "HostProjectRegistrationService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client" + "short_name": "ApiHubCurate::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client" }, "method": { - "short_name": "GetHostProjectRegistration", - "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService.GetHostProjectRegistration", + "short_name": "CreateCuration", + "full_name": "google.cloud.apihub.v1.ApiHubCurate.CreateCuration", "service": { - "short_name": "HostProjectRegistrationService", - "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService" + "short_name": "ApiHubCurate", + "full_name": "google.cloud.apihub.v1.ApiHubCurate" } } }, @@ -1692,32 +1812,32 @@ ] }, { - "region_tag": "apihub_v1_generated_HostProjectRegistrationService_ListHostProjectRegistrations_sync", - "title": "Snippet for the list_host_project_registrations call in the HostProjectRegistrationService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#list_host_project_registrations.", - "file": "host_project_registration_service/list_host_project_registrations.rb", + "region_tag": "apihub_v1_generated_ApiHubCurate_GetCuration_sync", + "title": "Snippet for the get_curation call in the ApiHubCurate service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#get_curation.", + "file": "api_hub_curate/get_curation.rb", "language": "RUBY", "client_method": { - "short_name": "list_host_project_registrations", - "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#list_host_project_registrations", + "short_name": "get_curation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#get_curation", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::ListHostProjectRegistrationsRequest", + "type": "::Google::Cloud::ApiHub::V1::GetCurationRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::ListHostProjectRegistrationsResponse", + "result_type": "::Google::Cloud::ApiHub::V1::Curation", "client": { - "short_name": "HostProjectRegistrationService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client" + "short_name": "ApiHubCurate::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client" }, "method": { - "short_name": "ListHostProjectRegistrations", - "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService.ListHostProjectRegistrations", + "short_name": "GetCuration", + "full_name": "google.cloud.apihub.v1.ApiHubCurate.GetCuration", "service": { - "short_name": "HostProjectRegistrationService", - "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService" + "short_name": "ApiHubCurate", + "full_name": "google.cloud.apihub.v1.ApiHubCurate" } } }, @@ -1726,38 +1846,38 @@ "segments": [ { "start": 20, - "end": 50, + "end": 46, "type": "FULL" } ] }, { - "region_tag": "apihub_v1_generated_LintingService_GetStyleGuide_sync", - "title": "Snippet for the get_style_guide call in the LintingService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide.", - "file": "linting_service/get_style_guide.rb", + "region_tag": "apihub_v1_generated_ApiHubCurate_ListCurations_sync", + "title": "Snippet for the list_curations call in the ApiHubCurate service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#list_curations.", + "file": "api_hub_curate/list_curations.rb", "language": "RUBY", "client_method": { - "short_name": "get_style_guide", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide", + "short_name": "list_curations", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#list_curations", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::GetStyleGuideRequest", + "type": "::Google::Cloud::ApiHub::V1::ListCurationsRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::StyleGuide", + "result_type": "::Google::Cloud::ApiHub::V1::ListCurationsResponse", "client": { - "short_name": "LintingService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + "short_name": "ApiHubCurate::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client" }, "method": { - "short_name": "GetStyleGuide", - "full_name": "google.cloud.apihub.v1.LintingService.GetStyleGuide", + "short_name": "ListCurations", + "full_name": "google.cloud.apihub.v1.ApiHubCurate.ListCurations", "service": { - "short_name": "LintingService", - "full_name": "google.cloud.apihub.v1.LintingService" + "short_name": "ApiHubCurate", + "full_name": "google.cloud.apihub.v1.ApiHubCurate" } } }, @@ -1766,38 +1886,38 @@ "segments": [ { "start": 20, - "end": 46, + "end": 50, "type": "FULL" } ] }, { - "region_tag": "apihub_v1_generated_LintingService_UpdateStyleGuide_sync", - "title": "Snippet for the update_style_guide call in the LintingService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#update_style_guide.", - "file": "linting_service/update_style_guide.rb", + "region_tag": "apihub_v1_generated_ApiHubCurate_UpdateCuration_sync", + "title": "Snippet for the update_curation call in the ApiHubCurate service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#update_curation.", + "file": "api_hub_curate/update_curation.rb", "language": "RUBY", "client_method": { - "short_name": "update_style_guide", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#update_style_guide", + "short_name": "update_curation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#update_curation", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::UpdateStyleGuideRequest", + "type": "::Google::Cloud::ApiHub::V1::UpdateCurationRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::StyleGuide", + "result_type": "::Google::Cloud::ApiHub::V1::Curation", "client": { - "short_name": "LintingService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + "short_name": "ApiHubCurate::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client" }, "method": { - "short_name": "UpdateStyleGuide", - "full_name": "google.cloud.apihub.v1.LintingService.UpdateStyleGuide", + "short_name": "UpdateCuration", + "full_name": "google.cloud.apihub.v1.ApiHubCurate.UpdateCuration", "service": { - "short_name": "LintingService", - "full_name": "google.cloud.apihub.v1.LintingService" + "short_name": "ApiHubCurate", + "full_name": "google.cloud.apihub.v1.ApiHubCurate" } } }, @@ -1812,32 +1932,32 @@ ] }, { - "region_tag": "apihub_v1_generated_LintingService_GetStyleGuideContents_sync", - "title": "Snippet for the get_style_guide_contents call in the LintingService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide_contents.", - "file": "linting_service/get_style_guide_contents.rb", + "region_tag": "apihub_v1_generated_ApiHubCurate_DeleteCuration_sync", + "title": "Snippet for the delete_curation call in the ApiHubCurate service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#delete_curation.", + "file": "api_hub_curate/delete_curation.rb", "language": "RUBY", "client_method": { - "short_name": "get_style_guide_contents", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide_contents", + "short_name": "delete_curation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client#delete_curation", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::GetStyleGuideContentsRequest", + "type": "::Google::Cloud::ApiHub::V1::DeleteCurationRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::StyleGuideContents", + "result_type": "::Google::Protobuf::Empty", "client": { - "short_name": "LintingService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + "short_name": "ApiHubCurate::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client" }, "method": { - "short_name": "GetStyleGuideContents", - "full_name": "google.cloud.apihub.v1.LintingService.GetStyleGuideContents", + "short_name": "DeleteCuration", + "full_name": "google.cloud.apihub.v1.ApiHubCurate.DeleteCuration", "service": { - "short_name": "LintingService", - "full_name": "google.cloud.apihub.v1.LintingService" + "short_name": "ApiHubCurate", + "full_name": "google.cloud.apihub.v1.ApiHubCurate" } } }, @@ -1852,32 +1972,32 @@ ] }, { - "region_tag": "apihub_v1_generated_LintingService_LintSpec_sync", - "title": "Snippet for the lint_spec call in the LintingService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#lint_spec.", - "file": "linting_service/lint_spec.rb", + "region_tag": "apihub_v1_generated_ApiHubDiscovery_ListDiscoveredApiObservations_sync", + "title": "Snippet for the list_discovered_api_observations call in the ApiHubDiscovery service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#list_discovered_api_observations.", + "file": "api_hub_discovery/list_discovered_api_observations.rb", "language": "RUBY", "client_method": { - "short_name": "lint_spec", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#lint_spec", + "short_name": "list_discovered_api_observations", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#list_discovered_api_observations", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::LintSpecRequest", + "type": "::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest", "name": "request" } ], - "result_type": "::Google::Protobuf::Empty", + "result_type": "::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsResponse", "client": { - "short_name": "LintingService::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + "short_name": "ApiHubDiscovery::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client" }, "method": { - "short_name": "LintSpec", - "full_name": "google.cloud.apihub.v1.LintingService.LintSpec", + "short_name": "ListDiscoveredApiObservations", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery.ListDiscoveredApiObservations", "service": { - "short_name": "LintingService", - "full_name": "google.cloud.apihub.v1.LintingService" + "short_name": "ApiHubDiscovery", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery" } } }, @@ -1886,38 +2006,38 @@ "segments": [ { "start": 20, - "end": 46, + "end": 50, "type": "FULL" } ] }, { - "region_tag": "apihub_v1_generated_ApiHubPlugin_GetPlugin_sync", - "title": "Snippet for the get_plugin call in the ApiHubPlugin service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin.", - "file": "api_hub_plugin/get_plugin.rb", + "region_tag": "apihub_v1_generated_ApiHubDiscovery_GetDiscoveredApiObservation_sync", + "title": "Snippet for the get_discovered_api_observation call in the ApiHubDiscovery service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#get_discovered_api_observation.", + "file": "api_hub_discovery/get_discovered_api_observation.rb", "language": "RUBY", "client_method": { - "short_name": "get_plugin", - "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin", + "short_name": "get_discovered_api_observation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#get_discovered_api_observation", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::GetPluginRequest", + "type": "::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "result_type": "::Google::Cloud::ApiHub::V1::DiscoveredApiObservation", "client": { - "short_name": "ApiHubPlugin::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + "short_name": "ApiHubDiscovery::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client" }, "method": { - "short_name": "GetPlugin", - "full_name": "google.cloud.apihub.v1.ApiHubPlugin.GetPlugin", + "short_name": "GetDiscoveredApiObservation", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery.GetDiscoveredApiObservation", "service": { - "short_name": "ApiHubPlugin", - "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + "short_name": "ApiHubDiscovery", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery" } } }, @@ -1932,32 +2052,32 @@ ] }, { - "region_tag": "apihub_v1_generated_ApiHubPlugin_EnablePlugin_sync", - "title": "Snippet for the enable_plugin call in the ApiHubPlugin service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin.", - "file": "api_hub_plugin/enable_plugin.rb", + "region_tag": "apihub_v1_generated_ApiHubDiscovery_ListDiscoveredApiOperations_sync", + "title": "Snippet for the list_discovered_api_operations call in the ApiHubDiscovery service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#list_discovered_api_operations.", + "file": "api_hub_discovery/list_discovered_api_operations.rb", "language": "RUBY", "client_method": { - "short_name": "enable_plugin", - "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin", + "short_name": "list_discovered_api_operations", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#list_discovered_api_operations", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::EnablePluginRequest", + "type": "::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "result_type": "::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsResponse", "client": { - "short_name": "ApiHubPlugin::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + "short_name": "ApiHubDiscovery::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client" }, "method": { - "short_name": "EnablePlugin", - "full_name": "google.cloud.apihub.v1.ApiHubPlugin.EnablePlugin", + "short_name": "ListDiscoveredApiOperations", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery.ListDiscoveredApiOperations", "service": { - "short_name": "ApiHubPlugin", - "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + "short_name": "ApiHubDiscovery", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery" } } }, @@ -1966,38 +2086,38 @@ "segments": [ { "start": 20, - "end": 46, + "end": 50, "type": "FULL" } ] }, { - "region_tag": "apihub_v1_generated_ApiHubPlugin_DisablePlugin_sync", - "title": "Snippet for the disable_plugin call in the ApiHubPlugin service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin.", - "file": "api_hub_plugin/disable_plugin.rb", + "region_tag": "apihub_v1_generated_ApiHubDiscovery_GetDiscoveredApiOperation_sync", + "title": "Snippet for the get_discovered_api_operation call in the ApiHubDiscovery service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#get_discovered_api_operation.", + "file": "api_hub_discovery/get_discovered_api_operation.rb", "language": "RUBY", "client_method": { - "short_name": "disable_plugin", - "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin", + "short_name": "get_discovered_api_operation", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client#get_discovered_api_operation", "async": false, "parameters": [ { - "type": "::Google::Cloud::ApiHub::V1::DisablePluginRequest", + "type": "::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest", "name": "request" } ], - "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "result_type": "::Google::Cloud::ApiHub::V1::DiscoveredApiOperation", "client": { - "short_name": "ApiHubPlugin::Rest::Client", - "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + "short_name": "ApiHubDiscovery::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client" }, "method": { - "short_name": "DisablePlugin", - "full_name": "google.cloud.apihub.v1.ApiHubPlugin.DisablePlugin", + "short_name": "GetDiscoveredApiOperation", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery.GetDiscoveredApiOperation", "service": { - "short_name": "ApiHubPlugin", - "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + "short_name": "ApiHubDiscovery", + "full_name": "google.cloud.apihub.v1.ApiHubDiscovery" } } }, @@ -2012,15 +2132,855 @@ ] }, { - "region_tag": "apihub_v1_generated_Provisioning_CreateApiHubInstance_sync", - "title": "Snippet for the create_api_hub_instance call in the Provisioning service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#create_api_hub_instance.", - "file": "provisioning/create_api_hub_instance.rb", + "region_tag": "apihub_v1_generated_HostProjectRegistrationService_CreateHostProjectRegistration_sync", + "title": "Snippet for the create_host_project_registration call in the HostProjectRegistrationService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#create_host_project_registration.", + "file": "host_project_registration_service/create_host_project_registration.rb", "language": "RUBY", "client_method": { - "short_name": "create_api_hub_instance", - "full_name": "::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#create_api_hub_instance", - "async": false, + "short_name": "create_host_project_registration", + "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#create_host_project_registration", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::CreateHostProjectRegistrationRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::HostProjectRegistration", + "client": { + "short_name": "HostProjectRegistrationService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client" + }, + "method": { + "short_name": "CreateHostProjectRegistration", + "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService.CreateHostProjectRegistration", + "service": { + "short_name": "HostProjectRegistrationService", + "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_HostProjectRegistrationService_GetHostProjectRegistration_sync", + "title": "Snippet for the get_host_project_registration call in the HostProjectRegistrationService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#get_host_project_registration.", + "file": "host_project_registration_service/get_host_project_registration.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_host_project_registration", + "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#get_host_project_registration", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::GetHostProjectRegistrationRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::HostProjectRegistration", + "client": { + "short_name": "HostProjectRegistrationService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client" + }, + "method": { + "short_name": "GetHostProjectRegistration", + "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService.GetHostProjectRegistration", + "service": { + "short_name": "HostProjectRegistrationService", + "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_HostProjectRegistrationService_ListHostProjectRegistrations_sync", + "title": "Snippet for the list_host_project_registrations call in the HostProjectRegistrationService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#list_host_project_registrations.", + "file": "host_project_registration_service/list_host_project_registrations.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_host_project_registrations", + "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client#list_host_project_registrations", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::ListHostProjectRegistrationsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::ListHostProjectRegistrationsResponse", + "client": { + "short_name": "HostProjectRegistrationService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::HostProjectRegistrationService::Rest::Client" + }, + "method": { + "short_name": "ListHostProjectRegistrations", + "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService.ListHostProjectRegistrations", + "service": { + "short_name": "HostProjectRegistrationService", + "full_name": "google.cloud.apihub.v1.HostProjectRegistrationService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_LintingService_GetStyleGuide_sync", + "title": "Snippet for the get_style_guide call in the LintingService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide.", + "file": "linting_service/get_style_guide.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_style_guide", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::GetStyleGuideRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::StyleGuide", + "client": { + "short_name": "LintingService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + }, + "method": { + "short_name": "GetStyleGuide", + "full_name": "google.cloud.apihub.v1.LintingService.GetStyleGuide", + "service": { + "short_name": "LintingService", + "full_name": "google.cloud.apihub.v1.LintingService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_LintingService_UpdateStyleGuide_sync", + "title": "Snippet for the update_style_guide call in the LintingService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#update_style_guide.", + "file": "linting_service/update_style_guide.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_style_guide", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#update_style_guide", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::UpdateStyleGuideRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::StyleGuide", + "client": { + "short_name": "LintingService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + }, + "method": { + "short_name": "UpdateStyleGuide", + "full_name": "google.cloud.apihub.v1.LintingService.UpdateStyleGuide", + "service": { + "short_name": "LintingService", + "full_name": "google.cloud.apihub.v1.LintingService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_LintingService_GetStyleGuideContents_sync", + "title": "Snippet for the get_style_guide_contents call in the LintingService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide_contents.", + "file": "linting_service/get_style_guide_contents.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_style_guide_contents", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#get_style_guide_contents", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::GetStyleGuideContentsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::StyleGuideContents", + "client": { + "short_name": "LintingService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + }, + "method": { + "short_name": "GetStyleGuideContents", + "full_name": "google.cloud.apihub.v1.LintingService.GetStyleGuideContents", + "service": { + "short_name": "LintingService", + "full_name": "google.cloud.apihub.v1.LintingService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_LintingService_LintSpec_sync", + "title": "Snippet for the lint_spec call in the LintingService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::LintingService::Rest::Client#lint_spec.", + "file": "linting_service/lint_spec.rb", + "language": "RUBY", + "client_method": { + "short_name": "lint_spec", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client#lint_spec", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::LintSpecRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "LintingService::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::LintingService::Rest::Client" + }, + "method": { + "short_name": "LintSpec", + "full_name": "google.cloud.apihub.v1.LintingService.LintSpec", + "service": { + "short_name": "LintingService", + "full_name": "google.cloud.apihub.v1.LintingService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_GetPlugin_sync", + "title": "Snippet for the get_plugin call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin.", + "file": "api_hub_plugin/get_plugin.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_plugin", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::GetPluginRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "GetPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.GetPlugin", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_EnablePlugin_sync", + "title": "Snippet for the enable_plugin call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin.", + "file": "api_hub_plugin/enable_plugin.rb", + "language": "RUBY", + "client_method": { + "short_name": "enable_plugin", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::EnablePluginRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "EnablePlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.EnablePlugin", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_DisablePlugin_sync", + "title": "Snippet for the disable_plugin call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin.", + "file": "api_hub_plugin/disable_plugin.rb", + "language": "RUBY", + "client_method": { + "short_name": "disable_plugin", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::DisablePluginRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "DisablePlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.DisablePlugin", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_CreatePlugin_sync", + "title": "Snippet for the create_plugin call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin.", + "file": "api_hub_plugin/create_plugin.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_plugin", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::CreatePluginRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::Plugin", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "CreatePlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.CreatePlugin", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_ListPlugins_sync", + "title": "Snippet for the list_plugins call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugins.", + "file": "api_hub_plugin/list_plugins.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_plugins", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugins", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::ListPluginsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::ListPluginsResponse", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "ListPlugins", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.ListPlugins", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_DeletePlugin_sync", + "title": "Snippet for the delete_plugin call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin.", + "file": "api_hub_plugin/delete_plugin.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_plugin", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::DeletePluginRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "DeletePlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.DeletePlugin", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_CreatePluginInstance_sync", + "title": "Snippet for the create_plugin_instance call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin_instance.", + "file": "api_hub_plugin/create_plugin_instance.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_plugin_instance", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#create_plugin_instance", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "CreatePluginInstance", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.CreatePluginInstance", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_ExecutePluginInstanceAction_sync", + "title": "Snippet for the execute_plugin_instance_action call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action.", + "file": "api_hub_plugin/execute_plugin_instance_action.rb", + "language": "RUBY", + "client_method": { + "short_name": "execute_plugin_instance_action", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#execute_plugin_instance_action", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "ExecutePluginInstanceAction", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.ExecutePluginInstanceAction", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_GetPluginInstance_sync", + "title": "Snippet for the get_plugin_instance call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin_instance.", + "file": "api_hub_plugin/get_plugin_instance.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_plugin_instance", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#get_plugin_instance", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::PluginInstance", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "GetPluginInstance", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.GetPluginInstance", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_ListPluginInstances_sync", + "title": "Snippet for the list_plugin_instances call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugin_instances.", + "file": "api_hub_plugin/list_plugin_instances.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_plugin_instances", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#list_plugin_instances", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::ListPluginInstancesResponse", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "ListPluginInstances", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.ListPluginInstances", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_EnablePluginInstanceAction_sync", + "title": "Snippet for the enable_plugin_instance_action call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin_instance_action.", + "file": "api_hub_plugin/enable_plugin_instance_action.rb", + "language": "RUBY", + "client_method": { + "short_name": "enable_plugin_instance_action", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#enable_plugin_instance_action", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "EnablePluginInstanceAction", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.EnablePluginInstanceAction", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_DisablePluginInstanceAction_sync", + "title": "Snippet for the disable_plugin_instance_action call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin_instance_action.", + "file": "api_hub_plugin/disable_plugin_instance_action.rb", + "language": "RUBY", + "client_method": { + "short_name": "disable_plugin_instance_action", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#disable_plugin_instance_action", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "DisablePluginInstanceAction", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.DisablePluginInstanceAction", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_UpdatePluginInstance_sync", + "title": "Snippet for the update_plugin_instance call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#update_plugin_instance.", + "file": "api_hub_plugin/update_plugin_instance.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_plugin_instance", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#update_plugin_instance", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ApiHub::V1::PluginInstance", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "UpdatePluginInstance", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.UpdatePluginInstance", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_ApiHubPlugin_DeletePluginInstance_sync", + "title": "Snippet for the delete_plugin_instance call in the ApiHubPlugin service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin_instance.", + "file": "api_hub_plugin/delete_plugin_instance.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_plugin_instance", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client#delete_plugin_instance", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "ApiHubPlugin::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client" + }, + "method": { + "short_name": "DeletePluginInstance", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin.DeletePluginInstance", + "service": { + "short_name": "ApiHubPlugin", + "full_name": "google.cloud.apihub.v1.ApiHubPlugin" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "apihub_v1_generated_Provisioning_CreateApiHubInstance_sync", + "title": "Snippet for the create_api_hub_instance call in the Provisioning service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#create_api_hub_instance.", + "file": "provisioning/create_api_hub_instance.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_api_hub_instance", + "full_name": "::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#create_api_hub_instance", + "async": false, "parameters": [ { "type": "::Google::Cloud::ApiHub::V1::CreateApiHubInstanceRequest", @@ -2051,6 +3011,46 @@ } ] }, + { + "region_tag": "apihub_v1_generated_Provisioning_DeleteApiHubInstance_sync", + "title": "Snippet for the delete_api_hub_instance call in the Provisioning service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#delete_api_hub_instance.", + "file": "provisioning/delete_api_hub_instance.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_api_hub_instance", + "full_name": "::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client#delete_api_hub_instance", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "Provisioning::Rest::Client", + "full_name": "::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client" + }, + "method": { + "short_name": "DeleteApiHubInstance", + "full_name": "google.cloud.apihub.v1.Provisioning.DeleteApiHubInstance", + "service": { + "short_name": "Provisioning", + "full_name": "google.cloud.apihub.v1.Provisioning" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, { "region_tag": "apihub_v1_generated_Provisioning_GetApiHubInstance_sync", "title": "Snippet for the get_api_hub_instance call in the Provisioning service", diff --git a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_collect_rest_test.rb b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_collect_rest_test.rb new file mode 100644 index 000000000000..4b770f2141cd --- /dev/null +++ b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_collect_rest_test.rb @@ -0,0 +1,157 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/cloud/apihub/v1/collect_service_pb" +require "google/cloud/api_hub/v1/api_hub_collect/rest" + + +class ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_collect_api_data + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + location = "hello world" + collection_type = :COLLECTION_TYPE_UNSPECIFIED + plugin_instance = "hello world" + action_id = "hello world" + api_data = {} + + collect_api_data_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::ServiceStub.stub :transcode_collect_api_data_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, collect_api_data_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.collect_api_data({ location: location, collection_type: collection_type, plugin_instance: plugin_instance, action_id: action_id, api_data: api_data }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.collect_api_data location: location, collection_type: collection_type, plugin_instance: plugin_instance, action_id: action_id, api_data: api_data do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.collect_api_data ::Google::Cloud::ApiHub::V1::CollectApiDataRequest.new(location: location, collection_type: collection_type, plugin_instance: plugin_instance, action_id: action_id, api_data: api_data) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.collect_api_data({ location: location, collection_type: collection_type, plugin_instance: plugin_instance, action_id: action_id, api_data: api_data }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.collect_api_data(::Google::Cloud::ApiHub::V1::CollectApiDataRequest.new(location: location, collection_type: collection_type, plugin_instance: plugin_instance, action_id: action_id, api_data: api_data), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, collect_api_data_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_curate_rest_test.rb b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_curate_rest_test.rb new file mode 100644 index 000000000000..0e0c90f738a0 --- /dev/null +++ b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_curate_rest_test.rb @@ -0,0 +1,375 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/cloud/apihub/v1/curate_service_pb" +require "google/cloud/api_hub/v1/api_hub_curate/rest" + + +class ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_curation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::Curation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + curation_id = "hello world" + curation = {} + + create_curation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ServiceStub.stub :transcode_create_curation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_curation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_curation({ parent: parent, curation_id: curation_id, curation: curation }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_curation parent: parent, curation_id: curation_id, curation: curation do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_curation ::Google::Cloud::ApiHub::V1::CreateCurationRequest.new(parent: parent, curation_id: curation_id, curation: curation) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_curation({ parent: parent, curation_id: curation_id, curation: curation }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_curation(::Google::Cloud::ApiHub::V1::CreateCurationRequest.new(parent: parent, curation_id: curation_id, curation: curation), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_curation_client_stub.call_count + end + end + end + + def test_get_curation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::Curation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_curation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ServiceStub.stub :transcode_get_curation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_curation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_curation({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_curation name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_curation ::Google::Cloud::ApiHub::V1::GetCurationRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_curation({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_curation(::Google::Cloud::ApiHub::V1::GetCurationRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_curation_client_stub.call_count + end + end + end + + def test_list_curations + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ListCurationsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_curations_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ServiceStub.stub :transcode_list_curations_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_curations_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_curations({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_curations parent: parent, filter: filter, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_curations ::Google::Cloud::ApiHub::V1::ListCurationsRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_curations({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_curations(::Google::Cloud::ApiHub::V1::ListCurationsRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_curations_client_stub.call_count + end + end + end + + def test_update_curation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::Curation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + curation = {} + update_mask = {} + + update_curation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ServiceStub.stub :transcode_update_curation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_curation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_curation({ curation: curation, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_curation curation: curation, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_curation ::Google::Cloud::ApiHub::V1::UpdateCurationRequest.new(curation: curation, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_curation({ curation: curation, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_curation(::Google::Cloud::ApiHub::V1::UpdateCurationRequest.new(curation: curation, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_curation_client_stub.call_count + end + end + end + + def test_delete_curation + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_curation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::ServiceStub.stub :transcode_delete_curation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_curation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_curation({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_curation name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_curation ::Google::Cloud::ApiHub::V1::DeleteCurationRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_curation({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_curation(::Google::Cloud::ApiHub::V1::DeleteCurationRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_curation_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_discovery_rest_test.rb b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_discovery_rest_test.rb new file mode 100644 index 000000000000..42491c52924a --- /dev/null +++ b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_discovery_rest_test.rb @@ -0,0 +1,319 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/cloud/apihub/v1/discovery_service_pb" +require "google/cloud/api_hub/v1/api_hub_discovery/rest" + + +class ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_list_discovered_api_observations + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_discovered_api_observations_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::ServiceStub.stub :transcode_list_discovered_api_observations_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_discovered_api_observations_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_discovered_api_observations({ parent: parent, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_discovered_api_observations parent: parent, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_discovered_api_observations ::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_discovered_api_observations({ parent: parent, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_discovered_api_observations(::Google::Cloud::ApiHub::V1::ListDiscoveredApiObservationsRequest.new(parent: parent, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_discovered_api_observations_client_stub.call_count + end + end + end + + def test_get_discovered_api_observation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::DiscoveredApiObservation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_discovered_api_observation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::ServiceStub.stub :transcode_get_discovered_api_observation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_discovered_api_observation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_discovered_api_observation({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_discovered_api_observation name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_discovered_api_observation ::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_discovered_api_observation({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_discovered_api_observation(::Google::Cloud::ApiHub::V1::GetDiscoveredApiObservationRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_discovered_api_observation_client_stub.call_count + end + end + end + + def test_list_discovered_api_operations + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_discovered_api_operations_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::ServiceStub.stub :transcode_list_discovered_api_operations_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_discovered_api_operations_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_discovered_api_operations({ parent: parent, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_discovered_api_operations parent: parent, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_discovered_api_operations ::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_discovered_api_operations({ parent: parent, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_discovered_api_operations(::Google::Cloud::ApiHub::V1::ListDiscoveredApiOperationsRequest.new(parent: parent, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_discovered_api_operations_client_stub.call_count + end + end + end + + def test_get_discovered_api_operation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::DiscoveredApiOperation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_discovered_api_operation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::ServiceStub.stub :transcode_get_discovered_api_operation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_discovered_api_operation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_discovered_api_operation({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_discovered_api_operation name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_discovered_api_operation ::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_discovered_api_operation({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_discovered_api_operation(::Google::Cloud::ApiHub::V1::GetDiscoveredApiOperationRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_discovered_api_operation_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_plugin_rest_test.rb b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_plugin_rest_test.rb index 7aa1992b3e20..e0d801d26f6b 100644 --- a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_plugin_rest_test.rb +++ b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_plugin_rest_test.rb @@ -240,6 +240,614 @@ def test_disable_plugin end end + def test_create_plugin + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::Plugin.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + plugin_id = "hello world" + plugin = {} + + create_plugin_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_create_plugin_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_plugin_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_plugin({ parent: parent, plugin_id: plugin_id, plugin: plugin }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_plugin parent: parent, plugin_id: plugin_id, plugin: plugin do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_plugin ::Google::Cloud::ApiHub::V1::CreatePluginRequest.new(parent: parent, plugin_id: plugin_id, plugin: plugin) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_plugin({ parent: parent, plugin_id: plugin_id, plugin: plugin }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_plugin(::Google::Cloud::ApiHub::V1::CreatePluginRequest.new(parent: parent, plugin_id: plugin_id, plugin: plugin), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_plugin_client_stub.call_count + end + end + end + + def test_list_plugins + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ListPluginsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_plugins_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_list_plugins_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_plugins_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_plugins({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_plugins parent: parent, filter: filter, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_plugins ::Google::Cloud::ApiHub::V1::ListPluginsRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_plugins({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_plugins(::Google::Cloud::ApiHub::V1::ListPluginsRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_plugins_client_stub.call_count + end + end + end + + def test_delete_plugin + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_plugin_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_delete_plugin_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_plugin_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_plugin({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_plugin name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_plugin ::Google::Cloud::ApiHub::V1::DeletePluginRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_plugin({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_plugin(::Google::Cloud::ApiHub::V1::DeletePluginRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_plugin_client_stub.call_count + end + end + end + + def test_create_plugin_instance + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + plugin_instance_id = "hello world" + plugin_instance = {} + + create_plugin_instance_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_create_plugin_instance_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_plugin_instance_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_plugin_instance({ parent: parent, plugin_instance_id: plugin_instance_id, plugin_instance: plugin_instance }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_plugin_instance parent: parent, plugin_instance_id: plugin_instance_id, plugin_instance: plugin_instance do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_plugin_instance ::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest.new(parent: parent, plugin_instance_id: plugin_instance_id, plugin_instance: plugin_instance) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_plugin_instance({ parent: parent, plugin_instance_id: plugin_instance_id, plugin_instance: plugin_instance }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_plugin_instance(::Google::Cloud::ApiHub::V1::CreatePluginInstanceRequest.new(parent: parent, plugin_instance_id: plugin_instance_id, plugin_instance: plugin_instance), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_plugin_instance_client_stub.call_count + end + end + end + + def test_execute_plugin_instance_action + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + action_execution_detail = {} + + execute_plugin_instance_action_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_execute_plugin_instance_action_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, execute_plugin_instance_action_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.execute_plugin_instance_action({ name: name, action_execution_detail: action_execution_detail }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.execute_plugin_instance_action name: name, action_execution_detail: action_execution_detail do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.execute_plugin_instance_action ::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest.new(name: name, action_execution_detail: action_execution_detail) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.execute_plugin_instance_action({ name: name, action_execution_detail: action_execution_detail }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.execute_plugin_instance_action(::Google::Cloud::ApiHub::V1::ExecutePluginInstanceActionRequest.new(name: name, action_execution_detail: action_execution_detail), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, execute_plugin_instance_action_client_stub.call_count + end + end + end + + def test_get_plugin_instance + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::PluginInstance.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_plugin_instance_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_get_plugin_instance_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_plugin_instance_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_plugin_instance({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_plugin_instance name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_plugin_instance ::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_plugin_instance({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_plugin_instance(::Google::Cloud::ApiHub::V1::GetPluginInstanceRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_plugin_instance_client_stub.call_count + end + end + end + + def test_list_plugin_instances + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ListPluginInstancesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_plugin_instances_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_list_plugin_instances_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_plugin_instances_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_plugin_instances({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_plugin_instances parent: parent, filter: filter, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_plugin_instances ::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_plugin_instances({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_plugin_instances(::Google::Cloud::ApiHub::V1::ListPluginInstancesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_plugin_instances_client_stub.call_count + end + end + end + + def test_enable_plugin_instance_action + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + action_id = "hello world" + + enable_plugin_instance_action_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_enable_plugin_instance_action_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, enable_plugin_instance_action_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.enable_plugin_instance_action({ name: name, action_id: action_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.enable_plugin_instance_action name: name, action_id: action_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.enable_plugin_instance_action ::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest.new(name: name, action_id: action_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.enable_plugin_instance_action({ name: name, action_id: action_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.enable_plugin_instance_action(::Google::Cloud::ApiHub::V1::EnablePluginInstanceActionRequest.new(name: name, action_id: action_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, enable_plugin_instance_action_client_stub.call_count + end + end + end + + def test_disable_plugin_instance_action + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + action_id = "hello world" + + disable_plugin_instance_action_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_disable_plugin_instance_action_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, disable_plugin_instance_action_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.disable_plugin_instance_action({ name: name, action_id: action_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.disable_plugin_instance_action name: name, action_id: action_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.disable_plugin_instance_action ::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest.new(name: name, action_id: action_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.disable_plugin_instance_action({ name: name, action_id: action_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.disable_plugin_instance_action(::Google::Cloud::ApiHub::V1::DisablePluginInstanceActionRequest.new(name: name, action_id: action_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, disable_plugin_instance_action_client_stub.call_count + end + end + end + + def test_update_plugin_instance + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::PluginInstance.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + plugin_instance = {} + update_mask = {} + + update_plugin_instance_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_update_plugin_instance_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_plugin_instance_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_plugin_instance({ plugin_instance: plugin_instance, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_plugin_instance plugin_instance: plugin_instance, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_plugin_instance ::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest.new(plugin_instance: plugin_instance, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_plugin_instance({ plugin_instance: plugin_instance, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_plugin_instance(::Google::Cloud::ApiHub::V1::UpdatePluginInstanceRequest.new(plugin_instance: plugin_instance, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_plugin_instance_client_stub.call_count + end + end + end + + def test_delete_plugin_instance + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_plugin_instance_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::ServiceStub.stub :transcode_delete_plugin_instance_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_plugin_instance_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHubPlugin::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_plugin_instance({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_plugin_instance name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_plugin_instance ::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_plugin_instance({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_plugin_instance(::Google::Cloud::ApiHub::V1::DeletePluginInstanceRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_plugin_instance_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_rest_test.rb b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_rest_test.rb index 15d4b3eaada3..4688fd44f3d2 100644 --- a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_rest_test.rb +++ b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/api_hub_rest_test.rb @@ -962,6 +962,62 @@ def test_delete_spec end end + def test_create_api_operation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ApiOperation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + api_operation_id = "hello world" + api_operation = {} + + create_api_operation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHub::Rest::ServiceStub.stub :transcode_create_api_operation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_api_operation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_api_operation({ parent: parent, api_operation_id: api_operation_id, api_operation: api_operation }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_api_operation parent: parent, api_operation_id: api_operation_id, api_operation: api_operation do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_api_operation ::Google::Cloud::ApiHub::V1::CreateApiOperationRequest.new(parent: parent, api_operation_id: api_operation_id, api_operation: api_operation) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_api_operation({ parent: parent, api_operation_id: api_operation_id, api_operation: api_operation }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_api_operation(::Google::Cloud::ApiHub::V1::CreateApiOperationRequest.new(parent: parent, api_operation_id: api_operation_id, api_operation: api_operation), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_api_operation_client_stub.call_count + end + end + end + def test_get_api_operation # Create test objects. client_result = ::Google::Cloud::ApiHub::V1::ApiOperation.new @@ -1073,6 +1129,115 @@ def test_list_api_operations end end + def test_update_api_operation + # Create test objects. + client_result = ::Google::Cloud::ApiHub::V1::ApiOperation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + api_operation = {} + update_mask = {} + + update_api_operation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHub::Rest::ServiceStub.stub :transcode_update_api_operation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_api_operation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_api_operation({ api_operation: api_operation, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_api_operation api_operation: api_operation, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_api_operation ::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest.new(api_operation: api_operation, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_api_operation({ api_operation: api_operation, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_api_operation(::Google::Cloud::ApiHub::V1::UpdateApiOperationRequest.new(api_operation: api_operation, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_api_operation_client_stub.call_count + end + end + end + + def test_delete_api_operation + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_api_operation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::ApiHub::Rest::ServiceStub.stub :transcode_delete_api_operation_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_api_operation_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::ApiHub::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_api_operation({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_api_operation name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_api_operation ::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_api_operation({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_api_operation(::Google::Cloud::ApiHub::V1::DeleteApiOperationRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_api_operation_client_stub.call_count + end + end + end + def test_get_definition # Create test objects. client_result = ::Google::Cloud::ApiHub::V1::Definition.new diff --git a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/provisioning_rest_test.rb b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/provisioning_rest_test.rb index 8ce21501a0f6..82caea9021fe 100644 --- a/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/provisioning_rest_test.rb +++ b/google-cloud-api_hub-v1/test/google/cloud/api_hub/v1/provisioning_rest_test.rb @@ -134,6 +134,60 @@ def test_create_api_hub_instance end end + def test_delete_api_hub_instance + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_api_hub_instance_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ApiHub::V1::Provisioning::Rest::ServiceStub.stub :transcode_delete_api_hub_instance_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_api_hub_instance_client_stub do + # Create client + client = ::Google::Cloud::ApiHub::V1::Provisioning::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_api_hub_instance({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_api_hub_instance name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_api_hub_instance ::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_api_hub_instance({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_api_hub_instance(::Google::Cloud::ApiHub::V1::DeleteApiHubInstanceRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_api_hub_instance_client_stub.call_count + end + end + end + def test_get_api_hub_instance # Create test objects. client_result = ::Google::Cloud::ApiHub::V1::ApiHubInstance.new diff --git a/google-cloud-api_hub/CHANGELOG.md b/google-cloud-api_hub/CHANGELOG.md index c6059391aac9..b172ebb3f2cb 100644 --- a/google-cloud-api_hub/CHANGELOG.md +++ b/google-cloud-api_hub/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 0.4.0 (2025-09-12) + +#### Features + +* Introduce new services for data collection (ApiHubCollect) and curation (ApiHubCurate) +#### Documentation + +* Update README in wrapper libraries ([#31016](https://github.com/googleapis/google-cloud-ruby/issues/31016)) + ### 0.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-api_hub/README.md b/google-cloud-api_hub/README.md index 22e9eee9cbb7..725491bc549f 100644 --- a/google-cloud-api_hub/README.md +++ b/google-cloud-api_hub/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/apihub.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/api_hub" + +client = Google::Cloud::ApiHub.api_hub +request = ::Google::Cloud::ApiHub::V1::CreateApiRequest.new # (request fields as keyword arguments...) +response = client.create_api request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-api_hub/lib/google/cloud/api_hub.rb b/google-cloud-api_hub/lib/google/cloud/api_hub.rb index 9134d9f80664..015c74116494 100644 --- a/google-cloud-api_hub/lib/google/cloud/api_hub.rb +++ b/google-cloud-api_hub/lib/google/cloud/api_hub.rb @@ -171,6 +171,199 @@ def self.api_hub_dependencies_available? version: :v1 false end + ## + # Create a new client object for ApiHubCollect. + # + # By default, this returns an instance of + # [Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-api_hub-v1/latest/Google-Cloud-ApiHub-V1-ApiHubCollect-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the ApiHubCollect service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the ApiHubCollect service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::ApiHub.api_hub_collect_available?}. + # + # ## About ApiHubCollect + # + # This service exposes methods used for collecting various types of data from + # different first party and third party sources and push it to Hub's collect + # layer. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.api_hub_collect version: :v1, &block + require "google/cloud/api_hub/#{version.to_s.downcase}" + + package_name = Google::Cloud::ApiHub + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::ApiHub.const_get(package_name).const_get(:ApiHubCollect) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the ApiHubCollect service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::ApiHub.api_hub_collect}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ApiHubCollect service, + # or if the versioned client gem needs an update to support the ApiHubCollect service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.api_hub_collect_available? version: :v1 + require "google/cloud/api_hub/#{version.to_s.downcase}" + package_name = Google::Cloud::ApiHub + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::ApiHub.const_get package_name + return false unless service_module.const_defined? :ApiHubCollect + service_module = service_module.const_get :ApiHubCollect + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for ApiHubCurate. + # + # By default, this returns an instance of + # [Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-api_hub-v1/latest/Google-Cloud-ApiHub-V1-ApiHubCurate-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the ApiHubCurate service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the ApiHubCurate service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::ApiHub.api_hub_curate_available?}. + # + # ## About ApiHubCurate + # + # This service is used for managing curations for processing API data consumed + # from collect layer. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.api_hub_curate version: :v1, &block + require "google/cloud/api_hub/#{version.to_s.downcase}" + + package_name = Google::Cloud::ApiHub + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::ApiHub.const_get(package_name).const_get(:ApiHubCurate) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the ApiHubCurate service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::ApiHub.api_hub_curate}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ApiHubCurate service, + # or if the versioned client gem needs an update to support the ApiHubCurate service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.api_hub_curate_available? version: :v1 + require "google/cloud/api_hub/#{version.to_s.downcase}" + package_name = Google::Cloud::ApiHub + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::ApiHub.const_get package_name + return false unless service_module.const_defined? :ApiHubCurate + service_module = service_module.const_get :ApiHubCurate + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for ApiHubDiscovery. + # + # By default, this returns an instance of + # [Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-api_hub-v1/latest/Google-Cloud-ApiHub-V1-ApiHubDiscovery-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the ApiHubDiscovery service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the ApiHubDiscovery service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::ApiHub.api_hub_discovery_available?}. + # + # ## About ApiHubDiscovery + # + # This service exposes methods used to manage DiscoveredApiObservations + # and DiscoveredApiOperations. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.api_hub_discovery version: :v1, &block + require "google/cloud/api_hub/#{version.to_s.downcase}" + + package_name = Google::Cloud::ApiHub + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::ApiHub.const_get(package_name).const_get(:ApiHubDiscovery) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the ApiHubDiscovery service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::ApiHub.api_hub_discovery}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ApiHubDiscovery service, + # or if the versioned client gem needs an update to support the ApiHubDiscovery service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.api_hub_discovery_available? version: :v1 + require "google/cloud/api_hub/#{version.to_s.downcase}" + package_name = Google::Cloud::ApiHub + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::ApiHub.const_get package_name + return false unless service_module.const_defined? :ApiHubDiscovery + service_module = service_module.const_get :ApiHubDiscovery + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for HostProjectRegistrationService. # diff --git a/google-cloud-api_hub/lib/google/cloud/api_hub/version.rb b/google-cloud-api_hub/lib/google/cloud/api_hub/version.rb index 8dc5f6df800e..dd0d0181a2af 100644 --- a/google-cloud-api_hub/lib/google/cloud/api_hub/version.rb +++ b/google-cloud-api_hub/lib/google/cloud/api_hub/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ApiHub - VERSION = "0.3.1" + VERSION = "0.4.0" end end end diff --git a/google-cloud-api_hub/test/google/cloud/api_hub/client_test.rb b/google-cloud-api_hub/test/google/cloud/api_hub/client_test.rb index f8c2cae0f10d..aaf7bbac266c 100644 --- a/google-cloud-api_hub/test/google/cloud/api_hub/client_test.rb +++ b/google-cloud-api_hub/test/google/cloud/api_hub/client_test.rb @@ -60,6 +60,36 @@ def test_api_hub_dependencies_rest end end + def test_api_hub_collect_rest + skip unless Google::Cloud::ApiHub.api_hub_collect_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::ApiHub.api_hub_collect do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::ApiHub::V1::ApiHubCollect::Rest::Client, client + end + end + + def test_api_hub_curate_rest + skip unless Google::Cloud::ApiHub.api_hub_curate_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::ApiHub.api_hub_curate do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::ApiHub::V1::ApiHubCurate::Rest::Client, client + end + end + + def test_api_hub_discovery_rest + skip unless Google::Cloud::ApiHub.api_hub_discovery_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::ApiHub.api_hub_discovery do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::ApiHub::V1::ApiHubDiscovery::Rest::Client, client + end + end + def test_host_project_registration_service_rest skip unless Google::Cloud::ApiHub.host_project_registration_service_available? Gapic::Rest::ClientStub.stub :new, DummyStub.new do diff --git a/google-cloud-api_keys-v2/CHANGELOG.md b/google-cloud-api_keys-v2/CHANGELOG.md index 0387b20f53f7..b21f3b284b56 100644 --- a/google-cloud-api_keys-v2/CHANGELOG.md +++ b/google-cloud-api_keys-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.9.0 (2025-05-12) #### Features diff --git a/google-cloud-api_keys-v2/google-cloud-api_keys-v2.gemspec b/google-cloud-api_keys-v2/google-cloud-api_keys-v2.gemspec index ded156a3ff09..80e9d6efaac9 100644 --- a/google-cloud-api_keys-v2/google-cloud-api_keys-v2.gemspec +++ b/google-cloud-api_keys-v2/google-cloud-api_keys-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-api_keys-v2/lib/google/cloud/api_keys/v2/version.rb b/google-cloud-api_keys-v2/lib/google/cloud/api_keys/v2/version.rb index 4b19f9f77db9..806909c63bd4 100644 --- a/google-cloud-api_keys-v2/lib/google/cloud/api_keys/v2/version.rb +++ b/google-cloud-api_keys-v2/lib/google/cloud/api_keys/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ApiKeys module V2 - VERSION = "0.9.0" + VERSION = "0.10.0" end end end diff --git a/google-cloud-api_keys-v2/snippets/snippet_metadata_google.api.apikeys.v2.json b/google-cloud-api_keys-v2/snippets/snippet_metadata_google.api.apikeys.v2.json index ac8eefb08641..f3c1be00b02e 100644 --- a/google-cloud-api_keys-v2/snippets/snippet_metadata_google.api.apikeys.v2.json +++ b/google-cloud-api_keys-v2/snippets/snippet_metadata_google.api.apikeys.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-api_keys-v2", - "version": "0.9.0", + "version": "0.10.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-api_keys/CHANGELOG.md b/google-cloud-api_keys/CHANGELOG.md index 046aa4999187..708c65e49bbe 100644 --- a/google-cloud-api_keys/CHANGELOG.md +++ b/google-cloud-api_keys/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-api_keys/README.md b/google-cloud-api_keys/README.md index 290262a6ba53..d10b0e9c70af 100644 --- a/google-cloud-api_keys/README.md +++ b/google-cloud-api_keys/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/apikeys.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/api_keys" + +client = Google::Cloud::ApiKeys.api_keys +request = ::Google::Cloud::ApiKeys::V2::CreateKeyRequest.new # (request fields as keyword arguments...) +response = client.create_key request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-api_keys/lib/google/cloud/api_keys/version.rb b/google-cloud-api_keys/lib/google/cloud/api_keys/version.rb index 7708ca1489d1..49c516dfa9a5 100644 --- a/google-cloud-api_keys/lib/google/cloud/api_keys/version.rb +++ b/google-cloud-api_keys/lib/google/cloud/api_keys/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ApiKeys - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-apigee_connect-v1/CHANGELOG.md b/google-cloud-apigee_connect-v1/CHANGELOG.md index e3601529edfe..df9f7cc6d4c9 100644 --- a/google-cloud-apigee_connect-v1/CHANGELOG.md +++ b/google-cloud-apigee_connect-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-apigee_connect-v1/google-cloud-apigee_connect-v1.gemspec b/google-cloud-apigee_connect-v1/google-cloud-apigee_connect-v1.gemspec index c287504d74f1..7636d241a9c1 100644 --- a/google-cloud-apigee_connect-v1/google-cloud-apigee_connect-v1.gemspec +++ b/google-cloud-apigee_connect-v1/google-cloud-apigee_connect-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-apigee_connect-v1/lib/google/cloud/apigee_connect/v1/version.rb b/google-cloud-apigee_connect-v1/lib/google/cloud/apigee_connect/v1/version.rb index 8b23828eac62..75f0bb5e8693 100644 --- a/google-cloud-apigee_connect-v1/lib/google/cloud/apigee_connect/v1/version.rb +++ b/google-cloud-apigee_connect-v1/lib/google/cloud/apigee_connect/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ApigeeConnect module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-apigee_connect-v1/snippets/snippet_metadata_google.cloud.apigeeconnect.v1.json b/google-cloud-apigee_connect-v1/snippets/snippet_metadata_google.cloud.apigeeconnect.v1.json index 60cd4b73b7b6..7db3dccb11af 100644 --- a/google-cloud-apigee_connect-v1/snippets/snippet_metadata_google.cloud.apigeeconnect.v1.json +++ b/google-cloud-apigee_connect-v1/snippets/snippet_metadata_google.cloud.apigeeconnect.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-apigee_connect-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-apigee_connect/CHANGELOG.md b/google-cloud-apigee_connect/CHANGELOG.md index d1d899624c3d..86bcc36f7cec 100644 --- a/google-cloud-apigee_connect/CHANGELOG.md +++ b/google-cloud-apigee_connect/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-apigee_connect/README.md b/google-cloud-apigee_connect/README.md index 32abd4691fa0..2db0750ba33b 100644 --- a/google-cloud-apigee_connect/README.md +++ b/google-cloud-apigee_connect/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/apigeeconnect.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/apigee_connect" + +client = Google::Cloud::ApigeeConnect.connection_service +request = ::Google::Cloud::ApigeeConnect::V1::ListConnectionsRequest.new # (request fields as keyword arguments...) +response = client.list_connections request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-apigee_connect/lib/google/cloud/apigee_connect/version.rb b/google-cloud-apigee_connect/lib/google/cloud/apigee_connect/version.rb index 9a6d347ea45c..85e0c3b571a3 100644 --- a/google-cloud-apigee_connect/lib/google/cloud/apigee_connect/version.rb +++ b/google-cloud-apigee_connect/lib/google/cloud/apigee_connect/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ApigeeConnect - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-apigee_registry-v1/CHANGELOG.md b/google-cloud-apigee_registry-v1/CHANGELOG.md index 172ea7824430..814f4c615dd1 100644 --- a/google-cloud-apigee_registry-v1/CHANGELOG.md +++ b/google-cloud-apigee_registry-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.11.0 (2025-05-12) #### Features diff --git a/google-cloud-apigee_registry-v1/google-cloud-apigee_registry-v1.gemspec b/google-cloud-apigee_registry-v1/google-cloud-apigee_registry-v1.gemspec index e6859b1243c1..bfb87f68212a 100644 --- a/google-cloud-apigee_registry-v1/google-cloud-apigee_registry-v1.gemspec +++ b/google-cloud-apigee_registry-v1/google-cloud-apigee_registry-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-apigee_registry-v1/lib/google/cloud/apigee_registry/v1/version.rb b/google-cloud-apigee_registry-v1/lib/google/cloud/apigee_registry/v1/version.rb index fb3aa65e49f2..2939a7aa2387 100644 --- a/google-cloud-apigee_registry-v1/lib/google/cloud/apigee_registry/v1/version.rb +++ b/google-cloud-apigee_registry-v1/lib/google/cloud/apigee_registry/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ApigeeRegistry module V1 - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-cloud-apigee_registry-v1/snippets/snippet_metadata_google.cloud.apigeeregistry.v1.json b/google-cloud-apigee_registry-v1/snippets/snippet_metadata_google.cloud.apigeeregistry.v1.json index ffd5a6eb2aad..d1dc13a038cf 100644 --- a/google-cloud-apigee_registry-v1/snippets/snippet_metadata_google.cloud.apigeeregistry.v1.json +++ b/google-cloud-apigee_registry-v1/snippets/snippet_metadata_google.cloud.apigeeregistry.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-apigee_registry-v1", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-apigee_registry/CHANGELOG.md b/google-cloud-apigee_registry/CHANGELOG.md index 5907b96e2b9f..90f893627c29 100644 --- a/google-cloud-apigee_registry/CHANGELOG.md +++ b/google-cloud-apigee_registry/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-apigee_registry/README.md b/google-cloud-apigee_registry/README.md index db2f580c24cd..88f4656d5567 100644 --- a/google-cloud-apigee_registry/README.md +++ b/google-cloud-apigee_registry/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/apigeeregistry.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/apigee_registry" + +client = Google::Cloud::ApigeeRegistry.provisioning +request = ::Google::Cloud::ApigeeRegistry::V1::CreateInstanceRequest.new # (request fields as keyword arguments...) +response = client.create_instance request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-apigee_registry/lib/google/cloud/apigee_registry/version.rb b/google-cloud-apigee_registry/lib/google/cloud/apigee_registry/version.rb index 170907f5a194..d9c37e76390c 100644 --- a/google-cloud-apigee_registry/lib/google/cloud/apigee_registry/version.rb +++ b/google-cloud-apigee_registry/lib/google/cloud/apigee_registry/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ApigeeRegistry - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-app_engine-v1/CHANGELOG.md b/google-cloud-app_engine-v1/CHANGELOG.md index 22591e452b18..3932a17255a7 100644 --- a/google-cloud-app_engine-v1/CHANGELOG.md +++ b/google-cloud-app_engine-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-app_engine-v1/google-cloud-app_engine-v1.gemspec b/google-cloud-app_engine-v1/google-cloud-app_engine-v1.gemspec index 04c14a30d9f1..e93b396dd6c7 100644 --- a/google-cloud-app_engine-v1/google-cloud-app_engine-v1.gemspec +++ b/google-cloud-app_engine-v1/google-cloud-app_engine-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-app_engine-v1/lib/google/cloud/app_engine/v1/version.rb b/google-cloud-app_engine-v1/lib/google/cloud/app_engine/v1/version.rb index 6b374cb4f2d3..216d770289c4 100644 --- a/google-cloud-app_engine-v1/lib/google/cloud/app_engine/v1/version.rb +++ b/google-cloud-app_engine-v1/lib/google/cloud/app_engine/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AppEngine module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-app_engine-v1/snippets/snippet_metadata_google.appengine.v1.json b/google-cloud-app_engine-v1/snippets/snippet_metadata_google.appengine.v1.json index 1c971a82bb6c..1a75761dbb8a 100644 --- a/google-cloud-app_engine-v1/snippets/snippet_metadata_google.appengine.v1.json +++ b/google-cloud-app_engine-v1/snippets/snippet_metadata_google.appengine.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-app_engine-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-app_engine/CHANGELOG.md b/google-cloud-app_engine/CHANGELOG.md index 2f680935d407..ca2664584e5c 100644 --- a/google-cloud-app_engine/CHANGELOG.md +++ b/google-cloud-app_engine/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-app_engine/README.md b/google-cloud-app_engine/README.md index b9bd789cb730..eedddbde2483 100644 --- a/google-cloud-app_engine/README.md +++ b/google-cloud-app_engine/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/appengine.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/app_engine" + +client = Google::Cloud::AppEngine.applications +request = ::Google::Cloud::AppEngine::V1::GetApplicationRequest.new # (request fields as keyword arguments...) +response = client.get_application request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-app_engine/lib/google/cloud/app_engine/version.rb b/google-cloud-app_engine/lib/google/cloud/app_engine/version.rb index 050509ee142f..353ebcb0140b 100644 --- a/google-cloud-app_engine/lib/google/cloud/app_engine/version.rb +++ b/google-cloud-app_engine/lib/google/cloud/app_engine/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AppEngine - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-app_hub-v1/CHANGELOG.md b/google-cloud-app_hub-v1/CHANGELOG.md index ca18cb6c3a7c..1dd8d6bd455b 100644 --- a/google-cloud-app_hub-v1/CHANGELOG.md +++ b/google-cloud-app_hub-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.2.0 (2025-05-12) #### Features diff --git a/google-cloud-app_hub-v1/google-cloud-app_hub-v1.gemspec b/google-cloud-app_hub-v1/google-cloud-app_hub-v1.gemspec index 8486af7db7cc..391e539d441e 100644 --- a/google-cloud-app_hub-v1/google-cloud-app_hub-v1.gemspec +++ b/google-cloud-app_hub-v1/google-cloud-app_hub-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-app_hub-v1/lib/google/cloud/app_hub/v1/version.rb b/google-cloud-app_hub-v1/lib/google/cloud/app_hub/v1/version.rb index 4c2ef8e26366..6871c1155223 100644 --- a/google-cloud-app_hub-v1/lib/google/cloud/app_hub/v1/version.rb +++ b/google-cloud-app_hub-v1/lib/google/cloud/app_hub/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AppHub module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-app_hub-v1/snippets/snippet_metadata_google.cloud.apphub.v1.json b/google-cloud-app_hub-v1/snippets/snippet_metadata_google.cloud.apphub.v1.json index 5134f8882176..893b4e73d1d0 100644 --- a/google-cloud-app_hub-v1/snippets/snippet_metadata_google.cloud.apphub.v1.json +++ b/google-cloud-app_hub-v1/snippets/snippet_metadata_google.cloud.apphub.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-app_hub-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-app_hub/CHANGELOG.md b/google-cloud-app_hub/CHANGELOG.md index a6b1824112d4..a34ef28b6cfe 100644 --- a/google-cloud-app_hub/CHANGELOG.md +++ b/google-cloud-app_hub/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-app_hub/README.md b/google-cloud-app_hub/README.md index bb1b2f8b441c..0afb352877be 100644 --- a/google-cloud-app_hub/README.md +++ b/google-cloud-app_hub/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/apphub.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/app_hub" + +client = Google::Cloud::AppHub.app_hub +request = ::Google::Cloud::AppHub::V1::LookupServiceProjectAttachmentRequest.new # (request fields as keyword arguments...) +response = client.lookup_service_project_attachment request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-app_hub/lib/google/cloud/app_hub/version.rb b/google-cloud-app_hub/lib/google/cloud/app_hub/version.rb index f3559aa5019d..4a6fbcef57f1 100644 --- a/google-cloud-app_hub/lib/google/cloud/app_hub/version.rb +++ b/google-cloud-app_hub/lib/google/cloud/app_hub/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AppHub - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-artifact_registry-v1/CHANGELOG.md b/google-cloud-artifact_registry-v1/CHANGELOG.md index cf1e7ad459b6..0d9f2aa6c706 100644 --- a/google-cloud-artifact_registry-v1/CHANGELOG.md +++ b/google-cloud-artifact_registry-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.5.0 (2025-05-12) #### Features diff --git a/google-cloud-artifact_registry-v1/google-cloud-artifact_registry-v1.gemspec b/google-cloud-artifact_registry-v1/google-cloud-artifact_registry-v1.gemspec index 0bbc756d2c3a..ee7b90253d10 100644 --- a/google-cloud-artifact_registry-v1/google-cloud-artifact_registry-v1.gemspec +++ b/google-cloud-artifact_registry-v1/google-cloud-artifact_registry-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-artifact_registry-v1/lib/google/cloud/artifact_registry/v1/version.rb b/google-cloud-artifact_registry-v1/lib/google/cloud/artifact_registry/v1/version.rb index c5a05e2a0f46..6403bdd3ede0 100644 --- a/google-cloud-artifact_registry-v1/lib/google/cloud/artifact_registry/v1/version.rb +++ b/google-cloud-artifact_registry-v1/lib/google/cloud/artifact_registry/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ArtifactRegistry module V1 - VERSION = "1.5.0" + VERSION = "1.6.0" end end end diff --git a/google-cloud-artifact_registry-v1/snippets/snippet_metadata_google.devtools.artifactregistry.v1.json b/google-cloud-artifact_registry-v1/snippets/snippet_metadata_google.devtools.artifactregistry.v1.json index 6fd8b8669b0d..ce38218e1632 100644 --- a/google-cloud-artifact_registry-v1/snippets/snippet_metadata_google.devtools.artifactregistry.v1.json +++ b/google-cloud-artifact_registry-v1/snippets/snippet_metadata_google.devtools.artifactregistry.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-artifact_registry-v1", - "version": "1.5.0", + "version": "1.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-artifact_registry-v1beta2/CHANGELOG.md b/google-cloud-artifact_registry-v1beta2/CHANGELOG.md index 91c54c6b91f3..03ee279da3d2 100644 --- a/google-cloud-artifact_registry-v1beta2/CHANGELOG.md +++ b/google-cloud-artifact_registry-v1beta2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.15.0 (2025-05-12) #### Features diff --git a/google-cloud-artifact_registry-v1beta2/google-cloud-artifact_registry-v1beta2.gemspec b/google-cloud-artifact_registry-v1beta2/google-cloud-artifact_registry-v1beta2.gemspec index 3314cdcfc497..ee4ca4d9c907 100644 --- a/google-cloud-artifact_registry-v1beta2/google-cloud-artifact_registry-v1beta2.gemspec +++ b/google-cloud-artifact_registry-v1beta2/google-cloud-artifact_registry-v1beta2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-artifact_registry-v1beta2/lib/google/cloud/artifact_registry/v1beta2/version.rb b/google-cloud-artifact_registry-v1beta2/lib/google/cloud/artifact_registry/v1beta2/version.rb index 606243f913fa..01f69dcc87f6 100644 --- a/google-cloud-artifact_registry-v1beta2/lib/google/cloud/artifact_registry/v1beta2/version.rb +++ b/google-cloud-artifact_registry-v1beta2/lib/google/cloud/artifact_registry/v1beta2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ArtifactRegistry module V1beta2 - VERSION = "0.15.0" + VERSION = "0.16.0" end end end diff --git a/google-cloud-artifact_registry-v1beta2/snippets/snippet_metadata_google.devtools.artifactregistry.v1beta2.json b/google-cloud-artifact_registry-v1beta2/snippets/snippet_metadata_google.devtools.artifactregistry.v1beta2.json index bcd949d329e6..344966ef69b4 100644 --- a/google-cloud-artifact_registry-v1beta2/snippets/snippet_metadata_google.devtools.artifactregistry.v1beta2.json +++ b/google-cloud-artifact_registry-v1beta2/snippets/snippet_metadata_google.devtools.artifactregistry.v1beta2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-artifact_registry-v1beta2", - "version": "0.15.0", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-artifact_registry/CHANGELOG.md b/google-cloud-artifact_registry/CHANGELOG.md index 2c5d1671ecab..f1a1a49a581c 100644 --- a/google-cloud-artifact_registry/CHANGELOG.md +++ b/google-cloud-artifact_registry/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-artifact_registry/README.md b/google-cloud-artifact_registry/README.md index 042ea3de1a6a..29895b3dd4d3 100644 --- a/google-cloud-artifact_registry/README.md +++ b/google-cloud-artifact_registry/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/artifactregistry.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/artifact_registry" + +client = Google::Cloud::ArtifactRegistry.artifact_registry +request = ::Google::Cloud::ArtifactRegistry::V1::ListDockerImagesRequest.new # (request fields as keyword arguments...) +response = client.list_docker_images request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-artifact_registry/lib/google/cloud/artifact_registry/version.rb b/google-cloud-artifact_registry/lib/google/cloud/artifact_registry/version.rb index 872768d18bb4..9f67f7d94aee 100644 --- a/google-cloud-artifact_registry/lib/google/cloud/artifact_registry/version.rb +++ b/google-cloud-artifact_registry/lib/google/cloud/artifact_registry/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ArtifactRegistry - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-asset-v1/CHANGELOG.md b/google-cloud-asset-v1/CHANGELOG.md index f6add0063f9e..1e6274801696 100644 --- a/google-cloud-asset-v1/CHANGELOG.md +++ b/google-cloud-asset-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.4.1 (2025-07-15) #### Documentation diff --git a/google-cloud-asset-v1/google-cloud-asset-v1.gemspec b/google-cloud-asset-v1/google-cloud-asset-v1.gemspec index de4de6f54f59..3fe80781ddc3 100644 --- a/google-cloud-asset-v1/google-cloud-asset-v1.gemspec +++ b/google-cloud-asset-v1/google-cloud-asset-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-os_config-v1", "> 0.0", "< 2.a" gem.add_dependency "google-identity-access_context_manager-v1", "> 0.0", "< 2.a" diff --git a/google-cloud-asset-v1/lib/google/cloud/asset/v1/version.rb b/google-cloud-asset-v1/lib/google/cloud/asset/v1/version.rb index 3120f8f0f24a..cd79525d8a77 100644 --- a/google-cloud-asset-v1/lib/google/cloud/asset/v1/version.rb +++ b/google-cloud-asset-v1/lib/google/cloud/asset/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Asset module V1 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-asset-v1/snippets/snippet_metadata_google.cloud.asset.v1.json b/google-cloud-asset-v1/snippets/snippet_metadata_google.cloud.asset.v1.json index e404965a1f73..1dad9c5366fe 100644 --- a/google-cloud-asset-v1/snippets/snippet_metadata_google.cloud.asset.v1.json +++ b/google-cloud-asset-v1/snippets/snippet_metadata_google.cloud.asset.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-asset-v1", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-asset/CHANGELOG.md b/google-cloud-asset/CHANGELOG.md index a38fef14ed9d..74cc37bdd0c2 100644 --- a/google-cloud-asset/CHANGELOG.md +++ b/google-cloud-asset/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.8.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.8.2 (2025-05-27) #### Documentation diff --git a/google-cloud-asset/README.md b/google-cloud-asset/README.md index 9c9e7133ace8..787f49e72382 100644 --- a/google-cloud-asset/README.md +++ b/google-cloud-asset/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudasset.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/asset" + +client = Google::Cloud::Asset.asset_service +request = ::Google::Cloud::Asset::V1::ExportAssetsRequest.new # (request fields as keyword arguments...) +response = client.export_assets request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-asset client is a significant upgrade diff --git a/google-cloud-asset/lib/google/cloud/asset/version.rb b/google-cloud-asset/lib/google/cloud/asset/version.rb index 53b1b1574e4c..d1e170ad54c3 100644 --- a/google-cloud-asset/lib/google/cloud/asset/version.rb +++ b/google-cloud-asset/lib/google/cloud/asset/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Asset - VERSION = "1.8.2".freeze + VERSION = "1.8.3".freeze end end end diff --git a/google-cloud-assured_workloads-v1/CHANGELOG.md b/google-cloud-assured_workloads-v1/CHANGELOG.md index 441bedd26bfb..bf68b56e95fd 100644 --- a/google-cloud-assured_workloads-v1/CHANGELOG.md +++ b/google-cloud-assured_workloads-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-assured_workloads-v1/google-cloud-assured_workloads-v1.gemspec b/google-cloud-assured_workloads-v1/google-cloud-assured_workloads-v1.gemspec index a6beab5a7849..ab468fc4b65f 100644 --- a/google-cloud-assured_workloads-v1/google-cloud-assured_workloads-v1.gemspec +++ b/google-cloud-assured_workloads-v1/google-cloud-assured_workloads-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-assured_workloads-v1/lib/google/cloud/assured_workloads/v1/version.rb b/google-cloud-assured_workloads-v1/lib/google/cloud/assured_workloads/v1/version.rb index 1c73a203c799..82e935d81dfc 100644 --- a/google-cloud-assured_workloads-v1/lib/google/cloud/assured_workloads/v1/version.rb +++ b/google-cloud-assured_workloads-v1/lib/google/cloud/assured_workloads/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AssuredWorkloads module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-assured_workloads-v1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1.json b/google-cloud-assured_workloads-v1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1.json index afa90c26f094..8d111d16a96f 100644 --- a/google-cloud-assured_workloads-v1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1.json +++ b/google-cloud-assured_workloads-v1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-assured_workloads-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-assured_workloads-v1beta1/CHANGELOG.md b/google-cloud-assured_workloads-v1beta1/CHANGELOG.md index 32b52835ae24..13feff4f805e 100644 --- a/google-cloud-assured_workloads-v1beta1/CHANGELOG.md +++ b/google-cloud-assured_workloads-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.22.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.21.1 (2025-07-15) #### Documentation diff --git a/google-cloud-assured_workloads-v1beta1/google-cloud-assured_workloads-v1beta1.gemspec b/google-cloud-assured_workloads-v1beta1/google-cloud-assured_workloads-v1beta1.gemspec index f9eff05e210d..40ee2d97efec 100644 --- a/google-cloud-assured_workloads-v1beta1/google-cloud-assured_workloads-v1beta1.gemspec +++ b/google-cloud-assured_workloads-v1beta1/google-cloud-assured_workloads-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-assured_workloads-v1beta1/lib/google/cloud/assured_workloads/v1beta1/version.rb b/google-cloud-assured_workloads-v1beta1/lib/google/cloud/assured_workloads/v1beta1/version.rb index 8e7fbccdf6c7..16d9139ba96b 100644 --- a/google-cloud-assured_workloads-v1beta1/lib/google/cloud/assured_workloads/v1beta1/version.rb +++ b/google-cloud-assured_workloads-v1beta1/lib/google/cloud/assured_workloads/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AssuredWorkloads module V1beta1 - VERSION = "0.21.1" + VERSION = "0.22.0" end end end diff --git a/google-cloud-assured_workloads-v1beta1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1beta1.json b/google-cloud-assured_workloads-v1beta1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1beta1.json index 6943f5adf047..29300466b23b 100644 --- a/google-cloud-assured_workloads-v1beta1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1beta1.json +++ b/google-cloud-assured_workloads-v1beta1/snippets/snippet_metadata_google.cloud.assuredworkloads.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-assured_workloads-v1beta1", - "version": "0.21.1", + "version": "0.22.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-assured_workloads/CHANGELOG.md b/google-cloud-assured_workloads/CHANGELOG.md index 09571f1e2058..eb31843a72c4 100644 --- a/google-cloud-assured_workloads/CHANGELOG.md +++ b/google-cloud-assured_workloads/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-assured_workloads/README.md b/google-cloud-assured_workloads/README.md index e6b745c4754a..e1a0aa82dc03 100644 --- a/google-cloud-assured_workloads/README.md +++ b/google-cloud-assured_workloads/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/assuredworkloads.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/assured_workloads" + +client = Google::Cloud::AssuredWorkloads.assured_workloads_service +request = ::Google::Cloud::AssuredWorkloads::V1::CreateWorkloadRequest.new # (request fields as keyword arguments...) +response = client.create_workload request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-assured_workloads/lib/google/cloud/assured_workloads/version.rb b/google-cloud-assured_workloads/lib/google/cloud/assured_workloads/version.rb index 2fb15151f375..10e949dd418b 100644 --- a/google-cloud-assured_workloads/lib/google/cloud/assured_workloads/version.rb +++ b/google-cloud-assured_workloads/lib/google/cloud/assured_workloads/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AssuredWorkloads - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-automl-v1/CHANGELOG.md b/google-cloud-automl-v1/CHANGELOG.md index 4d59afc264be..6ab1343b4e9b 100644 --- a/google-cloud-automl-v1/CHANGELOG.md +++ b/google-cloud-automl-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.1 (2025-07-15) #### Documentation diff --git a/google-cloud-automl-v1/google-cloud-automl-v1.gemspec b/google-cloud-automl-v1/google-cloud-automl-v1.gemspec index 2df92aa0b319..59bf922e9500 100644 --- a/google-cloud-automl-v1/google-cloud-automl-v1.gemspec +++ b/google-cloud-automl-v1/google-cloud-automl-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-automl-v1/lib/google/cloud/automl/v1/version.rb b/google-cloud-automl-v1/lib/google/cloud/automl/v1/version.rb index 4230e5310e11..e3c6bf8389f9 100644 --- a/google-cloud-automl-v1/lib/google/cloud/automl/v1/version.rb +++ b/google-cloud-automl-v1/lib/google/cloud/automl/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AutoML module V1 - VERSION = "1.3.1" + VERSION = "1.4.0" end end end diff --git a/google-cloud-automl-v1/snippets/snippet_metadata_google.cloud.automl.v1.json b/google-cloud-automl-v1/snippets/snippet_metadata_google.cloud.automl.v1.json index 427787bb3769..2962cb1120a4 100644 --- a/google-cloud-automl-v1/snippets/snippet_metadata_google.cloud.automl.v1.json +++ b/google-cloud-automl-v1/snippets/snippet_metadata_google.cloud.automl.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-automl-v1", - "version": "1.3.1", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-automl-v1beta1/CHANGELOG.md b/google-cloud-automl-v1beta1/CHANGELOG.md index 4a1c2d0431af..bb42580cfe27 100644 --- a/google-cloud-automl-v1beta1/CHANGELOG.md +++ b/google-cloud-automl-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.14.1 (2025-07-15) #### Documentation diff --git a/google-cloud-automl-v1beta1/google-cloud-automl-v1beta1.gemspec b/google-cloud-automl-v1beta1/google-cloud-automl-v1beta1.gemspec index 87302579c078..8f4f77adcc54 100644 --- a/google-cloud-automl-v1beta1/google-cloud-automl-v1beta1.gemspec +++ b/google-cloud-automl-v1beta1/google-cloud-automl-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-automl-v1beta1/lib/google/cloud/automl/v1beta1/version.rb b/google-cloud-automl-v1beta1/lib/google/cloud/automl/v1beta1/version.rb index a9886855e985..23865ef42729 100644 --- a/google-cloud-automl-v1beta1/lib/google/cloud/automl/v1beta1/version.rb +++ b/google-cloud-automl-v1beta1/lib/google/cloud/automl/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module AutoML module V1beta1 - VERSION = "0.14.1" + VERSION = "0.15.0" end end end diff --git a/google-cloud-automl-v1beta1/snippets/snippet_metadata_google.cloud.automl.v1beta1.json b/google-cloud-automl-v1beta1/snippets/snippet_metadata_google.cloud.automl.v1beta1.json index dfd0d0689ce7..9187be8f27a3 100644 --- a/google-cloud-automl-v1beta1/snippets/snippet_metadata_google.cloud.automl.v1beta1.json +++ b/google-cloud-automl-v1beta1/snippets/snippet_metadata_google.cloud.automl.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-automl-v1beta1", - "version": "0.14.1", + "version": "0.15.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-automl/CHANGELOG.md b/google-cloud-automl/CHANGELOG.md index d287c4bd1061..70eb1f8d4d01 100644 --- a/google-cloud-automl/CHANGELOG.md +++ b/google-cloud-automl/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-automl/README.md b/google-cloud-automl/README.md index 605559038a2e..9cdbafe932c6 100644 --- a/google-cloud-automl/README.md +++ b/google-cloud-automl/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/automl.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/automl" + +client = Google::Cloud::AutoML.prediction_service +request = ::Google::Cloud::AutoML::V1::PredictRequest.new # (request fields as keyword arguments...) +response = client.predict request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-automl client is a significant upgrade diff --git a/google-cloud-automl/lib/google/cloud/automl/version.rb b/google-cloud-automl/lib/google/cloud/automl/version.rb index bb595749e820..7ccbdce71482 100644 --- a/google-cloud-automl/lib/google/cloud/automl/version.rb +++ b/google-cloud-automl/lib/google/cloud/automl/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module AutoML - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-backupdr-v1/CHANGELOG.md b/google-cloud-backupdr-v1/CHANGELOG.md index 97f0b8fd720e..7c4462dcb3a5 100644 --- a/google-cloud-backupdr-v1/CHANGELOG.md +++ b/google-cloud-backupdr-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.2.0 (2025-07-28) #### Features diff --git a/google-cloud-backupdr-v1/google-cloud-backupdr-v1.gemspec b/google-cloud-backupdr-v1/google-cloud-backupdr-v1.gemspec index dc86d0e725f5..7f269ee27d8c 100644 --- a/google-cloud-backupdr-v1/google-cloud-backupdr-v1.gemspec +++ b/google-cloud-backupdr-v1/google-cloud-backupdr-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-backupdr-v1/lib/google/cloud/backupdr/v1/version.rb b/google-cloud-backupdr-v1/lib/google/cloud/backupdr/v1/version.rb index 616649d4db0f..c767e58029f5 100644 --- a/google-cloud-backupdr-v1/lib/google/cloud/backupdr/v1/version.rb +++ b/google-cloud-backupdr-v1/lib/google/cloud/backupdr/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module BackupDR module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-backupdr-v1/snippets/snippet_metadata_google.cloud.backupdr.v1.json b/google-cloud-backupdr-v1/snippets/snippet_metadata_google.cloud.backupdr.v1.json index 276fc6e82ff7..32b7bdb9b5c7 100644 --- a/google-cloud-backupdr-v1/snippets/snippet_metadata_google.cloud.backupdr.v1.json +++ b/google-cloud-backupdr-v1/snippets/snippet_metadata_google.cloud.backupdr.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-backupdr-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-backupdr/CHANGELOG.md b/google-cloud-backupdr/CHANGELOG.md index 591e03b0ec42..c6405a2d8119 100644 --- a/google-cloud-backupdr/CHANGELOG.md +++ b/google-cloud-backupdr/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-backupdr/README.md b/google-cloud-backupdr/README.md index 7be937a73cd6..28f0c41eec7f 100644 --- a/google-cloud-backupdr/README.md +++ b/google-cloud-backupdr/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/backupdr.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/backupdr" + +client = Google::Cloud::BackupDR.backupdr +request = ::Google::Cloud::BackupDR::V1::ListManagementServersRequest.new # (request fields as keyword arguments...) +response = client.list_management_servers request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-backupdr/lib/google/cloud/backupdr/version.rb b/google-cloud-backupdr/lib/google/cloud/backupdr/version.rb index 1c32d0119594..cf4b713eaf34 100644 --- a/google-cloud-backupdr/lib/google/cloud/backupdr/version.rb +++ b/google-cloud-backupdr/lib/google/cloud/backupdr/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module BackupDR - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-bare_metal_solution-v2/CHANGELOG.md b/google-cloud-bare_metal_solution-v2/CHANGELOG.md index 32df6e89b08a..aa86d89cbd65 100644 --- a/google-cloud-bare_metal_solution-v2/CHANGELOG.md +++ b/google-cloud-bare_metal_solution-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-bare_metal_solution-v2/google-cloud-bare_metal_solution-v2.gemspec b/google-cloud-bare_metal_solution-v2/google-cloud-bare_metal_solution-v2.gemspec index d4df5106092a..e56e81b7ad85 100644 --- a/google-cloud-bare_metal_solution-v2/google-cloud-bare_metal_solution-v2.gemspec +++ b/google-cloud-bare_metal_solution-v2/google-cloud-bare_metal_solution-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-bare_metal_solution-v2/lib/google/cloud/bare_metal_solution/v2/version.rb b/google-cloud-bare_metal_solution-v2/lib/google/cloud/bare_metal_solution/v2/version.rb index 496611635302..50dfe19f23d4 100644 --- a/google-cloud-bare_metal_solution-v2/lib/google/cloud/bare_metal_solution/v2/version.rb +++ b/google-cloud-bare_metal_solution-v2/lib/google/cloud/bare_metal_solution/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module BareMetalSolution module V2 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-bare_metal_solution-v2/snippets/snippet_metadata_google.cloud.baremetalsolution.v2.json b/google-cloud-bare_metal_solution-v2/snippets/snippet_metadata_google.cloud.baremetalsolution.v2.json index 6fba97f9ffe3..9daeb31a6ebf 100644 --- a/google-cloud-bare_metal_solution-v2/snippets/snippet_metadata_google.cloud.baremetalsolution.v2.json +++ b/google-cloud-bare_metal_solution-v2/snippets/snippet_metadata_google.cloud.baremetalsolution.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bare_metal_solution-v2", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bare_metal_solution/CHANGELOG.md b/google-cloud-bare_metal_solution/CHANGELOG.md index 6baf0fceb7ff..b030e11225b0 100644 --- a/google-cloud-bare_metal_solution/CHANGELOG.md +++ b/google-cloud-bare_metal_solution/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bare_metal_solution/README.md b/google-cloud-bare_metal_solution/README.md index 9c248e3bb5a0..2b1a20036788 100644 --- a/google-cloud-bare_metal_solution/README.md +++ b/google-cloud-bare_metal_solution/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/baremetalsolution.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bare_metal_solution" + +client = Google::Cloud::BareMetalSolution.bare_metal_solution +request = ::Google::Cloud::BareMetalSolution::V2::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bare_metal_solution/lib/google/cloud/bare_metal_solution/version.rb b/google-cloud-bare_metal_solution/lib/google/cloud/bare_metal_solution/version.rb index 6575b81aa78d..70010a404811 100644 --- a/google-cloud-bare_metal_solution/lib/google/cloud/bare_metal_solution/version.rb +++ b/google-cloud-bare_metal_solution/lib/google/cloud/bare_metal_solution/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module BareMetalSolution - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-batch-v1/CHANGELOG.md b/google-cloud-batch-v1/CHANGELOG.md index d1d838bfaa2f..d99f75b02b8e 100644 --- a/google-cloud-batch-v1/CHANGELOG.md +++ b/google-cloud-batch-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.2.0 (2025-05-12) #### Features diff --git a/google-cloud-batch-v1/google-cloud-batch-v1.gemspec b/google-cloud-batch-v1/google-cloud-batch-v1.gemspec index 3a155e645c3b..5fe6215a88a5 100644 --- a/google-cloud-batch-v1/google-cloud-batch-v1.gemspec +++ b/google-cloud-batch-v1/google-cloud-batch-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-batch-v1/lib/google/cloud/batch/v1/version.rb b/google-cloud-batch-v1/lib/google/cloud/batch/v1/version.rb index 741fb2651867..e7c19fc0dc1a 100644 --- a/google-cloud-batch-v1/lib/google/cloud/batch/v1/version.rb +++ b/google-cloud-batch-v1/lib/google/cloud/batch/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Batch module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-batch-v1/snippets/snippet_metadata_google.cloud.batch.v1.json b/google-cloud-batch-v1/snippets/snippet_metadata_google.cloud.batch.v1.json index 53359eb07a14..a519896484e3 100644 --- a/google-cloud-batch-v1/snippets/snippet_metadata_google.cloud.batch.v1.json +++ b/google-cloud-batch-v1/snippets/snippet_metadata_google.cloud.batch.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-batch-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-batch-v1/snippets/snippet_metadata_google.iam.v1.json b/google-cloud-batch-v1/snippets/snippet_metadata_google.iam.v1.json index db3ad99ee7e4..60d07c9f8744 100644 --- a/google-cloud-batch-v1/snippets/snippet_metadata_google.iam.v1.json +++ b/google-cloud-batch-v1/snippets/snippet_metadata_google.iam.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-batch-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-batch/CHANGELOG.md b/google-cloud-batch/CHANGELOG.md index ad10ec978289..a4435ba9f812 100644 --- a/google-cloud-batch/CHANGELOG.md +++ b/google-cloud-batch/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-batch/README.md b/google-cloud-batch/README.md index 9b2874531c58..32525d81dd32 100644 --- a/google-cloud-batch/README.md +++ b/google-cloud-batch/README.md @@ -31,6 +31,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/batch.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/batch" + +client = Google::Cloud::Batch.batch_service +request = ::Google::Cloud::Batch::V1::CreateJobRequest.new # (request fields as keyword arguments...) +response = client.create_job request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-batch/lib/google/cloud/batch/version.rb b/google-cloud-batch/lib/google/cloud/batch/version.rb index ba3c1a2c32c1..98870cc36b95 100644 --- a/google-cloud-batch/lib/google/cloud/batch/version.rb +++ b/google-cloud-batch/lib/google/cloud/batch/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Batch - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-beyond_corp-app_connections-v1/CHANGELOG.md b/google-cloud-beyond_corp-app_connections-v1/CHANGELOG.md index 84a4e32416cd..7ed5340c6dfd 100644 --- a/google-cloud-beyond_corp-app_connections-v1/CHANGELOG.md +++ b/google-cloud-beyond_corp-app_connections-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.8.0 (2025-05-12) #### Features diff --git a/google-cloud-beyond_corp-app_connections-v1/google-cloud-beyond_corp-app_connections-v1.gemspec b/google-cloud-beyond_corp-app_connections-v1/google-cloud-beyond_corp-app_connections-v1.gemspec index 6522b802667c..9322421fc3a3 100644 --- a/google-cloud-beyond_corp-app_connections-v1/google-cloud-beyond_corp-app_connections-v1.gemspec +++ b/google-cloud-beyond_corp-app_connections-v1/google-cloud-beyond_corp-app_connections-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-beyond_corp-app_connections-v1/lib/google/cloud/beyond_corp/app_connections/v1/version.rb b/google-cloud-beyond_corp-app_connections-v1/lib/google/cloud/beyond_corp/app_connections/v1/version.rb index 8a301d505955..8ba9f1bad666 100644 --- a/google-cloud-beyond_corp-app_connections-v1/lib/google/cloud/beyond_corp/app_connections/v1/version.rb +++ b/google-cloud-beyond_corp-app_connections-v1/lib/google/cloud/beyond_corp/app_connections/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module BeyondCorp module AppConnections module V1 - VERSION = "0.8.0" + VERSION = "0.9.0" end end end diff --git a/google-cloud-beyond_corp-app_connections-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnections.v1.json b/google-cloud-beyond_corp-app_connections-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnections.v1.json index 56aa2cb0a71a..1b51e23c0ee6 100644 --- a/google-cloud-beyond_corp-app_connections-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnections.v1.json +++ b/google-cloud-beyond_corp-app_connections-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnections.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-beyond_corp-app_connections-v1", - "version": "0.8.0", + "version": "0.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-beyond_corp-app_connectors-v1/CHANGELOG.md b/google-cloud-beyond_corp-app_connectors-v1/CHANGELOG.md index 937041e46e43..0613e5e317dd 100644 --- a/google-cloud-beyond_corp-app_connectors-v1/CHANGELOG.md +++ b/google-cloud-beyond_corp-app_connectors-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.8.0 (2025-05-12) #### Features diff --git a/google-cloud-beyond_corp-app_connectors-v1/google-cloud-beyond_corp-app_connectors-v1.gemspec b/google-cloud-beyond_corp-app_connectors-v1/google-cloud-beyond_corp-app_connectors-v1.gemspec index f294d3b7483d..fa2efefaa5ed 100644 --- a/google-cloud-beyond_corp-app_connectors-v1/google-cloud-beyond_corp-app_connectors-v1.gemspec +++ b/google-cloud-beyond_corp-app_connectors-v1/google-cloud-beyond_corp-app_connectors-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-beyond_corp-app_connectors-v1/lib/google/cloud/beyond_corp/app_connectors/v1/version.rb b/google-cloud-beyond_corp-app_connectors-v1/lib/google/cloud/beyond_corp/app_connectors/v1/version.rb index 7b70a3304c27..813fd8a3ea81 100644 --- a/google-cloud-beyond_corp-app_connectors-v1/lib/google/cloud/beyond_corp/app_connectors/v1/version.rb +++ b/google-cloud-beyond_corp-app_connectors-v1/lib/google/cloud/beyond_corp/app_connectors/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module BeyondCorp module AppConnectors module V1 - VERSION = "0.8.0" + VERSION = "0.9.0" end end end diff --git a/google-cloud-beyond_corp-app_connectors-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnectors.v1.json b/google-cloud-beyond_corp-app_connectors-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnectors.v1.json index 791d38b61e72..701d4587fe3b 100644 --- a/google-cloud-beyond_corp-app_connectors-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnectors.v1.json +++ b/google-cloud-beyond_corp-app_connectors-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appconnectors.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-beyond_corp-app_connectors-v1", - "version": "0.8.0", + "version": "0.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-beyond_corp-app_gateways-v1/CHANGELOG.md b/google-cloud-beyond_corp-app_gateways-v1/CHANGELOG.md index e9b4d4478e12..db94a96e5517 100644 --- a/google-cloud-beyond_corp-app_gateways-v1/CHANGELOG.md +++ b/google-cloud-beyond_corp-app_gateways-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.8.0 (2025-05-12) #### Features diff --git a/google-cloud-beyond_corp-app_gateways-v1/google-cloud-beyond_corp-app_gateways-v1.gemspec b/google-cloud-beyond_corp-app_gateways-v1/google-cloud-beyond_corp-app_gateways-v1.gemspec index 7235e924c104..2b7014b18171 100644 --- a/google-cloud-beyond_corp-app_gateways-v1/google-cloud-beyond_corp-app_gateways-v1.gemspec +++ b/google-cloud-beyond_corp-app_gateways-v1/google-cloud-beyond_corp-app_gateways-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-beyond_corp-app_gateways-v1/lib/google/cloud/beyond_corp/app_gateways/v1/version.rb b/google-cloud-beyond_corp-app_gateways-v1/lib/google/cloud/beyond_corp/app_gateways/v1/version.rb index 932fcb33bfbe..a04f1d6ad973 100644 --- a/google-cloud-beyond_corp-app_gateways-v1/lib/google/cloud/beyond_corp/app_gateways/v1/version.rb +++ b/google-cloud-beyond_corp-app_gateways-v1/lib/google/cloud/beyond_corp/app_gateways/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module BeyondCorp module AppGateways module V1 - VERSION = "0.8.0" + VERSION = "0.9.0" end end end diff --git a/google-cloud-beyond_corp-app_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appgateways.v1.json b/google-cloud-beyond_corp-app_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appgateways.v1.json index 60c7f82ef87a..4103a00c4912 100644 --- a/google-cloud-beyond_corp-app_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appgateways.v1.json +++ b/google-cloud-beyond_corp-app_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.appgateways.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-beyond_corp-app_gateways-v1", - "version": "0.8.0", + "version": "0.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-beyond_corp-client_gateways-v1/CHANGELOG.md b/google-cloud-beyond_corp-client_gateways-v1/CHANGELOG.md index e752ecfebf06..9c3dc8fb7082 100644 --- a/google-cloud-beyond_corp-client_gateways-v1/CHANGELOG.md +++ b/google-cloud-beyond_corp-client_gateways-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.8.0 (2025-05-12) #### Features diff --git a/google-cloud-beyond_corp-client_gateways-v1/google-cloud-beyond_corp-client_gateways-v1.gemspec b/google-cloud-beyond_corp-client_gateways-v1/google-cloud-beyond_corp-client_gateways-v1.gemspec index b36d3b0cc10f..f93a0adf2172 100644 --- a/google-cloud-beyond_corp-client_gateways-v1/google-cloud-beyond_corp-client_gateways-v1.gemspec +++ b/google-cloud-beyond_corp-client_gateways-v1/google-cloud-beyond_corp-client_gateways-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-beyond_corp-client_gateways-v1/lib/google/cloud/beyond_corp/client_gateways/v1/version.rb b/google-cloud-beyond_corp-client_gateways-v1/lib/google/cloud/beyond_corp/client_gateways/v1/version.rb index 92b40eebf2dd..1ff8bc84d515 100644 --- a/google-cloud-beyond_corp-client_gateways-v1/lib/google/cloud/beyond_corp/client_gateways/v1/version.rb +++ b/google-cloud-beyond_corp-client_gateways-v1/lib/google/cloud/beyond_corp/client_gateways/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module BeyondCorp module ClientGateways module V1 - VERSION = "0.8.0" + VERSION = "0.9.0" end end end diff --git a/google-cloud-beyond_corp-client_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.clientgateways.v1.json b/google-cloud-beyond_corp-client_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.clientgateways.v1.json index 78223c77ebfb..dda8d9058ee6 100644 --- a/google-cloud-beyond_corp-client_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.clientgateways.v1.json +++ b/google-cloud-beyond_corp-client_gateways-v1/snippets/snippet_metadata_google.cloud.beyondcorp.clientgateways.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-beyond_corp-client_gateways-v1", - "version": "0.8.0", + "version": "0.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-beyond_corp/CHANGELOG.md b/google-cloud-beyond_corp/CHANGELOG.md index e1b13cb30958..9499d7f64dfb 100644 --- a/google-cloud-beyond_corp/CHANGELOG.md +++ b/google-cloud-beyond_corp/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-beyond_corp/README.md b/google-cloud-beyond_corp/README.md index 7fa9691f83f6..b48984f50b28 100644 --- a/google-cloud-beyond_corp/README.md +++ b/google-cloud-beyond_corp/README.md @@ -37,6 +37,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/beyondcorp.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/beyond_corp/app_connections" + +client = Google::Cloud::BeyondCorp::AppConnections.app_connections_service +request = ::Google::Cloud::BeyondCorp::AppConnections::V1::ListAppConnectionsRequest.new # (request fields as keyword arguments...) +response = client.list_app_connections request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-beyond_corp/lib/google/cloud/beyond_corp/version.rb b/google-cloud-beyond_corp/lib/google/cloud/beyond_corp/version.rb index 22834e66f8ac..e0afe3392e95 100644 --- a/google-cloud-beyond_corp/lib/google/cloud/beyond_corp/version.rb +++ b/google-cloud-beyond_corp/lib/google/cloud/beyond_corp/version.rb @@ -17,7 +17,7 @@ module Google module Cloud module BeyondCorp - VERSION = "1.4.1" + VERSION = "1.4.2" end end end diff --git a/google-cloud-bigquery-analytics_hub-v1/.owlbot-manifest.json b/google-cloud-bigquery-analytics_hub-v1/.owlbot-manifest.json index 3c3837c52a91..fe5a046bb4a6 100644 --- a/google-cloud-bigquery-analytics_hub-v1/.owlbot-manifest.json +++ b/google-cloud-bigquery-analytics_hub-v1/.owlbot-manifest.json @@ -49,28 +49,35 @@ "proto_docs/google/rpc/status.rb", "proto_docs/google/type/expr.rb", "snippets/Gemfile", + "snippets/analytics_hub_service/approve_query_template.rb", "snippets/analytics_hub_service/create_data_exchange.rb", "snippets/analytics_hub_service/create_listing.rb", + "snippets/analytics_hub_service/create_query_template.rb", "snippets/analytics_hub_service/delete_data_exchange.rb", "snippets/analytics_hub_service/delete_listing.rb", + "snippets/analytics_hub_service/delete_query_template.rb", "snippets/analytics_hub_service/delete_subscription.rb", "snippets/analytics_hub_service/get_data_exchange.rb", "snippets/analytics_hub_service/get_iam_policy.rb", "snippets/analytics_hub_service/get_listing.rb", + "snippets/analytics_hub_service/get_query_template.rb", "snippets/analytics_hub_service/get_subscription.rb", "snippets/analytics_hub_service/list_data_exchanges.rb", "snippets/analytics_hub_service/list_listings.rb", "snippets/analytics_hub_service/list_org_data_exchanges.rb", + "snippets/analytics_hub_service/list_query_templates.rb", "snippets/analytics_hub_service/list_shared_resource_subscriptions.rb", "snippets/analytics_hub_service/list_subscriptions.rb", "snippets/analytics_hub_service/refresh_subscription.rb", "snippets/analytics_hub_service/revoke_subscription.rb", "snippets/analytics_hub_service/set_iam_policy.rb", + "snippets/analytics_hub_service/submit_query_template.rb", "snippets/analytics_hub_service/subscribe_data_exchange.rb", "snippets/analytics_hub_service/subscribe_listing.rb", "snippets/analytics_hub_service/test_iam_permissions.rb", "snippets/analytics_hub_service/update_data_exchange.rb", "snippets/analytics_hub_service/update_listing.rb", + "snippets/analytics_hub_service/update_query_template.rb", "snippets/snippet_metadata_google.cloud.bigquery.analyticshub.v1.json", "test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_operations_test.rb", "test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_paths_test.rb", diff --git a/google-cloud-bigquery-analytics_hub-v1/CHANGELOG.md b/google-cloud-bigquery-analytics_hub-v1/CHANGELOG.md index f50ede9f39e9..43669461d9e0 100644 --- a/google-cloud-bigquery-analytics_hub-v1/CHANGELOG.md +++ b/google-cloud-bigquery-analytics_hub-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + +### 0.14.0 (2025-09-03) + +#### Features + +* You can now configure listings for multiple regions for shared datasets and linked dataset replicas in BigQuery sharing ([#30933](https://github.com/googleapis/google-cloud-ruby/issues/30933)) + ### 0.13.1 (2025-07-15) #### Documentation diff --git a/google-cloud-bigquery-analytics_hub-v1/gapic_metadata.json b/google-cloud-bigquery-analytics_hub-v1/gapic_metadata.json index 9b9d9ae293f5..e7a68c8e3121 100644 --- a/google-cloud-bigquery-analytics_hub-v1/gapic_metadata.json +++ b/google-cloud-bigquery-analytics_hub-v1/gapic_metadata.json @@ -119,6 +119,41 @@ "methods": [ "test_iam_permissions" ] + }, + "CreateQueryTemplate": { + "methods": [ + "create_query_template" + ] + }, + "GetQueryTemplate": { + "methods": [ + "get_query_template" + ] + }, + "ListQueryTemplates": { + "methods": [ + "list_query_templates" + ] + }, + "UpdateQueryTemplate": { + "methods": [ + "update_query_template" + ] + }, + "DeleteQueryTemplate": { + "methods": [ + "delete_query_template" + ] + }, + "SubmitQueryTemplate": { + "methods": [ + "submit_query_template" + ] + }, + "ApproveQueryTemplate": { + "methods": [ + "approve_query_template" + ] } } } diff --git a/google-cloud-bigquery-analytics_hub-v1/google-cloud-bigquery-analytics_hub-v1.gemspec b/google-cloud-bigquery-analytics_hub-v1/google-cloud-bigquery-analytics_hub-v1.gemspec index 424fdd099873..1df1b2e9413e 100644 --- a/google-cloud-bigquery-analytics_hub-v1/google-cloud-bigquery-analytics_hub-v1.gemspec +++ b/google-cloud-bigquery-analytics_hub-v1/google-cloud-bigquery-analytics_hub-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/client.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/client.rb index ec5860f6970c..2b231e5943ca 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/client.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/client.rb @@ -2279,6 +2279,634 @@ def test_iam_permissions request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Creates a new QueryTemplate + # + # @overload create_query_template(request, options = nil) + # Pass arguments to `create_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_query_template(parent: nil, query_template_id: nil, query_template: nil) + # Pass arguments to `create_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myQueryTemplate`. + # @param query_template_id [::String] + # Required. The ID of the QueryTemplate to create. + # Must contain only Unicode letters, numbers (0-9), underscores (_). + # Max length: 100 bytes. + # @param query_template [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate, ::Hash] + # Required. The QueryTemplate to create. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new + # + # # Call the create_query_template method. + # result = client.create_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def create_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_query_template.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :create_query_template, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a QueryTemplate + # + # @overload get_query_template(request, options = nil) + # Pass arguments to `get_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_query_template(name: nil) + # Pass arguments to `get_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The parent resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new + # + # # Call the get_query_template method. + # result = client.get_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def get_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_query_template.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :get_query_template, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all QueryTemplates in a given project and location. + # + # @overload list_query_templates(request, options = nil) + # Pass arguments to `list_query_templates` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_query_templates(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_query_templates` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource path of the QueryTemplates. + # e.g. `projects/myproject/locations/us/dataExchanges/123`. + # @param page_size [::Integer] + # Optional. The maximum number of results to return in a single response + # page. Leverage the page tokens to iterate through the entire collection. + # @param page_token [::String] + # Optional. Page token, returned by a previous call, to request the next page + # of results. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new + # + # # Call the list_query_templates method. + # result = client.list_query_templates request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p item + # end + # + def list_query_templates request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_query_templates.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_query_templates.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_query_templates.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :list_query_templates, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @analytics_hub_service_stub, :list_query_templates, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates an existing QueryTemplate + # + # @overload update_query_template(request, options = nil) + # Pass arguments to `update_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_query_template(update_mask: nil, query_template: nil) + # Pass arguments to `update_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. Field mask specifies the fields to update in the query template + # resource. The fields specified in the `updateMask` are relative to the + # resource and are not a full request. + # @param query_template [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate, ::Hash] + # Required. The QueryTemplate to update. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new + # + # # Call the update_query_template method. + # result = client.update_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def update_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.query_template&.name + header_params["query_template.name"] = request.query_template.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_query_template.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :update_query_template, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a query template. + # + # @overload delete_query_template(request, options = nil) + # Pass arguments to `delete_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_query_template(name: nil) + # Pass arguments to `delete_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new + # + # # Call the delete_query_template method. + # result = client.delete_query_template request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_query_template.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :delete_query_template, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Submits a query template for approval. + # + # @overload submit_query_template(request, options = nil) + # Pass arguments to `submit_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload submit_query_template(name: nil) + # Pass arguments to `submit_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new + # + # # Call the submit_query_template method. + # result = client.submit_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def submit_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.submit_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.submit_query_template.timeout, + metadata: metadata, + retry_policy: @config.rpcs.submit_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :submit_query_template, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Approves a query template. + # + # @overload approve_query_template(request, options = nil) + # Pass arguments to `approve_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload approve_query_template(name: nil) + # Pass arguments to `approve_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new + # + # # Call the approve_query_template method. + # result = client.approve_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def approve_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.approve_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.approve_query_template.timeout, + metadata: metadata, + retry_policy: @config.rpcs.approve_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.call_rpc :approve_query_template, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the AnalyticsHubService API. # @@ -2555,6 +3183,41 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :test_iam_permissions + ## + # RPC-specific configuration for `create_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :create_query_template + ## + # RPC-specific configuration for `get_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :get_query_template + ## + # RPC-specific configuration for `list_query_templates` + # @return [::Gapic::Config::Method] + # + attr_reader :list_query_templates + ## + # RPC-specific configuration for `update_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :update_query_template + ## + # RPC-specific configuration for `delete_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_query_template + ## + # RPC-specific configuration for `submit_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :submit_query_template + ## + # RPC-specific configuration for `approve_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :approve_query_template # @private def initialize parent_rpcs = nil @@ -2602,6 +3265,20 @@ def initialize parent_rpcs = nil @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config + create_query_template_config = parent_rpcs.create_query_template if parent_rpcs.respond_to? :create_query_template + @create_query_template = ::Gapic::Config::Method.new create_query_template_config + get_query_template_config = parent_rpcs.get_query_template if parent_rpcs.respond_to? :get_query_template + @get_query_template = ::Gapic::Config::Method.new get_query_template_config + list_query_templates_config = parent_rpcs.list_query_templates if parent_rpcs.respond_to? :list_query_templates + @list_query_templates = ::Gapic::Config::Method.new list_query_templates_config + update_query_template_config = parent_rpcs.update_query_template if parent_rpcs.respond_to? :update_query_template + @update_query_template = ::Gapic::Config::Method.new update_query_template_config + delete_query_template_config = parent_rpcs.delete_query_template if parent_rpcs.respond_to? :delete_query_template + @delete_query_template = ::Gapic::Config::Method.new delete_query_template_config + submit_query_template_config = parent_rpcs.submit_query_template if parent_rpcs.respond_to? :submit_query_template + @submit_query_template = ::Gapic::Config::Method.new submit_query_template_config + approve_query_template_config = parent_rpcs.approve_query_template if parent_rpcs.respond_to? :approve_query_template + @approve_query_template = ::Gapic::Config::Method.new approve_query_template_config yield self if block_given? end diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/paths.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/paths.rb index 8b61f584f8a2..4adced61424a 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/paths.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/paths.rb @@ -113,6 +113,27 @@ def managed_service_path service: "services/#{service}" end + ## + # Create a fully-qualified QueryTemplate resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/dataExchanges/{data_exchange}/queryTemplates/{query_template}` + # + # @param project [String] + # @param location [String] + # @param data_exchange [String] + # @param query_template [String] + # + # @return [::String] + def query_template_path project:, location:, data_exchange:, query_template: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "data_exchange cannot contain /" if data_exchange.to_s.include? "/" + + "projects/#{project}/locations/#{location}/dataExchanges/#{data_exchange}/queryTemplates/#{query_template}" + end + ## # Create a fully-qualified Routine resource string. # diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/client.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/client.rb index 6b470535c05d..f30440091ac0 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/client.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/client.rb @@ -2118,6 +2118,585 @@ def test_iam_permissions request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Creates a new QueryTemplate + # + # @overload create_query_template(request, options = nil) + # Pass arguments to `create_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_query_template(parent: nil, query_template_id: nil, query_template: nil) + # Pass arguments to `create_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myQueryTemplate`. + # @param query_template_id [::String] + # Required. The ID of the QueryTemplate to create. + # Must contain only Unicode letters, numbers (0-9), underscores (_). + # Max length: 100 bytes. + # @param query_template [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate, ::Hash] + # Required. The QueryTemplate to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new + # + # # Call the create_query_template method. + # result = client.create_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def create_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_query_template.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.create_query_template request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a QueryTemplate + # + # @overload get_query_template(request, options = nil) + # Pass arguments to `get_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_query_template(name: nil) + # Pass arguments to `get_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The parent resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new + # + # # Call the get_query_template method. + # result = client.get_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def get_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_query_template.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.get_query_template request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all QueryTemplates in a given project and location. + # + # @overload list_query_templates(request, options = nil) + # Pass arguments to `list_query_templates` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_query_templates(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_query_templates` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource path of the QueryTemplates. + # e.g. `projects/myproject/locations/us/dataExchanges/123`. + # @param page_size [::Integer] + # Optional. The maximum number of results to return in a single response + # page. Leverage the page tokens to iterate through the entire collection. + # @param page_token [::String] + # Optional. Page token, returned by a previous call, to request the next page + # of results. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new + # + # # Call the list_query_templates method. + # result = client.list_query_templates request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p item + # end + # + def list_query_templates request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_query_templates.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_query_templates.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_query_templates.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.list_query_templates request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @analytics_hub_service_stub, :list_query_templates, "query_templates", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates an existing QueryTemplate + # + # @overload update_query_template(request, options = nil) + # Pass arguments to `update_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_query_template(update_mask: nil, query_template: nil) + # Pass arguments to `update_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. Field mask specifies the fields to update in the query template + # resource. The fields specified in the `updateMask` are relative to the + # resource and are not a full request. + # @param query_template [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate, ::Hash] + # Required. The QueryTemplate to update. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new + # + # # Call the update_query_template method. + # result = client.update_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def update_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_query_template.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.update_query_template request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a query template. + # + # @overload delete_query_template(request, options = nil) + # Pass arguments to `delete_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_query_template(name: nil) + # Pass arguments to `delete_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new + # + # # Call the delete_query_template method. + # result = client.delete_query_template request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_query_template.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.delete_query_template request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Submits a query template for approval. + # + # @overload submit_query_template(request, options = nil) + # Pass arguments to `submit_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload submit_query_template(name: nil) + # Pass arguments to `submit_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new + # + # # Call the submit_query_template method. + # result = client.submit_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def submit_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.submit_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.submit_query_template.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.submit_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.submit_query_template request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Approves a query template. + # + # @overload approve_query_template(request, options = nil) + # Pass arguments to `approve_query_template` via a request object, either of type + # {::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload approve_query_template(name: nil) + # Pass arguments to `approve_query_template` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/bigquery/analytics_hub/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new + # + # # Call the approve_query_template method. + # result = client.approve_query_template request + # + # # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + # p result + # + def approve_query_template request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.approve_query_template.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Bigquery::AnalyticsHub::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.approve_query_template.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.approve_query_template.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @analytics_hub_service_stub.approve_query_template request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the AnalyticsHubService REST API. # @@ -2374,6 +2953,41 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :test_iam_permissions + ## + # RPC-specific configuration for `create_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :create_query_template + ## + # RPC-specific configuration for `get_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :get_query_template + ## + # RPC-specific configuration for `list_query_templates` + # @return [::Gapic::Config::Method] + # + attr_reader :list_query_templates + ## + # RPC-specific configuration for `update_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :update_query_template + ## + # RPC-specific configuration for `delete_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_query_template + ## + # RPC-specific configuration for `submit_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :submit_query_template + ## + # RPC-specific configuration for `approve_query_template` + # @return [::Gapic::Config::Method] + # + attr_reader :approve_query_template # @private def initialize parent_rpcs = nil @@ -2421,6 +3035,20 @@ def initialize parent_rpcs = nil @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config + create_query_template_config = parent_rpcs.create_query_template if parent_rpcs.respond_to? :create_query_template + @create_query_template = ::Gapic::Config::Method.new create_query_template_config + get_query_template_config = parent_rpcs.get_query_template if parent_rpcs.respond_to? :get_query_template + @get_query_template = ::Gapic::Config::Method.new get_query_template_config + list_query_templates_config = parent_rpcs.list_query_templates if parent_rpcs.respond_to? :list_query_templates + @list_query_templates = ::Gapic::Config::Method.new list_query_templates_config + update_query_template_config = parent_rpcs.update_query_template if parent_rpcs.respond_to? :update_query_template + @update_query_template = ::Gapic::Config::Method.new update_query_template_config + delete_query_template_config = parent_rpcs.delete_query_template if parent_rpcs.respond_to? :delete_query_template + @delete_query_template = ::Gapic::Config::Method.new delete_query_template_config + submit_query_template_config = parent_rpcs.submit_query_template if parent_rpcs.respond_to? :submit_query_template + @submit_query_template = ::Gapic::Config::Method.new submit_query_template_config + approve_query_template_config = parent_rpcs.approve_query_template if parent_rpcs.respond_to? :approve_query_template + @approve_query_template = ::Gapic::Config::Method.new approve_query_template_config yield self if block_given? end diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/service_stub.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/service_stub.rb index fe3009eb3eac..3cb9ab1c6b62 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/service_stub.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service/rest/service_stub.rb @@ -954,6 +954,286 @@ def test_iam_permissions request_pb, options = nil end end + ## + # Baseline implementation for the create_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # A result object deserialized from the server's reply + def create_query_template request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_query_template_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_query_template", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # A result object deserialized from the server's reply + def get_query_template request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_query_template_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_query_template", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_query_templates REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse] + # A result object deserialized from the server's reply + def list_query_templates request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_query_templates_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_query_templates", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # A result object deserialized from the server's reply + def update_query_template request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_query_template_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_query_template", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_query_template request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_query_template_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_query_template", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the submit_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # A result object deserialized from the server's reply + def submit_query_template request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_submit_query_template_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "submit_query_template", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the approve_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # A result object deserialized from the server's reply + def approve_query_template request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_approve_query_template_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "approve_query_template", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -1473,6 +1753,157 @@ def self.transcode_test_iam_permissions_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the create_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_query_template_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/queryTemplates", + body: "query_template", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_query_template_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/queryTemplates/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_query_templates REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_query_templates_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/queryTemplates", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_query_template_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{query_template.name}", + body: "query_template", + matches: [ + ["query_template.name", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/queryTemplates/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_query_template_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/queryTemplates/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the submit_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_submit_query_template_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:submit", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/queryTemplates/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the approve_query_template REST call + # + # @param request_pb [::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_approve_query_template_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:approve", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/dataExchanges/[^/]+/queryTemplates/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/version.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/version.rb index d9e6861a5fa1..c29c68d1e4d2 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/version.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analytics_hub/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module AnalyticsHub module V1 - VERSION = "0.13.1" + VERSION = "0.15.0" end end end diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_pb.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_pb.rb index 587c259b82ec..9562c7f50a81 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_pb.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_pb.rb @@ -18,7 +18,7 @@ require 'google/protobuf/wrappers_pb' -descriptor_data = "\n8google/cloud/bigquery/analyticshub/v1/analyticshub.proto\x12%google.cloud.bigquery.analyticshub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x32google/cloud/bigquery/analyticshub/v1/pubsub.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xe9\x04\n\x0c\x44\x61taExchange\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdocumentation\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rlisting_count\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\x12\x11\n\x04icon\x18\x07 \x01(\x0c\x42\x03\xe0\x41\x01\x12h\n\x1asharing_environment_config\x18\x08 \x01(\x0b\x32?.google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfigB\x03\xe0\x41\x01\x12V\n\x0e\x64iscovery_type\x18\t \x01(\x0e\x32\x34.google.cloud.bigquery.analyticshub.v1.DiscoveryTypeB\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x35\n#log_linked_dataset_query_user_email\x18\n \x01(\x08\x42\x03\xe0\x41\x01H\x01\x88\x01\x01:t\xea\x41q\n(analyticshub.googleapis.com/DataExchange\x12\x45projects/{project}/locations/{location}/dataExchanges/{data_exchange}B\x11\n\x0f_discovery_typeB&\n$_log_linked_dataset_query_user_email\"\x94\x04\n\x18SharingEnvironmentConfig\x12x\n\x17\x64\x65\x66\x61ult_exchange_config\x18\x01 \x01(\x0b\x32U.google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DefaultExchangeConfigH\x00\x12p\n\x13\x64\x63r_exchange_config\x18\x02 \x01(\x0b\x32Q.google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DcrExchangeConfigH\x00\x1a\x17\n\x15\x44\x65\x66\x61ultExchangeConfig\x1a\xe3\x01\n\x11\x44\x63rExchangeConfig\x12>\n,single_selected_resource_sharing_restriction\x18\x01 \x01(\x08\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x35\n#single_linked_dataset_per_cleanroom\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42/\n-_single_selected_resource_sharing_restrictionB&\n$_single_linked_dataset_per_cleanroomB\r\n\x0b\x65nvironment\"?\n\x0c\x44\x61taProvider\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x02 \x01(\tB\x03\xe0\x41\x01\"<\n\tPublisher\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x02 \x01(\tB\x03\xe0\x41\x01\"O\n\x1b\x44\x65stinationDatasetReference\x12\x17\n\ndataset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x8c\x03\n\x12\x44\x65stinationDataset\x12\x62\n\x11\x64\x61taset_reference\x18\x01 \x01(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.DestinationDatasetReferenceB\x03\xe0\x41\x02\x12\x38\n\rfriendly_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x01\x12\x36\n\x0b\x64\x65scription\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x01\x12Z\n\x06labels\x18\x04 \x03(\x0b\x32\x45.google.cloud.bigquery.analyticshub.v1.DestinationDataset.LabelsEntryB\x03\xe0\x41\x01\x12\x15\n\x08location\x18\x05 \x01(\tB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"|\n\x1d\x44\x65stinationPubSubSubscription\x12[\n\x13pubsub_subscription\x18\x01 \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.PubSubSubscriptionB\x03\xe0\x41\x02\"\xb4\x1b\n\x07Listing\x12`\n\x10\x62igquery_dataset\x18\x06 \x01(\x0b\x32\x44.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSourceH\x00\x12X\n\x0cpubsub_topic\x18\x10 \x01(\x0b\x32@.google.cloud.bigquery.analyticshub.v1.Listing.PubSubTopicSourceH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdocumentation\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12H\n\x05state\x18\x07 \x01(\x0e\x32\x34.google.cloud.bigquery.analyticshub.v1.Listing.StateB\x03\xe0\x41\x03\x12\x11\n\x04icon\x18\x08 \x01(\x0c\x42\x03\xe0\x41\x01\x12O\n\rdata_provider\x18\t \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataProviderB\x03\xe0\x41\x01\x12P\n\ncategories\x18\n \x03(\x0e\x32\x37.google.cloud.bigquery.analyticshub.v1.Listing.CategoryB\x03\xe0\x41\x01\x12H\n\tpublisher\x18\x0b \x01(\x0b\x32\x30.google.cloud.bigquery.analyticshub.v1.PublisherB\x03\xe0\x41\x01\x12\x1b\n\x0erequest_access\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12l\n\x18restricted_export_config\x18\r \x01(\x0b\x32\x45.google.cloud.bigquery.analyticshub.v1.Listing.RestrictedExportConfigB\x03\xe0\x41\x01\x12V\n\x0e\x64iscovery_type\x18\x0e \x01(\x0e\x32\x34.google.cloud.bigquery.analyticshub.v1.DiscoveryTypeB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12U\n\rresource_type\x18\x0f \x01(\x0e\x32\x39.google.cloud.bigquery.analyticshub.v1.SharedResourceTypeB\x03\xe0\x41\x03\x12`\n\x0f\x63ommercial_info\x18\x11 \x01(\x0b\x32=.google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfoB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x35\n#log_linked_dataset_query_user_email\x18\x12 \x01(\x08\x42\x03\xe0\x41\x01H\x03\x88\x01\x01\x12-\n\x1b\x61llow_only_metadata_sharing\x18\x13 \x01(\x08\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x1a\xb7\x05\n\x15\x42igQueryDatasetSource\x12\x38\n\x07\x64\x61taset\x18\x01 \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1f\x62igquery.googleapis.com/Dataset\x12v\n\x12selected_resources\x18\x02 \x03(\x0b\x32U.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.SelectedResourceB\x03\xe0\x41\x01\x12\x82\x01\n\x18restricted_export_policy\x18\x03 \x01(\x0b\x32[.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicyB\x03\xe0\x41\x01\x1a\x92\x01\n\x10SelectedResource\x12\x36\n\x05table\x18\x01 \x01(\tB%\xe0\x41\x01\xfa\x41\x1f\n\x1d\x62igquery.googleapis.com/TableH\x00\x12:\n\x07routine\x18\x02 \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1f\x62igquery.googleapis.com/RoutineH\x00\x42\n\n\x08resource\x1a\xd1\x01\n\x16RestrictedExportPolicy\x12\x30\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x01\x12\x45\n\x1crestrict_direct_table_access\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x01\x12>\n\x15restrict_query_result\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x01\x1ak\n\x11PubSubTopicSource\x12\x32\n\x05topic\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bpubsub.googleapis.com/Topic\x12\"\n\x15\x64\x61ta_affinity_regions\x18\x02 \x03(\tB\x03\xe0\x41\x01\x1a}\n\x16RestrictedExportConfig\x12\x14\n\x07\x65nabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12)\n\x1crestrict_direct_table_access\x18\x01 \x01(\x08\x42\x03\xe0\x41\x03\x12\"\n\x15restrict_query_result\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x94\x04\n\x0e\x43ommercialInfo\x12}\n\x11\x63loud_marketplace\x18\x01 \x01(\x0b\x32X.google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfoB\x03\xe0\x41\x03H\x00\x88\x01\x01\x1a\xec\x02\n\x1aGoogleCloudMarketplaceInfo\x12M\n\x07service\x18\x01 \x01(\tB7\xe0\x41\x03\xfa\x41\x31\n/servicemanagement.googleapis.com/ManagedServiceH\x00\x88\x01\x01\x12\x8c\x01\n\x10\x63ommercial_state\x18\x03 \x01(\x0e\x32h.google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo.CommercialStateB\x03\xe0\x41\x03H\x01\x88\x01\x01\"O\n\x0f\x43ommercialState\x12 \n\x1c\x43OMMERCIAL_STATE_UNSPECIFIED\x10\x00\x12\x0e\n\nONBOARDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x42\n\n\x08_serviceB\x13\n\x11_commercial_stateB\x14\n\x12_cloud_marketplace\"*\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\"\xb7\x04\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43\x41TEGORY_OTHERS\x10\x01\x12&\n\"CATEGORY_ADVERTISING_AND_MARKETING\x10\x02\x12\x15\n\x11\x43\x41TEGORY_COMMERCE\x10\x03\x12$\n CATEGORY_CLIMATE_AND_ENVIRONMENT\x10\x04\x12\x19\n\x15\x43\x41TEGORY_DEMOGRAPHICS\x10\x05\x12\x16\n\x12\x43\x41TEGORY_ECONOMICS\x10\x06\x12\x16\n\x12\x43\x41TEGORY_EDUCATION\x10\x07\x12\x13\n\x0f\x43\x41TEGORY_ENERGY\x10\x08\x12\x16\n\x12\x43\x41TEGORY_FINANCIAL\x10\t\x12\x13\n\x0f\x43\x41TEGORY_GAMING\x10\n\x12\x17\n\x13\x43\x41TEGORY_GEOSPATIAL\x10\x0b\x12(\n$CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE\x10\x0c\x12\x12\n\x0e\x43\x41TEGORY_MEDIA\x10\r\x12\x1a\n\x16\x43\x41TEGORY_PUBLIC_SECTOR\x10\x0e\x12\x13\n\x0f\x43\x41TEGORY_RETAIL\x10\x0f\x12\x13\n\x0f\x43\x41TEGORY_SPORTS\x10\x10\x12!\n\x1d\x43\x41TEGORY_SCIENCE_AND_RESEARCH\x10\x11\x12)\n%CATEGORY_TRANSPORTATION_AND_LOGISTICS\x10\x12\x12\x1f\n\x1b\x43\x41TEGORY_TRAVEL_AND_TOURISM\x10\x13:\x82\x01\xea\x41\x7f\n#analyticshub.googleapis.com/Listing\x12Xprojects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}B\x08\n\x06sourceB\x11\n\x0f_discovery_typeB\x12\n\x10_commercial_infoB&\n$_log_linked_dataset_query_user_emailB\x1e\n\x1c_allow_only_metadata_sharing\"\x98\r\n\x0cSubscription\x12\x16\n\x07listing\x18\x05 \x01(\tB\x03\xe0\x41\x03H\x00\x12\x1c\n\rdata_exchange\x18\x06 \x01(\tB\x03\xe0\x41\x03H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x36\n\rcreation_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x39\n\x10last_modify_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1c\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12&\n\x19organization_display_name\x18\n \x01(\tB\x03\xe0\x41\x03\x12M\n\x05state\x18\x07 \x01(\x0e\x32\x39.google.cloud.bigquery.analyticshub.v1.Subscription.StateB\x03\xe0\x41\x03\x12j\n\x12linked_dataset_map\x18\x08 \x03(\x0b\x32I.google.cloud.bigquery.analyticshub.v1.Subscription.LinkedDatasetMapEntryB\x03\xe0\x41\x03\x12\x1f\n\x12subscriber_contact\x18\t \x01(\tB\x03\xe0\x41\x03\x12\x61\n\x10linked_resources\x18\x0b \x03(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResourceB\x03\xe0\x41\x03\x12U\n\rresource_type\x18\x0c \x01(\x0e\x32\x39.google.cloud.bigquery.analyticshub.v1.SharedResourceTypeB\x03\xe0\x41\x03\x12`\n\x0f\x63ommercial_info\x18\r \x01(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfoB\x03\xe0\x41\x03\x12\x35\n#log_linked_dataset_query_user_email\x18\x0e \x01(\x08\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12[\n\x13\x64\x65stination_dataset\x18\x0f \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.DestinationDatasetB\x03\xe0\x41\x01\x1a}\n\x0eLinkedResource\x12\x1d\n\x0elinked_dataset\x18\x01 \x01(\tB\x03\xe0\x41\x03H\x00\x12)\n\x1alinked_pubsub_subscription\x18\x03 \x01(\tB\x03\xe0\x41\x03H\x00\x12\x14\n\x07listing\x18\x02 \x01(\tB\x03\xe0\x41\x03\x42\x0b\n\treference\x1a\xf8\x01\n\x0e\x43ommercialInfo\x12}\n\x11\x63loud_marketplace\x18\x01 \x01(\x0b\x32].google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo.GoogleCloudMarketplaceInfoB\x03\xe0\x41\x03\x1ag\n\x1aGoogleCloudMarketplaceInfo\x12I\n\x05order\x18\x01 \x01(\tB:\xfa\x41\x37\n5cloudcommerceconsumerprocurement.googleapis.com/Order\x1a{\n\x15LinkedDatasetMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12Q\n\x05value\x18\x02 \x01(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResource:\x02\x38\x01\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x10\n\x0cSTATE_ACTIVE\x10\x01\x12\x0f\n\x0bSTATE_STALE\x10\x02\x12\x12\n\x0eSTATE_INACTIVE\x10\x03:s\xea\x41p\n(analyticshub.googleapis.com/Subscription\x12\x44projects/{project}/locations/{location}/subscriptions/{subscription}B\x0f\n\rresource_nameB&\n$_log_linked_dataset_query_user_email\"\x83\x01\n\x18ListDataExchangesRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(analyticshub.googleapis.com/DataExchange\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x81\x01\n\x19ListDataExchangesResponse\x12K\n\x0e\x64\x61ta_exchanges\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchange\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"_\n\x1bListOrgDataExchangesRequest\x12\x19\n\x0corganization\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x84\x01\n\x1cListOrgDataExchangesResponse\x12K\n\x0e\x64\x61ta_exchanges\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchange\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x16GetDataExchangeRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\"\xcd\x01\n\x19\x43reateDataExchangeRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(analyticshub.googleapis.com/DataExchange\x12\x1d\n\x10\x64\x61ta_exchange_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12O\n\rdata_exchange\x18\x03 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchangeB\x03\xe0\x41\x02\"\xa2\x01\n\x19UpdateDataExchangeRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12O\n\rdata_exchange\x18\x02 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchangeB\x03\xe0\x41\x02\"[\n\x19\x44\x65leteDataExchangeRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\"~\n\x13ListListingsRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"q\n\x14ListListingsResponse\x12@\n\x08listings\x18\x01 \x03(\x0b\x32..google.cloud.bigquery.analyticshub.v1.Listing\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"N\n\x11GetListingRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#analyticshub.googleapis.com/Listing\"\xb7\x01\n\x14\x43reateListingRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12\x17\n\nlisting_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x07listing\x18\x03 \x01(\x0b\x32..google.cloud.bigquery.analyticshub.v1.ListingB\x03\xe0\x41\x02\"\x92\x01\n\x14UpdateListingRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x44\n\x07listing\x18\x02 \x01(\x0b\x32..google.cloud.bigquery.analyticshub.v1.ListingB\x03\xe0\x41\x02\"q\n\x14\x44\x65leteListingRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#analyticshub.googleapis.com/Listing\x12\x1e\n\x11\x64\x65lete_commercial\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xb8\x02\n\x17SubscribeListingRequest\x12]\n\x13\x64\x65stination_dataset\x18\x03 \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.DestinationDatasetB\x03\xe0\x41\x04H\x00\x12t\n\x1f\x64\x65stination_pubsub_subscription\x18\x05 \x01(\x0b\x32\x44.google.cloud.bigquery.analyticshub.v1.DestinationPubSubSubscriptionB\x03\xe0\x41\x04H\x00\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#analyticshub.googleapis.com/ListingB\r\n\x0b\x64\x65stination\"e\n\x18SubscribeListingResponse\x12I\n\x0csubscription\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"\xb2\x02\n\x1cSubscribeDataExchangeRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12>\n\x0b\x64\x65stination\x18\x02 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12[\n\x13\x64\x65stination_dataset\x18\x05 \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.DestinationDatasetB\x03\xe0\x41\x01\x12\x19\n\x0csubscription\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\x12subscriber_contact\x18\x03 \x01(\t\"j\n\x1dSubscribeDataExchangeResponse\x12I\n\x0csubscription\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"\\\n\x1aRefreshSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\"h\n\x1bRefreshSubscriptionResponse\x12I\n\x0csubscription\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"X\n\x16GetSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\"\x93\x01\n\x18ListSubscriptionsRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(analyticshub.googleapis.com/Subscription\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"\x80\x01\n\x19ListSubscriptionsResponse\x12J\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x93\x01\n&ListSharedResourceSubscriptionsRequest\x12\x1b\n\x08resource\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12%\n\x1dinclude_deleted_subscriptions\x18\x02 \x01(\x08\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"\x9e\x01\n\'ListSharedResourceSubscriptionsResponse\x12Z\n\x1dshared_resource_subscriptions\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"{\n\x19RevokeSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\x12\x1e\n\x11revoke_commercial\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x1c\n\x1aRevokeSubscriptionResponse\"[\n\x19\x44\x65leteSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03*f\n\rDiscoveryType\x12\x1e\n\x1a\x44ISCOVERY_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x44ISCOVERY_TYPE_PRIVATE\x10\x01\x12\x19\n\x15\x44ISCOVERY_TYPE_PUBLIC\x10\x02*b\n\x12SharedResourceType\x12$\n SHARED_RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42IGQUERY_DATASET\x10\x01\x12\x10\n\x0cPUBSUB_TOPIC\x10\x02\x32\xda*\n\x13\x41nalyticsHubService\x12\xda\x01\n\x11ListDataExchanges\x12?.google.cloud.bigquery.analyticshub.v1.ListDataExchangesRequest\x1a@.google.cloud.bigquery.analyticshub.v1.ListDataExchangesResponse\"B\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x33\x12\x31/v1/{parent=projects/*/locations/*}/dataExchanges\x12\xf4\x01\n\x14ListOrgDataExchanges\x12\x42.google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesRequest\x1a\x43.google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesResponse\"S\xda\x41\x0corganization\x82\xd3\xe4\x93\x02>\x12\x12\x12*.google.cloud.bigquery.analyticshub.v1.SubscribeListingRequest\x1a?.google.cloud.bigquery.analyticshub.v1.SubscribeListingResponse\"X\xda\x41\x04name\x82\xd3\xe4\x93\x02K\"F/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}:subscribe:\x01*\x12\x80\x02\n\x15SubscribeDataExchange\x12\x43.google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeRequest\x1a\x1d.google.longrunning.Operation\"\x82\x01\xca\x41\x32\n\x1dSubscribeDataExchangeResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02@\";/v1/{name=projects/*/locations/*/dataExchanges/*}:subscribe:\x01*\x12\xf7\x01\n\x13RefreshSubscription\x12\x41.google.cloud.bigquery.analyticshub.v1.RefreshSubscriptionRequest\x1a\x1d.google.longrunning.Operation\"~\xca\x41\x30\n\x1bRefreshSubscriptionResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02>\"9/v1/{name=projects/*/locations/*/subscriptions/*}:refresh:\x01*\x12\xc7\x01\n\x0fGetSubscription\x12=.google.cloud.bigquery.analyticshub.v1.GetSubscriptionRequest\x1a\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"@\xda\x41\x04name\x82\xd3\xe4\x93\x02\x33\x12\x31/v1/{name=projects/*/locations/*/subscriptions/*}\x12\xda\x01\n\x11ListSubscriptions\x12?.google.cloud.bigquery.analyticshub.v1.ListSubscriptionsRequest\x1a@.google.cloud.bigquery.analyticshub.v1.ListSubscriptionsResponse\"B\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x33\x12\x31/v1/{parent=projects/*/locations/*}/subscriptions\x12\xf4\x02\n\x1fListSharedResourceSubscriptions\x12M.google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsRequest\x1aN.google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsResponse\"\xb1\x01\xda\x41\x08resource\x82\xd3\xe4\x93\x02\x9f\x01\x12G/v1/{resource=projects/*/locations/*/dataExchanges/*}:listSubscriptionsZT\x12R/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:listSubscriptions\x12\xe5\x01\n\x12RevokeSubscription\x12@.google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionRequest\x1a\x41.google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionResponse\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\"8/v1/{name=projects/*/locations/*/subscriptions/*}:revoke:\x01*\x12\xe4\x01\n\x12\x44\x65leteSubscription\x12@.google.cloud.bigquery.analyticshub.v1.DeleteSubscriptionRequest\x1a\x1d.google.longrunning.Operation\"m\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x33*1/v1/{name=projects/*/locations/*/subscriptions/*}\x12\xb7\x02\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01\"B/v1/{resource=projects/*/locations/*/dataExchanges/*}:getIamPolicy:\x01*ZR\"M/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy:\x01*ZG\"B/v1/{resource=projects/*/locations/*/subscriptions/*}:getIamPolicy:\x01*\x12\xb7\x02\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01\"B/v1/{resource=projects/*/locations/*/dataExchanges/*}:setIamPolicy:\x01*ZR\"M/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy:\x01*ZG\"B/v1/{resource=projects/*/locations/*/subscriptions/*}:setIamPolicy:\x01*\x12\x9a\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"\xae\x01\x82\xd3\xe4\x93\x02\xa7\x01\"H/v1/{resource=projects/*/locations/*/dataExchanges/*}:testIamPermissions:\x01*ZX\"S/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:testIamPermissions:\x01*\x1ax\xca\x41\x1b\x61nalyticshub.googleapis.com\xd2\x41Whttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xf4\x05\n)com.google.cloud.bigquery.analyticshub.v1B\x11\x41nalyticsHubProtoP\x01ZMcloud.google.com/go/bigquery/analyticshub/apiv1/analyticshubpb;analyticshubpb\xaa\x02%Google.Cloud.BigQuery.AnalyticsHub.V1\xca\x02%Google\\Cloud\\BigQuery\\AnalyticsHub\\V1\xea\x02)Google::Cloud::Bigquery::AnalyticsHub::V1\xea\x41H\n\x1f\x62igquery.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}\xea\x41U\n\x1d\x62igquery.googleapis.com/Table\x12\x34projects/{project}/datasets/{dataset}/tables/{table}\xea\x41@\n\x1bpubsub.googleapis.com/Topic\x12!projects/{project}/topics/{topic}\xea\x41[\n\x1f\x62igquery.googleapis.com/Routine\x12\x38projects/{project}/datasets/{dataset}/routines/{routine}\xea\x41\x45\n/servicemanagement.googleapis.com/ManagedService\x12\x12services/{service}\xea\x41Z\n5cloudcommerceconsumerprocurement.googleapis.com/Order\x12!projects/{project}/orders/{order}b\x06proto3" +descriptor_data = "\n8google/cloud/bigquery/analyticshub/v1/analyticshub.proto\x12%google.cloud.bigquery.analyticshub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x32google/cloud/bigquery/analyticshub/v1/pubsub.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xe9\x04\n\x0c\x44\x61taExchange\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdocumentation\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rlisting_count\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\x12\x11\n\x04icon\x18\x07 \x01(\x0c\x42\x03\xe0\x41\x01\x12h\n\x1asharing_environment_config\x18\x08 \x01(\x0b\x32?.google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfigB\x03\xe0\x41\x01\x12V\n\x0e\x64iscovery_type\x18\t \x01(\x0e\x32\x34.google.cloud.bigquery.analyticshub.v1.DiscoveryTypeB\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x35\n#log_linked_dataset_query_user_email\x18\n \x01(\x08\x42\x03\xe0\x41\x01H\x01\x88\x01\x01:t\xea\x41q\n(analyticshub.googleapis.com/DataExchange\x12\x45projects/{project}/locations/{location}/dataExchanges/{data_exchange}B\x11\n\x0f_discovery_typeB&\n$_log_linked_dataset_query_user_email\"\xb7\x05\n\rQueryTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08proposer\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdocumentation\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12N\n\x05state\x18\x06 \x01(\x0e\x32:.google.cloud.bigquery.analyticshub.v1.QueryTemplate.StateB\x03\xe0\x41\x03\x12\x44\n\x07routine\x18\x07 \x01(\x0b\x32..google.cloud.bigquery.analyticshub.v1.RoutineB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"S\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x44RAFTED\x10\x01\x12\x0b\n\x07PENDING\x10\x02\x12\x0b\n\x07\x44\x45LETED\x10\x03\x12\x0c\n\x08\x41PPROVED\x10\x04:\xb5\x01\xea\x41\xb1\x01\n)analyticshub.googleapis.com/QueryTemplate\x12\x65projects/{project}/locations/{location}/dataExchanges/{data_exchange}/queryTemplates/{query_template}*\x0equeryTemplates2\rqueryTemplate\"\xc6\x01\n\x07Routine\x12U\n\x0croutine_type\x18\x01 \x01(\x0e\x32:.google.cloud.bigquery.analyticshub.v1.Routine.RoutineTypeB\x03\xe0\x41\x02\x12\x1c\n\x0f\x64\x65\x66inition_body\x18\x02 \x01(\tB\x03\xe0\x41\x01\"F\n\x0bRoutineType\x12\x1c\n\x18ROUTINE_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15TABLE_VALUED_FUNCTION\x10\x01\"\xd1\x01\n\x1a\x43reateQueryTemplateRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12\x1e\n\x11query_template_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12Q\n\x0equery_template\x18\x03 \x01(\x0b\x32\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplateB\x03\xe0\x41\x02\"Z\n\x17GetQueryTemplateRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)analyticshub.googleapis.com/QueryTemplate\"\x8e\x01\n\x19ListQueryTemplatesRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x84\x01\n\x1aListQueryTemplatesResponse\x12M\n\x0fquery_templates\x18\x01 \x03(\x0b\x32\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa5\x01\n\x1aUpdateQueryTemplateRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12Q\n\x0equery_template\x18\x02 \x01(\x0b\x32\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplateB\x03\xe0\x41\x02\"]\n\x1a\x44\x65leteQueryTemplateRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)analyticshub.googleapis.com/QueryTemplate\"]\n\x1aSubmitQueryTemplateRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)analyticshub.googleapis.com/QueryTemplate\"^\n\x1b\x41pproveQueryTemplateRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)analyticshub.googleapis.com/QueryTemplate\"\x94\x04\n\x18SharingEnvironmentConfig\x12x\n\x17\x64\x65\x66\x61ult_exchange_config\x18\x01 \x01(\x0b\x32U.google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DefaultExchangeConfigH\x00\x12p\n\x13\x64\x63r_exchange_config\x18\x02 \x01(\x0b\x32Q.google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DcrExchangeConfigH\x00\x1a\x17\n\x15\x44\x65\x66\x61ultExchangeConfig\x1a\xe3\x01\n\x11\x44\x63rExchangeConfig\x12>\n,single_selected_resource_sharing_restriction\x18\x01 \x01(\x08\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x35\n#single_linked_dataset_per_cleanroom\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42/\n-_single_selected_resource_sharing_restrictionB&\n$_single_linked_dataset_per_cleanroomB\r\n\x0b\x65nvironment\"?\n\x0c\x44\x61taProvider\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x02 \x01(\tB\x03\xe0\x41\x01\"<\n\tPublisher\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x02 \x01(\tB\x03\xe0\x41\x01\"O\n\x1b\x44\x65stinationDatasetReference\x12\x17\n\ndataset_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xac\x03\n\x12\x44\x65stinationDataset\x12\x62\n\x11\x64\x61taset_reference\x18\x01 \x01(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.DestinationDatasetReferenceB\x03\xe0\x41\x02\x12\x38\n\rfriendly_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x01\x12\x36\n\x0b\x64\x65scription\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueB\x03\xe0\x41\x01\x12Z\n\x06labels\x18\x04 \x03(\x0b\x32\x45.google.cloud.bigquery.analyticshub.v1.DestinationDataset.LabelsEntryB\x03\xe0\x41\x01\x12\x15\n\x08location\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11replica_locations\x18\x06 \x03(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"|\n\x1d\x44\x65stinationPubSubSubscription\x12[\n\x13pubsub_subscription\x18\x01 \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.PubSubSubscriptionB\x03\xe0\x41\x02\"\xa3 \n\x07Listing\x12`\n\x10\x62igquery_dataset\x18\x06 \x01(\x0b\x32\x44.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSourceH\x00\x12X\n\x0cpubsub_topic\x18\x10 \x01(\x0b\x32@.google.cloud.bigquery.analyticshub.v1.Listing.PubSubTopicSourceH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fprimary_contact\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdocumentation\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12H\n\x05state\x18\x07 \x01(\x0e\x32\x34.google.cloud.bigquery.analyticshub.v1.Listing.StateB\x03\xe0\x41\x03\x12\x11\n\x04icon\x18\x08 \x01(\x0c\x42\x03\xe0\x41\x01\x12O\n\rdata_provider\x18\t \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataProviderB\x03\xe0\x41\x01\x12P\n\ncategories\x18\n \x03(\x0e\x32\x37.google.cloud.bigquery.analyticshub.v1.Listing.CategoryB\x03\xe0\x41\x01\x12H\n\tpublisher\x18\x0b \x01(\x0b\x32\x30.google.cloud.bigquery.analyticshub.v1.PublisherB\x03\xe0\x41\x01\x12\x1b\n\x0erequest_access\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12l\n\x18restricted_export_config\x18\r \x01(\x0b\x32\x45.google.cloud.bigquery.analyticshub.v1.Listing.RestrictedExportConfigB\x03\xe0\x41\x01\x12V\n\x0e\x64iscovery_type\x18\x0e \x01(\x0e\x32\x34.google.cloud.bigquery.analyticshub.v1.DiscoveryTypeB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12U\n\rresource_type\x18\x0f \x01(\x0e\x32\x39.google.cloud.bigquery.analyticshub.v1.SharedResourceTypeB\x03\xe0\x41\x03\x12`\n\x0f\x63ommercial_info\x18\x11 \x01(\x0b\x32=.google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfoB\x03\xe0\x41\x03H\x02\x88\x01\x01\x12\x35\n#log_linked_dataset_query_user_email\x18\x12 \x01(\x08\x42\x03\xe0\x41\x01H\x03\x88\x01\x01\x12-\n\x1b\x61llow_only_metadata_sharing\x18\x13 \x01(\x08\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x1a\x84\n\n\x15\x42igQueryDatasetSource\x12\x38\n\x07\x64\x61taset\x18\x01 \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1f\x62igquery.googleapis.com/Dataset\x12v\n\x12selected_resources\x18\x02 \x03(\x0b\x32U.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.SelectedResourceB\x03\xe0\x41\x01\x12\x82\x01\n\x18restricted_export_policy\x18\x03 \x01(\x0b\x32[.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicyB\x03\xe0\x41\x01\x12\x1e\n\x11replica_locations\x18\x05 \x03(\tB\x03\xe0\x41\x01\x12m\n\x12\x65\x66\x66\x65\x63tive_replicas\x18\x06 \x03(\x0b\x32L.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.ReplicaB\x03\xe0\x41\x03\x1a\x92\x01\n\x10SelectedResource\x12\x36\n\x05table\x18\x01 \x01(\tB%\xe0\x41\x01\xfa\x41\x1f\n\x1d\x62igquery.googleapis.com/TableH\x00\x12:\n\x07routine\x18\x02 \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1f\x62igquery.googleapis.com/RoutineH\x00\x42\n\n\x08resource\x1a\xd1\x01\n\x16RestrictedExportPolicy\x12\x30\n\x07\x65nabled\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x01\x12\x45\n\x1crestrict_direct_table_access\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x01\x12>\n\x15restrict_query_result\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.BoolValueB\x03\xe0\x41\x01\x1a\xbb\x03\n\x07Replica\x12\x15\n\x08location\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12u\n\rreplica_state\x18\x02 \x01(\x0e\x32Y.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.ReplicaStateB\x03\xe0\x41\x03\x12z\n\rprimary_state\x18\x03 \x01(\x0e\x32Y.google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.PrimaryStateB\x03\xe0\x41\x03H\x00\x88\x01\x01\"P\n\x0cReplicaState\x12\x1d\n\x19REPLICA_STATE_UNSPECIFIED\x10\x00\x12\x10\n\x0cREADY_TO_USE\x10\x01\x12\x0f\n\x0bUNAVAILABLE\x10\x02\"B\n\x0cPrimaryState\x12\x1d\n\x19PRIMARY_STATE_UNSPECIFIED\x10\x00\x12\x13\n\x0fPRIMARY_REPLICA\x10\x01\x42\x10\n\x0e_primary_state\x1ak\n\x11PubSubTopicSource\x12\x32\n\x05topic\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bpubsub.googleapis.com/Topic\x12\"\n\x15\x64\x61ta_affinity_regions\x18\x02 \x03(\tB\x03\xe0\x41\x01\x1a}\n\x16RestrictedExportConfig\x12\x14\n\x07\x65nabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12)\n\x1crestrict_direct_table_access\x18\x01 \x01(\x08\x42\x03\xe0\x41\x03\x12\"\n\x15restrict_query_result\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x94\x04\n\x0e\x43ommercialInfo\x12}\n\x11\x63loud_marketplace\x18\x01 \x01(\x0b\x32X.google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfoB\x03\xe0\x41\x03H\x00\x88\x01\x01\x1a\xec\x02\n\x1aGoogleCloudMarketplaceInfo\x12M\n\x07service\x18\x01 \x01(\tB7\xe0\x41\x03\xfa\x41\x31\n/servicemanagement.googleapis.com/ManagedServiceH\x00\x88\x01\x01\x12\x8c\x01\n\x10\x63ommercial_state\x18\x03 \x01(\x0e\x32h.google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo.CommercialStateB\x03\xe0\x41\x03H\x01\x88\x01\x01\"O\n\x0f\x43ommercialState\x12 \n\x1c\x43OMMERCIAL_STATE_UNSPECIFIED\x10\x00\x12\x0e\n\nONBOARDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x42\n\n\x08_serviceB\x13\n\x11_commercial_stateB\x14\n\x12_cloud_marketplace\"*\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\"\xd9\x04\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43\x41TEGORY_OTHERS\x10\x01\x12&\n\"CATEGORY_ADVERTISING_AND_MARKETING\x10\x02\x12\x15\n\x11\x43\x41TEGORY_COMMERCE\x10\x03\x12$\n CATEGORY_CLIMATE_AND_ENVIRONMENT\x10\x04\x12\x19\n\x15\x43\x41TEGORY_DEMOGRAPHICS\x10\x05\x12\x16\n\x12\x43\x41TEGORY_ECONOMICS\x10\x06\x12\x16\n\x12\x43\x41TEGORY_EDUCATION\x10\x07\x12\x13\n\x0f\x43\x41TEGORY_ENERGY\x10\x08\x12\x16\n\x12\x43\x41TEGORY_FINANCIAL\x10\t\x12\x13\n\x0f\x43\x41TEGORY_GAMING\x10\n\x12\x17\n\x13\x43\x41TEGORY_GEOSPATIAL\x10\x0b\x12(\n$CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE\x10\x0c\x12\x12\n\x0e\x43\x41TEGORY_MEDIA\x10\r\x12\x1a\n\x16\x43\x41TEGORY_PUBLIC_SECTOR\x10\x0e\x12\x13\n\x0f\x43\x41TEGORY_RETAIL\x10\x0f\x12\x13\n\x0f\x43\x41TEGORY_SPORTS\x10\x10\x12!\n\x1d\x43\x41TEGORY_SCIENCE_AND_RESEARCH\x10\x11\x12)\n%CATEGORY_TRANSPORTATION_AND_LOGISTICS\x10\x12\x12\x1f\n\x1b\x43\x41TEGORY_TRAVEL_AND_TOURISM\x10\x13\x12 \n\x1c\x43\x41TEGORY_GOOGLE_EARTH_ENGINE\x10\x14:\x82\x01\xea\x41\x7f\n#analyticshub.googleapis.com/Listing\x12Xprojects/{project}/locations/{location}/dataExchanges/{data_exchange}/listings/{listing}B\x08\n\x06sourceB\x11\n\x0f_discovery_typeB\x12\n\x10_commercial_infoB&\n$_log_linked_dataset_query_user_emailB\x1e\n\x1c_allow_only_metadata_sharing\"\x98\r\n\x0cSubscription\x12\x16\n\x07listing\x18\x05 \x01(\tB\x03\xe0\x41\x03H\x00\x12\x1c\n\rdata_exchange\x18\x06 \x01(\tB\x03\xe0\x41\x03H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x36\n\rcreation_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x39\n\x10last_modify_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1c\n\x0forganization_id\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12&\n\x19organization_display_name\x18\n \x01(\tB\x03\xe0\x41\x03\x12M\n\x05state\x18\x07 \x01(\x0e\x32\x39.google.cloud.bigquery.analyticshub.v1.Subscription.StateB\x03\xe0\x41\x03\x12j\n\x12linked_dataset_map\x18\x08 \x03(\x0b\x32I.google.cloud.bigquery.analyticshub.v1.Subscription.LinkedDatasetMapEntryB\x03\xe0\x41\x03\x12\x1f\n\x12subscriber_contact\x18\t \x01(\tB\x03\xe0\x41\x03\x12\x61\n\x10linked_resources\x18\x0b \x03(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResourceB\x03\xe0\x41\x03\x12U\n\rresource_type\x18\x0c \x01(\x0e\x32\x39.google.cloud.bigquery.analyticshub.v1.SharedResourceTypeB\x03\xe0\x41\x03\x12`\n\x0f\x63ommercial_info\x18\r \x01(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfoB\x03\xe0\x41\x03\x12\x35\n#log_linked_dataset_query_user_email\x18\x0e \x01(\x08\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x12[\n\x13\x64\x65stination_dataset\x18\x0f \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.DestinationDatasetB\x03\xe0\x41\x01\x1a}\n\x0eLinkedResource\x12\x1d\n\x0elinked_dataset\x18\x01 \x01(\tB\x03\xe0\x41\x03H\x00\x12)\n\x1alinked_pubsub_subscription\x18\x03 \x01(\tB\x03\xe0\x41\x03H\x00\x12\x14\n\x07listing\x18\x02 \x01(\tB\x03\xe0\x41\x03\x42\x0b\n\treference\x1a\xf8\x01\n\x0e\x43ommercialInfo\x12}\n\x11\x63loud_marketplace\x18\x01 \x01(\x0b\x32].google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo.GoogleCloudMarketplaceInfoB\x03\xe0\x41\x03\x1ag\n\x1aGoogleCloudMarketplaceInfo\x12I\n\x05order\x18\x01 \x01(\tB:\xfa\x41\x37\n5cloudcommerceconsumerprocurement.googleapis.com/Order\x1a{\n\x15LinkedDatasetMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12Q\n\x05value\x18\x02 \x01(\x0b\x32\x42.google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResource:\x02\x38\x01\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x10\n\x0cSTATE_ACTIVE\x10\x01\x12\x0f\n\x0bSTATE_STALE\x10\x02\x12\x12\n\x0eSTATE_INACTIVE\x10\x03:s\xea\x41p\n(analyticshub.googleapis.com/Subscription\x12\x44projects/{project}/locations/{location}/subscriptions/{subscription}B\x0f\n\rresource_nameB&\n$_log_linked_dataset_query_user_email\"\x83\x01\n\x18ListDataExchangesRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(analyticshub.googleapis.com/DataExchange\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x81\x01\n\x19ListDataExchangesResponse\x12K\n\x0e\x64\x61ta_exchanges\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchange\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"_\n\x1bListOrgDataExchangesRequest\x12\x19\n\x0corganization\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x84\x01\n\x1cListOrgDataExchangesResponse\x12K\n\x0e\x64\x61ta_exchanges\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchange\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x16GetDataExchangeRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\"\xcd\x01\n\x19\x43reateDataExchangeRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(analyticshub.googleapis.com/DataExchange\x12\x1d\n\x10\x64\x61ta_exchange_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12O\n\rdata_exchange\x18\x03 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchangeB\x03\xe0\x41\x02\"\xa2\x01\n\x19UpdateDataExchangeRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12O\n\rdata_exchange\x18\x02 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.DataExchangeB\x03\xe0\x41\x02\"[\n\x19\x44\x65leteDataExchangeRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\"~\n\x13ListListingsRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"q\n\x14ListListingsResponse\x12@\n\x08listings\x18\x01 \x03(\x0b\x32..google.cloud.bigquery.analyticshub.v1.Listing\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"N\n\x11GetListingRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#analyticshub.googleapis.com/Listing\"\xb7\x01\n\x14\x43reateListingRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12\x17\n\nlisting_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x07listing\x18\x03 \x01(\x0b\x32..google.cloud.bigquery.analyticshub.v1.ListingB\x03\xe0\x41\x02\"\x92\x01\n\x14UpdateListingRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x44\n\x07listing\x18\x02 \x01(\x0b\x32..google.cloud.bigquery.analyticshub.v1.ListingB\x03\xe0\x41\x02\"q\n\x14\x44\x65leteListingRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#analyticshub.googleapis.com/Listing\x12\x1e\n\x11\x64\x65lete_commercial\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xb8\x02\n\x17SubscribeListingRequest\x12]\n\x13\x64\x65stination_dataset\x18\x03 \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.DestinationDatasetB\x03\xe0\x41\x04H\x00\x12t\n\x1f\x64\x65stination_pubsub_subscription\x18\x05 \x01(\x0b\x32\x44.google.cloud.bigquery.analyticshub.v1.DestinationPubSubSubscriptionB\x03\xe0\x41\x04H\x00\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#analyticshub.googleapis.com/ListingB\r\n\x0b\x64\x65stination\"e\n\x18SubscribeListingResponse\x12I\n\x0csubscription\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"\xb2\x02\n\x1cSubscribeDataExchangeRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/DataExchange\x12>\n\x0b\x64\x65stination\x18\x02 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12[\n\x13\x64\x65stination_dataset\x18\x05 \x01(\x0b\x32\x39.google.cloud.bigquery.analyticshub.v1.DestinationDatasetB\x03\xe0\x41\x01\x12\x19\n\x0csubscription\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\x12subscriber_contact\x18\x03 \x01(\t\"j\n\x1dSubscribeDataExchangeResponse\x12I\n\x0csubscription\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"\\\n\x1aRefreshSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\"h\n\x1bRefreshSubscriptionResponse\x12I\n\x0csubscription\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"X\n\x16GetSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\"\x93\x01\n\x18ListSubscriptionsRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(analyticshub.googleapis.com/Subscription\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"\x80\x01\n\x19ListSubscriptionsResponse\x12J\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x93\x01\n&ListSharedResourceSubscriptionsRequest\x12\x1b\n\x08resource\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12%\n\x1dinclude_deleted_subscriptions\x18\x02 \x01(\x08\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"\x9e\x01\n\'ListSharedResourceSubscriptionsResponse\x12Z\n\x1dshared_resource_subscriptions\x18\x01 \x03(\x0b\x32\x33.google.cloud.bigquery.analyticshub.v1.Subscription\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"{\n\x19RevokeSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\x12\x1e\n\x11revoke_commercial\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x1c\n\x1aRevokeSubscriptionResponse\"[\n\x19\x44\x65leteSubscriptionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(analyticshub.googleapis.com/Subscription\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03*f\n\rDiscoveryType\x12\x1e\n\x1a\x44ISCOVERY_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x44ISCOVERY_TYPE_PRIVATE\x10\x01\x12\x19\n\x15\x44ISCOVERY_TYPE_PUBLIC\x10\x02*b\n\x12SharedResourceType\x12$\n SHARED_RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42IGQUERY_DATASET\x10\x01\x12\x10\n\x0cPUBSUB_TOPIC\x10\x02\x32\x80\x38\n\x13\x41nalyticsHubService\x12\xda\x01\n\x11ListDataExchanges\x12?.google.cloud.bigquery.analyticshub.v1.ListDataExchangesRequest\x1a@.google.cloud.bigquery.analyticshub.v1.ListDataExchangesResponse\"B\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x33\x12\x31/v1/{parent=projects/*/locations/*}/dataExchanges\x12\xf4\x01\n\x14ListOrgDataExchanges\x12\x42.google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesRequest\x1a\x43.google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesResponse\"S\xda\x41\x0corganization\x82\xd3\xe4\x93\x02>\x12\x12\x12*.google.cloud.bigquery.analyticshub.v1.SubscribeListingRequest\x1a?.google.cloud.bigquery.analyticshub.v1.SubscribeListingResponse\"X\xda\x41\x04name\x82\xd3\xe4\x93\x02K\"F/v1/{name=projects/*/locations/*/dataExchanges/*/listings/*}:subscribe:\x01*\x12\x80\x02\n\x15SubscribeDataExchange\x12\x43.google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeRequest\x1a\x1d.google.longrunning.Operation\"\x82\x01\xca\x41\x32\n\x1dSubscribeDataExchangeResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02@\";/v1/{name=projects/*/locations/*/dataExchanges/*}:subscribe:\x01*\x12\xf7\x01\n\x13RefreshSubscription\x12\x41.google.cloud.bigquery.analyticshub.v1.RefreshSubscriptionRequest\x1a\x1d.google.longrunning.Operation\"~\xca\x41\x30\n\x1bRefreshSubscriptionResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02>\"9/v1/{name=projects/*/locations/*/subscriptions/*}:refresh:\x01*\x12\xc7\x01\n\x0fGetSubscription\x12=.google.cloud.bigquery.analyticshub.v1.GetSubscriptionRequest\x1a\x33.google.cloud.bigquery.analyticshub.v1.Subscription\"@\xda\x41\x04name\x82\xd3\xe4\x93\x02\x33\x12\x31/v1/{name=projects/*/locations/*/subscriptions/*}\x12\xda\x01\n\x11ListSubscriptions\x12?.google.cloud.bigquery.analyticshub.v1.ListSubscriptionsRequest\x1a@.google.cloud.bigquery.analyticshub.v1.ListSubscriptionsResponse\"B\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x33\x12\x31/v1/{parent=projects/*/locations/*}/subscriptions\x12\xf4\x02\n\x1fListSharedResourceSubscriptions\x12M.google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsRequest\x1aN.google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsResponse\"\xb1\x01\xda\x41\x08resource\x82\xd3\xe4\x93\x02\x9f\x01\x12G/v1/{resource=projects/*/locations/*/dataExchanges/*}:listSubscriptionsZT\x12R/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:listSubscriptions\x12\xe5\x01\n\x12RevokeSubscription\x12@.google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionRequest\x1a\x41.google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionResponse\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\"8/v1/{name=projects/*/locations/*/subscriptions/*}:revoke:\x01*\x12\xe4\x01\n\x12\x44\x65leteSubscription\x12@.google.cloud.bigquery.analyticshub.v1.DeleteSubscriptionRequest\x1a\x1d.google.longrunning.Operation\"m\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x33*1/v1/{name=projects/*/locations/*/subscriptions/*}\x12\xb7\x02\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01\"B/v1/{resource=projects/*/locations/*/dataExchanges/*}:getIamPolicy:\x01*ZR\"M/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:getIamPolicy:\x01*ZG\"B/v1/{resource=projects/*/locations/*/subscriptions/*}:getIamPolicy:\x01*\x12\xb7\x02\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"\xeb\x01\x82\xd3\xe4\x93\x02\xe4\x01\"B/v1/{resource=projects/*/locations/*/dataExchanges/*}:setIamPolicy:\x01*ZR\"M/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:setIamPolicy:\x01*ZG\"B/v1/{resource=projects/*/locations/*/subscriptions/*}:setIamPolicy:\x01*\x12\x9a\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"\xae\x01\x82\xd3\xe4\x93\x02\xa7\x01\"H/v1/{resource=projects/*/locations/*/dataExchanges/*}:testIamPermissions:\x01*ZX\"S/v1/{resource=projects/*/locations/*/dataExchanges/*/listings/*}:testIamPermissions:\x01*\x12\x95\x02\n\x13\x43reateQueryTemplate\x12\x41.google.cloud.bigquery.analyticshub.v1.CreateQueryTemplateRequest\x1a\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplate\"\x84\x01\xda\x41\'parent,query_template,query_template_id\x82\xd3\xe4\x93\x02T\"B/v1/{parent=projects/*/locations/*/dataExchanges/*}/queryTemplates:\x0equery_template\x12\xdb\x01\n\x10GetQueryTemplate\x12>.google.cloud.bigquery.analyticshub.v1.GetQueryTemplateRequest\x1a\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplate\"Q\xda\x41\x04name\x82\xd3\xe4\x93\x02\x44\x12\x42/v1/{name=projects/*/locations/*/dataExchanges/*/queryTemplates/*}\x12\xee\x01\n\x12ListQueryTemplates\x12@.google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesRequest\x1a\x41.google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesResponse\"S\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x44\x12\x42/v1/{parent=projects/*/locations/*/dataExchanges/*}/queryTemplates\x12\x97\x02\n\x13UpdateQueryTemplate\x12\x41.google.cloud.bigquery.analyticshub.v1.UpdateQueryTemplateRequest\x1a\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplate\"\x86\x01\xda\x41\x1aquery_template,update_mask\x82\xd3\xe4\x93\x02\x63\x32Q/v1/{query_template.name=projects/*/locations/*/dataExchanges/*/queryTemplates/*}:\x0equery_template\x12\xc3\x01\n\x13\x44\x65leteQueryTemplate\x12\x41.google.cloud.bigquery.analyticshub.v1.DeleteQueryTemplateRequest\x1a\x16.google.protobuf.Empty\"Q\xda\x41\x04name\x82\xd3\xe4\x93\x02\x44*B/v1/{name=projects/*/locations/*/dataExchanges/*/queryTemplates/*}\x12\xeb\x01\n\x13SubmitQueryTemplate\x12\x41.google.cloud.bigquery.analyticshub.v1.SubmitQueryTemplateRequest\x1a\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplate\"[\xda\x41\x04name\x82\xd3\xe4\x93\x02N\"I/v1/{name=projects/*/locations/*/dataExchanges/*/queryTemplates/*}:submit:\x01*\x12\xee\x01\n\x14\x41pproveQueryTemplate\x12\x42.google.cloud.bigquery.analyticshub.v1.ApproveQueryTemplateRequest\x1a\x34.google.cloud.bigquery.analyticshub.v1.QueryTemplate\"\\\xda\x41\x04name\x82\xd3\xe4\x93\x02O\"J/v1/{name=projects/*/locations/*/dataExchanges/*/queryTemplates/*}:approve:\x01*\x1ax\xca\x41\x1b\x61nalyticshub.googleapis.com\xd2\x41Whttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xf4\x05\n)com.google.cloud.bigquery.analyticshub.v1B\x11\x41nalyticsHubProtoP\x01ZMcloud.google.com/go/bigquery/analyticshub/apiv1/analyticshubpb;analyticshubpb\xaa\x02%Google.Cloud.BigQuery.AnalyticsHub.V1\xca\x02%Google\\Cloud\\BigQuery\\AnalyticsHub\\V1\xea\x02)Google::Cloud::Bigquery::AnalyticsHub::V1\xea\x41H\n\x1f\x62igquery.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}\xea\x41U\n\x1d\x62igquery.googleapis.com/Table\x12\x34projects/{project}/datasets/{dataset}/tables/{table}\xea\x41@\n\x1bpubsub.googleapis.com/Topic\x12!projects/{project}/topics/{topic}\xea\x41[\n\x1f\x62igquery.googleapis.com/Routine\x12\x38projects/{project}/datasets/{dataset}/routines/{routine}\xea\x41\x45\n/servicemanagement.googleapis.com/ManagedService\x12\x12services/{service}\xea\x41Z\n5cloudcommerceconsumerprocurement.googleapis.com/Order\x12!projects/{project}/orders/{order}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -33,10 +33,10 @@ file = pool.add_serialized_file(serialized) warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" imports = [ - ["google.protobuf.StringValue", "google/protobuf/wrappers.proto"], - ["google.cloud.bigquery.analyticshub.v1.PubSubSubscription", "google/cloud/bigquery/analyticshub/v1/pubsub.proto"], ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], + ["google.protobuf.StringValue", "google/protobuf/wrappers.proto"], + ["google.cloud.bigquery.analyticshub.v1.PubSubSubscription", "google/cloud/bigquery/analyticshub/v1/pubsub.proto"], ] imports.each do |type_name, expected_filename| import_file = pool.lookup(type_name).file_descriptor @@ -54,6 +54,18 @@ module Bigquery module AnalyticsHub module V1 DataExchange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.DataExchange").msgclass + QueryTemplate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.QueryTemplate").msgclass + QueryTemplate::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.QueryTemplate.State").enummodule + Routine = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Routine").msgclass + Routine::RoutineType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Routine.RoutineType").enummodule + CreateQueryTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.CreateQueryTemplateRequest").msgclass + GetQueryTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.GetQueryTemplateRequest").msgclass + ListQueryTemplatesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesRequest").msgclass + ListQueryTemplatesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesResponse").msgclass + UpdateQueryTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.UpdateQueryTemplateRequest").msgclass + DeleteQueryTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.DeleteQueryTemplateRequest").msgclass + SubmitQueryTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.SubmitQueryTemplateRequest").msgclass + ApproveQueryTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.ApproveQueryTemplateRequest").msgclass SharingEnvironmentConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig").msgclass SharingEnvironmentConfig::DefaultExchangeConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DefaultExchangeConfig").msgclass SharingEnvironmentConfig::DcrExchangeConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DcrExchangeConfig").msgclass @@ -66,6 +78,9 @@ module V1 Listing::BigQueryDatasetSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource").msgclass Listing::BigQueryDatasetSource::SelectedResource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.SelectedResource").msgclass Listing::BigQueryDatasetSource::RestrictedExportPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicy").msgclass + Listing::BigQueryDatasetSource::Replica = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica").msgclass + Listing::BigQueryDatasetSource::Replica::ReplicaState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.ReplicaState").enummodule + Listing::BigQueryDatasetSource::Replica::PrimaryState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.PrimaryState").enummodule Listing::PubSubTopicSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.PubSubTopicSource").msgclass Listing::RestrictedExportConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.RestrictedExportConfig").msgclass Listing::CommercialInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo").msgclass diff --git a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_services_pb.rb b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_services_pb.rb index 5e41bb2c3242..df9d1b5dbfdb 100644 --- a/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_services_pb.rb +++ b/google-cloud-bigquery-analytics_hub-v1/lib/google/cloud/bigquery/analyticshub/v1/analyticshub_services_pb.rb @@ -94,6 +94,20 @@ class Service rpc :SetIamPolicy, ::Google::Iam::V1::SetIamPolicyRequest, ::Google::Iam::V1::Policy # Returns the permissions that a caller has. rpc :TestIamPermissions, ::Google::Iam::V1::TestIamPermissionsRequest, ::Google::Iam::V1::TestIamPermissionsResponse + # Creates a new QueryTemplate + rpc :CreateQueryTemplate, ::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest, ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate + # Gets a QueryTemplate + rpc :GetQueryTemplate, ::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest, ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate + # Lists all QueryTemplates in a given project and location. + rpc :ListQueryTemplates, ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest, ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse + # Updates an existing QueryTemplate + rpc :UpdateQueryTemplate, ::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest, ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate + # Deletes a query template. + rpc :DeleteQueryTemplate, ::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest, ::Google::Protobuf::Empty + # Submits a query template for approval. + rpc :SubmitQueryTemplate, ::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest, ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate + # Approves a query template. + rpc :ApproveQueryTemplate, ::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest, ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate end Stub = Service.rpc_stub_class diff --git a/google-cloud-bigquery-analytics_hub-v1/proto_docs/google/cloud/bigquery/analyticshub/v1/analyticshub.rb b/google-cloud-bigquery-analytics_hub-v1/proto_docs/google/cloud/bigquery/analyticshub/v1/analyticshub.rb index b77828f81c34..dbf5ef8888c7 100644 --- a/google-cloud-bigquery-analytics_hub-v1/proto_docs/google/cloud/bigquery/analyticshub/v1/analyticshub.rb +++ b/google-cloud-bigquery-analytics_hub-v1/proto_docs/google/cloud/bigquery/analyticshub/v1/analyticshub.rb @@ -76,6 +76,199 @@ class DataExchange extend ::Google::Protobuf::MessageExts::ClassMethods end + # A query template is a container for sharing table-valued functions defined by + # contributors in a data clean room. + # @!attribute [r] name + # @return [::String] + # Output only. The resource name of the QueryTemplate. + # e.g. `projects/myproject/locations/us/dataExchanges/123/queryTemplates/456` + # @!attribute [rw] display_name + # @return [::String] + # Required. Human-readable display name of the QueryTemplate. The display + # name must contain only Unicode letters, numbers (0-9), underscores (_), + # dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces. + # Default value is an empty string. Max length: 63 bytes. + # @!attribute [rw] description + # @return [::String] + # Optional. Short description of the QueryTemplate. The description must not + # contain Unicode non-characters and C0 and C1 control codes except tabs + # (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default + # value is an empty string. Max length: 2000 bytes. + # @!attribute [rw] proposer + # @return [::String] + # Optional. Will be deprecated. + # Email or URL of the primary point of contact of the QueryTemplate. + # Max Length: 1000 bytes. + # @!attribute [rw] primary_contact + # @return [::String] + # Optional. Email or URL of the primary point of contact of the + # QueryTemplate. Max Length: 1000 bytes. + # @!attribute [rw] documentation + # @return [::String] + # Optional. Documentation describing the QueryTemplate. + # @!attribute [r] state + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate::State] + # Output only. The QueryTemplate lifecycle state. + # @!attribute [rw] routine + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::Routine] + # Optional. The routine associated with the QueryTemplate. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp when the QueryTemplate was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp when the QueryTemplate was last modified. + class QueryTemplate + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The QueryTemplate lifecycle state. + module State + # Default value. This value is unused. + STATE_UNSPECIFIED = 0 + + # The QueryTemplate is in draft state. + DRAFTED = 1 + + # The QueryTemplate is in pending state. + PENDING = 2 + + # The QueryTemplate is in deleted state. + DELETED = 3 + + # The QueryTemplate is in approved state. + APPROVED = 4 + end + end + + # Represents a bigquery routine. + # @!attribute [rw] routine_type + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::Routine::RoutineType] + # Required. The type of routine. + # @!attribute [rw] definition_body + # @return [::String] + # Optional. The definition body of the routine. + class Routine + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Represents the type of a given routine. + module RoutineType + # Default value. + ROUTINE_TYPE_UNSPECIFIED = 0 + + # Non-built-in persistent TVF. + TABLE_VALUED_FUNCTION = 1 + end + end + + # Message for creating a QueryTemplate. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myQueryTemplate`. + # @!attribute [rw] query_template_id + # @return [::String] + # Required. The ID of the QueryTemplate to create. + # Must contain only Unicode letters, numbers (0-9), underscores (_). + # Max length: 100 bytes. + # @!attribute [rw] query_template + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # Required. The QueryTemplate to create. + class CreateQueryTemplateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for creating a QueryTemplate. + # @!attribute [rw] name + # @return [::String] + # Required. The parent resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + class GetQueryTemplateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for requesting the list of QueryTemplates. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource path of the QueryTemplates. + # e.g. `projects/myproject/locations/us/dataExchanges/123`. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of results to return in a single response + # page. Leverage the page tokens to iterate through the entire collection. + # @!attribute [rw] page_token + # @return [::String] + # Optional. Page token, returned by a previous call, to request the next page + # of results. + class ListQueryTemplatesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for response to the list of QueryTemplates. + # @!attribute [rw] query_templates + # @return [::Array<::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate>] + # The list of QueryTemplates. + # @!attribute [rw] next_page_token + # @return [::String] + # A token to request the next page of results. + class ListQueryTemplatesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for updating a QueryTemplate. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. Field mask specifies the fields to update in the query template + # resource. The fields specified in the `updateMask` are relative to the + # resource and are not a full request. + # @!attribute [rw] query_template + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate] + # Required. The QueryTemplate to update. + class UpdateQueryTemplateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for deleting a QueryTemplate. + # @!attribute [rw] name + # @return [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + class DeleteQueryTemplateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for submitting a QueryTemplate. + # @!attribute [rw] name + # @return [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + class SubmitQueryTemplateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Message for approving a QueryTemplate. + # @!attribute [rw] name + # @return [::String] + # Required. The resource path of the QueryTemplate. + # e.g. + # `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`. + class ApproveQueryTemplateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Sharing environment is a behavior model for sharing data within a # data exchange. This option is configurable for a data exchange. # @!attribute [rw] default_exchange_config @@ -181,6 +374,11 @@ class DestinationDatasetReference # Required. The geographic location where the dataset should reside. See # https://cloud.google.com/bigquery/docs/locations for supported # locations. + # @!attribute [rw] replica_locations + # @return [::Array<::String>] + # Optional. The geographic locations where the dataset should be replicated. + # See [BigQuery locations](https://cloud.google.com/bigquery/docs/locations) + # for supported locations. class DestinationDataset include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -256,7 +454,7 @@ class DestinationPubSubSubscription # Optional. Details of the data provider who owns the source data. # @!attribute [rw] categories # @return [::Array<::Google::Cloud::Bigquery::AnalyticsHub::V1::Listing::Category>] - # Optional. Categories of the listing. Up to two categories are allowed. + # Optional. Categories of the listing. Up to five categories are allowed. # @!attribute [rw] publisher # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::Publisher] # Optional. Details of the publisher who owns the listing and who can share @@ -311,6 +509,16 @@ class Listing # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::Listing::BigQueryDatasetSource::RestrictedExportPolicy] # Optional. If set, restricted export policy will be propagated and # enforced on the linked dataset. + # @!attribute [rw] replica_locations + # @return [::Array<::String>] + # Optional. A list of regions where the publisher has created shared + # dataset replicas. + # @!attribute [r] effective_replicas + # @return [::Array<::Google::Cloud::Bigquery::AnalyticsHub::V1::Listing::BigQueryDatasetSource::Replica>] + # Output only. Server-owned effective state of replicas. + # Contains both primary and secondary replicas. + # Each replica includes a system-computed (output-only) state and primary + # designation. class BigQueryDatasetSource include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -354,6 +562,49 @@ class RestrictedExportPolicy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Represents the state of a replica of a shared dataset. + # It includes the geographic location of the replica and + # system-computed, output-only fields indicating its replication state and + # whether it is the primary replica. + # @!attribute [r] location + # @return [::String] + # Output only. The geographic location where the replica resides. See + # [BigQuery locations](https://cloud.google.com/bigquery/docs/locations) + # for supported locations. Eg. "us-central1". + # @!attribute [r] replica_state + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::Listing::BigQueryDatasetSource::Replica::ReplicaState] + # Output only. Assigned by Analytics Hub based on real BigQuery + # replication state. + # @!attribute [r] primary_state + # @return [::Google::Cloud::Bigquery::AnalyticsHub::V1::Listing::BigQueryDatasetSource::Replica::PrimaryState] + # Output only. Indicates that this replica is the primary replica. + class Replica + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Replica state of the shared dataset. + module ReplicaState + # Default value. This value is unused. + REPLICA_STATE_UNSPECIFIED = 0 + + # The replica is backfilled and ready to use. + READY_TO_USE = 1 + + # The replica is unavailable, does not exist, or has not been + # backfilled yet. + UNAVAILABLE = 2 + end + + # Primary state of the replica. Set only for the primary replica. + module PrimaryState + # Default value. This value is unused. + PRIMARY_STATE_UNSPECIFIED = 0 + + # The replica is the primary replica. + PRIMARY_REPLICA = 1 + end + end end # Pub/Sub topic source. @@ -477,6 +728,8 @@ module Category CATEGORY_TRANSPORTATION_AND_LOGISTICS = 18 CATEGORY_TRAVEL_AND_TOURISM = 19 + + CATEGORY_GOOGLE_EARTH_ENGINE = 20 end end diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/approve_query_template.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/approve_query_template.rb new file mode 100644 index 000000000000..551a16399ce6 --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/approve_query_template.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_ApproveQueryTemplate_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the approve_query_template call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#approve_query_template. +# +def approve_query_template + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new + + # Call the approve_query_template method. + result = client.approve_query_template request + + # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + p result +end +# [END analyticshub_v1_generated_AnalyticsHubService_ApproveQueryTemplate_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/create_query_template.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/create_query_template.rb new file mode 100644 index 000000000000..71680fa4ea12 --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/create_query_template.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_CreateQueryTemplate_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the create_query_template call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#create_query_template. +# +def create_query_template + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new + + # Call the create_query_template method. + result = client.create_query_template request + + # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + p result +end +# [END analyticshub_v1_generated_AnalyticsHubService_CreateQueryTemplate_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/delete_query_template.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/delete_query_template.rb new file mode 100644 index 000000000000..4f9c731ebe4f --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/delete_query_template.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_DeleteQueryTemplate_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the delete_query_template call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#delete_query_template. +# +def delete_query_template + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new + + # Call the delete_query_template method. + result = client.delete_query_template request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END analyticshub_v1_generated_AnalyticsHubService_DeleteQueryTemplate_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/get_query_template.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/get_query_template.rb new file mode 100644 index 000000000000..37fb60db4b4e --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/get_query_template.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_GetQueryTemplate_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the get_query_template call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#get_query_template. +# +def get_query_template + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new + + # Call the get_query_template method. + result = client.get_query_template request + + # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + p result +end +# [END analyticshub_v1_generated_AnalyticsHubService_GetQueryTemplate_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/list_query_templates.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/list_query_templates.rb new file mode 100644 index 000000000000..8d50cfd7d2aa --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/list_query_templates.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_ListQueryTemplates_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the list_query_templates call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#list_query_templates. +# +def list_query_templates + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new + + # Call the list_query_templates method. + result = client.list_query_templates request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + p item + end +end +# [END analyticshub_v1_generated_AnalyticsHubService_ListQueryTemplates_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/submit_query_template.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/submit_query_template.rb new file mode 100644 index 000000000000..8bd9da6d3aa7 --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/submit_query_template.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_SubmitQueryTemplate_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the submit_query_template call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#submit_query_template. +# +def submit_query_template + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new + + # Call the submit_query_template method. + result = client.submit_query_template request + + # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + p result +end +# [END analyticshub_v1_generated_AnalyticsHubService_SubmitQueryTemplate_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/update_query_template.rb b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/update_query_template.rb new file mode 100644 index 000000000000..dbc645c5e346 --- /dev/null +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/analytics_hub_service/update_query_template.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START analyticshub_v1_generated_AnalyticsHubService_UpdateQueryTemplate_sync] +require "google/cloud/bigquery/analytics_hub/v1" + +## +# Snippet for the update_query_template call in the AnalyticsHubService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#update_query_template. +# +def update_query_template + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new + + # Call the update_query_template method. + result = client.update_query_template request + + # The returned object is of type Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate. + p result +end +# [END analyticshub_v1_generated_AnalyticsHubService_UpdateQueryTemplate_sync] diff --git a/google-cloud-bigquery-analytics_hub-v1/snippets/snippet_metadata_google.cloud.bigquery.analyticshub.v1.json b/google-cloud-bigquery-analytics_hub-v1/snippets/snippet_metadata_google.cloud.bigquery.analyticshub.v1.json index 9a7babd53ef7..75ce99aba091 100644 --- a/google-cloud-bigquery-analytics_hub-v1/snippets/snippet_metadata_google.cloud.bigquery.analyticshub.v1.json +++ b/google-cloud-bigquery-analytics_hub-v1/snippets/snippet_metadata_google.cloud.bigquery.analyticshub.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-analytics_hub-v1", - "version": "0.13.1", + "version": "0.15.0", "language": "RUBY", "apis": [ { @@ -890,6 +890,286 @@ "type": "FULL" } ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_CreateQueryTemplate_sync", + "title": "Snippet for the create_query_template call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#create_query_template.", + "file": "analytics_hub_service/create_query_template.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_query_template", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#create_query_template", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "CreateQueryTemplate", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateQueryTemplate", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_GetQueryTemplate_sync", + "title": "Snippet for the get_query_template call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#get_query_template.", + "file": "analytics_hub_service/get_query_template.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_query_template", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#get_query_template", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "GetQueryTemplate", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetQueryTemplate", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_ListQueryTemplates_sync", + "title": "Snippet for the list_query_templates call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#list_query_templates.", + "file": "analytics_hub_service/list_query_templates.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_query_templates", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#list_query_templates", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "ListQueryTemplates", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListQueryTemplates", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_UpdateQueryTemplate_sync", + "title": "Snippet for the update_query_template call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#update_query_template.", + "file": "analytics_hub_service/update_query_template.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_query_template", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#update_query_template", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "UpdateQueryTemplate", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateQueryTemplate", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_DeleteQueryTemplate_sync", + "title": "Snippet for the delete_query_template call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#delete_query_template.", + "file": "analytics_hub_service/delete_query_template.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_query_template", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#delete_query_template", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "DeleteQueryTemplate", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteQueryTemplate", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_SubmitQueryTemplate_sync", + "title": "Snippet for the submit_query_template call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#submit_query_template.", + "file": "analytics_hub_service/submit_query_template.rb", + "language": "RUBY", + "client_method": { + "short_name": "submit_query_template", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#submit_query_template", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "SubmitQueryTemplate", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubmitQueryTemplate", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "analyticshub_v1_generated_AnalyticsHubService_ApproveQueryTemplate_sync", + "title": "Snippet for the approve_query_template call in the AnalyticsHubService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#approve_query_template.", + "file": "analytics_hub_service/approve_query_template.rb", + "language": "RUBY", + "client_method": { + "short_name": "approve_query_template", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client#approve_query_template", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate", + "client": { + "short_name": "AnalyticsHubService::Client", + "full_name": "::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client" + }, + "method": { + "short_name": "ApproveQueryTemplate", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ApproveQueryTemplate", + "service": { + "short_name": "AnalyticsHubService", + "full_name": "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_paths_test.rb b/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_paths_test.rb index 2880b9d5ef3f..291e1d391747 100644 --- a/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_paths_test.rb +++ b/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_paths_test.rb @@ -101,6 +101,18 @@ def test_managed_service_path end end + def test_query_template_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.query_template_path project: "value0", location: "value1", data_exchange: "value2", query_template: "value3" + assert_equal "projects/value0/locations/value1/dataExchanges/value2/queryTemplates/value3", path + end + end + def test_routine_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_rest_test.rb b/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_rest_test.rb index d3a858d4c22c..e02c6e7310d4 100644 --- a/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_rest_test.rb +++ b/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_rest_test.rb @@ -1295,6 +1295,389 @@ def test_test_iam_permissions end end + def test_create_query_template + # Create test objects. + client_result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + query_template_id = "hello world" + query_template = {} + + create_query_template_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_create_query_template_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_query_template({ parent: parent, query_template_id: query_template_id, query_template: query_template }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_query_template parent: parent, query_template_id: query_template_id, query_template: query_template do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new(parent: parent, query_template_id: query_template_id, query_template: query_template) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_query_template({ parent: parent, query_template_id: query_template_id, query_template: query_template }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new(parent: parent, query_template_id: query_template_id, query_template: query_template), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_query_template_client_stub.call_count + end + end + end + + def test_get_query_template + # Create test objects. + client_result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_query_template_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_get_query_template_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_query_template({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_query_template name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_query_template({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_query_template_client_stub.call_count + end + end + end + + def test_list_query_templates + # Create test objects. + client_result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_query_templates_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_list_query_templates_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_query_templates_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_query_templates({ parent: parent, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_query_templates parent: parent, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_query_templates ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_query_templates({ parent: parent, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_query_templates(::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new(parent: parent, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_query_templates_client_stub.call_count + end + end + end + + def test_update_query_template + # Create test objects. + client_result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + update_mask = {} + query_template = {} + + update_query_template_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_update_query_template_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_query_template({ update_mask: update_mask, query_template: query_template }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_query_template update_mask: update_mask, query_template: query_template do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new(update_mask: update_mask, query_template: query_template) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_query_template({ update_mask: update_mask, query_template: query_template }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new(update_mask: update_mask, query_template: query_template), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_query_template_client_stub.call_count + end + end + end + + def test_delete_query_template + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_query_template_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_delete_query_template_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_query_template({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_query_template name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_query_template({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_query_template_client_stub.call_count + end + end + end + + def test_submit_query_template + # Create test objects. + client_result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + submit_query_template_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_submit_query_template_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, submit_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.submit_query_template({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.submit_query_template name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.submit_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.submit_query_template({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.submit_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, submit_query_template_client_stub.call_count + end + end + end + + def test_approve_query_template + # Create test objects. + client_result = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + approve_query_template_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::ServiceStub.stub :transcode_approve_query_template_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, approve_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.approve_query_template({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.approve_query_template name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.approve_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.approve_query_template({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.approve_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, approve_query_template_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_test.rb b/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_test.rb index c623c58e2911..7528b0e7d09a 100644 --- a/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_test.rb +++ b/google-cloud-bigquery-analytics_hub-v1/test/google/cloud/bigquery/analytics_hub/v1/analytics_hub_service_test.rb @@ -1438,6 +1438,427 @@ def test_test_iam_permissions end end + def test_create_query_template + # Create GRPC objects. + grpc_response = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + query_template_id = "hello world" + query_template = {} + + create_query_template_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_query_template, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["query_template_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate), request["query_template"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_query_template({ parent: parent, query_template_id: query_template_id, query_template: query_template }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_query_template parent: parent, query_template_id: query_template_id, query_template: query_template do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new(parent: parent, query_template_id: query_template_id, query_template: query_template) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_query_template({ parent: parent, query_template_id: query_template_id, query_template: query_template }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::CreateQueryTemplateRequest.new(parent: parent, query_template_id: query_template_id, query_template: query_template), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_query_template_client_stub.call_rpc_count + end + end + + def test_get_query_template + # Create GRPC objects. + grpc_response = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_query_template_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_query_template, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_query_template({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_query_template name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_query_template({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::GetQueryTemplateRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_query_template_client_stub.call_rpc_count + end + end + + def test_list_query_templates + # Create GRPC objects. + grpc_response = ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_query_templates_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_query_templates, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_query_templates_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_query_templates({ parent: parent, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_query_templates parent: parent, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_query_templates ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_query_templates({ parent: parent, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_query_templates(::Google::Cloud::Bigquery::AnalyticsHub::V1::ListQueryTemplatesRequest.new(parent: parent, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_query_templates_client_stub.call_rpc_count + end + end + + def test_update_query_template + # Create GRPC objects. + grpc_response = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + update_mask = {} + query_template = {} + + update_query_template_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_query_template, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate), request["query_template"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_query_template({ update_mask: update_mask, query_template: query_template }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_query_template update_mask: update_mask, query_template: query_template do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new(update_mask: update_mask, query_template: query_template) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_query_template({ update_mask: update_mask, query_template: query_template }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::UpdateQueryTemplateRequest.new(update_mask: update_mask, query_template: query_template), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_query_template_client_stub.call_rpc_count + end + end + + def test_delete_query_template + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_query_template_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_query_template, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_query_template({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_query_template name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_query_template({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::DeleteQueryTemplateRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_query_template_client_stub.call_rpc_count + end + end + + def test_submit_query_template + # Create GRPC objects. + grpc_response = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + submit_query_template_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :submit_query_template, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, submit_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.submit_query_template({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.submit_query_template name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.submit_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.submit_query_template({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.submit_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::SubmitQueryTemplateRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, submit_query_template_client_stub.call_rpc_count + end + end + + def test_approve_query_template + # Create GRPC objects. + grpc_response = ::Google::Cloud::Bigquery::AnalyticsHub::V1::QueryTemplate.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + approve_query_template_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :approve_query_template, name + assert_kind_of ::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, approve_query_template_client_stub do + # Create client + client = ::Google::Cloud::Bigquery::AnalyticsHub::V1::AnalyticsHubService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.approve_query_template({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.approve_query_template name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.approve_query_template ::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.approve_query_template({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.approve_query_template(::Google::Cloud::Bigquery::AnalyticsHub::V1::ApproveQueryTemplateRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, approve_query_template_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure diff --git a/google-cloud-bigquery-analytics_hub/CHANGELOG.md b/google-cloud-bigquery-analytics_hub/CHANGELOG.md index 0d526a53a1fc..ded6019bb060 100644 --- a/google-cloud-bigquery-analytics_hub/CHANGELOG.md +++ b/google-cloud-bigquery-analytics_hub/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-analytics_hub/README.md b/google-cloud-bigquery-analytics_hub/README.md index bca4fdbad2a2..bbe01e3768e0 100644 --- a/google-cloud-bigquery-analytics_hub/README.md +++ b/google-cloud-bigquery-analytics_hub/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/analyticshub.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/analytics_hub" + +client = Google::Cloud::Bigquery::AnalyticsHub.analytics_hub_service +request = ::Google::Cloud::Bigquery::AnalyticsHub::V1::ListDataExchangesRequest.new # (request fields as keyword arguments...) +response = client.list_data_exchanges request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-analytics_hub/lib/google/cloud/bigquery/analytics_hub/version.rb b/google-cloud-bigquery-analytics_hub/lib/google/cloud/bigquery/analytics_hub/version.rb index fe6fccc916dc..3192ee8b0383 100644 --- a/google-cloud-bigquery-analytics_hub/lib/google/cloud/bigquery/analytics_hub/version.rb +++ b/google-cloud-bigquery-analytics_hub/lib/google/cloud/bigquery/analytics_hub/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module AnalyticsHub - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-bigquery-connection-v1/CHANGELOG.md b/google-cloud-bigquery-connection-v1/CHANGELOG.md index 9e7d501b99e8..ab93f79bb6ee 100644 --- a/google-cloud-bigquery-connection-v1/CHANGELOG.md +++ b/google-cloud-bigquery-connection-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-bigquery-connection-v1/google-cloud-bigquery-connection-v1.gemspec b/google-cloud-bigquery-connection-v1/google-cloud-bigquery-connection-v1.gemspec index 5f9502f3adcb..666c4a33696c 100644 --- a/google-cloud-bigquery-connection-v1/google-cloud-bigquery-connection-v1.gemspec +++ b/google-cloud-bigquery-connection-v1/google-cloud-bigquery-connection-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-bigquery-connection-v1/lib/google/cloud/bigquery/connection/v1/version.rb b/google-cloud-bigquery-connection-v1/lib/google/cloud/bigquery/connection/v1/version.rb index fe827ca69123..f87ac735804e 100644 --- a/google-cloud-bigquery-connection-v1/lib/google/cloud/bigquery/connection/v1/version.rb +++ b/google-cloud-bigquery-connection-v1/lib/google/cloud/bigquery/connection/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module Connection module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-bigquery-connection-v1/snippets/snippet_metadata_google.cloud.bigquery.connection.v1.json b/google-cloud-bigquery-connection-v1/snippets/snippet_metadata_google.cloud.bigquery.connection.v1.json index d48b8100dcec..ad33fcf7d909 100644 --- a/google-cloud-bigquery-connection-v1/snippets/snippet_metadata_google.cloud.bigquery.connection.v1.json +++ b/google-cloud-bigquery-connection-v1/snippets/snippet_metadata_google.cloud.bigquery.connection.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-connection-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-connection/CHANGELOG.md b/google-cloud-bigquery-connection/CHANGELOG.md index e3aba5c51c0d..aeb29c42efea 100644 --- a/google-cloud-bigquery-connection/CHANGELOG.md +++ b/google-cloud-bigquery-connection/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-connection/README.md b/google-cloud-bigquery-connection/README.md index 3a12940b18ee..5db84b24694d 100644 --- a/google-cloud-bigquery-connection/README.md +++ b/google-cloud-bigquery-connection/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/bigqueryconnection.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/connection" + +client = Google::Cloud::Bigquery::Connection.connection_service +request = ::Google::Cloud::Bigquery::Connection::V1::CreateConnectionRequest.new # (request fields as keyword arguments...) +response = client.create_connection request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-connection/lib/google/cloud/bigquery/connection/version.rb b/google-cloud-bigquery-connection/lib/google/cloud/bigquery/connection/version.rb index 50547d77c8ca..35b5f0c216db 100644 --- a/google-cloud-bigquery-connection/lib/google/cloud/bigquery/connection/version.rb +++ b/google-cloud-bigquery-connection/lib/google/cloud/bigquery/connection/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module Connection - VERSION = "1.6.1" + VERSION = "1.6.2" end end end diff --git a/google-cloud-bigquery-data_exchange-v1beta1/CHANGELOG.md b/google-cloud-bigquery-data_exchange-v1beta1/CHANGELOG.md index 05c54a355bf1..5da6b5724294 100644 --- a/google-cloud-bigquery-data_exchange-v1beta1/CHANGELOG.md +++ b/google-cloud-bigquery-data_exchange-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.10.0 (2025-05-12) #### Features diff --git a/google-cloud-bigquery-data_exchange-v1beta1/google-cloud-bigquery-data_exchange-v1beta1.gemspec b/google-cloud-bigquery-data_exchange-v1beta1/google-cloud-bigquery-data_exchange-v1beta1.gemspec index be0f11bd1b83..6353c09f4d42 100644 --- a/google-cloud-bigquery-data_exchange-v1beta1/google-cloud-bigquery-data_exchange-v1beta1.gemspec +++ b/google-cloud-bigquery-data_exchange-v1beta1/google-cloud-bigquery-data_exchange-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-bigquery-data_exchange-v1beta1/lib/google/cloud/bigquery/data_exchange/v1beta1/version.rb b/google-cloud-bigquery-data_exchange-v1beta1/lib/google/cloud/bigquery/data_exchange/v1beta1/version.rb index 83b4a044f68e..aae10de6d4f4 100644 --- a/google-cloud-bigquery-data_exchange-v1beta1/lib/google/cloud/bigquery/data_exchange/v1beta1/version.rb +++ b/google-cloud-bigquery-data_exchange-v1beta1/lib/google/cloud/bigquery/data_exchange/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module DataExchange module V1beta1 - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-bigquery-data_exchange-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.dataexchange.v1beta1.json b/google-cloud-bigquery-data_exchange-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.dataexchange.v1beta1.json index 5b37cd9d3d64..b825e6741601 100644 --- a/google-cloud-bigquery-data_exchange-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.dataexchange.v1beta1.json +++ b/google-cloud-bigquery-data_exchange-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.dataexchange.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-data_exchange-v1beta1", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-data_exchange/CHANGELOG.md b/google-cloud-bigquery-data_exchange/CHANGELOG.md index 76aba42d42a8..4be8ea779520 100644 --- a/google-cloud-bigquery-data_exchange/CHANGELOG.md +++ b/google-cloud-bigquery-data_exchange/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-data_exchange/README.md b/google-cloud-bigquery-data_exchange/README.md index 4ba88ba14581..91fde701063c 100644 --- a/google-cloud-bigquery-data_exchange/README.md +++ b/google-cloud-bigquery-data_exchange/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/analyticshub.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/data_exchange" + +client = Google::Cloud::Bigquery::DataExchange.analytics_hub_service +request = ::Google::Cloud::Bigquery::DataExchange::V1beta1::ListDataExchangesRequest.new # (request fields as keyword arguments...) +response = client.list_data_exchanges request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-data_exchange/lib/google/cloud/bigquery/data_exchange/version.rb b/google-cloud-bigquery-data_exchange/lib/google/cloud/bigquery/data_exchange/version.rb index 922340457f8c..5d747911f77a 100644 --- a/google-cloud-bigquery-data_exchange/lib/google/cloud/bigquery/data_exchange/version.rb +++ b/google-cloud-bigquery-data_exchange/lib/google/cloud/bigquery/data_exchange/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module DataExchange - VERSION = "0.5.1" + VERSION = "0.5.2" end end end diff --git a/google-cloud-bigquery-data_policies-v1/CHANGELOG.md b/google-cloud-bigquery-data_policies-v1/CHANGELOG.md index d1a9bd7744ea..f0f54207044a 100644 --- a/google-cloud-bigquery-data_policies-v1/CHANGELOG.md +++ b/google-cloud-bigquery-data_policies-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-bigquery-data_policies-v1/google-cloud-bigquery-data_policies-v1.gemspec b/google-cloud-bigquery-data_policies-v1/google-cloud-bigquery-data_policies-v1.gemspec index 9403e20daf8d..d5a3fa9caf49 100644 --- a/google-cloud-bigquery-data_policies-v1/google-cloud-bigquery-data_policies-v1.gemspec +++ b/google-cloud-bigquery-data_policies-v1/google-cloud-bigquery-data_policies-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-bigquery-data_policies-v1/lib/google/cloud/bigquery/data_policies/v1/version.rb b/google-cloud-bigquery-data_policies-v1/lib/google/cloud/bigquery/data_policies/v1/version.rb index 19932affbcd7..143748d85e2a 100644 --- a/google-cloud-bigquery-data_policies-v1/lib/google/cloud/bigquery/data_policies/v1/version.rb +++ b/google-cloud-bigquery-data_policies-v1/lib/google/cloud/bigquery/data_policies/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module DataPolicies module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-bigquery-data_policies-v1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1.json b/google-cloud-bigquery-data_policies-v1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1.json index b260e2d576a3..75b9fb61fd20 100644 --- a/google-cloud-bigquery-data_policies-v1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1.json +++ b/google-cloud-bigquery-data_policies-v1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-data_policies-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-data_policies-v1beta1/CHANGELOG.md b/google-cloud-bigquery-data_policies-v1beta1/CHANGELOG.md index 20be59fb6f2d..dd7c463d436a 100644 --- a/google-cloud-bigquery-data_policies-v1beta1/CHANGELOG.md +++ b/google-cloud-bigquery-data_policies-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.8.0 (2025-05-12) #### Features diff --git a/google-cloud-bigquery-data_policies-v1beta1/google-cloud-bigquery-data_policies-v1beta1.gemspec b/google-cloud-bigquery-data_policies-v1beta1/google-cloud-bigquery-data_policies-v1beta1.gemspec index c2e7bde65d9f..0e98c099cb5a 100644 --- a/google-cloud-bigquery-data_policies-v1beta1/google-cloud-bigquery-data_policies-v1beta1.gemspec +++ b/google-cloud-bigquery-data_policies-v1beta1/google-cloud-bigquery-data_policies-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-bigquery-data_policies-v1beta1/lib/google/cloud/bigquery/data_policies/v1beta1/version.rb b/google-cloud-bigquery-data_policies-v1beta1/lib/google/cloud/bigquery/data_policies/v1beta1/version.rb index 365bc175a9c5..3c1fc4823187 100644 --- a/google-cloud-bigquery-data_policies-v1beta1/lib/google/cloud/bigquery/data_policies/v1beta1/version.rb +++ b/google-cloud-bigquery-data_policies-v1beta1/lib/google/cloud/bigquery/data_policies/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module DataPolicies module V1beta1 - VERSION = "0.8.0" + VERSION = "0.9.0" end end end diff --git a/google-cloud-bigquery-data_policies-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1beta1.json b/google-cloud-bigquery-data_policies-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1beta1.json index 7f48419121f1..9bbd4074fc7a 100644 --- a/google-cloud-bigquery-data_policies-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1beta1.json +++ b/google-cloud-bigquery-data_policies-v1beta1/snippets/snippet_metadata_google.cloud.bigquery.datapolicies.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-data_policies-v1beta1", - "version": "0.8.0", + "version": "0.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-data_policies/CHANGELOG.md b/google-cloud-bigquery-data_policies/CHANGELOG.md index 5406d9611595..dadd2bc69f5b 100644 --- a/google-cloud-bigquery-data_policies/CHANGELOG.md +++ b/google-cloud-bigquery-data_policies/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-data_policies/README.md b/google-cloud-bigquery-data_policies/README.md index fdf68053a7c8..cdb8f4d730a1 100644 --- a/google-cloud-bigquery-data_policies/README.md +++ b/google-cloud-bigquery-data_policies/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/bigquerydatapolicy.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/data_policies" + +client = Google::Cloud::Bigquery::DataPolicies.data_policy_service +request = ::Google::Cloud::Bigquery::DataPolicies::V1::CreateDataPolicyRequest.new # (request fields as keyword arguments...) +response = client.create_data_policy request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-data_policies/lib/google/cloud/bigquery/data_policies/version.rb b/google-cloud-bigquery-data_policies/lib/google/cloud/bigquery/data_policies/version.rb index 6c4f58808b7f..4a028dfd6316 100644 --- a/google-cloud-bigquery-data_policies/lib/google/cloud/bigquery/data_policies/version.rb +++ b/google-cloud-bigquery-data_policies/lib/google/cloud/bigquery/data_policies/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module DataPolicies - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-bigquery-data_transfer-v1/CHANGELOG.md b/google-cloud-bigquery-data_transfer-v1/CHANGELOG.md index 9054f04db501..88bfff0c972c 100644 --- a/google-cloud-bigquery-data_transfer-v1/CHANGELOG.md +++ b/google-cloud-bigquery-data_transfer-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.1 (2025-07-15) #### Documentation diff --git a/google-cloud-bigquery-data_transfer-v1/google-cloud-bigquery-data_transfer-v1.gemspec b/google-cloud-bigquery-data_transfer-v1/google-cloud-bigquery-data_transfer-v1.gemspec index 33eeaea6ec3c..08419ae56d8d 100644 --- a/google-cloud-bigquery-data_transfer-v1/google-cloud-bigquery-data_transfer-v1.gemspec +++ b/google-cloud-bigquery-data_transfer-v1/google-cloud-bigquery-data_transfer-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-bigquery-data_transfer-v1/lib/google/cloud/bigquery/data_transfer/v1/version.rb b/google-cloud-bigquery-data_transfer-v1/lib/google/cloud/bigquery/data_transfer/v1/version.rb index 9f051189bc26..3619148e7a30 100644 --- a/google-cloud-bigquery-data_transfer-v1/lib/google/cloud/bigquery/data_transfer/v1/version.rb +++ b/google-cloud-bigquery-data_transfer-v1/lib/google/cloud/bigquery/data_transfer/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module DataTransfer module V1 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-bigquery-data_transfer-v1/snippets/snippet_metadata_google.cloud.bigquery.datatransfer.v1.json b/google-cloud-bigquery-data_transfer-v1/snippets/snippet_metadata_google.cloud.bigquery.datatransfer.v1.json index f50198b01237..d480efd3b038 100644 --- a/google-cloud-bigquery-data_transfer-v1/snippets/snippet_metadata_google.cloud.bigquery.datatransfer.v1.json +++ b/google-cloud-bigquery-data_transfer-v1/snippets/snippet_metadata_google.cloud.bigquery.datatransfer.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-data_transfer-v1", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-data_transfer/CHANGELOG.md b/google-cloud-bigquery-data_transfer/CHANGELOG.md index 19ccfc7e856c..d293aaabb5c8 100644 --- a/google-cloud-bigquery-data_transfer/CHANGELOG.md +++ b/google-cloud-bigquery-data_transfer/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.7.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.7.2 (2025-05-27) #### Documentation diff --git a/google-cloud-bigquery-data_transfer/README.md b/google-cloud-bigquery-data_transfer/README.md index 9e9f34483b95..93584428c117 100644 --- a/google-cloud-bigquery-data_transfer/README.md +++ b/google-cloud-bigquery-data_transfer/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/bigquerydatatransfer.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/data_transfer" + +client = Google::Cloud::Bigquery::DataTransfer.data_transfer_service +request = ::Google::Cloud::Bigquery::DataTransfer::V1::GetDataSourceRequest.new # (request fields as keyword arguments...) +response = client.get_data_source request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-bigquery-data_transfer client is a significant upgrade diff --git a/google-cloud-bigquery-data_transfer/lib/google/cloud/bigquery/data_transfer/version.rb b/google-cloud-bigquery-data_transfer/lib/google/cloud/bigquery/data_transfer/version.rb index 2a4d67e61463..0d61db68bfd9 100644 --- a/google-cloud-bigquery-data_transfer/lib/google/cloud/bigquery/data_transfer/version.rb +++ b/google-cloud-bigquery-data_transfer/lib/google/cloud/bigquery/data_transfer/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module DataTransfer - VERSION = "1.7.2" + VERSION = "1.7.3" end end end diff --git a/google-cloud-bigquery-migration-v2/CHANGELOG.md b/google-cloud-bigquery-migration-v2/CHANGELOG.md index e3fd8d45217a..afcf21f4ec34 100644 --- a/google-cloud-bigquery-migration-v2/CHANGELOG.md +++ b/google-cloud-bigquery-migration-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.17.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.16.0 (2025-05-12) #### Features diff --git a/google-cloud-bigquery-migration-v2/google-cloud-bigquery-migration-v2.gemspec b/google-cloud-bigquery-migration-v2/google-cloud-bigquery-migration-v2.gemspec index 9f942707d5af..e8542b5cbc72 100644 --- a/google-cloud-bigquery-migration-v2/google-cloud-bigquery-migration-v2.gemspec +++ b/google-cloud-bigquery-migration-v2/google-cloud-bigquery-migration-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/version.rb b/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/version.rb index 9d8872917b91..9c2388ee4341 100644 --- a/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/version.rb +++ b/google-cloud-bigquery-migration-v2/lib/google/cloud/bigquery/migration/v2/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module Migration module V2 - VERSION = "0.16.0" + VERSION = "0.17.0" end end end diff --git a/google-cloud-bigquery-migration-v2/snippets/snippet_metadata_google.cloud.bigquery.migration.v2.json b/google-cloud-bigquery-migration-v2/snippets/snippet_metadata_google.cloud.bigquery.migration.v2.json index 119eeeffadba..4b665037c7d6 100644 --- a/google-cloud-bigquery-migration-v2/snippets/snippet_metadata_google.cloud.bigquery.migration.v2.json +++ b/google-cloud-bigquery-migration-v2/snippets/snippet_metadata_google.cloud.bigquery.migration.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-migration-v2", - "version": "0.16.0", + "version": "0.17.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-migration/CHANGELOG.md b/google-cloud-bigquery-migration/CHANGELOG.md index 8089af6d5c07..33d771ab661a 100644 --- a/google-cloud-bigquery-migration/CHANGELOG.md +++ b/google-cloud-bigquery-migration/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.2 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-migration/README.md b/google-cloud-bigquery-migration/README.md index 002801b2da75..46795f9c337e 100644 --- a/google-cloud-bigquery-migration/README.md +++ b/google-cloud-bigquery-migration/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/bigquerymigration.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/migration" + +client = Google::Cloud::Bigquery::Migration.migration_service +request = ::Google::Cloud::Bigquery::Migration::V2::CreateMigrationWorkflowRequest.new # (request fields as keyword arguments...) +response = client.create_migration_workflow request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-migration/lib/google/cloud/bigquery/migration/version.rb b/google-cloud-bigquery-migration/lib/google/cloud/bigquery/migration/version.rb index 387f2fad874a..f542cc608c94 100644 --- a/google-cloud-bigquery-migration/lib/google/cloud/bigquery/migration/version.rb +++ b/google-cloud-bigquery-migration/lib/google/cloud/bigquery/migration/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module Migration - VERSION = "1.3.2" + VERSION = "1.3.3" end end end diff --git a/google-cloud-bigquery-reservation-v1/CHANGELOG.md b/google-cloud-bigquery-reservation-v1/CHANGELOG.md index 1b4379c439d9..9e1aa31fd4dc 100644 --- a/google-cloud-bigquery-reservation-v1/CHANGELOG.md +++ b/google-cloud-bigquery-reservation-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 1.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + +### 1.7.0 (2025-09-03) + +#### Features + +* Add a new field `soft_failover_start_time` in the existing `replication_status` in `.google.cloud.bigquery.reservation.v1.Reservation` to provide visibility into the state of ongoing soft failover operations on the reservation ([#30932](https://github.com/googleapis/google-cloud-ruby/issues/30932)) + ### 1.6.0 (2025-08-26) #### Features diff --git a/google-cloud-bigquery-reservation-v1/google-cloud-bigquery-reservation-v1.gemspec b/google-cloud-bigquery-reservation-v1/google-cloud-bigquery-reservation-v1.gemspec index 72621422ff0d..f7065d326d4d 100644 --- a/google-cloud-bigquery-reservation-v1/google-cloud-bigquery-reservation-v1.gemspec +++ b/google-cloud-bigquery-reservation-v1/google-cloud-bigquery-reservation-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_pb.rb b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_pb.rb index 53aa043d80c4..ed55dba8a878 100644 --- a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_pb.rb +++ b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_pb.rb @@ -14,7 +14,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n6google/cloud/bigquery/reservation/v1/reservation.proto\x12$google.cloud.bigquery.reservation.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x97\n\n\x0bReservation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rslot_capacity\x18\x02 \x01(\x03\x12\x19\n\x11ignore_idle_slots\x18\x04 \x01(\x08\x12N\n\tautoscale\x18\x07 \x01(\x0b\x32;.google.cloud.bigquery.reservation.v1.Reservation.Autoscale\x12\x13\n\x0b\x63oncurrency\x18\x10 \x01(\x03\x12\x36\n\rcreation_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1e\n\x16multi_region_auxiliary\x18\x0e \x01(\x08\x12>\n\x07\x65\x64ition\x18\x11 \x01(\x0e\x32-.google.cloud.bigquery.reservation.v1.Edition\x12\x43\n\x10primary_location\x18\x12 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!locations.googleapis.com/Location\x12\x45\n\x12secondary_location\x18\x13 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!locations.googleapis.com/Location\x12L\n\x19original_primary_location\x18\x14 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!locations.googleapis.com/Location\x12\x1b\n\tmax_slots\x18\x15 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12X\n\x0cscaling_mode\x18\x16 \x01(\x0e\x32=.google.cloud.bigquery.reservation.v1.Reservation.ScalingModeB\x03\xe0\x41\x01\x12\x64\n\x12replication_status\x18\x18 \x01(\x0b\x32\x43.google.cloud.bigquery.reservation.v1.Reservation.ReplicationStatusB\x03\xe0\x41\x03\x1a:\n\tAutoscale\x12\x1a\n\rcurrent_slots\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x11\n\tmax_slots\x18\x02 \x01(\x03\x1a\xb5\x01\n\x11ReplicationStatus\x12&\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x38\n\x0flast_error_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12>\n\x15last_replication_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"c\n\x0bScalingMode\x12\x1c\n\x18SCALING_MODE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x41UTOSCALE_ONLY\x10\x01\x12\x13\n\x0fIDLE_SLOTS_ONLY\x10\x02\x12\r\n\tALL_SLOTS\x10\x03:w\xea\x41t\n.bigqueryreservation.googleapis.com/Reservation\x12\x42projects/{project}/locations/{location}/reservations/{reservation}B\x0c\n\n_max_slots\"\x92\x08\n\x12\x43\x61pacityCommitment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\nslot_count\x18\x02 \x01(\x03\x12U\n\x04plan\x18\x03 \x01(\x0e\x32G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlan\x12R\n\x05state\x18\x04 \x01(\x0e\x32>.google.cloud.bigquery.reservation.v1.CapacityCommitment.StateB\x03\xe0\x41\x03\x12>\n\x15\x63ommitment_start_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x13\x63ommitment_end_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12/\n\x0e\x66\x61ilure_status\x18\x07 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12]\n\x0crenewal_plan\x18\x08 \x01(\x0e\x32G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlan\x12\x1e\n\x16multi_region_auxiliary\x18\n \x01(\x08\x12>\n\x07\x65\x64ition\x18\x0c \x01(\x0e\x32-.google.cloud.bigquery.reservation.v1.Edition\x12\x19\n\x0cis_flat_rate\x18\x0e \x01(\x08\x42\x03\xe0\x41\x03\"\xca\x01\n\x0e\x43ommitmentPlan\x12\x1f\n\x1b\x43OMMITMENT_PLAN_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46LEX\x10\x03\x12\x16\n\x0e\x46LEX_FLAT_RATE\x10\x07\x1a\x02\x08\x01\x12\r\n\x05TRIAL\x10\x05\x1a\x02\x08\x01\x12\x0b\n\x07MONTHLY\x10\x02\x12\x19\n\x11MONTHLY_FLAT_RATE\x10\x08\x1a\x02\x08\x01\x12\n\n\x06\x41NNUAL\x10\x04\x12\x18\n\x10\x41NNUAL_FLAT_RATE\x10\t\x1a\x02\x08\x01\x12\x0e\n\nTHREE_YEAR\x10\n\x12\x08\n\x04NONE\x10\x06\"C\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03:\x8e\x01\xea\x41\x8a\x01\n5bigqueryreservation.googleapis.com/CapacityCommitment\x12Qprojects/{project}/locations/{location}/capacityCommitments/{capacity_commitment}\"\xc2\x01\n\x18\x43reateReservationRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.bigqueryreservation.googleapis.com/Reservation\x12\x16\n\x0ereservation_id\x18\x02 \x01(\t\x12\x46\n\x0breservation\x18\x03 \x01(\x0b\x32\x31.google.cloud.bigquery.reservation.v1.Reservation\"\x88\x01\n\x17ListReservationsRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.bigqueryreservation.googleapis.com/Reservation\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"|\n\x18ListReservationsResponse\x12G\n\x0creservations\x18\x01 \x03(\x0b\x32\x31.google.cloud.bigquery.reservation.v1.Reservation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"]\n\x15GetReservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.bigqueryreservation.googleapis.com/Reservation\"`\n\x18\x44\x65leteReservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.bigqueryreservation.googleapis.com/Reservation\"\x93\x01\n\x18UpdateReservationRequest\x12\x46\n\x0breservation\x18\x01 \x01(\x0b\x32\x31.google.cloud.bigquery.reservation.v1.Reservation\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"b\n\x1a\x46\x61iloverReservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.bigqueryreservation.googleapis.com/Reservation\"\x95\x02\n\x1f\x43reateCapacityCommitmentRequest\x12M\n\x06parent\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\x12\x35\x62igqueryreservation.googleapis.com/CapacityCommitment\x12U\n\x13\x63\x61pacity_commitment\x18\x02 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12,\n$enforce_single_admin_project_per_org\x18\x04 \x01(\x08\x12\x1e\n\x16\x63\x61pacity_commitment_id\x18\x05 \x01(\t\"\x96\x01\n\x1eListCapacityCommitmentsRequest\x12M\n\x06parent\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\x12\x35\x62igqueryreservation.googleapis.com/CapacityCommitment\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x92\x01\n\x1fListCapacityCommitmentsResponse\x12V\n\x14\x63\x61pacity_commitments\x18\x01 \x03(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"k\n\x1cGetCapacityCommitmentRequest\x12K\n\x04name\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\n5bigqueryreservation.googleapis.com/CapacityCommitment\"}\n\x1f\x44\x65leteCapacityCommitmentRequest\x12K\n\x04name\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\n5bigqueryreservation.googleapis.com/CapacityCommitment\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\"\xa9\x01\n\x1fUpdateCapacityCommitmentRequest\x12U\n\x13\x63\x61pacity_commitment\x18\x01 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"\x81\x01\n\x1eSplitCapacityCommitmentRequest\x12K\n\x04name\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\n5bigqueryreservation.googleapis.com/CapacityCommitment\x12\x12\n\nslot_count\x18\x02 \x01(\x03\"\xb4\x01\n\x1fSplitCapacityCommitmentResponse\x12G\n\x05\x66irst\x18\x01 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12H\n\x06second\x18\x02 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\"\x8e\x01\n\x1fMergeCapacityCommitmentsRequest\x12J\n\x06parent\x18\x01 \x01(\tB:\xfa\x41\x37\x12\x35\x62igqueryreservation.googleapis.com/CapacityCommitment\x12\x1f\n\x17\x63\x61pacity_commitment_ids\x18\x02 \x03(\t\"\xc5\x04\n\nAssignment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x08\x61ssignee\x18\x04 \x01(\t\x12J\n\x08job_type\x18\x03 \x01(\x0e\x32\x38.google.cloud.bigquery.reservation.v1.Assignment.JobType\x12J\n\x05state\x18\x06 \x01(\x0e\x32\x36.google.cloud.bigquery.reservation.v1.Assignment.StateB\x03\xe0\x41\x03\x12&\n\x19\x65nable_gemini_in_bigquery\x18\n \x01(\x08\x42\x03\xe0\x41\x01\"m\n\x07JobType\x12\x18\n\x14JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08PIPELINE\x10\x01\x12\t\n\x05QUERY\x10\x02\x12\x0f\n\x0bML_EXTERNAL\x10\x03\x12\x0e\n\nBACKGROUND\x10\x04\x12\x0e\n\nCONTINUOUS\x10\x06\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02:\xa9\x01\xea\x41\xa5\x01\n-bigqueryreservation.googleapis.com/Assignment\x12[projects/{project}/locations/{location}/reservations/{reservation}/assignments/{assignment}*\x0b\x61ssignments2\nassignment\"\xbd\x01\n\x17\x43reateAssignmentRequest\x12\x45\n\x06parent\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x44\n\nassignment\x18\x02 \x01(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x15\n\rassignment_id\x18\x04 \x01(\t\"\x86\x01\n\x16ListAssignmentsRequest\x12\x45\n\x06parent\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"y\n\x17ListAssignmentsResponse\x12\x45\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"^\n\x17\x44\x65leteAssignmentRequest\x12\x43\n\x04name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-bigqueryreservation.googleapis.com/Assignment\"\x8b\x01\n\x18SearchAssignmentsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"\x8e\x01\n\x1bSearchAllAssignmentsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"{\n\x19SearchAssignmentsResponse\x12\x45\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"~\n\x1cSearchAllAssignmentsResponse\x12\x45\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xbf\x01\n\x15MoveAssignmentRequest\x12\x43\n\x04name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-bigqueryreservation.googleapis.com/Assignment\x12J\n\x0e\x64\x65stination_id\x18\x03 \x01(\tB2\xfa\x41/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x15\n\rassignment_id\x18\x05 \x01(\t\"\x90\x01\n\x17UpdateAssignmentRequest\x12\x44\n\nassignment\x18\x01 \x01(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"J\n\x0eTableReference\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\x12\x10\n\x08table_id\x18\x03 \x01(\t\"\x9f\x02\n\rBiReservation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12N\n\x10preferred_tables\x18\x05 \x03(\x0b\x32\x34.google.cloud.bigquery.reservation.v1.TableReference:l\xea\x41i\n0bigqueryreservation.googleapis.com/BiReservation\x12\x35projects/{project}/locations/{location}/biReservation\"a\n\x17GetBiReservationRequest\x12\x46\n\x04name\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\n0bigqueryreservation.googleapis.com/BiReservation\"\x9a\x01\n\x1aUpdateBiReservationRequest\x12K\n\x0e\x62i_reservation\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.reservation.v1.BiReservation\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask*U\n\x07\x45\x64ition\x12\x17\n\x13\x45\x44ITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x0e\n\nENTERPRISE\x10\x02\x12\x13\n\x0f\x45NTERPRISE_PLUS\x10\x03\x32\x9f)\n\x12ReservationService\x12\xf1\x01\n\x11\x43reateReservation\x12>.google.cloud.bigquery.reservation.v1.CreateReservationRequest\x1a\x31.google.cloud.bigquery.reservation.v1.Reservation\"i\xda\x41!parent,reservation,reservation_id\x82\xd3\xe4\x93\x02?\"0/v1/{parent=projects/*/locations/*}/reservations:\x0breservation\x12\xd4\x01\n\x10ListReservations\x12=.google.cloud.bigquery.reservation.v1.ListReservationsRequest\x1a>.google.cloud.bigquery.reservation.v1.ListReservationsResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/reservations\x12\xc1\x01\n\x0eGetReservation\x12;.google.cloud.bigquery.reservation.v1.GetReservationRequest\x1a\x31.google.cloud.bigquery.reservation.v1.Reservation\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/reservations/*}\x12\xac\x01\n\x11\x44\x65leteReservation\x12>.google.cloud.bigquery.reservation.v1.DeleteReservationRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/reservations/*}\x12\xf3\x01\n\x11UpdateReservation\x12>.google.cloud.bigquery.reservation.v1.UpdateReservationRequest\x1a\x31.google.cloud.bigquery.reservation.v1.Reservation\"k\xda\x41\x17reservation,update_mask\x82\xd3\xe4\x93\x02K2/v1/{parent=projects/*/locations/*/reservations/*}/assignments:\nassignment\x12\xdf\x01\n\x0fListAssignments\x12<.google.cloud.bigquery.reservation.v1.ListAssignmentsRequest\x1a=.google.cloud.bigquery.reservation.v1.ListAssignmentsResponse\"O\xda\x41\x06parent\x82\xd3\xe4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/reservations/*}/assignments\x12\xb8\x01\n\x10\x44\x65leteAssignment\x12=.google.cloud.bigquery.reservation.v1.DeleteAssignmentRequest\x1a\x16.google.protobuf.Empty\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@*>/v1/{name=projects/*/locations/*/reservations/*/assignments/*}\x12\xe5\x01\n\x11SearchAssignments\x12>.google.cloud.bigquery.reservation.v1.SearchAssignmentsRequest\x1a?.google.cloud.bigquery.reservation.v1.SearchAssignmentsResponse\"O\x88\x02\x01\xda\x41\x0cparent,query\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*}:searchAssignments\x12\xee\x01\n\x14SearchAllAssignments\x12\x41.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsRequest\x1a\x42.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsResponse\"O\xda\x41\x0cparent,query\x82\xd3\xe4\x93\x02:\x12\x38/v1/{parent=projects/*/locations/*}:searchAllAssignments\x12\xe5\x01\n\x0eMoveAssignment\x12;.google.cloud.bigquery.reservation.v1.MoveAssignmentRequest\x1a\x30.google.cloud.bigquery.reservation.v1.Assignment\"d\xda\x41\x13name,destination_id\x82\xd3\xe4\x93\x02H\"C/v1/{name=projects/*/locations/*/reservations/*/assignments/*}:move:\x01*\x12\xfb\x01\n\x10UpdateAssignment\x12=.google.cloud.bigquery.reservation.v1.UpdateAssignmentRequest\x1a\x30.google.cloud.bigquery.reservation.v1.Assignment\"v\xda\x41\x16\x61ssignment,update_mask\x82\xd3\xe4\x93\x02W2I/v1/{assignment.name=projects/*/locations/*/reservations/*/assignments/*}:\nassignment\x12\xc6\x01\n\x10GetBiReservation\x12=.google.cloud.bigquery.reservation.v1.GetBiReservationRequest\x1a\x33.google.cloud.bigquery.reservation.v1.BiReservation\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/biReservation}\x12\x81\x02\n\x13UpdateBiReservation\x12@.google.cloud.bigquery.reservation.v1.UpdateBiReservationRequest\x1a\x33.google.cloud.bigquery.reservation.v1.BiReservation\"s\xda\x41\x1a\x62i_reservation,update_mask\x82\xd3\xe4\x93\x02P2>/v1/{bi_reservation.name=projects/*/locations/*/biReservation}:\x0e\x62i_reservation\x1a\x7f\xca\x41\"bigqueryreservation.googleapis.com\xd2\x41Whttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xd8\x01\n(com.google.cloud.bigquery.reservation.v1B\x10ReservationProtoP\x01ZJcloud.google.com/go/bigquery/reservation/apiv1/reservationpb;reservationpb\xaa\x02$Google.Cloud.BigQuery.Reservation.V1\xca\x02$Google\\Cloud\\BigQuery\\Reservation\\V1b\x06proto3" +descriptor_data = "\n6google/cloud/bigquery/reservation/v1/reservation.proto\x12$google.cloud.bigquery.reservation.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xda\n\n\x0bReservation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rslot_capacity\x18\x02 \x01(\x03\x12\x19\n\x11ignore_idle_slots\x18\x04 \x01(\x08\x12N\n\tautoscale\x18\x07 \x01(\x0b\x32;.google.cloud.bigquery.reservation.v1.Reservation.Autoscale\x12\x13\n\x0b\x63oncurrency\x18\x10 \x01(\x03\x12\x36\n\rcreation_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1e\n\x16multi_region_auxiliary\x18\x0e \x01(\x08\x12>\n\x07\x65\x64ition\x18\x11 \x01(\x0e\x32-.google.cloud.bigquery.reservation.v1.Edition\x12\x43\n\x10primary_location\x18\x12 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!locations.googleapis.com/Location\x12\x45\n\x12secondary_location\x18\x13 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!locations.googleapis.com/Location\x12L\n\x19original_primary_location\x18\x14 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!locations.googleapis.com/Location\x12\x1b\n\tmax_slots\x18\x15 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12X\n\x0cscaling_mode\x18\x16 \x01(\x0e\x32=.google.cloud.bigquery.reservation.v1.Reservation.ScalingModeB\x03\xe0\x41\x01\x12\x64\n\x12replication_status\x18\x18 \x01(\x0b\x32\x43.google.cloud.bigquery.reservation.v1.Reservation.ReplicationStatusB\x03\xe0\x41\x03\x1a:\n\tAutoscale\x12\x1a\n\rcurrent_slots\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x11\n\tmax_slots\x18\x02 \x01(\x03\x1a\xf8\x01\n\x11ReplicationStatus\x12&\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x38\n\x0flast_error_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12>\n\x15last_replication_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x41\n\x18soft_failover_start_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"c\n\x0bScalingMode\x12\x1c\n\x18SCALING_MODE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x41UTOSCALE_ONLY\x10\x01\x12\x13\n\x0fIDLE_SLOTS_ONLY\x10\x02\x12\r\n\tALL_SLOTS\x10\x03:w\xea\x41t\n.bigqueryreservation.googleapis.com/Reservation\x12\x42projects/{project}/locations/{location}/reservations/{reservation}B\x0c\n\n_max_slots\"\x92\x08\n\x12\x43\x61pacityCommitment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\nslot_count\x18\x02 \x01(\x03\x12U\n\x04plan\x18\x03 \x01(\x0e\x32G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlan\x12R\n\x05state\x18\x04 \x01(\x0e\x32>.google.cloud.bigquery.reservation.v1.CapacityCommitment.StateB\x03\xe0\x41\x03\x12>\n\x15\x63ommitment_start_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x13\x63ommitment_end_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12/\n\x0e\x66\x61ilure_status\x18\x07 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12]\n\x0crenewal_plan\x18\x08 \x01(\x0e\x32G.google.cloud.bigquery.reservation.v1.CapacityCommitment.CommitmentPlan\x12\x1e\n\x16multi_region_auxiliary\x18\n \x01(\x08\x12>\n\x07\x65\x64ition\x18\x0c \x01(\x0e\x32-.google.cloud.bigquery.reservation.v1.Edition\x12\x19\n\x0cis_flat_rate\x18\x0e \x01(\x08\x42\x03\xe0\x41\x03\"\xca\x01\n\x0e\x43ommitmentPlan\x12\x1f\n\x1b\x43OMMITMENT_PLAN_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46LEX\x10\x03\x12\x16\n\x0e\x46LEX_FLAT_RATE\x10\x07\x1a\x02\x08\x01\x12\r\n\x05TRIAL\x10\x05\x1a\x02\x08\x01\x12\x0b\n\x07MONTHLY\x10\x02\x12\x19\n\x11MONTHLY_FLAT_RATE\x10\x08\x1a\x02\x08\x01\x12\n\n\x06\x41NNUAL\x10\x04\x12\x18\n\x10\x41NNUAL_FLAT_RATE\x10\t\x1a\x02\x08\x01\x12\x0e\n\nTHREE_YEAR\x10\n\x12\x08\n\x04NONE\x10\x06\"C\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03:\x8e\x01\xea\x41\x8a\x01\n5bigqueryreservation.googleapis.com/CapacityCommitment\x12Qprojects/{project}/locations/{location}/capacityCommitments/{capacity_commitment}\"\xc2\x01\n\x18\x43reateReservationRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.bigqueryreservation.googleapis.com/Reservation\x12\x16\n\x0ereservation_id\x18\x02 \x01(\t\x12\x46\n\x0breservation\x18\x03 \x01(\x0b\x32\x31.google.cloud.bigquery.reservation.v1.Reservation\"\x88\x01\n\x17ListReservationsRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.bigqueryreservation.googleapis.com/Reservation\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"|\n\x18ListReservationsResponse\x12G\n\x0creservations\x18\x01 \x03(\x0b\x32\x31.google.cloud.bigquery.reservation.v1.Reservation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"]\n\x15GetReservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.bigqueryreservation.googleapis.com/Reservation\"`\n\x18\x44\x65leteReservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.bigqueryreservation.googleapis.com/Reservation\"\x93\x01\n\x18UpdateReservationRequest\x12\x46\n\x0breservation\x18\x01 \x01(\x0b\x32\x31.google.cloud.bigquery.reservation.v1.Reservation\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"\xb2\x01\n\x1a\x46\x61iloverReservationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.bigqueryreservation.googleapis.com/Reservation\x12N\n\rfailover_mode\x18\x02 \x01(\x0e\x32\x32.google.cloud.bigquery.reservation.v1.FailoverModeB\x03\xe0\x41\x01\"\x95\x02\n\x1f\x43reateCapacityCommitmentRequest\x12M\n\x06parent\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\x12\x35\x62igqueryreservation.googleapis.com/CapacityCommitment\x12U\n\x13\x63\x61pacity_commitment\x18\x02 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12,\n$enforce_single_admin_project_per_org\x18\x04 \x01(\x08\x12\x1e\n\x16\x63\x61pacity_commitment_id\x18\x05 \x01(\t\"\x96\x01\n\x1eListCapacityCommitmentsRequest\x12M\n\x06parent\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\x12\x35\x62igqueryreservation.googleapis.com/CapacityCommitment\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"\x92\x01\n\x1fListCapacityCommitmentsResponse\x12V\n\x14\x63\x61pacity_commitments\x18\x01 \x03(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"k\n\x1cGetCapacityCommitmentRequest\x12K\n\x04name\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\n5bigqueryreservation.googleapis.com/CapacityCommitment\"}\n\x1f\x44\x65leteCapacityCommitmentRequest\x12K\n\x04name\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\n5bigqueryreservation.googleapis.com/CapacityCommitment\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\"\xa9\x01\n\x1fUpdateCapacityCommitmentRequest\x12U\n\x13\x63\x61pacity_commitment\x18\x01 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"\x81\x01\n\x1eSplitCapacityCommitmentRequest\x12K\n\x04name\x18\x01 \x01(\tB=\xe0\x41\x02\xfa\x41\x37\n5bigqueryreservation.googleapis.com/CapacityCommitment\x12\x12\n\nslot_count\x18\x02 \x01(\x03\"\xb4\x01\n\x1fSplitCapacityCommitmentResponse\x12G\n\x05\x66irst\x18\x01 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\x12H\n\x06second\x18\x02 \x01(\x0b\x32\x38.google.cloud.bigquery.reservation.v1.CapacityCommitment\"\x8e\x01\n\x1fMergeCapacityCommitmentsRequest\x12J\n\x06parent\x18\x01 \x01(\tB:\xfa\x41\x37\x12\x35\x62igqueryreservation.googleapis.com/CapacityCommitment\x12\x1f\n\x17\x63\x61pacity_commitment_ids\x18\x02 \x03(\t\"\xc5\x04\n\nAssignment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x08\x61ssignee\x18\x04 \x01(\t\x12J\n\x08job_type\x18\x03 \x01(\x0e\x32\x38.google.cloud.bigquery.reservation.v1.Assignment.JobType\x12J\n\x05state\x18\x06 \x01(\x0e\x32\x36.google.cloud.bigquery.reservation.v1.Assignment.StateB\x03\xe0\x41\x03\x12&\n\x19\x65nable_gemini_in_bigquery\x18\n \x01(\x08\x42\x03\xe0\x41\x01\"m\n\x07JobType\x12\x18\n\x14JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08PIPELINE\x10\x01\x12\t\n\x05QUERY\x10\x02\x12\x0f\n\x0bML_EXTERNAL\x10\x03\x12\x0e\n\nBACKGROUND\x10\x04\x12\x0e\n\nCONTINUOUS\x10\x06\"7\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02:\xa9\x01\xea\x41\xa5\x01\n-bigqueryreservation.googleapis.com/Assignment\x12[projects/{project}/locations/{location}/reservations/{reservation}/assignments/{assignment}*\x0b\x61ssignments2\nassignment\"\xbd\x01\n\x17\x43reateAssignmentRequest\x12\x45\n\x06parent\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x44\n\nassignment\x18\x02 \x01(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x15\n\rassignment_id\x18\x04 \x01(\t\"\x86\x01\n\x16ListAssignmentsRequest\x12\x45\n\x06parent\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"y\n\x17ListAssignmentsResponse\x12\x45\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"^\n\x17\x44\x65leteAssignmentRequest\x12\x43\n\x04name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-bigqueryreservation.googleapis.com/Assignment\"\x8b\x01\n\x18SearchAssignmentsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"\x8e\x01\n\x1bSearchAllAssignmentsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\"{\n\x19SearchAssignmentsResponse\x12\x45\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"~\n\x1cSearchAllAssignmentsResponse\x12\x45\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xbf\x01\n\x15MoveAssignmentRequest\x12\x43\n\x04name\x18\x01 \x01(\tB5\xe0\x41\x02\xfa\x41/\n-bigqueryreservation.googleapis.com/Assignment\x12J\n\x0e\x64\x65stination_id\x18\x03 \x01(\tB2\xfa\x41/\x12-bigqueryreservation.googleapis.com/Assignment\x12\x15\n\rassignment_id\x18\x05 \x01(\t\"\x90\x01\n\x17UpdateAssignmentRequest\x12\x44\n\nassignment\x18\x01 \x01(\x0b\x32\x30.google.cloud.bigquery.reservation.v1.Assignment\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"J\n\x0eTableReference\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\x12\x10\n\x08table_id\x18\x03 \x01(\t\"\x9f\x02\n\rBiReservation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12N\n\x10preferred_tables\x18\x05 \x03(\x0b\x32\x34.google.cloud.bigquery.reservation.v1.TableReference:l\xea\x41i\n0bigqueryreservation.googleapis.com/BiReservation\x12\x35projects/{project}/locations/{location}/biReservation\"a\n\x17GetBiReservationRequest\x12\x46\n\x04name\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\n0bigqueryreservation.googleapis.com/BiReservation\"\x9a\x01\n\x1aUpdateBiReservationRequest\x12K\n\x0e\x62i_reservation\x18\x01 \x01(\x0b\x32\x33.google.cloud.bigquery.reservation.v1.BiReservation\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask*U\n\x07\x45\x64ition\x12\x17\n\x13\x45\x44ITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08STANDARD\x10\x01\x12\x0e\n\nENTERPRISE\x10\x02\x12\x13\n\x0f\x45NTERPRISE_PLUS\x10\x03*A\n\x0c\x46\x61iloverMode\x12\x1d\n\x19\x46\x41ILOVER_MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04SOFT\x10\x01\x12\x08\n\x04HARD\x10\x02\x32\x9f)\n\x12ReservationService\x12\xf1\x01\n\x11\x43reateReservation\x12>.google.cloud.bigquery.reservation.v1.CreateReservationRequest\x1a\x31.google.cloud.bigquery.reservation.v1.Reservation\"i\xda\x41!parent,reservation,reservation_id\x82\xd3\xe4\x93\x02?\"0/v1/{parent=projects/*/locations/*}/reservations:\x0breservation\x12\xd4\x01\n\x10ListReservations\x12=.google.cloud.bigquery.reservation.v1.ListReservationsRequest\x1a>.google.cloud.bigquery.reservation.v1.ListReservationsResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/reservations\x12\xc1\x01\n\x0eGetReservation\x12;.google.cloud.bigquery.reservation.v1.GetReservationRequest\x1a\x31.google.cloud.bigquery.reservation.v1.Reservation\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/reservations/*}\x12\xac\x01\n\x11\x44\x65leteReservation\x12>.google.cloud.bigquery.reservation.v1.DeleteReservationRequest\x1a\x16.google.protobuf.Empty\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32*0/v1/{name=projects/*/locations/*/reservations/*}\x12\xf3\x01\n\x11UpdateReservation\x12>.google.cloud.bigquery.reservation.v1.UpdateReservationRequest\x1a\x31.google.cloud.bigquery.reservation.v1.Reservation\"k\xda\x41\x17reservation,update_mask\x82\xd3\xe4\x93\x02K2/v1/{parent=projects/*/locations/*/reservations/*}/assignments:\nassignment\x12\xdf\x01\n\x0fListAssignments\x12<.google.cloud.bigquery.reservation.v1.ListAssignmentsRequest\x1a=.google.cloud.bigquery.reservation.v1.ListAssignmentsResponse\"O\xda\x41\x06parent\x82\xd3\xe4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/reservations/*}/assignments\x12\xb8\x01\n\x10\x44\x65leteAssignment\x12=.google.cloud.bigquery.reservation.v1.DeleteAssignmentRequest\x1a\x16.google.protobuf.Empty\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@*>/v1/{name=projects/*/locations/*/reservations/*/assignments/*}\x12\xe5\x01\n\x11SearchAssignments\x12>.google.cloud.bigquery.reservation.v1.SearchAssignmentsRequest\x1a?.google.cloud.bigquery.reservation.v1.SearchAssignmentsResponse\"O\x88\x02\x01\xda\x41\x0cparent,query\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*}:searchAssignments\x12\xee\x01\n\x14SearchAllAssignments\x12\x41.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsRequest\x1a\x42.google.cloud.bigquery.reservation.v1.SearchAllAssignmentsResponse\"O\xda\x41\x0cparent,query\x82\xd3\xe4\x93\x02:\x12\x38/v1/{parent=projects/*/locations/*}:searchAllAssignments\x12\xe5\x01\n\x0eMoveAssignment\x12;.google.cloud.bigquery.reservation.v1.MoveAssignmentRequest\x1a\x30.google.cloud.bigquery.reservation.v1.Assignment\"d\xda\x41\x13name,destination_id\x82\xd3\xe4\x93\x02H\"C/v1/{name=projects/*/locations/*/reservations/*/assignments/*}:move:\x01*\x12\xfb\x01\n\x10UpdateAssignment\x12=.google.cloud.bigquery.reservation.v1.UpdateAssignmentRequest\x1a\x30.google.cloud.bigquery.reservation.v1.Assignment\"v\xda\x41\x16\x61ssignment,update_mask\x82\xd3\xe4\x93\x02W2I/v1/{assignment.name=projects/*/locations/*/reservations/*/assignments/*}:\nassignment\x12\xc6\x01\n\x10GetBiReservation\x12=.google.cloud.bigquery.reservation.v1.GetBiReservationRequest\x1a\x33.google.cloud.bigquery.reservation.v1.BiReservation\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/biReservation}\x12\x81\x02\n\x13UpdateBiReservation\x12@.google.cloud.bigquery.reservation.v1.UpdateBiReservationRequest\x1a\x33.google.cloud.bigquery.reservation.v1.BiReservation\"s\xda\x41\x1a\x62i_reservation,update_mask\x82\xd3\xe4\x93\x02P2>/v1/{bi_reservation.name=projects/*/locations/*/biReservation}:\x0e\x62i_reservation\x1a\x7f\xca\x41\"bigqueryreservation.googleapis.com\xd2\x41Whttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xd8\x01\n(com.google.cloud.bigquery.reservation.v1B\x10ReservationProtoP\x01ZJcloud.google.com/go/bigquery/reservation/apiv1/reservationpb;reservationpb\xaa\x02$Google.Cloud.BigQuery.Reservation.V1\xca\x02$Google\\Cloud\\BigQuery\\Reservation\\V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -89,6 +89,7 @@ module V1 GetBiReservationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.reservation.v1.GetBiReservationRequest").msgclass UpdateBiReservationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.reservation.v1.UpdateBiReservationRequest").msgclass Edition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.reservation.v1.Edition").enummodule + FailoverMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.bigquery.reservation.v1.FailoverMode").enummodule end end end diff --git a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/client.rb b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/client.rb index 6d78ac003995..e6fe3da2539a 100644 --- a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/client.rb +++ b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/client.rb @@ -734,7 +734,7 @@ def update_reservation request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload failover_reservation(name: nil) + # @overload failover_reservation(name: nil, failover_mode: nil) # Pass arguments to `failover_reservation` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -742,6 +742,10 @@ def update_reservation request, options = nil # @param name [::String] # Required. Resource name of the reservation to failover. E.g., # `projects/myproject/locations/US/reservations/team1-prod` + # @param failover_mode [::Google::Cloud::Bigquery::Reservation::V1::FailoverMode] + # Optional. A parameter that determines how writes that are pending + # replication are handled after a failover is initiated. If not specified, + # HARD failover mode is used by default. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Cloud::Bigquery::Reservation::V1::Reservation] diff --git a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/rest/client.rb b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/rest/client.rb index 6b1e19bf185c..41389311ff30 100644 --- a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/rest/client.rb +++ b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/reservation_service/rest/client.rb @@ -692,7 +692,7 @@ def update_reservation request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload failover_reservation(name: nil) + # @overload failover_reservation(name: nil, failover_mode: nil) # Pass arguments to `failover_reservation` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -700,6 +700,10 @@ def update_reservation request, options = nil # @param name [::String] # Required. Resource name of the reservation to failover. E.g., # `projects/myproject/locations/US/reservations/team1-prod` + # @param failover_mode [::Google::Cloud::Bigquery::Reservation::V1::FailoverMode] + # Optional. A parameter that determines how writes that are pending + # replication are handled after a failover is initiated. If not specified, + # HARD failover mode is used by default. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Google::Cloud::Bigquery::Reservation::V1::Reservation] # @yieldparam operation [::Gapic::Rest::TransportOperation] diff --git a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/version.rb b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/version.rb index c2d9d11f697d..30c4879a473e 100644 --- a/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/version.rb +++ b/google-cloud-bigquery-reservation-v1/lib/google/cloud/bigquery/reservation/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module Reservation module V1 - VERSION = "1.6.0" + VERSION = "1.8.0" end end end diff --git a/google-cloud-bigquery-reservation-v1/proto_docs/google/cloud/bigquery/reservation/v1/reservation.rb b/google-cloud-bigquery-reservation-v1/proto_docs/google/cloud/bigquery/reservation/v1/reservation.rb index 6cdf4ce5c536..170417d82c8e 100644 --- a/google-cloud-bigquery-reservation-v1/proto_docs/google/cloud/bigquery/reservation/v1/reservation.rb +++ b/google-cloud-bigquery-reservation-v1/proto_docs/google/cloud/bigquery/reservation/v1/reservation.rb @@ -193,6 +193,13 @@ class Autoscale # @return [::Google::Protobuf::Timestamp] # Output only. A timestamp corresponding to the last change on the primary # that was successfully replicated to the secondary. + # @!attribute [r] soft_failover_start_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which a soft failover for the reservation and + # its associated datasets was initiated. After this field is set, all + # subsequent changes to the reservation will be rejected unless a hard + # failover overrides this operation. This field will be cleared once the + # failover is complete. class ReplicationStatus include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -487,6 +494,11 @@ class UpdateReservationRequest # @return [::String] # Required. Resource name of the reservation to failover. E.g., # `projects/myproject/locations/US/reservations/team1-prod` + # @!attribute [rw] failover_mode + # @return [::Google::Cloud::Bigquery::Reservation::V1::FailoverMode] + # Optional. A parameter that determines how writes that are pending + # replication are handled after a failover is initiated. If not specified, + # HARD failover mode is used by default. class FailoverReservationRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -979,6 +991,24 @@ module Edition # Enterprise Plus edition. ENTERPRISE_PLUS = 3 end + + # The failover mode when a user initiates a failover on a reservation + # determines how writes that arepending replication are handled after the + # failover is initiated. + module FailoverMode + # Invalid value. + FAILOVER_MODE_UNSPECIFIED = 0 + + # When customers initiate a soft failover, BigQuery will wait until all + # committed writes are replicated to the secondary. This mode requires both + # regions to be available for the failover to succeed and prevents data loss. + SOFT = 1 + + # When customers initiate a hard failover, BigQuery will not wait until all + # committed writes are replicated to the secondary. There can be data loss + # for hard failover. + HARD = 2 + end end end end diff --git a/google-cloud-bigquery-reservation-v1/snippets/snippet_metadata_google.cloud.bigquery.reservation.v1.json b/google-cloud-bigquery-reservation-v1/snippets/snippet_metadata_google.cloud.bigquery.reservation.v1.json index 1fce87ebd66c..c7d06e8bcfa9 100644 --- a/google-cloud-bigquery-reservation-v1/snippets/snippet_metadata_google.cloud.bigquery.reservation.v1.json +++ b/google-cloud-bigquery-reservation-v1/snippets/snippet_metadata_google.cloud.bigquery.reservation.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-reservation-v1", - "version": "1.6.0", + "version": "1.8.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_rest_test.rb b/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_rest_test.rb index 8eaec5bbe669..f489b6fe7248 100644 --- a/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_rest_test.rb +++ b/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_rest_test.rb @@ -362,6 +362,7 @@ def test_failover_reservation # Create request parameters for a unary method. name = "hello world" + failover_mode = :FAILOVER_MODE_UNSPECIFIED failover_reservation_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| assert options.metadata.key? :"x-goog-api-client" @@ -377,27 +378,27 @@ def test_failover_reservation end # Use hash object - client.failover_reservation({ name: name }) do |_result, response| + client.failover_reservation({ name: name, failover_mode: failover_mode }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - client.failover_reservation name: name do |_result, response| + client.failover_reservation name: name, failover_mode: failover_mode do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - client.failover_reservation ::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name) do |_result, response| + client.failover_reservation ::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name, failover_mode: failover_mode) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - client.failover_reservation({ name: name }, call_options) do |_result, response| + client.failover_reservation({ name: name, failover_mode: failover_mode }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - client.failover_reservation(::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name), call_options) do |_result, response| + client.failover_reservation(::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name, failover_mode: failover_mode), call_options) do |_result, response| assert_equal http_response, response.underlying_op end diff --git a/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_test.rb b/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_test.rb index 85443b8881c6..da9907339e6d 100644 --- a/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_test.rb +++ b/google-cloud-bigquery-reservation-v1/test/google/cloud/bigquery/reservation/v1/reservation_service_test.rb @@ -377,11 +377,13 @@ def test_failover_reservation # Create request parameters for a unary method. name = "hello world" + failover_mode = :FAILOVER_MODE_UNSPECIFIED failover_reservation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| assert_equal :failover_reservation, name assert_kind_of ::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest, request assert_equal "hello world", request["name"] + assert_equal :FAILOVER_MODE_UNSPECIFIED, request["failover_mode"] refute_nil options end @@ -392,31 +394,31 @@ def test_failover_reservation end # Use hash object - client.failover_reservation({ name: name }) do |response, operation| + client.failover_reservation({ name: name, failover_mode: failover_mode }) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use named arguments - client.failover_reservation name: name do |response, operation| + client.failover_reservation name: name, failover_mode: failover_mode do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use protobuf object - client.failover_reservation ::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name) do |response, operation| + client.failover_reservation ::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name, failover_mode: failover_mode) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use hash object with options - client.failover_reservation({ name: name }, grpc_options) do |response, operation| + client.failover_reservation({ name: name, failover_mode: failover_mode }, grpc_options) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end # Use protobuf object with options - client.failover_reservation(::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name), grpc_options) do |response, operation| + client.failover_reservation(::Google::Cloud::Bigquery::Reservation::V1::FailoverReservationRequest.new(name: name, failover_mode: failover_mode), grpc_options) do |response, operation| assert_equal grpc_response, response assert_equal grpc_operation, operation end diff --git a/google-cloud-bigquery-reservation/CHANGELOG.md b/google-cloud-bigquery-reservation/CHANGELOG.md index d7289b9fb8e2..4bb916a28f25 100644 --- a/google-cloud-bigquery-reservation/CHANGELOG.md +++ b/google-cloud-bigquery-reservation/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-reservation/README.md b/google-cloud-bigquery-reservation/README.md index 46c154f44727..9bf32ca2cf65 100644 --- a/google-cloud-bigquery-reservation/README.md +++ b/google-cloud-bigquery-reservation/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/bigqueryreservation.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/reservation" + +client = Google::Cloud::Bigquery::Reservation.reservation_service +request = ::Google::Cloud::Bigquery::Reservation::V1::CreateReservationRequest.new # (request fields as keyword arguments...) +response = client.create_reservation request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-reservation/lib/google/cloud/bigquery/reservation/version.rb b/google-cloud-bigquery-reservation/lib/google/cloud/bigquery/reservation/version.rb index 1e39c612492e..f7343b5f7cd3 100644 --- a/google-cloud-bigquery-reservation/lib/google/cloud/bigquery/reservation/version.rb +++ b/google-cloud-bigquery-reservation/lib/google/cloud/bigquery/reservation/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module Reservation - VERSION = "1.6.1" + VERSION = "1.6.2" end end end diff --git a/google-cloud-bigquery-storage-v1/CHANGELOG.md b/google-cloud-bigquery-storage-v1/CHANGELOG.md index 889443b0cafa..459adcf7c492 100644 --- a/google-cloud-bigquery-storage-v1/CHANGELOG.md +++ b/google-cloud-bigquery-storage-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-bigquery-storage-v1/google-cloud-bigquery-storage-v1.gemspec b/google-cloud-bigquery-storage-v1/google-cloud-bigquery-storage-v1.gemspec index 0a9f1b784dba..e9e32c68c059 100644 --- a/google-cloud-bigquery-storage-v1/google-cloud-bigquery-storage-v1.gemspec +++ b/google-cloud-bigquery-storage-v1/google-cloud-bigquery-storage-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-bigquery-storage-v1/lib/google/cloud/bigquery/storage/v1/version.rb b/google-cloud-bigquery-storage-v1/lib/google/cloud/bigquery/storage/v1/version.rb index b8f1d3c568a6..afea9b4038c3 100644 --- a/google-cloud-bigquery-storage-v1/lib/google/cloud/bigquery/storage/v1/version.rb +++ b/google-cloud-bigquery-storage-v1/lib/google/cloud/bigquery/storage/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigquery module Storage module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-bigquery-storage-v1/snippets/snippet_metadata_google.cloud.bigquery.storage.v1.json b/google-cloud-bigquery-storage-v1/snippets/snippet_metadata_google.cloud.bigquery.storage.v1.json index 8e1865376084..3ab839f73c46 100644 --- a/google-cloud-bigquery-storage-v1/snippets/snippet_metadata_google.cloud.bigquery.storage.v1.json +++ b/google-cloud-bigquery-storage-v1/snippets/snippet_metadata_google.cloud.bigquery.storage.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigquery-storage-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigquery-storage/CHANGELOG.md b/google-cloud-bigquery-storage/CHANGELOG.md index b6c775c72477..649bbd2afcc1 100644 --- a/google-cloud-bigquery-storage/CHANGELOG.md +++ b/google-cloud-bigquery-storage/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-bigquery-storage/README.md b/google-cloud-bigquery-storage/README.md index 263805bb6a65..7be41c6a56ee 100644 --- a/google-cloud-bigquery-storage/README.md +++ b/google-cloud-bigquery-storage/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/bigquerystorage.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/bigquery/storage" + +client = Google::Cloud::Bigquery::Storage.big_query_read +request = ::Google::Cloud::Bigquery::Storage::V1::CreateReadSessionRequest.new # (request fields as keyword arguments...) +response = client.create_read_session request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-bigquery-storage/lib/google/cloud/bigquery/storage/version.rb b/google-cloud-bigquery-storage/lib/google/cloud/bigquery/storage/version.rb index b1850ca573eb..95f7b8b7576f 100644 --- a/google-cloud-bigquery-storage/lib/google/cloud/bigquery/storage/version.rb +++ b/google-cloud-bigquery-storage/lib/google/cloud/bigquery/storage/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigquery module Storage - VERSION = "1.6.1" + VERSION = "1.6.2" end end end diff --git a/google-cloud-bigquery/CHANGELOG.md b/google-cloud-bigquery/CHANGELOG.md index 9b0c34fa50ca..f0d5a9c7b49e 100644 --- a/google-cloud-bigquery/CHANGELOG.md +++ b/google-cloud-bigquery/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 1.59.0 (2025-09-17) + +#### Features + +* Support collation feature ([#30919](https://github.com/googleapis/google-cloud-ruby/issues/30919)) + +### 1.58.0 (2025-09-03) + +#### Features + +* Add support for remote function options ([#30822](https://github.com/googleapis/google-cloud-ruby/issues/30822)) + ### 1.57.0 (2025-08-28) #### Features diff --git a/google-cloud-bigquery/Gemfile b/google-cloud-bigquery/Gemfile index 4df2b78e70de..9b42a5f8075b 100644 --- a/google-cloud-bigquery/Gemfile +++ b/google-cloud-bigquery/Gemfile @@ -21,6 +21,7 @@ end gem "autotest-suffix", "~> 1.1" gem "csv" +gem "google-cloud-bigquery-connection-v1", ">= 1.3.0", "< 1.5" gem "google-cloud-data_catalog", path: "../google-cloud-data_catalog" gem "google-cloud-storage", path: "../google-cloud-storage" gem "google-style", "~> 1.30.1" diff --git a/google-cloud-bigquery/acceptance/bigquery/dataset_test.rb b/google-cloud-bigquery/acceptance/bigquery/dataset_test.rb index 18b67c468759..7339d9685ebd 100644 --- a/google-cloud-bigquery/acceptance/bigquery/dataset_test.rb +++ b/google-cloud-bigquery/acceptance/bigquery/dataset_test.rb @@ -173,6 +173,20 @@ dataset.default_expiration = nil end + it "sets and gets the default_collation" do + new_default_collation = "und:ci" + + dataset.default_collation = new_default_collation + + fresh = bigquery.dataset dataset.dataset_id + _(fresh).wont_be :nil? + _(fresh).must_be_kind_of Google::Cloud::Bigquery::Dataset + _(fresh.dataset_id).must_equal dataset.dataset_id + _(fresh.default_collation).must_equal new_default_collation + ensure + dataset.default_collation = nil + end + it "should fail to set metadata with stale etag" do fresh = bigquery.dataset dataset.dataset_id _(fresh.etag).wont_be :nil? diff --git a/google-cloud-bigquery/acceptance/bigquery/routine_test.rb b/google-cloud-bigquery/acceptance/bigquery/routine_test.rb index df458fb098bc..90462cd4c111 100644 --- a/google-cloud-bigquery/acceptance/bigquery/routine_test.rb +++ b/google-cloud-bigquery/acceptance/bigquery/routine_test.rb @@ -13,6 +13,7 @@ # limitations under the License. require "bigquery_helper" +require "google/cloud/bigquery/connection/v1" describe Google::Cloud::Bigquery, :bigquery do let(:dataset_id) { "#{prefix}_dataset" } @@ -276,4 +277,61 @@ _(dataset.routine(routine_id)).must_be_nil end + + it "can create and update a remote function routine" do + connection_id = "connection_#{SecureRandom.hex(4)}" + connection_client = Google::Cloud::Bigquery::Connection::V1::ConnectionService::Client.new + parent = connection_client.location_path project: bigquery.project, location: "us" + + connection = connection_client.create_connection( + parent: parent, + connection_id: connection_id, + connection: { + cloud_resource: { + service_account_id: "bigquery-test@bigquery.gserviceaccount.com" + } + } + ) + + remote_function_options = Google::Cloud::Bigquery::RemoteFunctionOptions.new.tap do |rfo| + rfo.endpoint = "https://aaabbbccc-uc.a.run.app" + rfo.connection = connection.name + rfo.user_defined_context = { "foo" => "bar" } + end + + routine = dataset.create_routine routine_id do |r| + r.routine_type = "SCALAR_FUNCTION" + r.return_type = "INT64" + r.remote_function_options = remote_function_options + end + + _(routine).must_be_kind_of Google::Cloud::Bigquery::Routine + _(routine.project_id).must_equal bigquery.project + _(routine.dataset_id).must_equal dataset.dataset_id + _(routine.routine_id).must_equal routine_id + + _(routine.routine_type).must_equal "SCALAR_FUNCTION" + _(routine.language).must_be :nil? + _(routine.remote_function_options).wont_be :nil? + _(routine.remote_function_options.endpoint).must_equal "https://aaabbbccc-uc.a.run.app" + _(routine.remote_function_options.connection).must_equal connection.name + _(routine.remote_function_options.user_defined_context).must_equal({ "foo" => "bar" }) + + # update + new_remote_function_options = Google::Cloud::Bigquery::RemoteFunctionOptions.new.tap do |rfo| + rfo.endpoint = "https://dddeeefff-uc.a.run.app" + rfo.connection = connection.name + rfo.user_defined_context = { "bar" => "baz" } + end + routine.remote_function_options = new_remote_function_options + routine.reload! + _(routine.remote_function_options.endpoint).must_equal "https://dddeeefff-uc.a.run.app" + _(routine.remote_function_options.user_defined_context).must_equal({ "bar" => "baz" }) + + # delete + _(routine.delete).must_equal true + _(dataset.routine(routine_id)).must_be_nil + + connection_client.delete_connection name: connection.name + end end diff --git a/google-cloud-bigquery/acceptance/bigquery/table_test.rb b/google-cloud-bigquery/acceptance/bigquery/table_test.rb index 0faf62c76175..73bf7c9a0655 100644 --- a/google-cloud-bigquery/acceptance/bigquery/table_test.rb +++ b/google-cloud-bigquery/acceptance/bigquery/table_test.rb @@ -190,6 +190,18 @@ _(table.labels).must_equal new_labels end + it "sets and gets the default_collation" do + new_default_collation = "und:ci" + + table.default_collation = new_default_collation + + fresh = dataset.table table.table_id + _(fresh).wont_be :nil? + _(fresh).must_be_kind_of Google::Cloud::Bigquery::Table + _(fresh.table_id).must_equal table.table_id + _(fresh.default_collation).must_equal new_default_collation + end + it "loads and reloads table with partial projection of table metadata" do _(table.table_id).must_equal table_id # ensure table is created %w[unspecified basic storage full].each do |view| @@ -1186,6 +1198,19 @@ _(table.schema.fields.map(&:default_value_expression)).must_be :==, schema_fields_default.map(&:default_value_expression) end + it "creates a table with a field with collation" do + t = nil + begin + t = dataset.create_table "#{prefix}_table_collation_test" do |schema| + schema.string "name", mode: :required, collation: "und:ci" + end + t.reload! + _(t.schema.field("name").collation).must_equal "und:ci" + ensure + t.delete if t + end + end + it "restores snapshot into a table" do begin result = table.clone target_clone_table diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/dataset.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/dataset.rb index 691d13097826..5958e9b5312d 100644 --- a/google-cloud-bigquery/lib/google/cloud/bigquery/dataset.rb +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/dataset.rb @@ -197,6 +197,37 @@ def description= new_description patch_gapi! :description end + ## + # The default collation of the dataset. + # + # @return [String, nil] The default collation, or `nil` if not present or the object is a + # reference (see {#reference?}). + # + # @!group Attributes + # + def default_collation + return nil if reference? + ensure_full_data! + @gapi.default_collation + end + + ## + # Updates the default collation of the dataset. + # + # If the dataset is not a full resource representation (see + # {#resource_full?}), the full representation will be retrieved before + # the update to comply with ETag-based optimistic concurrency control. + # + # @param [String] new_default_collation The new default collation for the dataset. + # + # @!group Attributes + # + def default_collation= new_default_collation + reload! unless resource_full? + @gapi.update! default_collation: new_default_collation + patch_gapi! :default_collation + end + ## # The default lifetime of all tables in the dataset, in milliseconds. # diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/remote_function_options.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/remote_function_options.rb new file mode 100644 index 000000000000..86f70d004cc8 --- /dev/null +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/remote_function_options.rb @@ -0,0 +1,156 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +module Google + module Cloud + module Bigquery + ## + # # RemoteFunctionOptions + # + # Options for a remote user-defined function. + # + class RemoteFunctionOptions + ## + # @private The Google API Client object. + # @return [Google::Apis::BigqueryV2::RemoteFunctionOptions] + attr_accessor :gapi + + ## + # Creates a new RemoteFunctionOptions object. + # + # @example + # require "google/cloud/bigquery" + # + # remote_function_options = Google::Cloud::Bigquery::RemoteFunctionOptions.new.tap do |rfo| + # rfo.endpoint = "https://us-east1-my_gcf_project.cloudfunctions.net/remote_add" + # rfo.connection = "projects/my-project/locations/us-east1/connections/my-connection" + # rfo.user_defined_context = { "foo" => "bar" } + # end + # + def initialize + @gapi = Google::Apis::BigqueryV2::RemoteFunctionOptions.new + end + + ## + # The endpoint of the user-provided remote service, e.g. + # `https://us-east1-my_gcf_project.cloudfunctions.net/remote_add`. + # + # @return [String] The endpoint of the user-provided remote service. + # Returns an empty string if the endpoint is not configured. + # + def endpoint + @gapi.endpoint || "" + end + + ## + # Sets the endpoint of the user-provided remote service. + # + # @param [String, nil] new_endpoint The new endpoint. Passing `nil` will + # clear the endpoint, indicating that no remote service is configured. + # + def endpoint= new_endpoint + @gapi.endpoint = new_endpoint + end + + ## + # The fully qualified name of the user-provided connection object which + # holds the authentication information to send requests to the remote + # service. + # + # Format: + # `projects/{projectId}/locations/{locationId}/connections/{connectionId}` + # + # @return [String] The fully qualified name of the user-provided + # connection object. Returns an empty string if the connection is not + # configured. + # + def connection + @gapi.connection || "" + end + + ## + # Sets the fully qualified name of the user-provided connection object. + # + # @param [String, nil] new_connection The new connection. Passing `nil` + # will clear the connection, indicating that no authentication + # information is configured for the remote service. + # + def connection= new_connection + @gapi.connection = new_connection + end + + ## + # User-defined context as a set of key/value pairs, which will be sent + # as function invocation context together with batched arguments in the + # requests to the remote service. The total number of bytes of keys and + # values must be less than 8KB. + # + # @return [Hash] The user-defined context. Returns an empty hash if no + # context is configured. + # + def user_defined_context + @gapi.user_defined_context || {} + end + + ## + # Sets the user-defined context. + # + # @param [Hash, nil] new_user_defined_context The new user-defined + # context. Passing `nil` will clear the context, meaning no + # user-defined key-value pairs will be sent. + # + def user_defined_context= new_user_defined_context + @gapi.user_defined_context = new_user_defined_context + end + + ## + # Max number of rows in each batch sent to the remote service. If absent + # or if 0, BigQuery dynamically decides the number of rows in a batch. + # + # @return [Integer] Max number of rows in each batch. Returns `0` if not + # set, which indicates that BigQuery dynamically decides the number of + # rows. + # + def max_batching_rows + @gapi.max_batching_rows || 0 + end + + ## + # Sets the max number of rows in each batch sent to the remote service. + # + # @param [Integer, nil] new_max_batching_rows The new max batching rows. + # Passing `nil` or `0` will reset the batch size, indicating that + # BigQuery should dynamically decide the number of rows in each batch. + # + def max_batching_rows= new_max_batching_rows + @gapi.max_batching_rows = new_max_batching_rows + end + + # @private New RemoteFunctionOptions from a Google API Client object. + def self.from_gapi gapi + return nil if gapi.nil? + new.tap do |rfo| + rfo.instance_variable_set :@gapi, gapi + end + end + + ## + # @private Returns the Google API Client object. + def to_gapi + @gapi + end + end + end + end +end diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/routine.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/routine.rb index 8b74902e3db3..310abe85a6e9 100644 --- a/google-cloud-bigquery/lib/google/cloud/bigquery/routine.rb +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/routine.rb @@ -18,6 +18,7 @@ require "google/cloud/bigquery/service" require "google/cloud/bigquery/routine/list" require "google/cloud/bigquery/argument" +require "google/cloud/bigquery/remote_function_options" module Google module Cloud @@ -743,6 +744,55 @@ def data_governance_type= new_data_governance_type update_gapi! end + ## + # Remote function specific options. Optional. + # + # @return [RemoteFunctionOptions, nil] The remote function options, or `nil` if not set or the object is a + # reference (see {#reference?}). + # + # @example + # require "google/cloud/bigquery" + # + # bigquery = Google::Cloud::Bigquery.new + # dataset = bigquery.dataset "my_dataset" + # routine = dataset.routine "my_routine" + # + # puts routine.remote_function_options.endpoint + # + # @!group Attributes + # + def remote_function_options + return nil if reference? + ensure_full_data! + RemoteFunctionOptions.from_gapi @gapi.remote_function_options + end + + ## + # Updates the remote function specific options. Optional. + # + # @param [RemoteFunctionOptions] new_remote_function_options The new remote function options. + # + # @example + # require "google/cloud/bigquery" + # + # bigquery = Google::Cloud::Bigquery.new + # dataset = bigquery.dataset "my_dataset" + # routine = dataset.routine "my_routine" + # + # rfo = Google::Cloud::Bigquery::RemoteFunctionOptions.new.tap do |rfo| + # rfo.endpoint = "https://us-east1-my_gcf_project.cloudfunctions.net/remote_add" + # rfo.connection = "projects/my-project/locations/us-east1/connections/my-connection" + # end + # routine.remote_function_options = rfo + # + # @!group Attributes + # + def remote_function_options= new_remote_function_options + ensure_full_data! + @gapi.remote_function_options = new_remote_function_options.to_gapi + update_gapi! + end + ## # Updates the routine with changes made in the given block in a single update request. The following attributes # may be set: {Updater#routine_type=}, {Updater#language=}, {Updater#arguments=}, {Updater#return_type=}, @@ -1275,6 +1325,32 @@ def data_governance_type= new_data_governance_type @gapi.data_governance_type = new_data_governance_type end + ## + # Updates the remote function specific options. Optional. + # + # @param [Google::Cloud::Bigquery::RemoteFunctionOptions] new_remote_function_options The new + # remote function options. + # + # @example + # require "google/cloud/bigquery" + # + # bigquery = Google::Cloud::Bigquery.new + # dataset = bigquery.dataset "my_dataset" + # routine = dataset.routine "my_routine" + # + # routine.update do |r| + # rfo = Google::Cloud::Bigquery::RemoteFunctionOptions.new + # rfo.endpoint = "https://us-east1-my_gcf_project.cloudfunctions.net/remote_add" + # rfo.connection = "projects/my-project/locations/us-east1/connections/my-connection" + # r.remote_function_options = rfo + # end + # + # @!group Attributes + # + def remote_function_options= new_remote_function_options + @gapi.remote_function_options = new_remote_function_options.to_gapi + end + def update raise "not implemented in #{self.class}" end diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/schema.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/schema.rb index 57570e449496..597062fdb960 100644 --- a/google-cloud-bigquery/lib/google/cloud/bigquery/schema.rb +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/schema.rb @@ -318,13 +318,14 @@ def dump destination # "[CURRENT_DATE(), DATE '2020-01-01'"] # def string name, description: nil, mode: :nullable, policy_tags: nil, - max_length: nil, default_value_expression: nil + max_length: nil, default_value_expression: nil, collation: nil add_field name, :string, description: description, mode: mode, policy_tags: policy_tags, max_length: max_length, - default_value_expression: default_value_expression + default_value_expression: default_value_expression, + collation: collation end ## @@ -981,7 +982,8 @@ def add_field name, max_length: nil, precision: nil, scale: nil, - default_value_expression: nil + default_value_expression: nil, + collation: nil frozen_check! new_gapi = Google::Apis::BigqueryV2::TableFieldSchema.new( @@ -999,6 +1001,7 @@ def add_field name, new_gapi.precision = precision if precision new_gapi.scale = scale if scale new_gapi.default_value_expression = default_value_expression if default_value_expression + new_gapi.collation = collation if collation # Remove any existing field of this name @gapi.fields ||= [] @gapi.fields.reject! { |f| f.name == new_gapi.name } diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/schema/field.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/schema/field.rb index 227042cf6862..73fca1592532 100644 --- a/google-cloud-bigquery/lib/google/cloud/bigquery/schema/field.rb +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/schema/field.rb @@ -351,6 +351,31 @@ def scale @gapi.scale end + ## + # The collation of the field. + # + # Collation can be set only when the type of field is `STRING`. + # The following values are supported: + # + # * `und:ci`: undetermined locale, case insensitive. + # * (empty string): Default to case-sensitive behavior. + # + # @return [String, nil] The collation for the field, or `nil`. + # + def collation + @gapi.collation + end + + ## + # Updates the collation of the field. + # + # @param [String] new_collation The new collation. See {#collation} + # for supported values. + # + def collation= new_collation + @gapi.update! collation: new_collation + end + ## # Checks if the type of the field is `STRING`. # @@ -568,7 +593,7 @@ def field name # @param [Integer] max_length The maximum UTF-8 length of strings # allowed in the field. # - def string name, description: nil, mode: :nullable, policy_tags: nil, max_length: nil + def string name, description: nil, mode: :nullable, policy_tags: nil, max_length: nil, collation: nil record_check! add_field name, @@ -576,7 +601,8 @@ def string name, description: nil, mode: :nullable, policy_tags: nil, max_length description: description, mode: mode, policy_tags: policy_tags, - max_length: max_length + max_length: max_length, + collation: collation end ## @@ -1029,7 +1055,8 @@ def add_field name, policy_tags: nil, max_length: nil, precision: nil, - scale: nil + scale: nil, + collation: nil frozen_check! new_gapi = Google::Apis::BigqueryV2::TableFieldSchema.new( @@ -1046,6 +1073,7 @@ def add_field name, new_gapi.max_length = max_length if max_length new_gapi.precision = precision if precision new_gapi.scale = scale if scale + new_gapi.collation = collation if collation # Remove any existing field of this name @gapi.fields ||= [] @gapi.fields.reject! { |f| f.name == new_gapi.name } diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/table.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/table.rb index cc0de0292d96..900d28c8018e 100644 --- a/google-cloud-bigquery/lib/google/cloud/bigquery/table.rb +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/table.rb @@ -752,6 +752,37 @@ def description= new_description patch_gapi! :description end + ## + # The default collation of the table. + # + # @return [String, nil] The default collation, or `nil` if not present or the object is a + # reference (see {#reference?}). + # + # @!group Attributes + # + def default_collation + return nil if reference? + ensure_full_data! + @gapi.default_collation + end + + ## + # Updates the default collation of the table. + # + # If the table is not a full resource representation (see + # {#resource_full?}), the full representation will be retrieved before + # the update to comply with ETag-based optimistic concurrency control. + # + # @param [String] new_default_collation The new default collation for the table. + # + # @!group Attributes + # + def default_collation= new_default_collation + reload! unless resource_full? + @gapi.update! default_collation: new_default_collation + patch_gapi! :default_collation + end + ## # The number of bytes in the table. # @@ -3706,7 +3737,7 @@ def schema replace: false # At most 1 policy tag is currently allowed. # @param [Integer] max_length The maximum UTF-8 length of strings # allowed in the field. - # @param default_value_expression [String] The default value of a field + # @param [String] default_value_expression The default value of a field # using a SQL expression. It can only be set for top level fields (columns). # Use a struct or array expression to specify default value for the entire struct or # array. The valid SQL expressions are: @@ -3722,6 +3753,11 @@ def schema replace: false # `ST_GEOPOINT` # - Struct or array composed with the above allowed functions, for example: # "[CURRENT_DATE(), DATE '2020-01-01'"] + # @param [String] collation The collation of the field. + # Collation can be set only when the type of field is `STRING`. + # The following values are supported: + # - `und:ci`: undetermined locale, case insensitive. + # - (empty string): Default to case-sensitive behavior. # # @example # require "google/cloud/bigquery" @@ -3743,9 +3779,9 @@ def schema replace: false # # @!group Schema def string name, description: nil, mode: :nullable, policy_tags: nil, max_length: nil, - default_value_expression: nil + default_value_expression: nil, collation: nil schema.string name, description: description, mode: mode, policy_tags: policy_tags, max_length: max_length, - default_value_expression: default_value_expression + default_value_expression: default_value_expression, collation: collation end ## diff --git a/google-cloud-bigquery/lib/google/cloud/bigquery/version.rb b/google-cloud-bigquery/lib/google/cloud/bigquery/version.rb index 09f4896eb4b2..3f007c8e589a 100644 --- a/google-cloud-bigquery/lib/google/cloud/bigquery/version.rb +++ b/google-cloud-bigquery/lib/google/cloud/bigquery/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Bigquery - VERSION = "1.57.0".freeze + VERSION = "1.59.0".freeze end end end diff --git a/google-cloud-bigquery/samples/snippets/.rubocop.yml b/google-cloud-bigquery/samples/snippets/.rubocop.yml index 7b5efb279288..58f963493be5 100644 --- a/google-cloud-bigquery/samples/snippets/.rubocop.yml +++ b/google-cloud-bigquery/samples/snippets/.rubocop.yml @@ -6,7 +6,10 @@ Lint/UselessAssignment: Metrics/BlockLength: Exclude: - "acceptance/*.rb" +Metrics/MethodLength: + Exclude: + - "inserting_data_types.rb" Style/GlobalVars: Enabled: false Style/IfUnlessModifier: - Enabled: false + Enabled: false \ No newline at end of file diff --git a/google-cloud-bigquery/samples/snippets/acceptance/create_table_range_partitioned_test.rb b/google-cloud-bigquery/samples/snippets/acceptance/create_table_range_partitioned_test.rb new file mode 100644 index 000000000000..c72137e2ab73 --- /dev/null +++ b/google-cloud-bigquery/samples/snippets/acceptance/create_table_range_partitioned_test.rb @@ -0,0 +1,39 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require_relative "helper" +require_relative "../create_table_range_partitioned" + +describe "Create range partitioned table" do + let(:bigquery) { Google::Cloud::Bigquery.new } + let(:table_id) { "test_table_#{time_plus_random}" } + + before do + @dataset = create_temp_dataset + end + + it "creates a range partitioned table" do + assert_output(/Created range-partitioned table/) do + create_range_partitioned_table @dataset.dataset_id, table_id + end + + table = @dataset.table table_id + assert table + assert table.range_partitioning? + assert_equal "integerField", table.range_partitioning_field + assert_equal 1, table.range_partitioning_start + assert_equal 2, table.range_partitioning_interval + assert_equal 10, table.range_partitioning_end + end +end diff --git a/google-cloud-bigquery/samples/snippets/acceptance/export_model_test.rb b/google-cloud-bigquery/samples/snippets/acceptance/export_model_test.rb new file mode 100644 index 000000000000..2516e68ccaaa --- /dev/null +++ b/google-cloud-bigquery/samples/snippets/acceptance/export_model_test.rb @@ -0,0 +1,67 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require_relative "helper" +require_relative "../export_model" +require "google/cloud/storage" + +describe "Export model" do + let(:bigquery) { Google::Cloud::Bigquery.new } + let(:storage) { Google::Cloud::Storage.new } + let(:bucket_name) { "test_bucket_#{time_plus_random}" } + let(:model_id) { "test_model_#{time_plus_random}" } + let(:table_id) { "test_table_#{time_plus_random}" } + + before do + @dataset = create_temp_dataset + @bucket = storage.create_bucket bucket_name + + # Create table and insert data + @table = @dataset.create_table table_id do |t| + t.schema do |s| + s.integer "input_col", mode: :required + s.integer "label_col", mode: :required + end + end + @table.insert [{ "input_col" => 1, "label_col" => 2 }, { "input_col" => 2, "label_col" => 4 }] + + # Create model + create_model_sql = " + CREATE OR REPLACE MODEL `#{@dataset.dataset_id}.#{model_id}` + OPTIONS(model_type='linear_reg', input_label_cols=['label_col']) AS + SELECT + input_col, + label_col + FROM + `#{@dataset.dataset_id}.#{table_id}` + " + job = bigquery.query_job create_model_sql + job.wait_until_done! + end + + after do + @bucket.files.each(&:delete) + @bucket.delete + end + + it "extracts a model to GCS" do + destination_uri = "gs://#{bucket_name}/extract-model-test-output" + assert_output(/Model extracted successfully/) do + export_model @dataset.dataset_id, model_id, destination_uri + end + + assert @bucket.files(prefix: "extract-model-test-output/").any?, + "Expected to find extracted model files in the bucket" + end +end diff --git a/google-cloud-bigquery/samples/snippets/acceptance/inserting_data_types_test.rb b/google-cloud-bigquery/samples/snippets/acceptance/inserting_data_types_test.rb new file mode 100644 index 000000000000..ade1f4009fb7 --- /dev/null +++ b/google-cloud-bigquery/samples/snippets/acceptance/inserting_data_types_test.rb @@ -0,0 +1,38 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require "google/cloud/bigquery" +require_relative "helper" +require_relative "../inserting_data_types" + +describe "Inserting data types" do + let(:bigquery) { Google::Cloud::Bigquery.new } + + before do + @dataset = create_temp_dataset + end + + it "inserts various data types into a table" do + table_id = "test_table_#{SecureRandom.hex 4}" + + assert_output "Rows successfully inserted into table\n" do + inserting_data_types @dataset.dataset_id, table_id + end + + table = @dataset.table table_id + assert table + assert_equal 1, table.data.all.count + table.delete + end +end diff --git a/google-cloud-bigquery/samples/snippets/create_table_range_partitioned.rb b/google-cloud-bigquery/samples/snippets/create_table_range_partitioned.rb new file mode 100644 index 000000000000..1626359cc6df --- /dev/null +++ b/google-cloud-bigquery/samples/snippets/create_table_range_partitioned.rb @@ -0,0 +1,42 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START bigquery_create_table_range_partitioned] +require "google/cloud/bigquery" + +## +# Creates a table with range partitioning. +# +# @param dataset_id [String] The ID of the dataset to create the table in. +# @param table_id [String] The ID of the table to create. +def create_range_partitioned_table dataset_id, table_id + bigquery = Google::Cloud::Bigquery.new + dataset = bigquery.dataset dataset_id + + table = dataset.create_table table_id do |t| + t.schema do |s| + s.integer "integerField", mode: :required + s.string "stringField", mode: :nullable + s.boolean "booleanField", mode: :nullable + s.date "dateField", mode: :nullable + end + t.range_partitioning_field = "integerField" + t.range_partitioning_start = 1 + t.range_partitioning_interval = 2 + t.range_partitioning_end = 10 + end + + puts "Created range-partitioned table: #{table.table_id}" +end +# [END bigquery_create_table_range_partitioned] diff --git a/google-cloud-bigquery/samples/snippets/export_model.rb b/google-cloud-bigquery/samples/snippets/export_model.rb new file mode 100644 index 000000000000..58eabc0eb2d7 --- /dev/null +++ b/google-cloud-bigquery/samples/snippets/export_model.rb @@ -0,0 +1,39 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START bigquery_export_model] +require "google/cloud/bigquery" + +## +# Exports a model to a Google Cloud Storage bucket. +# +# @param dataset_id [String] The ID of the dataset that contains the model. +# @param model_id [String] The ID of the model to export. +# @param destination_uri [String] The Google Cloud Storage bucket to export the model to. +def export_model dataset_id, model_id, destination_uri + bigquery = Google::Cloud::Bigquery.new + dataset = bigquery.dataset dataset_id + model = dataset.model model_id + + puts "Extracting model #{model.model_id} to #{destination_uri}" + job = model.extract_job destination_uri + job.wait_until_done! + + if job.failed? + puts "Error extracting model: #{job.error}" + else + puts "Model extracted successfully" + end +end +# [END bigquery_export_model] diff --git a/google-cloud-bigquery/samples/snippets/inserting_data_types.rb b/google-cloud-bigquery/samples/snippets/inserting_data_types.rb new file mode 100644 index 000000000000..023971d13b7d --- /dev/null +++ b/google-cloud-bigquery/samples/snippets/inserting_data_types.rb @@ -0,0 +1,74 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may 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. + +# [START bigquery_inserting_data_types] +require "google/cloud/bigquery" +require "base64" + +## +# Inserts a row with various data types into a table. +# +# @param dataset_id [String] The ID of the dataset to create the table in. +# @param table_id [String] The ID of the table to create. +def inserting_data_types dataset_id, table_id + bigquery = Google::Cloud::Bigquery.new + dataset = bigquery.dataset dataset_id + table = dataset.table table_id + + # Create the table if it doesn't exist. + unless table + dataset.create_table table_id do |t| + t.string "name" + t.integer "age" + t.bytes "school" + t.geography "location" + t.float "measurements", mode: :repeated + t.record "datesTime" do |s| + s.date "day" + s.datetime "firstTime" + s.time "secondTime" + s.timestamp "thirdTime" + end + end + table = dataset.table table_id + end + + dates_time_content = { + "day" => "2019-1-12", + "firstTime" => "2019-02-17 11:24:00.000", + "secondTime" => "14:00:00", + "thirdTime" => "2020-04-27T18:07:25.356Z" + } + + row_content = { + "name" => "Tom", + "age" => 30, + "school" => Base64.strict_encode64("Test University"), + "location" => "POINT(1 2)", + "measurements" => [50.05, 100.5], + "datesTime" => dates_time_content + } + + response = table.insert [row_content] + + if response.success? + puts "Rows successfully inserted into table" + else + puts "Insert operation not performed" + response.insert_errors.each do |error| + puts "Error: #{error.errors}" + end + end +end +# [END bigquery_inserting_data_types] diff --git a/google-cloud-bigquery/test/google/cloud/bigquery/dataset_attributes_test.rb b/google-cloud-bigquery/test/google/cloud/bigquery/dataset_attributes_test.rb index 85cfc563c7fd..7860ca6633b5 100644 --- a/google-cloud-bigquery/test/google/cloud/bigquery/dataset_attributes_test.rb +++ b/google-cloud-bigquery/test/google/cloud/bigquery/dataset_attributes_test.rb @@ -107,4 +107,16 @@ def self.attr_test attr, val attr_test :default_expiration, 999 attr_test :etag, "etag123456789" attr_test :api_url, "http://googleapi/bigquery/v2/projects/test-project/datasets/my_dataset" + + it "gets full data for default_collation" do + mock = Minitest::Mock.new + bigquery.service.mocked_service = mock + mock.expect :get_dataset, dataset_full_gapi, [project, dataset_id], access_policy_version: nil + + _(dataset.default_collation).must_equal "und:ci" + + # A second call to attribute does not make a second HTTP API call + _(dataset.default_collation).must_equal "und:ci" + mock.verify + end end diff --git a/google-cloud-bigquery/test/google/cloud/bigquery/routine/resource/routine_test.rb b/google-cloud-bigquery/test/google/cloud/bigquery/routine/resource/routine_test.rb index 92d7c54c383f..d114ee8586c6 100644 --- a/google-cloud-bigquery/test/google/cloud/bigquery/routine/resource/routine_test.rb +++ b/google-cloud-bigquery/test/google/cloud/bigquery/routine/resource/routine_test.rb @@ -436,4 +436,49 @@ expect { r.refresh! }.must_raise RuntimeError end end + + it "returns nil for remote function options when not present" do + _(routine.remote_function_options).must_be_nil + end + + it "has default remote function options when the object is present but empty" do + routine_hash_with_options = routine_hash.dup + routine_hash_with_options["remoteFunctionOptions"] = {} + routine_with_options_gapi = Google::Apis::BigqueryV2::Routine.from_json routine_hash_with_options.to_json + routine_with_options = Google::Cloud::Bigquery::Routine.from_gapi routine_with_options_gapi, bigquery.service + + _(routine_with_options.remote_function_options).wont_be_nil + _(routine_with_options.remote_function_options.endpoint).must_equal "" + _(routine_with_options.remote_function_options.connection).must_equal "" + _(routine_with_options.remote_function_options.user_defined_context).must_equal({}) + _(routine_with_options.remote_function_options.max_batching_rows).must_equal 0 + end + + it "allows setting remote function option properties to nil" do + routine_hash_with_options = routine_hash.dup + routine_hash_with_options["remoteFunctionOptions"] = { + endpoint: "https://example.com", + connection: "projects/p/locations/l/connections/c", + userDefinedContext: { "foo" => "bar" }, + maxBatchingRows: 100 + } + routine_with_options_gapi = Google::Apis::BigqueryV2::Routine.from_json routine_hash_with_options.to_json + routine_with_options = Google::Cloud::Bigquery::Routine.from_gapi routine_with_options_gapi, bigquery.service + + _(routine_with_options.remote_function_options).wont_be_nil + _(routine_with_options.remote_function_options.endpoint).wont_be :empty? + _(routine_with_options.remote_function_options.connection).wont_be :empty? + _(routine_with_options.remote_function_options.user_defined_context).wont_be :empty? + _(routine_with_options.remote_function_options.max_batching_rows).wont_equal 0 + + routine_with_options.remote_function_options.endpoint = nil + routine_with_options.remote_function_options.connection = nil + routine_with_options.remote_function_options.user_defined_context = nil + routine_with_options.remote_function_options.max_batching_rows = nil + + _(routine_with_options.remote_function_options.endpoint).must_equal "" + _(routine_with_options.remote_function_options.connection).must_equal "" + _(routine_with_options.remote_function_options.user_defined_context).must_equal({}) + _(routine_with_options.remote_function_options.max_batching_rows).must_equal 0 + end end diff --git a/google-cloud-bigquery/test/google/cloud/bigquery/table_attributes_test.rb b/google-cloud-bigquery/test/google/cloud/bigquery/table_attributes_test.rb index 6eeb13c72c0a..04bfc3955b19 100644 --- a/google-cloud-bigquery/test/google/cloud/bigquery/table_attributes_test.rb +++ b/google-cloud-bigquery/test/google/cloud/bigquery/table_attributes_test.rb @@ -134,4 +134,17 @@ def self.attr_test attr, val attr_test :buffer_bytes, 2000 attr_test :buffer_rows, 200 + it "gets full data for default_collation" do + mock = Minitest::Mock.new + mock.expect :get_table, table_full_gapi, + [table.project_id, table.dataset_id, table.table_id], **patch_table_args + table.service.mocked_service = mock + + _(table.default_collation).must_equal "und:ci" + + mock.verify + + # A second call to attribute does not make a second HTTP API call + table.default_collation + end end diff --git a/google-cloud-bigquery/test/google/cloud/bigquery/table_schema_test.rb b/google-cloud-bigquery/test/google/cloud/bigquery/table_schema_test.rb index 80417867374a..81e92de581c1 100644 --- a/google-cloud-bigquery/test/google/cloud/bigquery/table_schema_test.rb +++ b/google-cloud-bigquery/test/google/cloud/bigquery/table_schema_test.rb @@ -421,4 +421,32 @@ _(table.schema.fields.map(&:default_value_expression)).must_be :==, [field_string_required_gapi_default.default_value_expression] end + + it "sets the collation on a string field" do + mock = Minitest::Mock.new + field_string_collation_gapi = Google::Apis::BigqueryV2::TableFieldSchema.new( + name: "first_name", + type: "STRING", + mode: "REQUIRED", + collation: "und:ci", + description: nil, + fields: [] + ) + new_schema_gapi = Google::Apis::BigqueryV2::TableSchema.new( + fields: [field_string_collation_gapi]) + returned_table_gapi = table_gapi.dup + returned_table_gapi.schema = new_schema_gapi + patch_table_gapi = Google::Apis::BigqueryV2::Table.new schema: new_schema_gapi, etag: etag + mock.expect :patch_table, returned_table_gapi, + [table.project_id, table.dataset_id, table.table_id, patch_table_gapi], options: {header: {"If-Match" => etag}} + table.service.mocked_service = mock + + table.schema replace: true do |schema| + schema.string "first_name", mode: :required, collation: "und:ci" + end + + mock.verify + + _(table.schema.field("first_name").collation).must_equal "und:ci" + end end diff --git a/google-cloud-bigquery/test/helper.rb b/google-cloud-bigquery/test/helper.rb index 831da5b7ea6a..6e0bef26c7a1 100644 --- a/google-cloud-bigquery/test/helper.rb +++ b/google-cloud-bigquery/test/helper.rb @@ -84,6 +84,7 @@ def random_dataset_hash id = nil, name = nil, description = nil, default_expirat "friendlyName" => name, "description" => description, "defaultTableExpirationMs" => default_expiration, + "defaultCollation" => "und:ci", "access" => [], "creationTime" => time_millis, "lastModifiedTime" => time_millis, @@ -275,6 +276,7 @@ def random_table_hash dataset, id = nil, name = nil, description = nil, project_ "lastModifiedTime" => time_millis, "location" => "US", "labels" => { "foo" => "bar" }, + "defaultCollation" => "und:ci", "streamingBuffer" => { "estimatedBytes" => "2000", # String per google/google-api-ruby-client "estimatedRows" => "200", # String per google/google-api-ruby-client diff --git a/google-cloud-bigtable-admin-v2/CHANGELOG.md b/google-cloud-bigtable-admin-v2/CHANGELOG.md index 776d38441e55..87987ca2b916 100644 --- a/google-cloud-bigtable-admin-v2/CHANGELOG.md +++ b/google-cloud-bigtable-admin-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.13.0 (2025-08-26) #### Features diff --git a/google-cloud-bigtable-admin-v2/google-cloud-bigtable-admin-v2.gemspec b/google-cloud-bigtable-admin-v2/google-cloud-bigtable-admin-v2.gemspec index 4d2cc91f6e6b..1ac104c940dd 100644 --- a/google-cloud-bigtable-admin-v2/google-cloud-bigtable-admin-v2.gemspec +++ b/google-cloud-bigtable-admin-v2/google-cloud-bigtable-admin-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-bigtable-admin-v2/lib/google/cloud/bigtable/admin/v2/version.rb b/google-cloud-bigtable-admin-v2/lib/google/cloud/bigtable/admin/v2/version.rb index f2fe10b52886..47ae92c066d4 100644 --- a/google-cloud-bigtable-admin-v2/lib/google/cloud/bigtable/admin/v2/version.rb +++ b/google-cloud-bigtable-admin-v2/lib/google/cloud/bigtable/admin/v2/version.rb @@ -22,7 +22,7 @@ module Cloud module Bigtable module Admin module V2 - VERSION = "1.13.0" + VERSION = "1.14.0" end end end diff --git a/google-cloud-bigtable-admin-v2/snippets/snippet_metadata_google.bigtable.admin.v2.json b/google-cloud-bigtable-admin-v2/snippets/snippet_metadata_google.bigtable.admin.v2.json index 54e64eb02b34..e2a30c3790f1 100644 --- a/google-cloud-bigtable-admin-v2/snippets/snippet_metadata_google.bigtable.admin.v2.json +++ b/google-cloud-bigtable-admin-v2/snippets/snippet_metadata_google.bigtable.admin.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigtable-admin-v2", - "version": "1.13.0", + "version": "1.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-bigtable-v2/CHANGELOG.md b/google-cloud-bigtable-v2/CHANGELOG.md index 541260f5e99e..baac60df41a7 100644 --- a/google-cloud-bigtable-v2/CHANGELOG.md +++ b/google-cloud-bigtable-v2/CHANGELOG.md @@ -1,5 +1,12 @@ # Release History +### 1.10.0 (2025-09-11) + +#### Features + +* Add encodings for STRUCT and the Timestamp type +* Add Type API updates needed to support structured keys in materialized views ([#30990](https://github.com/googleapis/google-cloud-ruby/issues/30990)) + ### 1.9.0 (2025-08-18) #### Features diff --git a/google-cloud-bigtable-v2/google-cloud-bigtable-v2.gemspec b/google-cloud-bigtable-v2/google-cloud-bigtable-v2.gemspec index 234ab6616450..b529402540dd 100644 --- a/google-cloud-bigtable-v2/google-cloud-bigtable-v2.gemspec +++ b/google-cloud-bigtable-v2/google-cloud-bigtable-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-bigtable-v2/lib/google/bigtable/v2/types_pb.rb b/google-cloud-bigtable-v2/lib/google/bigtable/v2/types_pb.rb index 1fc882dc15be..57725fc69bca 100644 --- a/google-cloud-bigtable-v2/lib/google/bigtable/v2/types_pb.rb +++ b/google-cloud-bigtable-v2/lib/google/bigtable/v2/types_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n\x1egoogle/bigtable/v2/types.proto\x12\x12google.bigtable.v2\x1a\x1fgoogle/api/field_behavior.proto\"\xb8\x12\n\x04Type\x12\x34\n\nbytes_type\x18\x01 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.BytesH\x00\x12\x36\n\x0bstring_type\x18\x02 \x01(\x0b\x32\x1f.google.bigtable.v2.Type.StringH\x00\x12\x34\n\nint64_type\x18\x05 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.Int64H\x00\x12\x38\n\x0c\x66loat32_type\x18\x0c \x01(\x0b\x32 .google.bigtable.v2.Type.Float32H\x00\x12\x38\n\x0c\x66loat64_type\x18\t \x01(\x0b\x32 .google.bigtable.v2.Type.Float64H\x00\x12\x32\n\tbool_type\x18\x08 \x01(\x0b\x32\x1d.google.bigtable.v2.Type.BoolH\x00\x12<\n\x0etimestamp_type\x18\n \x01(\x0b\x32\".google.bigtable.v2.Type.TimestampH\x00\x12\x32\n\tdate_type\x18\x0b \x01(\x0b\x32\x1d.google.bigtable.v2.Type.DateH\x00\x12<\n\x0e\x61ggregate_type\x18\x06 \x01(\x0b\x32\".google.bigtable.v2.Type.AggregateH\x00\x12\x36\n\x0bstruct_type\x18\x07 \x01(\x0b\x32\x1f.google.bigtable.v2.Type.StructH\x00\x12\x34\n\narray_type\x18\x03 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.ArrayH\x00\x12\x30\n\x08map_type\x18\x04 \x01(\x0b\x32\x1c.google.bigtable.v2.Type.MapH\x00\x12\x34\n\nproto_type\x18\r \x01(\x0b\x32\x1e.google.bigtable.v2.Type.ProtoH\x00\x12\x32\n\tenum_type\x18\x0e \x01(\x0b\x32\x1d.google.bigtable.v2.Type.EnumH\x00\x1a\x9d\x01\n\x05\x42ytes\x12\x39\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Bytes.Encoding\x1aY\n\x08\x45ncoding\x12:\n\x03raw\x18\x01 \x01(\x0b\x32+.google.bigtable.v2.Type.Bytes.Encoding.RawH\x00\x1a\x05\n\x03RawB\n\n\x08\x65ncoding\x1a\x8d\x02\n\x06String\x12:\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32(.google.bigtable.v2.Type.String.Encoding\x1a\xc6\x01\n\x08\x45ncoding\x12H\n\x08utf8_raw\x18\x01 \x01(\x0b\x32\x30.google.bigtable.v2.Type.String.Encoding.Utf8RawB\x02\x18\x01H\x00\x12H\n\nutf8_bytes\x18\x02 \x01(\x0b\x32\x32.google.bigtable.v2.Type.String.Encoding.Utf8BytesH\x00\x1a\r\n\x07Utf8Raw:\x02\x18\x01\x1a\x0b\n\tUtf8BytesB\n\n\x08\x65ncoding\x1a\xf5\x01\n\x05Int64\x12\x39\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Int64.Encoding\x1a\xb0\x01\n\x08\x45ncoding\x12R\n\x10\x62ig_endian_bytes\x18\x01 \x01(\x0b\x32\x36.google.bigtable.v2.Type.Int64.Encoding.BigEndianBytesH\x00\x1a\x44\n\x0e\x42igEndianBytes\x12\x32\n\nbytes_type\x18\x01 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.BytesB\n\n\x08\x65ncoding\x1a\x06\n\x04\x42ool\x1a\t\n\x07\x46loat32\x1a\t\n\x07\x46loat64\x1a\x0b\n\tTimestamp\x1a\x06\n\x04\x44\x61te\x1a\x84\x01\n\x06Struct\x12\x35\n\x06\x66ields\x18\x01 \x03(\x0b\x32%.google.bigtable.v2.Type.Struct.Field\x1a\x43\n\x05\x46ield\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12&\n\x04type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a\x37\n\x05Proto\x12\x18\n\x10schema_bundle_id\x18\x01 \x01(\t\x12\x14\n\x0cmessage_name\x18\x02 \x01(\t\x1a\x33\n\x04\x45num\x12\x18\n\x10schema_bundle_id\x18\x01 \x01(\t\x12\x11\n\tenum_name\x18\x02 \x01(\t\x1a\x37\n\x05\x41rray\x12.\n\x0c\x65lement_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a_\n\x03Map\x12*\n\x08key_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12,\n\nvalue_type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a\xb7\x03\n\tAggregate\x12,\n\ninput_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12\x31\n\nstate_type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.TypeB\x03\xe0\x41\x03\x12\x35\n\x03sum\x18\x04 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.SumH\x00\x12_\n\x12hllpp_unique_count\x18\x05 \x01(\x0b\x32\x41.google.bigtable.v2.Type.Aggregate.HyperLogLogPlusPlusUniqueCountH\x00\x12\x35\n\x03max\x18\x06 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.MaxH\x00\x12\x35\n\x03min\x18\x07 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.MinH\x00\x1a\x05\n\x03Sum\x1a\x05\n\x03Max\x1a\x05\n\x03Min\x1a \n\x1eHyperLogLogPlusPlusUniqueCountB\x0c\n\naggregatorB\x06\n\x04kindB\xb4\x01\n\x16\x63om.google.bigtable.v2B\nTypesProtoP\x01Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2b\x06proto3" +descriptor_data = "\n\x1egoogle/bigtable/v2/types.proto\x12\x12google.bigtable.v2\x1a\x1fgoogle/api/field_behavior.proto\"\x87\x18\n\x04Type\x12\x34\n\nbytes_type\x18\x01 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.BytesH\x00\x12\x36\n\x0bstring_type\x18\x02 \x01(\x0b\x32\x1f.google.bigtable.v2.Type.StringH\x00\x12\x34\n\nint64_type\x18\x05 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.Int64H\x00\x12\x38\n\x0c\x66loat32_type\x18\x0c \x01(\x0b\x32 .google.bigtable.v2.Type.Float32H\x00\x12\x38\n\x0c\x66loat64_type\x18\t \x01(\x0b\x32 .google.bigtable.v2.Type.Float64H\x00\x12\x32\n\tbool_type\x18\x08 \x01(\x0b\x32\x1d.google.bigtable.v2.Type.BoolH\x00\x12<\n\x0etimestamp_type\x18\n \x01(\x0b\x32\".google.bigtable.v2.Type.TimestampH\x00\x12\x32\n\tdate_type\x18\x0b \x01(\x0b\x32\x1d.google.bigtable.v2.Type.DateH\x00\x12<\n\x0e\x61ggregate_type\x18\x06 \x01(\x0b\x32\".google.bigtable.v2.Type.AggregateH\x00\x12\x36\n\x0bstruct_type\x18\x07 \x01(\x0b\x32\x1f.google.bigtable.v2.Type.StructH\x00\x12\x34\n\narray_type\x18\x03 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.ArrayH\x00\x12\x30\n\x08map_type\x18\x04 \x01(\x0b\x32\x1c.google.bigtable.v2.Type.MapH\x00\x12\x34\n\nproto_type\x18\r \x01(\x0b\x32\x1e.google.bigtable.v2.Type.ProtoH\x00\x12\x32\n\tenum_type\x18\x0e \x01(\x0b\x32\x1d.google.bigtable.v2.Type.EnumH\x00\x1a\xb3\x01\n\x05\x42ytes\x12\x39\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Bytes.Encoding\x1ao\n\x08\x45ncoding\x12:\n\x03raw\x18\x01 \x01(\x0b\x32+.google.bigtable.v2.Type.Bytes.Encoding.RawH\x00\x1a\x1b\n\x03Raw\x12\x14\n\x0c\x65scape_nulls\x18\x01 \x01(\x08\x42\n\n\x08\x65ncoding\x1a\xa7\x02\n\x06String\x12:\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32(.google.bigtable.v2.Type.String.Encoding\x1a\xe0\x01\n\x08\x45ncoding\x12H\n\x08utf8_raw\x18\x01 \x01(\x0b\x32\x30.google.bigtable.v2.Type.String.Encoding.Utf8RawB\x02\x18\x01H\x00\x12H\n\nutf8_bytes\x18\x02 \x01(\x0b\x32\x32.google.bigtable.v2.Type.String.Encoding.Utf8BytesH\x00\x1a\r\n\x07Utf8Raw:\x02\x18\x01\x1a%\n\tUtf8Bytes\x12\x18\n\x10null_escape_char\x18\x01 \x01(\tB\n\n\x08\x65ncoding\x1a\xe5\x02\n\x05Int64\x12\x39\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Int64.Encoding\x1a\xa0\x02\n\x08\x45ncoding\x12R\n\x10\x62ig_endian_bytes\x18\x01 \x01(\x0b\x32\x36.google.bigtable.v2.Type.Int64.Encoding.BigEndianBytesH\x00\x12V\n\x12ordered_code_bytes\x18\x02 \x01(\x0b\x32\x38.google.bigtable.v2.Type.Int64.Encoding.OrderedCodeBytesH\x00\x1aH\n\x0e\x42igEndianBytes\x12\x36\n\nbytes_type\x18\x01 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.BytesB\x02\x18\x01\x1a\x12\n\x10OrderedCodeBytesB\n\n\x08\x65ncoding\x1a\x06\n\x04\x42ool\x1a\t\n\x07\x46loat32\x1a\t\n\x07\x46loat64\x1a\xa8\x01\n\tTimestamp\x12=\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32+.google.bigtable.v2.Type.Timestamp.Encoding\x1a\\\n\x08\x45ncoding\x12\x44\n\x11unix_micros_int64\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Int64.EncodingH\x00\x42\n\n\x08\x65ncoding\x1a\x06\n\x04\x44\x61te\x1a\x95\x04\n\x06Struct\x12\x35\n\x06\x66ields\x18\x01 \x03(\x0b\x32%.google.bigtable.v2.Type.Struct.Field\x12:\n\x08\x65ncoding\x18\x02 \x01(\x0b\x32(.google.bigtable.v2.Type.Struct.Encoding\x1a\x43\n\x05\x46ield\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12&\n\x04type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a\xd2\x02\n\x08\x45ncoding\x12G\n\tsingleton\x18\x01 \x01(\x0b\x32\x32.google.bigtable.v2.Type.Struct.Encoding.SingletonH\x00\x12R\n\x0f\x64\x65limited_bytes\x18\x02 \x01(\x0b\x32\x37.google.bigtable.v2.Type.Struct.Encoding.DelimitedBytesH\x00\x12W\n\x12ordered_code_bytes\x18\x03 \x01(\x0b\x32\x39.google.bigtable.v2.Type.Struct.Encoding.OrderedCodeBytesH\x00\x1a\x0b\n\tSingleton\x1a#\n\x0e\x44\x65limitedBytes\x12\x11\n\tdelimiter\x18\x01 \x01(\x0c\x1a\x12\n\x10OrderedCodeBytesB\n\n\x08\x65ncoding\x1a\x37\n\x05Proto\x12\x18\n\x10schema_bundle_id\x18\x01 \x01(\t\x12\x14\n\x0cmessage_name\x18\x02 \x01(\t\x1a\x33\n\x04\x45num\x12\x18\n\x10schema_bundle_id\x18\x01 \x01(\t\x12\x11\n\tenum_name\x18\x02 \x01(\t\x1a\x37\n\x05\x41rray\x12.\n\x0c\x65lement_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a_\n\x03Map\x12*\n\x08key_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12,\n\nvalue_type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a\xb7\x03\n\tAggregate\x12,\n\ninput_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12\x31\n\nstate_type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.TypeB\x03\xe0\x41\x03\x12\x35\n\x03sum\x18\x04 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.SumH\x00\x12_\n\x12hllpp_unique_count\x18\x05 \x01(\x0b\x32\x41.google.bigtable.v2.Type.Aggregate.HyperLogLogPlusPlusUniqueCountH\x00\x12\x35\n\x03max\x18\x06 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.MaxH\x00\x12\x35\n\x03min\x18\x07 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.MinH\x00\x1a\x05\n\x03Sum\x1a\x05\n\x03Max\x1a\x05\n\x03Min\x1a \n\x1eHyperLogLogPlusPlusUniqueCountB\x0c\n\naggregatorB\x06\n\x04kindB\xb4\x01\n\x16\x63om.google.bigtable.v2B\nTypesProtoP\x01Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -48,13 +48,19 @@ module V2 Type::Int64 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Int64").msgclass Type::Int64::Encoding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Int64.Encoding").msgclass Type::Int64::Encoding::BigEndianBytes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Int64.Encoding.BigEndianBytes").msgclass + Type::Int64::Encoding::OrderedCodeBytes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Int64.Encoding.OrderedCodeBytes").msgclass Type::Bool = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Bool").msgclass Type::Float32 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Float32").msgclass Type::Float64 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Float64").msgclass Type::Timestamp = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Timestamp").msgclass + Type::Timestamp::Encoding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Timestamp.Encoding").msgclass Type::Date = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Date").msgclass Type::Struct = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Struct").msgclass Type::Struct::Field = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Struct.Field").msgclass + Type::Struct::Encoding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Struct.Encoding").msgclass + Type::Struct::Encoding::Singleton = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Struct.Encoding.Singleton").msgclass + Type::Struct::Encoding::DelimitedBytes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Struct.Encoding.DelimitedBytes").msgclass + Type::Struct::Encoding::OrderedCodeBytes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Struct.Encoding.OrderedCodeBytes").msgclass Type::Proto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Proto").msgclass Type::Enum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Enum").msgclass Type::Array = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.bigtable.v2.Type.Array").msgclass diff --git a/google-cloud-bigtable-v2/lib/google/cloud/bigtable/v2/version.rb b/google-cloud-bigtable-v2/lib/google/cloud/bigtable/v2/version.rb index 75572c73d4f4..9d5340d7a017 100644 --- a/google-cloud-bigtable-v2/lib/google/cloud/bigtable/v2/version.rb +++ b/google-cloud-bigtable-v2/lib/google/cloud/bigtable/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Bigtable module V2 - VERSION = "1.9.0" + VERSION = "1.10.0" end end end diff --git a/google-cloud-bigtable-v2/proto_docs/google/bigtable/v2/types.rb b/google-cloud-bigtable-v2/proto_docs/google/bigtable/v2/types.rb index c8d6b5c3bd9a..2593cd317066 100644 --- a/google-cloud-bigtable-v2/proto_docs/google/bigtable/v2/types.rb +++ b/google-cloud-bigtable-v2/proto_docs/google/bigtable/v2/types.rb @@ -26,25 +26,23 @@ module V2 # familiarity and consistency across products and features. # # For compatibility with Bigtable's existing untyped APIs, each `Type` includes - # an `Encoding` which describes how to convert to/from the underlying data. + # an `Encoding` which describes how to convert to or from the underlying data. # - # Each encoding also defines the following properties: + # Each encoding can operate in one of two modes: # - # * Order-preserving: Does the encoded value sort consistently with the - # original typed value? Note that Bigtable will always sort data based on - # the raw encoded value, *not* the decoded type. - # - Example: BYTES values sort in the same order as their raw encodings. - # - Counterexample: Encoding INT64 as a fixed-width decimal string does - # *not* preserve sort order when dealing with negative numbers. - # `INT64(1) > INT64(-1)`, but `STRING("-00001") > STRING("00001)`. - # * Self-delimiting: If we concatenate two encoded values, can we always tell - # where the first one ends and the second one begins? - # - Example: If we encode INT64s to fixed-width STRINGs, the first value - # will always contain exactly N digits, possibly preceded by a sign. - # - Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have - # no way to tell where the first one ends. - # * Compatibility: Which other systems have matching encoding schemes? For - # example, does this encoding have a GoogleSQL equivalent? HBase? Java? + # - Sorted: In this mode, Bigtable guarantees that `Encode(X) <= Encode(Y)` + # if and only if `X <= Y`. This is useful anywhere sort order is important, + # for example when encoding keys. + # - Distinct: In this mode, Bigtable guarantees that if `X != Y` then + # `Encode(X) != Encode(Y)`. However, the converse is not guaranteed. For + # example, both `{'foo': '1', 'bar': '2'}` and `{'bar': '2', 'foo': '1'}` + # are valid encodings of the same JSON value. + # + # The API clearly documents which mode is used wherever an encoding can be + # configured. Each encoding also documents which values are supported in which + # modes. For example, when encoding INT64 as a numeric STRING, negative numbers + # cannot be encoded in sorted mode. This is because `INT64(1) > INT64(-1)`, but + # `STRING("-00001") > STRING("00001")`. # @!attribute [rw] bytes_type # @return [::Google::Cloud::Bigtable::V2::Type::Bytes] # Bytes @@ -123,12 +121,12 @@ class Type # Values of type `Bytes` are stored in `Value.bytes_value`. # @!attribute [rw] encoding # @return [::Google::Cloud::Bigtable::V2::Type::Bytes::Encoding] - # The encoding to use when converting to/from lower level types. + # The encoding to use when converting to or from lower level types. class Bytes include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Rules used to convert to/from lower level types. + # Rules used to convert to or from lower level types. # @!attribute [rw] raw # @return [::Google::Cloud::Bigtable::V2::Type::Bytes::Encoding::Raw] # Use `Raw` encoding. @@ -136,10 +134,17 @@ class Encoding include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Leaves the value "as-is" - # * Order-preserving? Yes - # * Self-delimiting? No - # * Compatibility? N/A + # Leaves the value as-is. + # + # Sorted mode: all values are supported. + # + # Distinct mode: all values are supported. + # @!attribute [rw] escape_nulls + # @return [::Boolean] + # If set, allows NULL values to be encoded as the empty string "". + # + # The actual empty string, or any value which only contains the + # null byte `0x00`, has one more null byte appended. class Raw include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -151,12 +156,12 @@ class Raw # Values of type `String` are stored in `Value.string_value`. # @!attribute [rw] encoding # @return [::Google::Cloud::Bigtable::V2::Type::String::Encoding] - # The encoding to use when converting to/from lower level types. + # The encoding to use when converting to or from lower level types. class String include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Rules used to convert to/from lower level types. + # Rules used to convert to or from lower level types. # @!attribute [rw] utf8_raw # @deprecated This field is deprecated and may be removed in the next major version update. # @return [::Google::Cloud::Bigtable::V2::Type::String::Encoding::Utf8Raw] @@ -179,13 +184,32 @@ class Utf8Raw extend ::Google::Protobuf::MessageExts::ClassMethods end - # UTF-8 encoding - # * Order-preserving? Yes (code point order) - # * Self-delimiting? No - # * Compatibility? - # - BigQuery Federation `TEXT` encoding - # - HBase `Bytes.toBytes` - # - Java `String#getBytes(StandardCharsets.UTF_8)` + # UTF-8 encoding. + # + # Sorted mode: + # - All values are supported. + # - Code point order is preserved. + # + # Distinct mode: all values are supported. + # + # Compatible with: + # + # - BigQuery `TEXT` encoding + # - HBase `Bytes.toBytes` + # - Java `String#getBytes(StandardCharsets.UTF_8)` + # @!attribute [rw] null_escape_char + # @return [::String] + # Single-character escape sequence used to support NULL values. + # + # If set, allows NULL values to be encoded as the empty string "". + # + # The actual empty string, or any value where every character equals + # `null_escape_char`, has one more `null_escape_char` appended. + # + # If `null_escape_char` is set and does not equal the ASCII null + # character `0x00`, then the encoding will not support sorted mode. + # + # . class Utf8Bytes include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -197,34 +221,56 @@ class Utf8Bytes # Values of type `Int64` are stored in `Value.int_value`. # @!attribute [rw] encoding # @return [::Google::Cloud::Bigtable::V2::Type::Int64::Encoding] - # The encoding to use when converting to/from lower level types. + # The encoding to use when converting to or from lower level types. class Int64 include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Rules used to convert to/from lower level types. + # Rules used to convert to or from lower level types. # @!attribute [rw] big_endian_bytes # @return [::Google::Cloud::Bigtable::V2::Type::Int64::Encoding::BigEndianBytes] # Use `BigEndianBytes` encoding. + # + # Note: The following fields are mutually exclusive: `big_endian_bytes`, `ordered_code_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] ordered_code_bytes + # @return [::Google::Cloud::Bigtable::V2::Type::Int64::Encoding::OrderedCodeBytes] + # Use `OrderedCodeBytes` encoding. + # + # Note: The following fields are mutually exclusive: `ordered_code_bytes`, `big_endian_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared. class Encoding include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Encodes the value as an 8-byte big endian twos complement `Bytes` - # value. - # * Order-preserving? No (positive values only) - # * Self-delimiting? Yes - # * Compatibility? - # - BigQuery Federation `BINARY` encoding - # - HBase `Bytes.toBytes` - # - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN` + # Encodes the value as an 8-byte big-endian two's complement value. + # + # Sorted mode: non-negative values are supported. + # + # Distinct mode: all values are supported. + # + # Compatible with: + # + # - BigQuery `BINARY` encoding + # - HBase `Bytes.toBytes` + # - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN` # @!attribute [rw] bytes_type + # @deprecated This field is deprecated and may be removed in the next major version update. # @return [::Google::Cloud::Bigtable::V2::Type::Bytes] # Deprecated: ignored if set. class BigEndianBytes include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Encodes the value in a variable length binary format of up to 10 bytes. + # Values that are closer to zero use fewer bytes. + # + # Sorted mode: all values are supported. + # + # Distinct mode: all values are supported. + class OrderedCodeBytes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end end @@ -251,9 +297,26 @@ class Float64 # Timestamp # Values of type `Timestamp` are stored in `Value.timestamp_value`. + # @!attribute [rw] encoding + # @return [::Google::Cloud::Bigtable::V2::Type::Timestamp::Encoding] + # The encoding to use when converting to or from lower level types. class Timestamp include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # Rules used to convert to or from lower level types. + # @!attribute [rw] unix_micros_int64 + # @return [::Google::Cloud::Bigtable::V2::Type::Int64::Encoding] + # Encodes the number of microseconds since the Unix epoch using the + # given `Int64` encoding. Values must be microsecond-aligned. + # + # Compatible with: + # + # - Java `Instant.truncatedTo()` with `ChronoUnit.MICROS` + class Encoding + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end # Date @@ -270,6 +333,9 @@ class Date # @!attribute [rw] fields # @return [::Array<::Google::Cloud::Bigtable::V2::Type::Struct::Field>] # The names and types of the fields in this struct. + # @!attribute [rw] encoding + # @return [::Google::Cloud::Bigtable::V2::Type::Struct::Encoding] + # The encoding to use when converting to or from lower level types. class Struct include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -286,6 +352,107 @@ class Field include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Rules used to convert to or from lower level types. + # @!attribute [rw] singleton + # @return [::Google::Cloud::Bigtable::V2::Type::Struct::Encoding::Singleton] + # Use `Singleton` encoding. + # + # Note: The following fields are mutually exclusive: `singleton`, `delimited_bytes`, `ordered_code_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] delimited_bytes + # @return [::Google::Cloud::Bigtable::V2::Type::Struct::Encoding::DelimitedBytes] + # Use `DelimitedBytes` encoding. + # + # Note: The following fields are mutually exclusive: `delimited_bytes`, `singleton`, `ordered_code_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] ordered_code_bytes + # @return [::Google::Cloud::Bigtable::V2::Type::Struct::Encoding::OrderedCodeBytes] + # User `OrderedCodeBytes` encoding. + # + # Note: The following fields are mutually exclusive: `ordered_code_bytes`, `singleton`, `delimited_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class Encoding + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Uses the encoding of `fields[0].type` as-is. + # Only valid if `fields.size == 1`. + class Singleton + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Fields are encoded independently and concatenated with a configurable + # `delimiter` in between. + # + # A struct with no fields defined is encoded as a single `delimiter`. + # + # Sorted mode: + # + # - Fields are encoded in sorted mode. + # - Encoded field values must not contain any bytes <= `delimiter[0]` + # - Element-wise order is preserved: `A < B` if `A[0] < B[0]`, or if + # `A[0] == B[0] && A[1] < B[1]`, etc. Strict prefixes sort first. + # + # Distinct mode: + # + # - Fields are encoded in distinct mode. + # - Encoded field values must not contain `delimiter[0]`. + # @!attribute [rw] delimiter + # @return [::String] + # Byte sequence used to delimit concatenated fields. The delimiter must + # contain at least 1 character and at most 50 characters. + class DelimitedBytes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Fields are encoded independently and concatenated with the fixed byte + # pair `{0x00, 0x01}` in between. + # + # Any null `(0x00)` byte in an encoded field is replaced by the fixed + # byte pair `{0x00, 0xFF}`. + # + # Fields that encode to the empty string "" have special handling: + # + # - If *every* field encodes to "", or if the STRUCT has no fields + # defined, then the STRUCT is encoded as the fixed byte pair + # `{0x00, 0x00}`. + # - Otherwise, the STRUCT only encodes until the last non-empty field, + # omitting any trailing empty fields. Any empty fields that aren't + # omitted are replaced with the fixed byte pair `{0x00, 0x00}`. + # + # Examples: + # + # ``` + # - STRUCT() -> "\00\00" + # - STRUCT("") -> "\00\00" + # - STRUCT("", "") -> "\00\00" + # - STRUCT("", "B") -> "\00\00" + "\00\01" + "B" + # - STRUCT("A", "") -> "A" + # - STRUCT("", "B", "") -> "\00\00" + "\00\01" + "B" + # - STRUCT("A", "", "C") -> "A" + "\00\01" + "\00\00" + "\00\01" + "C" + # ``` + # + # + # Since null bytes are always escaped, this encoding can cause size + # blowup for encodings like `Int64.BigEndianBytes` that are likely to + # produce many such bytes. + # + # Sorted mode: + # + # - Fields are encoded in sorted mode. + # - All values supported by the field encodings are allowed + # - Element-wise order is preserved: `A < B` if `A[0] < B[0]`, or if + # `A[0] == B[0] && A[1] < B[1]`, etc. Strict prefixes sort first. + # + # Distinct mode: + # + # - Fields are encoded in distinct mode. + # - All values supported by the field encodings are allowed. + class OrderedCodeBytes + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end end # A protobuf message type. @@ -347,19 +514,18 @@ class Map # A value that combines incremental updates into a summarized value. # - # Data is never directly written or read using type `Aggregate`. Writes will - # provide either the `input_type` or `state_type`, and reads will always - # return the `state_type` . + # Data is never directly written or read using type `Aggregate`. Writes + # provide either the `input_type` or `state_type`, and reads always return + # the `state_type` . # @!attribute [rw] input_type # @return [::Google::Cloud::Bigtable::V2::Type] - # Type of the inputs that are accumulated by this `Aggregate`, which must - # specify a full encoding. + # Type of the inputs that are accumulated by this `Aggregate`. # Use `AddInput` mutations to accumulate new inputs. # @!attribute [r] state_type # @return [::Google::Cloud::Bigtable::V2::Type] # Output only. Type that holds the internal accumulator state for the # `Aggregate`. This is a function of the `input_type` and `aggregator` - # chosen, and will always specify a full encoding. + # chosen. # @!attribute [rw] sum # @return [::Google::Cloud::Bigtable::V2::Type::Aggregate::Sum] # Sum aggregator. diff --git a/google-cloud-bigtable-v2/snippets/snippet_metadata_google.bigtable.v2.json b/google-cloud-bigtable-v2/snippets/snippet_metadata_google.bigtable.v2.json index 970e284e95e3..45a4a0594148 100644 --- a/google-cloud-bigtable-v2/snippets/snippet_metadata_google.bigtable.v2.json +++ b/google-cloud-bigtable-v2/snippets/snippet_metadata_google.bigtable.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-bigtable-v2", - "version": "1.9.0", + "version": "1.10.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-billing-budgets-v1/CHANGELOG.md b/google-cloud-billing-budgets-v1/CHANGELOG.md index 55f5328e1185..96547f3c44f8 100644 --- a/google-cloud-billing-budgets-v1/CHANGELOG.md +++ b/google-cloud-billing-budgets-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-billing-budgets-v1/google-cloud-billing-budgets-v1.gemspec b/google-cloud-billing-budgets-v1/google-cloud-billing-budgets-v1.gemspec index c25efdb001f9..5b2a300a72fb 100644 --- a/google-cloud-billing-budgets-v1/google-cloud-billing-budgets-v1.gemspec +++ b/google-cloud-billing-budgets-v1/google-cloud-billing-budgets-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-billing-budgets-v1/lib/google/cloud/billing/budgets/v1/version.rb b/google-cloud-billing-budgets-v1/lib/google/cloud/billing/budgets/v1/version.rb index f5d753749e81..e9553f220e1e 100644 --- a/google-cloud-billing-budgets-v1/lib/google/cloud/billing/budgets/v1/version.rb +++ b/google-cloud-billing-budgets-v1/lib/google/cloud/billing/budgets/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Billing module Budgets module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-billing-budgets-v1/snippets/snippet_metadata_google.cloud.billing.budgets.v1.json b/google-cloud-billing-budgets-v1/snippets/snippet_metadata_google.cloud.billing.budgets.v1.json index 4179f46b1506..fbe8fe7c6977 100644 --- a/google-cloud-billing-budgets-v1/snippets/snippet_metadata_google.cloud.billing.budgets.v1.json +++ b/google-cloud-billing-budgets-v1/snippets/snippet_metadata_google.cloud.billing.budgets.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-billing-budgets-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-billing-budgets-v1beta1/CHANGELOG.md b/google-cloud-billing-budgets-v1beta1/CHANGELOG.md index d1a9749aa5db..e65997772d1d 100644 --- a/google-cloud-billing-budgets-v1beta1/CHANGELOG.md +++ b/google-cloud-billing-budgets-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.15.0 (2025-05-12) #### Features diff --git a/google-cloud-billing-budgets-v1beta1/google-cloud-billing-budgets-v1beta1.gemspec b/google-cloud-billing-budgets-v1beta1/google-cloud-billing-budgets-v1beta1.gemspec index 664e0110f86a..402ee5c2c42f 100644 --- a/google-cloud-billing-budgets-v1beta1/google-cloud-billing-budgets-v1beta1.gemspec +++ b/google-cloud-billing-budgets-v1beta1/google-cloud-billing-budgets-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-billing-budgets-v1beta1/lib/google/cloud/billing/budgets/v1beta1/version.rb b/google-cloud-billing-budgets-v1beta1/lib/google/cloud/billing/budgets/v1beta1/version.rb index bb5bda63241e..59c99b1e10b1 100644 --- a/google-cloud-billing-budgets-v1beta1/lib/google/cloud/billing/budgets/v1beta1/version.rb +++ b/google-cloud-billing-budgets-v1beta1/lib/google/cloud/billing/budgets/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module Billing module Budgets module V1beta1 - VERSION = "0.15.0" + VERSION = "0.16.0" end end end diff --git a/google-cloud-billing-budgets-v1beta1/snippets/snippet_metadata_google.cloud.billing.budgets.v1beta1.json b/google-cloud-billing-budgets-v1beta1/snippets/snippet_metadata_google.cloud.billing.budgets.v1beta1.json index 6f65a8639a0b..437f61eb9369 100644 --- a/google-cloud-billing-budgets-v1beta1/snippets/snippet_metadata_google.cloud.billing.budgets.v1beta1.json +++ b/google-cloud-billing-budgets-v1beta1/snippets/snippet_metadata_google.cloud.billing.budgets.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-billing-budgets-v1beta1", - "version": "0.15.0", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-billing-budgets/CHANGELOG.md b/google-cloud-billing-budgets/CHANGELOG.md index 76ef60517e57..64243dc3916d 100644 --- a/google-cloud-billing-budgets/CHANGELOG.md +++ b/google-cloud-billing-budgets/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 3.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 3.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-billing-budgets/README.md b/google-cloud-billing-budgets/README.md index da124f476ac7..bffd4d36ea37 100644 --- a/google-cloud-billing-budgets/README.md +++ b/google-cloud-billing-budgets/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/billingbudgets.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/billing/budgets" + +client = Google::Cloud::Billing::Budgets.budget_service +request = ::Google::Cloud::Billing::Budgets::V1::CreateBudgetRequest.new # (request fields as keyword arguments...) +response = client.create_budget request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-billing-budgets/lib/google/cloud/billing/budgets/version.rb b/google-cloud-billing-budgets/lib/google/cloud/billing/budgets/version.rb index 3cb6a7e00090..d98a05448c1f 100644 --- a/google-cloud-billing-budgets/lib/google/cloud/billing/budgets/version.rb +++ b/google-cloud-billing-budgets/lib/google/cloud/billing/budgets/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Billing module Budgets - VERSION = "3.0.1" + VERSION = "3.0.2" end end end diff --git a/google-cloud-billing-v1/CHANGELOG.md b/google-cloud-billing-v1/CHANGELOG.md index 4ab78787e6d9..b2ed567f7e4d 100644 --- a/google-cloud-billing-v1/CHANGELOG.md +++ b/google-cloud-billing-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-billing-v1/google-cloud-billing-v1.gemspec b/google-cloud-billing-v1/google-cloud-billing-v1.gemspec index 486a9759eb2c..cb658626d35b 100644 --- a/google-cloud-billing-v1/google-cloud-billing-v1.gemspec +++ b/google-cloud-billing-v1/google-cloud-billing-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-billing-v1/lib/google/cloud/billing/v1/version.rb b/google-cloud-billing-v1/lib/google/cloud/billing/v1/version.rb index 7141ef3c63e5..2f2ee99feae5 100644 --- a/google-cloud-billing-v1/lib/google/cloud/billing/v1/version.rb +++ b/google-cloud-billing-v1/lib/google/cloud/billing/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Billing module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-billing-v1/snippets/snippet_metadata_google.cloud.billing.v1.json b/google-cloud-billing-v1/snippets/snippet_metadata_google.cloud.billing.v1.json index ac32f6e4469c..bd38e3607188 100644 --- a/google-cloud-billing-v1/snippets/snippet_metadata_google.cloud.billing.v1.json +++ b/google-cloud-billing-v1/snippets/snippet_metadata_google.cloud.billing.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-billing-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-billing/CHANGELOG.md b/google-cloud-billing/CHANGELOG.md index 1c033d7e90ba..a263a638df32 100644 --- a/google-cloud-billing/CHANGELOG.md +++ b/google-cloud-billing/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-billing/README.md b/google-cloud-billing/README.md index e19e8b622ef8..1c259fcaf2c3 100644 --- a/google-cloud-billing/README.md +++ b/google-cloud-billing/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudbilling.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/billing" + +client = Google::Cloud::Billing.cloud_billing_service +request = ::Google::Cloud::Billing::V1::GetBillingAccountRequest.new # (request fields as keyword arguments...) +response = client.get_billing_account request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-billing/lib/google/cloud/billing/version.rb b/google-cloud-billing/lib/google/cloud/billing/version.rb index f6ca3617e4ca..9f71ec44dba6 100644 --- a/google-cloud-billing/lib/google/cloud/billing/version.rb +++ b/google-cloud-billing/lib/google/cloud/billing/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Billing - VERSION = "1.6.1".freeze + VERSION = "1.6.2".freeze end end end diff --git a/google-cloud-binary_authorization-v1/CHANGELOG.md b/google-cloud-binary_authorization-v1/CHANGELOG.md index ffecc5dc1120..d699771612ed 100644 --- a/google-cloud-binary_authorization-v1/CHANGELOG.md +++ b/google-cloud-binary_authorization-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-binary_authorization-v1/google-cloud-binary_authorization-v1.gemspec b/google-cloud-binary_authorization-v1/google-cloud-binary_authorization-v1.gemspec index 49e056e7da1d..1a0663400e09 100644 --- a/google-cloud-binary_authorization-v1/google-cloud-binary_authorization-v1.gemspec +++ b/google-cloud-binary_authorization-v1/google-cloud-binary_authorization-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grafeas-v1", "> 0.0", "< 2.a" end diff --git a/google-cloud-binary_authorization-v1/lib/google/cloud/binary_authorization/v1/version.rb b/google-cloud-binary_authorization-v1/lib/google/cloud/binary_authorization/v1/version.rb index 3e2e0e5fb028..41219f4ab3e0 100644 --- a/google-cloud-binary_authorization-v1/lib/google/cloud/binary_authorization/v1/version.rb +++ b/google-cloud-binary_authorization-v1/lib/google/cloud/binary_authorization/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module BinaryAuthorization module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-binary_authorization-v1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1.json b/google-cloud-binary_authorization-v1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1.json index 9ea01e6e0860..a552d23e0656 100644 --- a/google-cloud-binary_authorization-v1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1.json +++ b/google-cloud-binary_authorization-v1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-binary_authorization-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-binary_authorization-v1beta1/CHANGELOG.md b/google-cloud-binary_authorization-v1beta1/CHANGELOG.md index 415559b43dec..b737454c8678 100644 --- a/google-cloud-binary_authorization-v1beta1/CHANGELOG.md +++ b/google-cloud-binary_authorization-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.17.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.16.0 (2025-05-12) #### Features diff --git a/google-cloud-binary_authorization-v1beta1/google-cloud-binary_authorization-v1beta1.gemspec b/google-cloud-binary_authorization-v1beta1/google-cloud-binary_authorization-v1beta1.gemspec index 03fd4b32ae5e..0c81447c7b21 100644 --- a/google-cloud-binary_authorization-v1beta1/google-cloud-binary_authorization-v1beta1.gemspec +++ b/google-cloud-binary_authorization-v1beta1/google-cloud-binary_authorization-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-binary_authorization-v1beta1/lib/google/cloud/binary_authorization/v1beta1/version.rb b/google-cloud-binary_authorization-v1beta1/lib/google/cloud/binary_authorization/v1beta1/version.rb index 0d4ddac164fb..75514a0041fb 100644 --- a/google-cloud-binary_authorization-v1beta1/lib/google/cloud/binary_authorization/v1beta1/version.rb +++ b/google-cloud-binary_authorization-v1beta1/lib/google/cloud/binary_authorization/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module BinaryAuthorization module V1beta1 - VERSION = "0.16.0" + VERSION = "0.17.0" end end end diff --git a/google-cloud-binary_authorization-v1beta1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1beta1.json b/google-cloud-binary_authorization-v1beta1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1beta1.json index 8f9948f87731..0d4f79ba05d3 100644 --- a/google-cloud-binary_authorization-v1beta1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1beta1.json +++ b/google-cloud-binary_authorization-v1beta1/snippets/snippet_metadata_google.cloud.binaryauthorization.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-binary_authorization-v1beta1", - "version": "0.16.0", + "version": "0.17.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-binary_authorization/CHANGELOG.md b/google-cloud-binary_authorization/CHANGELOG.md index d51a5041e272..b8e8546efef8 100644 --- a/google-cloud-binary_authorization/CHANGELOG.md +++ b/google-cloud-binary_authorization/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-binary_authorization/README.md b/google-cloud-binary_authorization/README.md index 04fe2fa6a232..e1d0aa805329 100644 --- a/google-cloud-binary_authorization/README.md +++ b/google-cloud-binary_authorization/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/binaryauthorization.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/binary_authorization" + +client = Google::Cloud::BinaryAuthorization.binauthz_management_service +request = ::Google::Cloud::BinaryAuthorization::V1::GetPolicyRequest.new # (request fields as keyword arguments...) +response = client.get_policy request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-binary_authorization/lib/google/cloud/binary_authorization/version.rb b/google-cloud-binary_authorization/lib/google/cloud/binary_authorization/version.rb index 821216b6a206..2f136a7a92ee 100644 --- a/google-cloud-binary_authorization/lib/google/cloud/binary_authorization/version.rb +++ b/google-cloud-binary_authorization/lib/google/cloud/binary_authorization/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module BinaryAuthorization - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-build-v1/CHANGELOG.md b/google-cloud-build-v1/CHANGELOG.md index 67056fbac02b..f11d09f75181 100644 --- a/google-cloud-build-v1/CHANGELOG.md +++ b/google-cloud-build-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.7.0 (2025-08-26) #### Features diff --git a/google-cloud-build-v1/google-cloud-build-v1.gemspec b/google-cloud-build-v1/google-cloud-build-v1.gemspec index 42df8a458f0f..77e847bba2ff 100644 --- a/google-cloud-build-v1/google-cloud-build-v1.gemspec +++ b/google-cloud-build-v1/google-cloud-build-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-build-v1/lib/google/cloud/build/v1/version.rb b/google-cloud-build-v1/lib/google/cloud/build/v1/version.rb index 81545232316b..0412c286625c 100644 --- a/google-cloud-build-v1/lib/google/cloud/build/v1/version.rb +++ b/google-cloud-build-v1/lib/google/cloud/build/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Build module V1 - VERSION = "1.7.0" + VERSION = "1.8.0" end end end diff --git a/google-cloud-build-v1/snippets/snippet_metadata_google.devtools.cloudbuild.v1.json b/google-cloud-build-v1/snippets/snippet_metadata_google.devtools.cloudbuild.v1.json index 2969c6685365..463e911b9952 100644 --- a/google-cloud-build-v1/snippets/snippet_metadata_google.devtools.cloudbuild.v1.json +++ b/google-cloud-build-v1/snippets/snippet_metadata_google.devtools.cloudbuild.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-build-v1", - "version": "1.7.0", + "version": "1.8.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-build-v2/CHANGELOG.md b/google-cloud-build-v2/CHANGELOG.md index 0cfb18ba2778..a4de7a230192 100644 --- a/google-cloud-build-v2/CHANGELOG.md +++ b/google-cloud-build-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.10.0 (2025-05-12) #### Features diff --git a/google-cloud-build-v2/google-cloud-build-v2.gemspec b/google-cloud-build-v2/google-cloud-build-v2.gemspec index 9dd41f5f04d6..1ddf50650fe0 100644 --- a/google-cloud-build-v2/google-cloud-build-v2.gemspec +++ b/google-cloud-build-v2/google-cloud-build-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-build-v2/lib/google/cloud/build/v2/version.rb b/google-cloud-build-v2/lib/google/cloud/build/v2/version.rb index 4f3452ca8adb..ba84e53d194d 100644 --- a/google-cloud-build-v2/lib/google/cloud/build/v2/version.rb +++ b/google-cloud-build-v2/lib/google/cloud/build/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Build module V2 - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-build-v2/snippets/snippet_metadata_google.devtools.cloudbuild.v2.json b/google-cloud-build-v2/snippets/snippet_metadata_google.devtools.cloudbuild.v2.json index e6906a132bec..af9a800477ed 100644 --- a/google-cloud-build-v2/snippets/snippet_metadata_google.devtools.cloudbuild.v2.json +++ b/google-cloud-build-v2/snippets/snippet_metadata_google.devtools.cloudbuild.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-build-v2", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-build/CHANGELOG.md b/google-cloud-build/CHANGELOG.md index b7c99f68f53f..e5ccc43a507b 100644 --- a/google-cloud-build/CHANGELOG.md +++ b/google-cloud-build/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-build/README.md b/google-cloud-build/README.md index 1ded20def37d..27c83f1dcf89 100644 --- a/google-cloud-build/README.md +++ b/google-cloud-build/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudbuild.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/build" + +client = Google::Cloud::Build.cloud_build +request = ::Google::Cloud::Build::V1::CreateBuildRequest.new # (request fields as keyword arguments...) +response = client.create_build request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-build/lib/google/cloud/build/version.rb b/google-cloud-build/lib/google/cloud/build/version.rb index 618be09b1e97..aa2fda8e74f8 100644 --- a/google-cloud-build/lib/google/cloud/build/version.rb +++ b/google-cloud-build/lib/google/cloud/build/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Build - VERSION = "1.6.1" + VERSION = "1.6.2" end end end diff --git a/google-cloud-certificate_manager-v1/CHANGELOG.md b/google-cloud-certificate_manager-v1/CHANGELOG.md index 1256be455bc1..197842a56872 100644 --- a/google-cloud-certificate_manager-v1/CHANGELOG.md +++ b/google-cloud-certificate_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-certificate_manager-v1/google-cloud-certificate_manager-v1.gemspec b/google-cloud-certificate_manager-v1/google-cloud-certificate_manager-v1.gemspec index 524cf4619958..9496a2d6e3cc 100644 --- a/google-cloud-certificate_manager-v1/google-cloud-certificate_manager-v1.gemspec +++ b/google-cloud-certificate_manager-v1/google-cloud-certificate_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-certificate_manager-v1/lib/google/cloud/certificate_manager/v1/version.rb b/google-cloud-certificate_manager-v1/lib/google/cloud/certificate_manager/v1/version.rb index 883ee3216b83..c76f03102c69 100644 --- a/google-cloud-certificate_manager-v1/lib/google/cloud/certificate_manager/v1/version.rb +++ b/google-cloud-certificate_manager-v1/lib/google/cloud/certificate_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module CertificateManager module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-certificate_manager-v1/snippets/snippet_metadata_google.cloud.certificatemanager.v1.json b/google-cloud-certificate_manager-v1/snippets/snippet_metadata_google.cloud.certificatemanager.v1.json index ed66b801e534..30f8de5e3531 100644 --- a/google-cloud-certificate_manager-v1/snippets/snippet_metadata_google.cloud.certificatemanager.v1.json +++ b/google-cloud-certificate_manager-v1/snippets/snippet_metadata_google.cloud.certificatemanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-certificate_manager-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-certificate_manager/CHANGELOG.md b/google-cloud-certificate_manager/CHANGELOG.md index ac6b9eecb630..dd5bf13440e6 100644 --- a/google-cloud-certificate_manager/CHANGELOG.md +++ b/google-cloud-certificate_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-certificate_manager/README.md b/google-cloud-certificate_manager/README.md index 81cbed39fac3..bff2becbd6dd 100644 --- a/google-cloud-certificate_manager/README.md +++ b/google-cloud-certificate_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/certificatemanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/certificate_manager" + +client = Google::Cloud::CertificateManager.certificate_manager +request = ::Google::Cloud::CertificateManager::V1::ListCertificatesRequest.new # (request fields as keyword arguments...) +response = client.list_certificates request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-certificate_manager/lib/google/cloud/certificate_manager/version.rb b/google-cloud-certificate_manager/lib/google/cloud/certificate_manager/version.rb index 93f6fba93694..e1c9c03d7cf5 100644 --- a/google-cloud-certificate_manager/lib/google/cloud/certificate_manager/version.rb +++ b/google-cloud-certificate_manager/lib/google/cloud/certificate_manager/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module CertificateManager - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-channel-v1/CHANGELOG.md b/google-cloud-channel-v1/CHANGELOG.md index 0b7137aad19c..54eaa2674218 100644 --- a/google-cloud-channel-v1/CHANGELOG.md +++ b/google-cloud-channel-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.2.1 (2025-07-15) #### Documentation diff --git a/google-cloud-channel-v1/google-cloud-channel-v1.gemspec b/google-cloud-channel-v1/google-cloud-channel-v1.gemspec index a3fa71d84a4d..83249dea356f 100644 --- a/google-cloud-channel-v1/google-cloud-channel-v1.gemspec +++ b/google-cloud-channel-v1/google-cloud-channel-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-channel-v1/lib/google/cloud/channel/v1/version.rb b/google-cloud-channel-v1/lib/google/cloud/channel/v1/version.rb index 45544a940bbf..f7df321d649b 100644 --- a/google-cloud-channel-v1/lib/google/cloud/channel/v1/version.rb +++ b/google-cloud-channel-v1/lib/google/cloud/channel/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Channel module V1 - VERSION = "2.2.1" + VERSION = "2.3.0" end end end diff --git a/google-cloud-channel-v1/snippets/snippet_metadata_google.cloud.channel.v1.json b/google-cloud-channel-v1/snippets/snippet_metadata_google.cloud.channel.v1.json index 84280c28577c..aa65074b1e19 100644 --- a/google-cloud-channel-v1/snippets/snippet_metadata_google.cloud.channel.v1.json +++ b/google-cloud-channel-v1/snippets/snippet_metadata_google.cloud.channel.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-channel-v1", - "version": "2.2.1", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-channel/CHANGELOG.md b/google-cloud-channel/CHANGELOG.md index f27f1e13e793..457b26c3de0b 100644 --- a/google-cloud-channel/CHANGELOG.md +++ b/google-cloud-channel/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-channel/README.md b/google-cloud-channel/README.md index ec8b72f8f5d7..2155a6fe3009 100644 --- a/google-cloud-channel/README.md +++ b/google-cloud-channel/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudchannel.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/channel" + +client = Google::Cloud::Channel.cloud_channel_reports_service +request = ::Google::Cloud::Channel::V1::RunReportJobRequest.new # (request fields as keyword arguments...) +response = client.run_report_job request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-channel/lib/google/cloud/channel/version.rb b/google-cloud-channel/lib/google/cloud/channel/version.rb index c3fd63f0e3bd..ddb811618e0e 100644 --- a/google-cloud-channel/lib/google/cloud/channel/version.rb +++ b/google-cloud-channel/lib/google/cloud/channel/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Channel - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-chronicle-v1/CHANGELOG.md b/google-cloud-chronicle-v1/CHANGELOG.md index 13506f656690..2c7bc9d62018 100644 --- a/google-cloud-chronicle-v1/CHANGELOG.md +++ b/google-cloud-chronicle-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-cloud-chronicle-v1/google-cloud-chronicle-v1.gemspec b/google-cloud-chronicle-v1/google-cloud-chronicle-v1.gemspec index 9234fb893c47..9e906440ad47 100644 --- a/google-cloud-chronicle-v1/google-cloud-chronicle-v1.gemspec +++ b/google-cloud-chronicle-v1/google-cloud-chronicle-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-chronicle-v1/lib/google/cloud/chronicle/v1/version.rb b/google-cloud-chronicle-v1/lib/google/cloud/chronicle/v1/version.rb index b8d6c5161fb5..eaeac6c0400a 100644 --- a/google-cloud-chronicle-v1/lib/google/cloud/chronicle/v1/version.rb +++ b/google-cloud-chronicle-v1/lib/google/cloud/chronicle/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Chronicle module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-chronicle-v1/snippets/snippet_metadata_google.cloud.chronicle.v1.json b/google-cloud-chronicle-v1/snippets/snippet_metadata_google.cloud.chronicle.v1.json index 1439a6243d93..517f842bb3f6 100644 --- a/google-cloud-chronicle-v1/snippets/snippet_metadata_google.cloud.chronicle.v1.json +++ b/google-cloud-chronicle-v1/snippets/snippet_metadata_google.cloud.chronicle.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-chronicle-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-chronicle/CHANGELOG.md b/google-cloud-chronicle/CHANGELOG.md index 392e02ae226b..cb2b2df2c387 100644 --- a/google-cloud-chronicle/CHANGELOG.md +++ b/google-cloud-chronicle/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-cloud-chronicle/README.md b/google-cloud-chronicle/README.md index 52ec11b2a7c5..22228834ec23 100644 --- a/google-cloud-chronicle/README.md +++ b/google-cloud-chronicle/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/chronicle.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/chronicle" + +client = Google::Cloud::Chronicle.data_access_control_service +request = ::Google::Cloud::Chronicle::V1::CreateDataAccessLabelRequest.new # (request fields as keyword arguments...) +response = client.create_data_access_label request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-chronicle/lib/google/cloud/chronicle/version.rb b/google-cloud-chronicle/lib/google/cloud/chronicle/version.rb index c48a1ea34a5a..fd39a7de14b0 100644 --- a/google-cloud-chronicle/lib/google/cloud/chronicle/version.rb +++ b/google-cloud-chronicle/lib/google/cloud/chronicle/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Chronicle - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-cloud_controls_partner-v1/CHANGELOG.md b/google-cloud-cloud_controls_partner-v1/CHANGELOG.md index ff90135d758a..8fdd4ddbec58 100644 --- a/google-cloud-cloud_controls_partner-v1/CHANGELOG.md +++ b/google-cloud-cloud_controls_partner-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-cloud_controls_partner-v1/google-cloud-cloud_controls_partner-v1.gemspec b/google-cloud-cloud_controls_partner-v1/google-cloud-cloud_controls_partner-v1.gemspec index 4fc254f71619..661b1cb6fec1 100644 --- a/google-cloud-cloud_controls_partner-v1/google-cloud-cloud_controls_partner-v1.gemspec +++ b/google-cloud-cloud_controls_partner-v1/google-cloud-cloud_controls_partner-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-cloud_controls_partner-v1/lib/google/cloud/cloud_controls_partner/v1/version.rb b/google-cloud-cloud_controls_partner-v1/lib/google/cloud/cloud_controls_partner/v1/version.rb index da9dfe3a174b..87a2101b6e06 100644 --- a/google-cloud-cloud_controls_partner-v1/lib/google/cloud/cloud_controls_partner/v1/version.rb +++ b/google-cloud-cloud_controls_partner-v1/lib/google/cloud/cloud_controls_partner/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module CloudControlsPartner module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-cloud_controls_partner-v1/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1.json b/google-cloud-cloud_controls_partner-v1/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1.json index 309c69646066..2d438e2d077e 100644 --- a/google-cloud-cloud_controls_partner-v1/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1.json +++ b/google-cloud-cloud_controls_partner-v1/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-cloud_controls_partner-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-cloud_controls_partner-v1beta/CHANGELOG.md b/google-cloud-cloud_controls_partner-v1beta/CHANGELOG.md index 8a1968616192..d5f6f63ce916 100644 --- a/google-cloud-cloud_controls_partner-v1beta/CHANGELOG.md +++ b/google-cloud-cloud_controls_partner-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.6.0 (2025-05-12) #### Features diff --git a/google-cloud-cloud_controls_partner-v1beta/google-cloud-cloud_controls_partner-v1beta.gemspec b/google-cloud-cloud_controls_partner-v1beta/google-cloud-cloud_controls_partner-v1beta.gemspec index 5c25b06099a2..0087b800026b 100644 --- a/google-cloud-cloud_controls_partner-v1beta/google-cloud-cloud_controls_partner-v1beta.gemspec +++ b/google-cloud-cloud_controls_partner-v1beta/google-cloud-cloud_controls_partner-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-cloud_controls_partner-v1beta/lib/google/cloud/cloud_controls_partner/v1beta/version.rb b/google-cloud-cloud_controls_partner-v1beta/lib/google/cloud/cloud_controls_partner/v1beta/version.rb index 66bee685bae1..35487a404534 100644 --- a/google-cloud-cloud_controls_partner-v1beta/lib/google/cloud/cloud_controls_partner/v1beta/version.rb +++ b/google-cloud-cloud_controls_partner-v1beta/lib/google/cloud/cloud_controls_partner/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module CloudControlsPartner module V1beta - VERSION = "0.6.0" + VERSION = "0.7.0" end end end diff --git a/google-cloud-cloud_controls_partner-v1beta/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1beta.json b/google-cloud-cloud_controls_partner-v1beta/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1beta.json index 0cbfa44c5299..dbbf2bb69566 100644 --- a/google-cloud-cloud_controls_partner-v1beta/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1beta.json +++ b/google-cloud-cloud_controls_partner-v1beta/snippets/snippet_metadata_google.cloud.cloudcontrolspartner.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-cloud_controls_partner-v1beta", - "version": "0.6.0", + "version": "0.7.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-cloud_controls_partner/CHANGELOG.md b/google-cloud-cloud_controls_partner/CHANGELOG.md index 12180be72961..98ad6707f52a 100644 --- a/google-cloud-cloud_controls_partner/CHANGELOG.md +++ b/google-cloud-cloud_controls_partner/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-cloud_controls_partner/README.md b/google-cloud-cloud_controls_partner/README.md index 77328057d35f..ab5353a4db3a 100644 --- a/google-cloud-cloud_controls_partner/README.md +++ b/google-cloud-cloud_controls_partner/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudcontrolspartner.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/cloud_controls_partner" + +client = Google::Cloud::CloudControlsPartner.cloud_controls_partner_core +request = ::Google::Cloud::CloudControlsPartner::V1::GetWorkloadRequest.new # (request fields as keyword arguments...) +response = client.get_workload request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-cloud_controls_partner/lib/google/cloud/cloud_controls_partner/version.rb b/google-cloud-cloud_controls_partner/lib/google/cloud/cloud_controls_partner/version.rb index b9466910bbd0..1a2b1c9d790e 100644 --- a/google-cloud-cloud_controls_partner/lib/google/cloud/cloud_controls_partner/version.rb +++ b/google-cloud-cloud_controls_partner/lib/google/cloud/cloud_controls_partner/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module CloudControlsPartner - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-cloud_dms-v1/CHANGELOG.md b/google-cloud-cloud_dms-v1/CHANGELOG.md index 7117a365dc0e..ca5fac5edfa8 100644 --- a/google-cloud-cloud_dms-v1/CHANGELOG.md +++ b/google-cloud-cloud_dms-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.1 (2025-07-15) #### Documentation diff --git a/google-cloud-cloud_dms-v1/google-cloud-cloud_dms-v1.gemspec b/google-cloud-cloud_dms-v1/google-cloud-cloud_dms-v1.gemspec index 3a5b38888433..90a6d1c8d484 100644 --- a/google-cloud-cloud_dms-v1/google-cloud-cloud_dms-v1.gemspec +++ b/google-cloud-cloud_dms-v1/google-cloud-cloud_dms-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-cloud_dms-v1/lib/google/cloud/cloud_dms/v1/version.rb b/google-cloud-cloud_dms-v1/lib/google/cloud/cloud_dms/v1/version.rb index e2a362ec022a..2fb2f70ac427 100644 --- a/google-cloud-cloud_dms-v1/lib/google/cloud/cloud_dms/v1/version.rb +++ b/google-cloud-cloud_dms-v1/lib/google/cloud/cloud_dms/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module CloudDMS module V1 - VERSION = "1.3.1" + VERSION = "1.4.0" end end end diff --git a/google-cloud-cloud_dms-v1/snippets/snippet_metadata_google.cloud.clouddms.v1.json b/google-cloud-cloud_dms-v1/snippets/snippet_metadata_google.cloud.clouddms.v1.json index 352dadfd7538..e3a002365a88 100644 --- a/google-cloud-cloud_dms-v1/snippets/snippet_metadata_google.cloud.clouddms.v1.json +++ b/google-cloud-cloud_dms-v1/snippets/snippet_metadata_google.cloud.clouddms.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-cloud_dms-v1", - "version": "1.3.1", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-cloud_dms/CHANGELOG.md b/google-cloud-cloud_dms/CHANGELOG.md index 38a2bf1132ea..e8250e6694dd 100644 --- a/google-cloud-cloud_dms/CHANGELOG.md +++ b/google-cloud-cloud_dms/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-cloud_dms/README.md b/google-cloud-cloud_dms/README.md index 2f8bbe9392c0..857c1eb4ae35 100644 --- a/google-cloud-cloud_dms/README.md +++ b/google-cloud-cloud_dms/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datamigration.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/cloud_dms" + +client = Google::Cloud::CloudDMS.data_migration_service +request = ::Google::Cloud::CloudDMS::V1::ListMigrationJobsRequest.new # (request fields as keyword arguments...) +response = client.list_migration_jobs request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-cloud_dms/lib/google/cloud/cloud_dms/version.rb b/google-cloud-cloud_dms/lib/google/cloud/cloud_dms/version.rb index c9ecf5c2e8e3..7268d2eaaa2e 100644 --- a/google-cloud-cloud_dms/lib/google/cloud/cloud_dms/version.rb +++ b/google-cloud-cloud_dms/lib/google/cloud/cloud_dms/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module CloudDMS - VERSION = "1.4.1" + VERSION = "1.4.2" end end end diff --git a/google-cloud-cloud_quotas-v1/CHANGELOG.md b/google-cloud-cloud_quotas-v1/CHANGELOG.md index b9c426ebee8e..1b6367f35601 100644 --- a/google-cloud-cloud_quotas-v1/CHANGELOG.md +++ b/google-cloud-cloud_quotas-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-cloud_quotas-v1/google-cloud-cloud_quotas-v1.gemspec b/google-cloud-cloud_quotas-v1/google-cloud-cloud_quotas-v1.gemspec index b3e57e46e965..c56336465992 100644 --- a/google-cloud-cloud_quotas-v1/google-cloud-cloud_quotas-v1.gemspec +++ b/google-cloud-cloud_quotas-v1/google-cloud-cloud_quotas-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-cloud_quotas-v1/lib/google/cloud/cloud_quotas/v1/version.rb b/google-cloud-cloud_quotas-v1/lib/google/cloud/cloud_quotas/v1/version.rb index fa2a4730aa63..d137922788ac 100644 --- a/google-cloud-cloud_quotas-v1/lib/google/cloud/cloud_quotas/v1/version.rb +++ b/google-cloud-cloud_quotas-v1/lib/google/cloud/cloud_quotas/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module CloudQuotas module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-cloud_quotas-v1/snippets/snippet_metadata_google.api.cloudquotas.v1.json b/google-cloud-cloud_quotas-v1/snippets/snippet_metadata_google.api.cloudquotas.v1.json index ec7479fef081..c6f4a79fdd17 100644 --- a/google-cloud-cloud_quotas-v1/snippets/snippet_metadata_google.api.cloudquotas.v1.json +++ b/google-cloud-cloud_quotas-v1/snippets/snippet_metadata_google.api.cloudquotas.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-cloud_quotas-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-cloud_quotas-v1beta/CHANGELOG.md b/google-cloud-cloud_quotas-v1beta/CHANGELOG.md index bcb3af4d545b..88989b047584 100644 --- a/google-cloud-cloud_quotas-v1beta/CHANGELOG.md +++ b/google-cloud-cloud_quotas-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.5.0 (2025-06-16) #### Features diff --git a/google-cloud-cloud_quotas-v1beta/google-cloud-cloud_quotas-v1beta.gemspec b/google-cloud-cloud_quotas-v1beta/google-cloud-cloud_quotas-v1beta.gemspec index e8fce5c77088..9c5831b57954 100644 --- a/google-cloud-cloud_quotas-v1beta/google-cloud-cloud_quotas-v1beta.gemspec +++ b/google-cloud-cloud_quotas-v1beta/google-cloud-cloud_quotas-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-cloud_quotas-v1beta/lib/google/cloud/cloud_quotas/v1beta/version.rb b/google-cloud-cloud_quotas-v1beta/lib/google/cloud/cloud_quotas/v1beta/version.rb index d09a24d911de..3c3670721295 100644 --- a/google-cloud-cloud_quotas-v1beta/lib/google/cloud/cloud_quotas/v1beta/version.rb +++ b/google-cloud-cloud_quotas-v1beta/lib/google/cloud/cloud_quotas/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module CloudQuotas module V1beta - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-cloud-cloud_quotas-v1beta/snippets/snippet_metadata_google.api.cloudquotas.v1beta.json b/google-cloud-cloud_quotas-v1beta/snippets/snippet_metadata_google.api.cloudquotas.v1beta.json index d2d5dba1cc1b..cf986e795140 100644 --- a/google-cloud-cloud_quotas-v1beta/snippets/snippet_metadata_google.api.cloudquotas.v1beta.json +++ b/google-cloud-cloud_quotas-v1beta/snippets/snippet_metadata_google.api.cloudquotas.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-cloud_quotas-v1beta", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-cloud_quotas/CHANGELOG.md b/google-cloud-cloud_quotas/CHANGELOG.md index 3b941b7ff423..ed4c09b735cb 100644 --- a/google-cloud-cloud_quotas/CHANGELOG.md +++ b/google-cloud-cloud_quotas/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-cloud_quotas/README.md b/google-cloud-cloud_quotas/README.md index ab3b9882b3e1..f51c844cc669 100644 --- a/google-cloud-cloud_quotas/README.md +++ b/google-cloud-cloud_quotas/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudquotas.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/cloud_quotas" + +client = Google::Cloud::CloudQuotas.cloud_quotas +request = ::Google::Cloud::CloudQuotas::V1::ListQuotaInfosRequest.new # (request fields as keyword arguments...) +response = client.list_quota_infos request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-cloud_quotas/lib/google/cloud/cloud_quotas/version.rb b/google-cloud-cloud_quotas/lib/google/cloud/cloud_quotas/version.rb index 22d04a821b5d..f54e4a19b9c7 100644 --- a/google-cloud-cloud_quotas/lib/google/cloud/cloud_quotas/version.rb +++ b/google-cloud-cloud_quotas/lib/google/cloud/cloud_quotas/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module CloudQuotas - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-commerce-consumer-procurement-v1/CHANGELOG.md b/google-cloud-commerce-consumer-procurement-v1/CHANGELOG.md index 67515d54af35..6abf07941d99 100644 --- a/google-cloud-commerce-consumer-procurement-v1/CHANGELOG.md +++ b/google-cloud-commerce-consumer-procurement-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.1 (2025-06-24) #### Bug Fixes diff --git a/google-cloud-commerce-consumer-procurement-v1/google-cloud-commerce-consumer-procurement-v1.gemspec b/google-cloud-commerce-consumer-procurement-v1/google-cloud-commerce-consumer-procurement-v1.gemspec index df7e2c4bdc5b..d90d88220620 100644 --- a/google-cloud-commerce-consumer-procurement-v1/google-cloud-commerce-consumer-procurement-v1.gemspec +++ b/google-cloud-commerce-consumer-procurement-v1/google-cloud-commerce-consumer-procurement-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-commerce-consumer-procurement-v1/lib/google/cloud/commerce/consumer/procurement/v1/version.rb b/google-cloud-commerce-consumer-procurement-v1/lib/google/cloud/commerce/consumer/procurement/v1/version.rb index d291e612700d..b1dc5cd17c76 100644 --- a/google-cloud-commerce-consumer-procurement-v1/lib/google/cloud/commerce/consumer/procurement/v1/version.rb +++ b/google-cloud-commerce-consumer-procurement-v1/lib/google/cloud/commerce/consumer/procurement/v1/version.rb @@ -23,7 +23,7 @@ module Commerce module Consumer module Procurement module V1 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-commerce-consumer-procurement-v1/snippets/snippet_metadata_google.cloud.commerce.consumer.procurement.v1.json b/google-cloud-commerce-consumer-procurement-v1/snippets/snippet_metadata_google.cloud.commerce.consumer.procurement.v1.json index 9ef180a9a584..19d1a061a7e9 100644 --- a/google-cloud-commerce-consumer-procurement-v1/snippets/snippet_metadata_google.cloud.commerce.consumer.procurement.v1.json +++ b/google-cloud-commerce-consumer-procurement-v1/snippets/snippet_metadata_google.cloud.commerce.consumer.procurement.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-commerce-consumer-procurement-v1", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-commerce-consumer-procurement/CHANGELOG.md b/google-cloud-commerce-consumer-procurement/CHANGELOG.md index 394866f514dd..fada918523f6 100644 --- a/google-cloud-commerce-consumer-procurement/CHANGELOG.md +++ b/google-cloud-commerce-consumer-procurement/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-commerce-consumer-procurement/README.md b/google-cloud-commerce-consumer-procurement/README.md index 6d1682b8989c..e294ccf622d7 100644 --- a/google-cloud-commerce-consumer-procurement/README.md +++ b/google-cloud-commerce-consumer-procurement/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudcommerceconsumerprocurement.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/commerce/consumer/procurement" + +client = Google::Cloud::Commerce::Consumer::Procurement.license_management_service +request = ::Google::Cloud::Commerce::Consumer::Procurement::V1::GetLicensePoolRequest.new # (request fields as keyword arguments...) +response = client.get_license_pool request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-commerce-consumer-procurement/lib/google/cloud/commerce/consumer/procurement/version.rb b/google-cloud-commerce-consumer-procurement/lib/google/cloud/commerce/consumer/procurement/version.rb index b08ba02e5b05..a33d4b5482b8 100644 --- a/google-cloud-commerce-consumer-procurement/lib/google/cloud/commerce/consumer/procurement/version.rb +++ b/google-cloud-commerce-consumer-procurement/lib/google/cloud/commerce/consumer/procurement/version.rb @@ -22,7 +22,7 @@ module Cloud module Commerce module Consumer module Procurement - VERSION = "1.2.1" + VERSION = "1.2.2" end end end diff --git a/google-cloud-compute-v1/CHANGELOG.md b/google-cloud-compute-v1/CHANGELOG.md index 5e903d8ea48b..9a435c85d7dc 100644 --- a/google-cloud-compute-v1/CHANGELOG.md +++ b/google-cloud-compute-v1/CHANGELOG.md @@ -1,5 +1,23 @@ # Release History +### 3.4.0 (2025-09-17) + +#### Features + +* Update Compute Engine v1 API to revision 20250902 ([#31517](https://github.com/googleapis/google-cloud-ruby/issues/31517)) + +### 3.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + +### 3.2.0 (2025-09-03) + +#### Features + +* Update Compute Engine v1 API to revision 20250810 ([#1091](https://github.com/googleapis/google-cloud-ruby/issues/1091)) ([#30928](https://github.com/googleapis/google-cloud-ruby/issues/30928)) + ### 3.1.0 (2025-08-28) #### Features diff --git a/google-cloud-compute-v1/google-cloud-compute-v1.gemspec b/google-cloud-compute-v1/google-cloud-compute-v1.gemspec index bbe02ede56e2..6523e5159764 100644 --- a/google-cloud-compute-v1/google-cloud-compute-v1.gemspec +++ b/google-cloud-compute-v1/google-cloud-compute-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-common", "~> 1.0" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/client.rb index eb918ebffc61..52a0a34ffd6e 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/client.rb @@ -94,6 +94,8 @@ def self.configure default_config.rpcs.set_labels.timeout = 600.0 + default_config.rpcs.test_iam_permissions.timeout = 600.0 + default_config end yield @configure if block_given? @@ -860,6 +862,90 @@ def set_labels request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Returns permissions that a caller has on the specified resource. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(project: nil, region: nil, resource: nil, test_permissions_request_resource: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param project [::String] + # Project ID for this request. + # @param region [::String] + # The name of the region for this request. + # @param resource [::String] + # Name or id of the resource for this request. + # @param test_permissions_request_resource [::Google::Cloud::Compute::V1::TestPermissionsRequest, ::Hash] + # The body resource for this request + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::Addresses::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Cloud::Compute::V1::TestPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @addresses_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the Addresses REST API. # @@ -1041,6 +1127,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :set_labels + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -1058,6 +1149,8 @@ def initialize parent_rpcs = nil @move = ::Gapic::Config::Method.new move_config set_labels_config = parent_rpcs.set_labels if parent_rpcs.respond_to? :set_labels @set_labels = ::Gapic::Config::Method.new set_labels_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb index 7b401fb09e0d..36143c1930d7 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/addresses/rest/service_stub.rb @@ -353,6 +353,46 @@ def set_labels request_pb, options = nil end end + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -512,6 +552,30 @@ def self.transcode_set_labels_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions", + body: "test_permissions_request_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["region", %r{^[^/]+/?$}, false], + ["resource", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/compute_pb.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/compute_pb.rb index 332bd176fd79..b8c6ae7cea52 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/compute_pb.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/compute_pb.rb @@ -12,7 +12,7 @@ require 'google/protobuf/any_pb' -descriptor_data = "\n%google/cloud/compute/v1/compute.proto\x12\x17google.cloud.compute.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a&google/cloud/extended_operations.proto\x1a\x19google/protobuf/any.proto\"\xda\x01\n\x0e\x41WSV4Signature\x12\x1b\n\naccess_key\x18\x84\xe2\xcc\xdf\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\raccess_key_id\x18\xb6\xe4\xd9\x8b\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x61\x63\x63\x65ss_key_version\x18\x9d\xe1\xa2& \x01(\tH\x02\x88\x01\x01\x12\x1d\n\rorigin_region\x18\xad\xfc\xc0~ \x01(\tH\x03\x88\x01\x01\x42\r\n\x0b_access_keyB\x10\n\x0e_access_key_idB\x15\n\x13_access_key_versionB\x10\n\x0e_origin_region\"\xd5\x02\n+AbandonInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x92\x01\n:instance_group_managers_abandon_instances_request_resource\x18\xf8\xf9\x83\x99\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xec\x02\n1AbandonInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9f\x01\nAregion_instance_group_managers_abandon_instances_request_resource\x18\xa3\xd2\xf7\xe8\x01 \x01(\x0b\x32K.google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x84\x01\n\x11\x41\x63\x63\x65leratorConfig\x12\"\n\x11\x61\x63\x63\x65lerator_count\x18\xbb\xb4\xdf\xf0\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x10\x61\x63\x63\x65lerator_type\x18\x8e\xe1\xe8\x41 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_accelerator_countB\x13\n\x11_accelerator_type\"\xbd\x03\n\x0f\x41\x63\x63\x65leratorType\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12*\n\x1amaximum_cards_per_instance\x18\xd2\xfa\xe5} \x01(\x05H\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x08\x88\x01\x01\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x1d\n\x1b_maximum_cards_per_instanceB\x07\n\x05_nameB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xce\x03\n\x1d\x41\x63\x63\x65leratorTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.AcceleratorTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.AcceleratorTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x02\n\x13\x41\x63\x63\x65leratorTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.AcceleratorType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xac\x01\n\x1a\x41\x63\x63\x65leratorTypesScopedList\x12G\n\x11\x61\x63\x63\x65lerator_types\x18\xa5\xc3\xaf\xf8\x01 \x03(\x0b\x32(.google.cloud.compute.v1.AcceleratorType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x98\x01\n\x0c\x41\x63\x63\x65lerators\x12(\n\x17guest_accelerator_count\x18\x94\xd7\xb8\xe4\x01 \x01(\x05H\x00\x88\x01\x01\x12\'\n\x16guest_accelerator_type\x18\x95\xa0\xdf\x8b\x01 \x01(\tH\x01\x88\x01\x01\x42\x1a\n\x18_guest_accelerator_countB\x19\n\x17_guest_accelerator_type\"\xc6\x05\n\x0c\x41\x63\x63\x65ssConfig\x12\x1e\n\rexternal_ipv6\x18\xdb\xd3\x81\xfe\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x1b\x65xternal_ipv6_prefix_length\x18\xcf\xfb\xfc\xca\x01 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07nat_i_p\x18\xfc\xeb\x8b\x38 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0cnetwork_tier\x18\xd3\xba\xdb\xf6\x01 \x01(\tH\x05\x88\x01\x01\x12\'\n\x16public_ptr_domain_name\x18\xff\xd6\xfb\x96\x01 \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x07\x88\x01\x01\x12\x1f\n\x0eset_public_ptr\x18\x95\xc0\xe6\xf9\x01 \x01(\x08H\x08\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\t\x88\x01\x01\"\x8f\x01\n\x0bNetworkTier\x12\x1a\n\x16UNDEFINED_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"E\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\x0b\x44IRECT_IPV6\x10\x9d\xb1\x8c\x02\x12\x15\n\x0eONE_TO_ONE_NAT\x10\xdd\xba\x8c(B\x10\n\x0e_external_ipv6B\x1e\n\x1c_external_ipv6_prefix_lengthB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_nat_i_pB\x0f\n\r_network_tierB\x19\n\x17_public_ptr_domain_nameB\x12\n\x10_security_policyB\x11\n\x0f_set_public_ptrB\x07\n\x05_type\"\x99\x02\n\x1e\x41\x64\x64\x41\x63\x63\x65ssConfigInstanceRequest\x12N\n\x16\x61\x63\x63\x65ss_config_resource\x18\x90\xff\xf6\xb8\x01 \x01(\x0b\x32%.google.cloud.compute.v1.AccessConfigB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xab\x02\n#AddAssociationFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12h\n$firewall_policy_association_resource\x18\xba\xb8\xe1{ \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociationB\x03\xe0\x41\x02\x12,\n\x1creplace_existing_association\x18\xf8\xb0\xf5\x63 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x1f\n\x1d_replace_existing_associationB\r\n\x0b_request_id\"\xd5\x02\n*AddAssociationNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12h\n$firewall_policy_association_resource\x18\xba\xb8\xe1{ \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociationB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12,\n\x1creplace_existing_association\x18\xf8\xb0\xf5\x63 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x1f\n\x1d_replace_existing_associationB\r\n\x0b_request_id\"\xfc\x02\n0AddAssociationRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12h\n$firewall_policy_association_resource\x18\xba\xb8\xe1{ \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociationB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12,\n\x1creplace_existing_association\x18\xf8\xb0\xf5\x63 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x1f\n\x1d_replace_existing_associationB\r\n\x0b_request_id\"\xa9\x02\n\x1f\x41\x64\x64HealthCheckTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12z\n.target_pools_add_health_check_request_resource\x18\xa4\xba\xc5\x80\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.TargetPoolsAddHealthCheckRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9f\x02\n\x1c\x41\x64\x64InstanceTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12s\n*target_pools_add_instance_request_resource\x18\xf4\xd3\xbb\xcc\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.TargetPoolsAddInstanceRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xaa\x02\n AddInstancesInstanceGroupRequest\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12{\n.instance_groups_add_instances_request_resource\x18\xde\xba\xac\xd8\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstanceGroupsAddInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x8e\x02\n\x18\x41\x64\x64NodesNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12j\n&node_groups_add_nodes_request_resource\x18\xb8\xd6\xcb> \x01(\x0b\x32\x32.google.cloud.compute.v1.NodeGroupsAddNodesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xdf\x02\n2AddPacketMirroringRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\x0cmax_priority\x18\x9f\xac\x97\x9d\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0cmin_priority\x18\xf1\x81\xb4\x7f \x01(\x05H\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_max_priorityB\x0f\n\r_min_priorityB\r\n\x0b_request_id\"\xed\x01\n\x18\x41\x64\x64PeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12j\n%networks_add_peering_request_resource\x18\xb5\x8d\xb3\xb9\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.NetworksAddPeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9a\x02\n\x1e\x41\x64\x64ResourcePoliciesDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12w\n,disks_add_resource_policies_request_resource\x18\xa3\xf8\xde\xec\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.DisksAddResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xaa\x02\n\"AddResourcePoliciesInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x7f\n0instances_add_resource_policies_request_resource\x18\x9b\xd6\xab\xe9\x01 \x01(\x0b\x32<.google.cloud.compute.v1.InstancesAddResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb2\x02\n$AddResourcePoliciesRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x84\x01\n3region_disks_add_resource_policies_request_resource\x18\x8e\xff\xc1\x87\x01 \x01(\x0b\x32>.google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc7\x01\n\x1c\x41\x64\x64RuleFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd0\x02\n#AddRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\x0cmax_priority\x18\x9f\xac\x97\x9d\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0cmin_priority\x18\xf1\x81\xb4\x7f \x01(\x05H\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_max_priorityB\x0f\n\r_min_priorityB\r\n\x0b_request_id\"\xf7\x02\n)AddRuleRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\x0cmax_priority\x18\x9f\xac\x97\x9d\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0cmin_priority\x18\xf1\x81\xb4\x7f \x01(\x05H\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_max_priorityB\x0f\n\r_min_priorityB\r\n\x0b_request_id\"\x97\x02\n\"AddRuleRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x00\x88\x01\x01\x42\x10\n\x0e_validate_only\"\xf0\x01\n\x1c\x41\x64\x64RuleSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x00\x88\x01\x01\x42\x10\n\x0e_validate_only\"\xe4\x01\n#AddSignedUrlKeyBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12O\n\x17signed_url_key_resource\x18\x81\xa3\x9b\xda\x01 \x01(\x0b\x32%.google.cloud.compute.v1.SignedUrlKeyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe7\x01\n$AddSignedUrlKeyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12O\n\x17signed_url_key_resource\x18\x81\xa3\x9b\xda\x01 \x01(\x0b\x32%.google.cloud.compute.v1.SignedUrlKeyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe6\x0c\n\x07\x41\x64\x64ress\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0c\x61\x64\x64ress_type\x18\xa5\x89\x84~ \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x1b\n\nip_version\x18\xc0\xf3\xd2\x8c\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x12ipv6_endpoint_type\x18\xcc\xfe\xbe. \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x08\x88\x01\x01\x12@\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32,.google.cloud.compute.v1.Address.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\n\x88\x01\x01\x12\x1d\n\x0cnetwork_tier\x18\xd3\xba\xdb\xf6\x01 \x01(\tH\x0b\x88\x01\x01\x12\x1e\n\rprefix_length\x18\xb3\xba\xa3\xd8\x01 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x07purpose\x18\x9e\xfa\xef\x96\x01 \x01(\tH\r\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0e\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0f\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x10\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x11\x88\x01\x01\x12\x10\n\x05users\x18\x88\x9c\x9a\x35 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"e\n\x0b\x41\x64\x64ressType\x12\x1a\n\x16UNDEFINED_ADDRESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12\x17\n\x10UNSPECIFIED_TYPE\x10\xe2\xee\xdb\x19\"[\n\tIpVersion\x12\x18\n\x14UNDEFINED_IP_VERSION\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\x12\x1a\n\x13UNSPECIFIED_VERSION\x10\x90\xcf\xb5\n\"K\n\x10Ipv6EndpointType\x12 \n\x1cUNDEFINED_IPV6_ENDPOINT_TYPE\x10\x00\x12\x0c\n\x05NETLB\x10\xb3\x97\xaf#\x12\x07\n\x02VM\x10\xb7\x15\"\x8f\x01\n\x0bNetworkTier\x12\x1a\n\x16UNDEFINED_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"\xe2\x01\n\x07Purpose\x12\x15\n\x11UNDEFINED_PURPOSE\x10\x00\x12\x14\n\x0c\x44NS_RESOLVER\x10\xfc\xdc\x83\xe3\x01\x12\x13\n\x0cGCE_ENDPOINT\x10\xab\xc4\xf5m\x12\x1a\n\x12IPSEC_INTERCONNECT\x10\x83\xd2\xaa\xa2\x01\x12\x0f\n\x08NAT_AUTO\x10\xad\xb4\x85N\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x12\n\nSERVERLESS\x10\xdc\xc6\xfd\x80\x01\x12\x1f\n\x17SHARED_LOADBALANCER_VIP\x10\xd4\xd3\xb3\x8c\x01\x12\x13\n\x0bVPC_PEERING\x10\xaa\xf3\x8e\xbf\x01\"R\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\r\n\x06IN_USE\x10\xcd\xce\xa5\x08\x12\x10\n\x08RESERVED\x10\xa8\xf6\x8d\xce\x01\x12\x11\n\tRESERVING\x10\xd9\xf4\xaf\xf5\x01\x42\n\n\x08_addressB\x0f\n\r_address_typeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\r\n\x0b_ip_versionB\x15\n\x13_ipv6_endpoint_typeB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\n\n\x08_networkB\x0f\n\r_network_tierB\x10\n\x0e_prefix_lengthB\n\n\x08_purposeB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_statusB\r\n\x0b_subnetwork\"\xb7\x03\n\x15\x41\x64\x64ressAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12K\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x39.google.cloud.compute.v1.AddressAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.AddressesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9f\x02\n\x0b\x41\x64\x64ressList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.Address\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x95\x01\n\x13\x41\x64\x64ressesScopedList\x12\x37\n\taddresses\x18\xa2\xf7\x81\xa1\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Address\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xcd\x04\n\x17\x41\x64vancedMachineFeatures\x12,\n\x1c\x65nable_nested_virtualization\x18\x85\xcb\xf7\x07 \x01(\x08H\x00\x88\x01\x01\x12\'\n\x16\x65nable_uefi_networking\x18\xa4\xb1\xbf\x9f\x01 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1bperformance_monitoring_unit\x18\x8c\xc2\xb9\xfe\x01 \x01(\tH\x02\x88\x01\x01\x12!\n\x10threads_per_core\x18\xd7\xda\x91\xa8\x01 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\nturbo_mode\x18\xa4\x8e\xba\xce\x01 \x01(\tH\x04\x88\x01\x01\x12\"\n\x12visible_core_count\x18\xdc\xf4\x8f\\ \x01(\x05H\x05\x88\x01\x01\"\xb1\x01\n\x19PerformanceMonitoringUnit\x12)\n%UNDEFINED_PERFORMANCE_MONITORING_UNIT\x10\x00\x12\x14\n\rARCHITECTURAL\x10\xdd\xb1\xfbI\x12\x10\n\x08\x45NHANCED\x10\xf6\x86\xb2\xe3\x01\x12/\n\'PERFORMANCE_MONITORING_UNIT_UNSPECIFIED\x10\xc4\xf8\xd4\xcc\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\x1f\n\x1d_enable_nested_virtualizationB\x19\n\x17_enable_uefi_networkingB\x1e\n\x1c_performance_monitoring_unitB\x13\n\x11_threads_per_coreB\r\n\x0b_turbo_modeB\x15\n\x13_visible_core_count\"\xa7\x03\n%AggregatedListAcceleratorTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListAddressesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListAutoscalersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListDiskTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x9c\x03\n\x1a\x41ggregatedListDisksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListForwardingRulesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListGlobalOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListHealthChecksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xac\x03\n*AggregatedListInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa5\x03\n#AggregatedListInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListInstanceTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListInstantSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xae\x03\n,AggregatedListInterconnectAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListMachineTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa9\x03\n\'AggregatedListNetworkAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xb2\x03\n0AggregatedListNetworkEdgeSecurityServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xac\x03\n*AggregatedListNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xae\x03\n,AggregatedListNetworkFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa1\x03\n\x1f\x41ggregatedListNodeGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa4\x03\n\"AggregatedListNodeTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListNodeTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListPacketMirroringsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xae\x03\n,AggregatedListPublicDelegatedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListRegionCommitmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListReservationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListResourcePoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x9e\x03\n\x1c\x41ggregatedListRoutersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa9\x03\n\'AggregatedListServiceAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListSslCertificatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListStoragePoolTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListStoragePoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListSubnetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListTargetHttpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa9\x03\n\'AggregatedListTargetHttpsProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListTargetInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListTargetPoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListTargetTcpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListTargetVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x9e\x03\n\x1c\x41ggregatedListUrlMapsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa1\x03\n\x1f\x41ggregatedListVpnTunnelsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x81\x01\n\x0c\x41liasIpRange\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x12&\n\x15subnetwork_range_name\x18\xbe\xb2\x81\xb9\x01 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_ip_cidr_rangeB\x18\n\x16_subnetwork_range_name\"\x92\x06\n\x1e\x41llocationAggregateReservation\x12i\n\x10in_use_resources\x18\xd3\xf7\x83\xc3\x01 \x03(\x0b\x32K.google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo\x12j\n\x12reserved_resources\x18\xce\xe3\xd5\x65 \x03(\x0b\x32K.google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo\x12\x19\n\tvm_family\x18\xec\xbb\xce; \x01(\tH\x00\x88\x01\x01\x12\x1e\n\rworkload_type\x18\x82\xfe\xb0\x82\x01 \x01(\tH\x01\x88\x01\x01\"\xdd\x02\n\x08VmFamily\x12\x17\n\x13UNDEFINED_VM_FAMILY\x10\x00\x12%\n\x1eVM_FAMILY_CLOUD_TPU_DEVICE_CT3\x10\xfc\x8d\xb7\x14\x12+\n$VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L\x10\xe3\x82\xc1\x33\x12/\n(VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP\x10\xf3\xd6\xf5\x08\x12/\n\'VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E\x10\x95\xc9\x9c\xbe\x01\x12*\n\"VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P\x10\xb8\xd1\xda\xf6\x01\x12*\n\"VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P\x10\xd7\xd1\xda\xf6\x01\x12*\n\"VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P\x10\xf6\xd1\xda\xf6\x01\"^\n\x0cWorkloadType\x12\x1b\n\x17UNDEFINED_WORKLOAD_TYPE\x10\x00\x12\x0c\n\x05\x42\x41TCH\x10\x9a\xbe\x83\x1e\x12\x0e\n\x07SERVING\x10\xec\xa7\xbd\x08\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0c\n\n_vm_familyB\x10\n\x0e_workload_type\"\xba\x01\n2AllocationAggregateReservationReservedResourceInfo\x12t\n\x0b\x61\x63\x63\x65lerator\x18\xeb\xc4\xab\xca\x01 \x01(\x0b\x32V.google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAcceleratorH\x00\x88\x01\x01\x42\x0e\n\x0c_accelerator\"\xb0\x01\n=AllocationAggregateReservationReservedResourceInfoAccelerator\x12\"\n\x11\x61\x63\x63\x65lerator_count\x18\xbb\xb4\xdf\xf0\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x10\x61\x63\x63\x65lerator_type\x18\x8e\xe1\xe8\x41 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_accelerator_countB\x13\n\x11_accelerator_type\"\xe8\x01\n\"AllocationReservationSharingPolicy\x12#\n\x12service_share_type\x18\xe4\x8e\xab\xf5\x01 \x01(\tH\x00\x88\x01\x01\"\x85\x01\n\x10ServiceShareType\x12 \n\x1cUNDEFINED_SERVICE_SHARE_TYPE\x10\x00\x12\x11\n\tALLOW_ALL\x10\xeb\xb6\xe0\xe2\x01\x12\x14\n\x0c\x44ISALLOW_ALL\x10\xbd\xdd\xba\x84\x01\x12&\n\x1eSERVICE_SHARE_TYPE_UNSPECIFIED\x10\xfc\xa5\x88\x85\x01\x42\x15\n\x13_service_share_type\"\xcb\x03\n\x18\x41llocationResourceStatus\x12X\n\x0bhealth_info\x18\xb1\xe9\x98p \x01(\x0b\x32;.google.cloud.compute.v1.AllocationResourceStatusHealthInfoH\x00\x88\x01\x01\x12\'\n\x17reservation_block_count\x18\xea\xd5\x95M \x01(\x05H\x01\x88\x01\x01\x12W\n\x17reservation_maintenance\x18\xa0\x86\xb5\xa2\x01 \x01(\x0b\x32-.google.cloud.compute.v1.GroupMaintenanceInfoH\x02\x88\x01\x01\x12o\n\x17specific_sku_allocation\x18\xef\xff\xc8] \x01(\x0b\x32\x46.google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocationH\x03\x88\x01\x01\x42\x0e\n\x0c_health_infoB\x1a\n\x18_reservation_block_countB\x1a\n\x18_reservation_maintenanceB\x1a\n\x18_specific_sku_allocation\"\xc6\x02\n\"AllocationResourceStatusHealthInfo\x12%\n\x14\x64\x65graded_block_count\x18\xcc\x8e\x91\xf5\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x01(\tH\x01\x88\x01\x01\x12#\n\x13healthy_block_count\x18\xbb\xfe\xd0j \x01(\x05H\x02\x88\x01\x01\"q\n\x0cHealthStatus\x12\x1b\n\x17UNDEFINED_HEALTH_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12!\n\x19HEALTH_STATUS_UNSPECIFIED\x10\x8d\x82\xfa\xe5\x01\x42\x17\n\x15_degraded_block_countB\x10\n\x0e_health_statusB\x16\n\x14_healthy_block_count\"\xa5\x02\n-AllocationResourceStatusSpecificSKUAllocation\x12+\n\x1bsource_instance_template_id\x18\xfa\xef\x82\x35 \x01(\tH\x00\x88\x01\x01\x12r\n\x0cutilizations\x18\x91\xad\xf6\xbf\x01 \x03(\x0b\x32X.google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation.UtilizationsEntry\x1a\x33\n\x11UtilizationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x42\x1e\n\x1c_source_instance_template_id\"\xe2\x01\nFAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1a\n\tinterface\x18\xb9\xda\xd5\xef\x01 \x01(\tH\x01\x88\x01\x01\">\n\tInterface\x12\x17\n\x13UNDEFINED_INTERFACE\x10\x00\x12\x0b\n\x04NVME\x10\xe0\x82\x93\x01\x12\x0b\n\x04SCSI\x10\xa6\x81\x9b\x01\x42\x0f\n\r_disk_size_gbB\x0c\n\n_interface\"\x97\x03\n9AllocationSpecificSKUAllocationReservedInstanceProperties\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12v\n\nlocal_ssds\x18\xc3\x8e\xd3m \x03(\x0b\x32_.google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x01\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_location_hintB\x0f\n\r_machine_typeB\x13\n\x11_min_cpu_platform\"\xfe\x02\n AllocationSpecificSKUReservation\x12\x1e\n\rassured_count\x18\xcd\xf8\x8a\x86\x01 \x01(\x03H\x00\x88\x01\x01\x12\x15\n\x05\x63ount\x18\x8f\xa2\x9d- \x01(\x03H\x01\x88\x01\x01\x12\x1d\n\x0cin_use_count\x18\xbd\xab\xa6\xeb\x01 \x01(\x03H\x02\x88\x01\x01\x12w\n\x13instance_properties\x18\x9d\x9e\xd8\x66 \x01(\x0b\x32R.google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstancePropertiesH\x03\x88\x01\x01\x12)\n\x18source_instance_template\x18\xc0\xc3\xc1\x9e\x01 \x01(\tH\x04\x88\x01\x01\x42\x10\n\x0e_assured_countB\x08\n\x06_countB\x0f\n\r_in_use_countB\x16\n\x14_instance_propertiesB\x1b\n\x19_source_instance_template\"K\n\x07\x41llowed\x12\x1d\n\x0cI_p_protocol\x18\xbd\xf6\xde\xe8\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05ports\x18\x92\xf0\xf9\x32 \x03(\tB\x0f\n\r_I_p_protocol\"\xa0\x01\n&AnnouncePublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x01\n%AnnouncePublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x02\n2ApplyUpdatesToInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x89\x01\n6instance_group_managers_apply_updates_request_resource\x18\xd3\xf6\xce{ \x01(\x0b\x32\x41.google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zone\"\xbf\x02\n8ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x96\x01\n=region_instance_group_managers_apply_updates_request_resource\x18\xfe\xe9\xad$ \x01(\x0b\x32G.google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequestB\x03\xe0\x41\x02\"\x9e\x02\n\x19\x41ttachDiskInstanceRequest\x12M\n\x16\x61ttached_disk_resource\x18\x95\x92\x9a+ \x01(\x0b\x32%.google.cloud.compute.v1.AttachedDiskB\x03\xe0\x41\x02\x12\x1c\n\x0c\x66orce_attach\x18\x99\xa4\x89\x44 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x0f\n\r_force_attachB\r\n\x0b_request_id\"\xcf\x02\n7AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x12\x9c\x01\n@global_network_endpoint_groups_attach_endpoints_request_resource\x18\xeb\xa1\xd1\x0e \x01(\x0b\x32J.google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequestB\x03\xe0\x41\x02\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x02\n1AttachNetworkEndpointsNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8e\x01\n9network_endpoint_groups_attach_endpoints_request_resource\x18\x87\xb5 \x01(\x0b\x32\x44.google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf1\x02\n7AttachNetworkEndpointsRegionNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_network_endpoint_groups_attach_endpoints_request_resource\x18\xfc\xf9\xdd\x9f\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xdc\n\n\x0c\x41ttachedDisk\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x14\n\x04\x62oot\x18\xf2\xf5\xb8\x01 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tH\x03\x88\x01\x01\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x04\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x05\x88\x01\x01\x12\x1c\n\x0c\x66orce_attach\x18\x99\xa4\x89\x44 \x01(\x08H\x06\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x15\n\x05index\x18\xd2\xd1\xec/ \x01(\x05H\x07\x88\x01\x01\x12X\n\x11initialize_params\x18\x95\x92\xb8\x08 \x01(\x0b\x32\x35.google.cloud.compute.v1.AttachedDiskInitializeParamsH\x08\x88\x01\x01\x12\x1a\n\tinterface\x18\xb9\xda\xd5\xef\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x0b\x88\x01\x01\x12\x1c\n\x0bsaved_state\x18\xd9\xa9\xa1\xc4\x01 \x01(\tH\x0c\x88\x01\x01\x12\\\n\x1fshielded_instance_initial_state\x18\x83\xc4\xdc[ \x01(\x0b\x32+.google.cloud.compute.v1.InitialStateConfigH\r\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x0e\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x0f\x88\x01\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\">\n\tInterface\x12\x17\n\x13UNDEFINED_INTERFACE\x10\x00\x12\x0b\n\x04NVME\x10\xe0\x82\x93\x01\x12\x0b\n\x04SCSI\x10\xa6\x81\x9b\x01\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x10\n\tREAD_ONLY\x10\xb5\x99\xec+\x12\x11\n\nREAD_WRITE\x10\xd6\x97\xe4R\"_\n\nSavedState\x12\x19\n\x15UNDEFINED_SAVED_STATE\x10\x00\x12$\n\x1c\x44ISK_SAVED_STATE_UNSPECIFIED\x10\xcf\xbf\xca\xba\x01\x12\x10\n\tPRESERVED\x10\xf8\xd6\x98y\"?\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\nPERSISTENT\x10\x97\xf5\xd5\xdb\x01\x12\x0f\n\x07SCRATCH\x10\xda\xfd\xf0\xec\x01\x42\x0f\n\r_architectureB\x0e\n\x0c_auto_deleteB\x07\n\x05_bootB\x0e\n\x0c_device_nameB\x16\n\x14_disk_encryption_keyB\x0f\n\r_disk_size_gbB\x0f\n\r_force_attachB\x08\n\x06_indexB\x14\n\x12_initialize_paramsB\x0c\n\n_interfaceB\x07\n\x05_kindB\x07\n\x05_modeB\x0e\n\x0c_saved_stateB\"\n _shielded_instance_initial_stateB\t\n\x07_sourceB\x07\n\x05_type\"\x8f\x0c\n\x1c\x41ttachedDiskInitializeParams\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tdisk_name\x18\xed\xbf\xa0, \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x03\x88\x01\x01\x12\x19\n\tdisk_type\x18\x9c\xe9\xac, \x01(\tH\x04\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x05\x88\x01\x01\x12U\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x41.google.cloud.compute.v1.AttachedDiskInitializeParams.LabelsEntry\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12 \n\x10on_update_action\x18\x8c\xd8\xc4` \x01(\tH\x06\x88\x01\x01\x12 \n\x10provisioned_iops\x18\xd4\xbd\x87Y \x01(\x03H\x07\x88\x01\x01\x12\'\n\x16provisioned_throughput\x18\x95\xbe\x88\xfb\x01 \x01(\x03H\x08\x88\x01\x01\x12\x18\n\rreplica_zones\x18\x80\xb8\x8c\x17 \x03(\t\x12q\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32N.google.cloud.compute.v1.AttachedDiskInitializeParams.ResourceManagerTagsEntry\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\t\x88\x01\x01\x12\\\n\x1bsource_image_encryption_key\x18\xab\x91\xf5\xb5\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\n\x88\x01\x01\x12\x1f\n\x0fsource_snapshot\x18\xe8\x9a\x8e< \x01(\tH\x0b\x88\x01\x01\x12_\n\x1esource_snapshot_encryption_key\x18\xda\x8e\xe7\x90\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x0c\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tH\r\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"\x8a\x01\n\x0eOnUpdateAction\x12\x1e\n\x1aUNDEFINED_ON_UPDATE_ACTION\x10\x00\x12\x15\n\rRECREATE_DISK\x10\xed\x9d\xf6\xeb\x01\x12\'\n\x1fRECREATE_DISK_IF_SOURCE_CHANGED\x10\x80\x8a\xea\xbd\x01\x12\x18\n\x11USE_EXISTING_DISK\x10\xf9\xe5\xf9nB\x0f\n\r_architectureB\x0e\n\x0c_descriptionB\x0c\n\n_disk_nameB\x0f\n\r_disk_size_gbB\x0c\n\n_disk_typeB\x1e\n\x1c_enable_confidential_computeB\x13\n\x11_on_update_actionB\x13\n\x11_provisioned_iopsB\x19\n\x17_provisioned_throughputB\x0f\n\r_source_imageB\x1e\n\x1c_source_image_encryption_keyB\x12\n\x10_source_snapshotB!\n\x1f_source_snapshot_encryption_keyB\x0f\n\r_storage_pool\"\x98\x01\n\x0b\x41uditConfig\x12\x46\n\x11\x61udit_log_configs\x18\x92\xea\xf2\xe8\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.AuditLogConfig\x12\x1b\n\x10\x65xempted_members\x18\x98\xdd\xf5n \x03(\t\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_service\"\x94\x02\n\x0e\x41uditLogConfig\x12\x1b\n\x10\x65xempted_members\x18\x98\xdd\xf5n \x03(\t\x12\'\n\x17ignore_child_exemptions\x18\x9a\x8f\xb9! \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x08log_type\x18\xd5\x9e\x9c\xc0\x01 \x01(\tH\x01\x88\x01\x01\"x\n\x07LogType\x12\x16\n\x12UNDEFINED_LOG_TYPE\x10\x00\x12\x11\n\nADMIN_READ\x10\xa6\xc9\xbe=\x12\x11\n\tDATA_READ\x10\x8b\xba\xc5\x91\x01\x12\x12\n\nDATA_WRITE\x10\xea\x85\x9b\xa2\x01\x12\x1b\n\x14LOG_TYPE_UNSPECIFIED\x10\xcd\xca\xd7IB\x1a\n\x18_ignore_child_exemptionsB\x0b\n\t_log_type\"\x9d\x07\n\nAutoscaler\x12N\n\x12\x61utoscaling_policy\x18\xd9\xe0\xeai \x01(\x0b\x32*.google.cloud.compute.v1.AutoscalingPolicyH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12 \n\x10recommended_size\x18\xe5\xf6\xfdz \x01(\x05H\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x63\n\x17scaling_schedule_status\x18\xe2\xab\x97\xde\x01 \x03(\x0b\x32>.google.cloud.compute.v1.Autoscaler.ScalingScheduleStatusEntry\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\t\x88\x01\x01\x12L\n\x0estatus_details\x18\xf5\xad\xa1\xad\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.AutoscalerStatusDetails\x12\x16\n\x06target\x18\x91\xe3\xf9[ \x01(\tH\n\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0b\x88\x01\x01\x1al\n\x1aScalingScheduleStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.ScalingScheduleStatus:\x02\x38\x01\"^\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0c\n\x05\x45RROR\x10\xe8\xb3\xcb\x1f\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x42\x15\n\x13_autoscaling_policyB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x13\n\x11_recommended_sizeB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_statusB\t\n\x07_targetB\x07\n\x05_zone\"\xbf\x03\n\x18\x41utoscalerAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.AutoscalerAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.AutoscalersScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0e\x41utoscalerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Autoscaler\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xcb\x06\n\x17\x41utoscalerStatusDetails\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x01\x88\x01\x01\"\xea\x05\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1f\n\x17\x41LL_INSTANCES_UNHEALTHY\x10\xe5\x90\x8d\xc1\x01\x12%\n\x1e\x42\x41\x43KEND_SERVICE_DOES_NOT_EXIST\x10\x9a\x9a\xa3[\x12 \n\x1a\x43\x41PPED_AT_MAX_NUM_REPLICAS\x10\xd9\xd3\x1f\x12,\n$CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE\x10\xb3\xb4\xee\x9c\x01\x12\x1c\n\x15\x43USTOM_METRIC_INVALID\x10\xd6\xb9\xbd\x61\x12\x15\n\x0eMIN_EQUALS_MAX\x10\xf1\x99\xac\x01\x12(\n!MISSING_CUSTOM_METRIC_DATA_POINTS\x10\xde\xa9\x9f-\x12*\n\"MISSING_LOAD_BALANCING_DATA_POINTS\x10\xd2\xa8\x8f\xf3\x01\x12\x0f\n\x08MODE_OFF\x10\xb3\x91\xa4N\x12\x1a\n\x13MODE_ONLY_SCALE_OUT\x10\xe2\xb7\xea\x01\x12\x13\n\x0cMODE_ONLY_UP\x10\xf2\xda\x92\x30\x12$\n\x1dMORE_THAN_ONE_BACKEND_SERVICE\x10\xdd\xcb\xb8H\x12\"\n\x1aNOT_ENOUGH_QUOTA_AVAILABLE\x10\xbf\xaf\x9b\xc0\x01\x12 \n\x18REGION_RESOURCE_STOCKOUT\x10\xfe\xc9\x88\xfc\x01\x12$\n\x1dSCALING_TARGET_DOES_NOT_EXIST\x10\x9b\x93\xbd:\x12\x36\n/SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX\x10\xc2\xeb\xfa\r\x12\x34\n,SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN\x10\xb5\xc6\xf5\xbd\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\x12\x39\n1UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION\x10\xd1\x96\xe1\x9d\x01\x12\x1d\n\x16ZONE_RESOURCE_STOCKOUT\x10\xb6\xcf\x9d\x64\x42\n\n\x08_messageB\x07\n\x05_type\"\x9c\x01\n\x15\x41utoscalersScopedList\x12<\n\x0b\x61utoscalers\x18\xfc\xb8\x8c\xde\x01 \x03(\x0b\x32#.google.cloud.compute.v1.Autoscaler\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe9\x07\n\x11\x41utoscalingPolicy\x12$\n\x14\x63ool_down_period_sec\x18\x9a\x87\xad\x33 \x01(\x05H\x00\x88\x01\x01\x12Z\n\x0f\x63pu_utilization\x18\x8b\xa4\xe3\xb5\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.AutoscalingPolicyCpuUtilizationH\x01\x88\x01\x01\x12h\n\x1a\x63ustom_metric_utilizations\x18\xf2\xfd\xf6> \x03(\x0b\x32\x41.google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization\x12o\n\x1aload_balancing_utilization\x18\xe3\xd1\xf5\xcc\x01 \x01(\x0b\x32\x42.google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilizationH\x02\x88\x01\x01\x12 \n\x10max_num_replicas\x18\xcf\x94\xdc\x1d \x01(\x05H\x03\x88\x01\x01\x12!\n\x10min_num_replicas\x18\xa1\xf8\xa1\xff\x01 \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x05\x88\x01\x01\x12[\n\x10scale_in_control\x18\xd8\xbc\xce\xfb\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.AutoscalingPolicyScaleInControlH\x06\x88\x01\x01\x12_\n\x11scaling_schedules\x18\x84\xf4\xbc\xa9\x01 \x03(\x0b\x32@.google.cloud.compute.v1.AutoscalingPolicy.ScalingSchedulesEntry\x1ar\n\x15ScalingSchedulesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0b\x32\x39.google.cloud.compute.v1.AutoscalingPolicyScalingSchedule:\x02\x38\x01\"V\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\t\n\x03OFF\x10\xcf\xe2\x04\x12\x07\n\x02ON\x10\xdf\x13\x12\x15\n\x0eONLY_SCALE_OUT\x10\xc6\xf3\xe8H\x12\x0f\n\x07ONLY_UP\x10\x8e\xd0\xfc\xe3\x01\x42\x17\n\x15_cool_down_period_secB\x12\n\x10_cpu_utilizationB\x1d\n\x1b_load_balancing_utilizationB\x13\n\x11_max_num_replicasB\x13\n\x11_min_num_replicasB\x07\n\x05_modeB\x13\n\x11_scale_in_control\"\xf6\x01\n\x1f\x41utoscalingPolicyCpuUtilization\x12\"\n\x11predictive_method\x18\xc1\x97\x89\xba\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12utilization_target\x18\xce\xec\xf9\x66 \x01(\x01H\x01\x88\x01\x01\"^\n\x10PredictiveMethod\x12\x1f\n\x1bUNDEFINED_PREDICTIVE_METHOD\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x1c\n\x15OPTIMIZE_AVAILABILITY\x10\xfd\xe6\xc5\x05\x42\x14\n\x12_predictive_methodB\x15\n\x13_utilization_target\"\xbf\x03\n(AutoscalingPolicyCustomMetricUtilization\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06metric\x18\xb0\xeb\x97\xfe\x01 \x01(\tH\x01\x88\x01\x01\x12+\n\x1asingle_instance_assignment\x18\xc0\xcc\xd8\xf0\x01 \x01(\x01H\x02\x88\x01\x01\x12\"\n\x12utilization_target\x18\xce\xec\xf9\x66 \x01(\x01H\x03\x88\x01\x01\x12(\n\x17utilization_target_type\x18\x8b\xa5\x9a\xa2\x01 \x01(\tH\x04\x88\x01\x01\"~\n\x15UtilizationTargetType\x12%\n!UNDEFINED_UTILIZATION_TARGET_TYPE\x10\x00\x12\x17\n\x10\x44\x45LTA_PER_MINUTE\x10\x9d\xbd\xd8)\x12\x17\n\x10\x44\x45LTA_PER_SECOND\x10\xfd\xf9\xd6y\x12\x0c\n\x05GAUGE\x10\xd9\xb1\x9d B\t\n\x07_filterB\t\n\x07_metricB\x1d\n\x1b_single_instance_assignmentB\x15\n\x13_utilization_targetB\x1a\n\x18_utilization_target_type\"f\n)AutoscalingPolicyLoadBalancingUtilization\x12\"\n\x12utilization_target\x18\xce\xec\xf9\x66 \x01(\x01H\x00\x88\x01\x01\x42\x15\n\x13_utilization_target\"\xc2\x01\n\x1f\x41utoscalingPolicyScaleInControl\x12O\n\x16max_scaled_in_replicas\x18\xeb\xd5\x95V \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x00\x88\x01\x01\x12\x1f\n\x0ftime_window_sec\x18\xb4\x80\xae\x11 \x01(\x05H\x01\x88\x01\x01\x42\x19\n\x17_max_scaled_in_replicasB\x12\n\x10_time_window_sec\"\xba\x02\n AutoscalingPolicyScalingSchedule\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1c\n\x0c\x64uration_sec\x18\xa6\x9e\xa1\x65 \x01(\x05H\x02\x88\x01\x01\x12&\n\x15min_required_replicas\x18\xae\x9d\xa5\xae\x01 \x01(\x05H\x03\x88\x01\x01\x12\x19\n\x08schedule\x18\x97\xa5\x9a\xb3\x01 \x01(\tH\x04\x88\x01\x01\x12\x19\n\ttime_zone\x18\xde\x83\xc9\x11 \x01(\tH\x05\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_disabledB\x0f\n\r_duration_secB\x18\n\x16_min_required_replicasB\x0b\n\t_scheduleB\x0c\n\n_time_zone\"\xf6\x07\n\x07\x42\x61\x63kend\x12\x1f\n\x0e\x62\x61lancing_mode\x18\x89\xcb\x96\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x0f\x63\x61pacity_scaler\x18\x8d\xc7\xd4\x96\x01 \x01(\x02H\x01\x88\x01\x01\x12H\n\x0e\x63ustom_metrics\x18\xf5\xe3\xe3\xcc\x01 \x03(\x0b\x32,.google.cloud.compute.v1.BackendCustomMetric\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08\x66\x61ilover\x18\xf2\xa9\x9d\x42 \x01(\x08H\x03\x88\x01\x01\x12\x15\n\x05group\x18\xff\xec\x83/ \x01(\tH\x04\x88\x01\x01\x12\x1f\n\x0fmax_connections\x18\xfa\xd5\xe1\x34 \x01(\x05H\x05\x88\x01\x01\x12,\n\x1cmax_connections_per_endpoint\x18\x9c\xe7\xb6g \x01(\x05H\x06\x88\x01\x01\x12,\n\x1cmax_connections_per_instance\x18\x9c\xd5\xf4\x31 \x01(\x05H\x07\x88\x01\x01\x12\x19\n\x08max_rate\x18\xdb\xbd\xc8\xc2\x01 \x01(\x05H\x08\x88\x01\x01\x12%\n\x15max_rate_per_endpoint\x18\xdb\xaa\xf4= \x01(\x02H\t\x88\x01\x01\x12%\n\x15max_rate_per_instance\x18\xdb\x98\xb2\x08 \x01(\x02H\n\x88\x01\x01\x12\x1f\n\x0fmax_utilization\x18\xc7\xf7\xd4\x46 \x01(\x02H\x0b\x88\x01\x01\x12\x1a\n\npreference\x18\xdb\xf9\xf2G \x01(\tH\x0c\x88\x01\x01\"y\n\rBalancingMode\x12\x1c\n\x18UNDEFINED_BALANCING_MODE\x10\x00\x12\x11\n\nCONNECTION\x10\xde\xd5\xb9u\x12\x16\n\x0e\x43USTOM_METRICS\x10\xd5\xe3\x8d\x9e\x01\x12\x0b\n\x04RATE\x10\xe0\x89\x99\x01\x12\x12\n\x0bUTILIZATION\x10\x82\x84\xefJ\"i\n\nPreference\x12\x18\n\x14UNDEFINED_PREFERENCE\x10\x00\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\x12\x1e\n\x16PREFERENCE_UNSPECIFIED\x10\xb3\xeb\xce\xec\x01\x12\x11\n\tPREFERRED\x10\xe1\xb8\xdc\xc7\x01\x42\x11\n\x0f_balancing_modeB\x12\n\x10_capacity_scalerB\x0e\n\x0c_descriptionB\x0b\n\t_failoverB\x08\n\x06_groupB\x12\n\x10_max_connectionsB\x1f\n\x1d_max_connections_per_endpointB\x1f\n\x1d_max_connections_per_instanceB\x0b\n\t_max_rateB\x18\n\x16_max_rate_per_endpointB\x18\n\x16_max_rate_per_instanceB\x12\n\x10_max_utilizationB\r\n\x0b_preference\"\xcc\x07\n\rBackendBucket\x12\x1c\n\x0b\x62ucket_name\x18\xc0\x97\x9e\x87\x01 \x01(\tH\x00\x88\x01\x01\x12K\n\ncdn_policy\x18\x84\x8b\x84\x66 \x01(\x0b\x32/.google.cloud.compute.v1.BackendBucketCdnPolicyH\x01\x88\x01\x01\x12 \n\x10\x63ompression_mode\x18\xdc\x91\xc6- \x01(\tH\x02\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12#\n\x17\x63ustom_response_headers\x18\x96\xc1\xe5\xb8\x01 \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12$\n\x14\x65\x64ge_security_policy\x18\x8f\xd9\xc8\x13 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\nenable_cdn\x18\xf1\xb6\xf5\x86\x01 \x01(\x08H\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12&\n\x15load_balancing_scheme\x18\xc4\x8c\xc2\xad\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12\x44\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32,.google.cloud.compute.v1.BackendBucketParamsH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x41\n\x07used_by\x18\x99\xa0\xd2\xb9\x01 \x03(\x0b\x32,.google.cloud.compute.v1.BackendBucketUsedBy\"U\n\x0f\x43ompressionMode\x12\x1e\n\x1aUNDEFINED_COMPRESSION_MODE\x10\x00\x12\x10\n\tAUTOMATIC\x10\x8b\x84\xe9N\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\"S\n\x13LoadBalancingScheme\x12#\n\x1fUNDEFINED_LOAD_BALANCING_SCHEME\x10\x00\x12\x17\n\x10INTERNAL_MANAGED\x10\xfd\xd7\xe7\x11\x42\x0e\n\x0c_bucket_nameB\r\n\x0b_cdn_policyB\x13\n\x11_compression_modeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x17\n\x15_edge_security_policyB\r\n\x0b_enable_cdnB\x05\n\x03_idB\x07\n\x05_kindB\x18\n\x16_load_balancing_schemeB\x07\n\x05_nameB\t\n\x07_paramsB\x0c\n\n_self_link\"\xca\x07\n\x16\x42\x61\x63kendBucketCdnPolicy\x12v\n\x1f\x62ypass_cache_on_request_headers\x18\xca\xbd\xeb\xe7\x01 \x03(\x0b\x32I.google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader\x12_\n\x10\x63\x61\x63he_key_policy\x18\xef\xd7\xf8K \x01(\x0b\x32=.google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicyH\x00\x88\x01\x01\x12\x1a\n\ncache_mode\x18\xc0\xc8\xe2\r \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nclient_ttl\x18\xf8\x8e\xec\r \x01(\x05H\x02\x88\x01\x01\x12\x1b\n\x0b\x64\x65\x66\x61ult_ttl\x18\xee\xfd\xe6/ \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x07max_ttl\x18\x91\x89\xd5\x92\x01 \x01(\x05H\x04\x88\x01\x01\x12!\n\x10negative_caching\x18\xb5\xc3\xa2\xa0\x01 \x01(\x08H\x05\x88\x01\x01\x12h\n\x17negative_caching_policy\x18\xfc\xb5\x8aJ \x03(\x0b\x32\x44.google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy\x12#\n\x12request_coalescing\x18\xd4\x84\x88\xfe\x01 \x01(\x08H\x06\x88\x01\x01\x12!\n\x11serve_while_stale\x18\xdb\xf7\xedp \x01(\x05H\x07\x88\x01\x01\x12-\n\x1csigned_url_cache_max_age_sec\x18\xc6\xa8\xb9\x80\x01 \x01(\x03H\x08\x88\x01\x01\x12 \n\x14signed_url_key_names\x18\xb5\xed\xa7\xb1\x01 \x03(\t\"\x8f\x01\n\tCacheMode\x12\x18\n\x14UNDEFINED_CACHE_MODE\x10\x00\x12\x18\n\x10\x43\x41\x43HE_ALL_STATIC\x10\xe9\x97\xa5\xa9\x01\x12\x17\n\x0f\x46ORCE_CACHE_ALL\x10\xb0\xdd\xe0\xe7\x01\x12\x1a\n\x12INVALID_CACHE_MODE\x10\xc8\xb7\xe8\xb5\x01\x12\x19\n\x12USE_ORIGIN_HEADERS\x10\xa5\x92\xb4\x1a\x42\x13\n\x11_cache_key_policyB\r\n\x0b_cache_modeB\r\n\x0b_client_ttlB\x0e\n\x0c_default_ttlB\n\n\x08_max_ttlB\x13\n\x11_negative_cachingB\x15\n\x13_request_coalescingB\x14\n\x12_serve_while_staleB\x1f\n\x1d_signed_url_cache_max_age_sec\"_\n0BackendBucketCdnPolicyBypassCacheOnRequestHeader\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_header_name\"j\n$BackendBucketCdnPolicyCacheKeyPolicy\x12\x1f\n\x14include_http_headers\x18\x86\xfa\x97\x01 \x03(\t\x12!\n\x16query_string_whitelist\x18\xb0\xd8\x81\x19 \x03(\t\"h\n+BackendBucketCdnPolicyNegativeCachingPolicy\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x03ttl\x18\xec\x83\x07 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_codeB\x06\n\x04_ttl\"\xab\x02\n\x11\x42\x61\x63kendBucketList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x38\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32&.google.cloud.compute.v1.BackendBucket\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbb\x01\n\x13\x42\x61\x63kendBucketParams\x12h\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x45.google.cloud.compute.v1.BackendBucketParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\">\n\x13\x42\x61\x63kendBucketUsedBy\x12\x19\n\treference\x18\xcb\xfe\xec\x46 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_reference\"\x8f\x01\n\x13\x42\x61\x63kendCustomMetric\x12\x18\n\x07\x64ry_run\x18\xf7\xc3\xb6\x9a\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x0fmax_utilization\x18\xc7\xf7\xd4\x46 \x01(\x02H\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_dry_runB\x12\n\x10_max_utilizationB\x07\n\x05_name\"\xd2%\n\x0e\x42\x61\x63kendService\x12(\n\x17\x61\x66\x66inity_cookie_ttl_sec\x18\x9a\xe9\xb6\xb0\x01 \x01(\x05H\x00\x88\x01\x01\x12\x36\n\x08\x62\x61\x63kends\x18\xdf\x98\xcb\xf3\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Backend\x12L\n\ncdn_policy\x18\x84\x8b\x84\x66 \x01(\x0b\x32\x30.google.cloud.compute.v1.BackendServiceCdnPolicyH\x01\x88\x01\x01\x12K\n\x10\x63ircuit_breakers\x18\x9d\xc7\xf4\xc8\x01 \x01(\x0b\x32(.google.cloud.compute.v1.CircuitBreakersH\x02\x88\x01\x01\x12 \n\x10\x63ompression_mode\x18\xdc\x91\xc6- \x01(\tH\x03\x88\x01\x01\x12Q\n\x13\x63onnection_draining\x18\xab\x8e\xef\xdb\x01 \x01(\x0b\x32+.google.cloud.compute.v1.ConnectionDrainingH\x04\x88\x01\x01\x12k\n\x1a\x63onnection_tracking_policy\x18\xd9\xe0\xd4\x44 \x01(\x0b\x32?.google.cloud.compute.v1.BackendServiceConnectionTrackingPolicyH\x05\x88\x01\x01\x12[\n\x0f\x63onsistent_hash\x18\x9b\xa5\x37 \x01(\x0b\x32;.google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsH\x06\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x07\x88\x01\x01\x12O\n\x0e\x63ustom_metrics\x18\xf5\xe3\xe3\xcc\x01 \x03(\x0b\x32\x33.google.cloud.compute.v1.BackendServiceCustomMetric\x12!\n\x16\x63ustom_request_headers\x18\x88\xd2\xab\r \x03(\t\x12#\n\x17\x63ustom_response_headers\x18\x96\xc1\xe5\xb8\x01 \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x08\x88\x01\x01\x12$\n\x14\x65\x64ge_security_policy\x18\x8f\xd9\xc8\x13 \x01(\tH\t\x88\x01\x01\x12\x1c\n\x0c\x65nable_c_d_n\x18\xbb\xc7\xc7w \x01(\x08H\n\x88\x01\x01\x12\x30\n external_managed_migration_state\x18\xcc\x8f\xf6\x1f \x01(\tH\x0b\x88\x01\x01\x12>\n-external_managed_migration_testing_percentage\x18\xce\x81\xef\xf1\x01 \x01(\x02H\x0c\x88\x01\x01\x12V\n\x0f\x66\x61ilover_policy\x18\x9f\xf2\xb0\x32 \x01(\x0b\x32\x35.google.cloud.compute.v1.BackendServiceFailoverPolicyH\r\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x0e\x88\x01\x01\x12K\n\tha_policy\x18\xb8\xf6\xf2\xf7\x01 \x01(\x0b\x32/.google.cloud.compute.v1.BackendServiceHAPolicyH\x0f\x88\x01\x01\x12\x19\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\t\x12>\n\x03iap\x18\xd8\xac\x06 \x01(\x0b\x32*.google.cloud.compute.v1.BackendServiceIAPH\x10\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x11\x88\x01\x01\x12+\n\x1bip_address_selection_policy\x18\xc8\xb0\x80% \x01(\tH\x12\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x13\x88\x01\x01\x12&\n\x15load_balancing_scheme\x18\xc4\x8c\xc2\xad\x01 \x01(\tH\x14\x88\x01\x01\x12i\n\x14locality_lb_policies\x18\x9d\xf2\x9c\x43 \x03(\x0b\x32H.google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig\x12\"\n\x12locality_lb_policy\x18\xbf\xf8\xd5> \x01(\tH\x15\x88\x01\x01\x12M\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.BackendServiceLogConfigH\x16\x88\x01\x01\x12\x46\n\x13max_stream_duration\x18\x98\xa5\xa5\x1d \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x17\x88\x01\x01\x12L\n\tmetadatas\x18\xa4\xd6\x87\x04 \x03(\x0b\x32\x36.google.cloud.compute.v1.BackendService.MetadatasEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x18\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x19\x88\x01\x01\x12M\n\x11outlier_detection\x18\xbe\xcc\x8c\xa9\x01 \x01(\x0b\x32).google.cloud.compute.v1.OutlierDetectionH\x1a\x88\x01\x01\x12\x45\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32-.google.cloud.compute.v1.BackendServiceParamsH\x1b\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x1c\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x1d\x88\x01\x01\x12\x18\n\x08protocol\x18\x98\x9d\xaa( \x01(\tH\x1e\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x1f\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH \x88\x01\x01\x12M\n\x11security_settings\x18\xc2\xbc\x9e\xe4\x01 \x01(\x0b\x32).google.cloud.compute.v1.SecuritySettingsH!\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\"\x88\x01\x01\x12\x1b\n\x10service_bindings\x18\xd8\x91\xd9? \x03(\t\x12!\n\x11service_lb_policy\x18\x91\x8e\x9d- \x01(\tH#\x88\x01\x01\x12!\n\x10session_affinity\x18\xb1\xc1\x99\xdd\x01 \x01(\tH$\x88\x01\x01\x12\x61\n\x1estrong_session_affinity_cookie\x18\x8a\xa8\xcaq \x01(\x0b\x32\x31.google.cloud.compute.v1.BackendServiceHttpCookieH%\x88\x01\x01\x12@\n\nsubsetting\x18\x90\x90\xdb\xd6\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SubsettingH&\x88\x01\x01\x12\x1b\n\x0btimeout_sec\x18\xf3\xc0\x92& \x01(\x05H\'\x88\x01\x01\x12P\n\x0ctls_settings\x18\xe7\xad\x80\' \x01(\x0b\x32\x32.google.cloud.compute.v1.BackendServiceTlsSettingsH(\x88\x01\x01\x12\x42\n\x07used_by\x18\x99\xa0\xd2\xb9\x01 \x03(\x0b\x32-.google.cloud.compute.v1.BackendServiceUsedBy\x1a\x30\n\x0eMetadatasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"U\n\x0f\x43ompressionMode\x12\x1e\n\x1aUNDEFINED_COMPRESSION_MODE\x10\x00\x12\x10\n\tAUTOMATIC\x10\x8b\x84\xe9N\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\"\x95\x01\n\x1d\x45xternalManagedMigrationState\x12.\n*UNDEFINED_EXTERNAL_MANAGED_MIGRATION_STATE\x10\x00\x12\x0f\n\x07PREPARE\x10\xe7\xb1\xc6\xbe\x01\x12\x17\n\x10TEST_ALL_TRAFFIC\x10\xf2\xa1\x82&\x12\x1a\n\x12TEST_BY_PERCENTAGE\x10\x95\x8d\xfc\xf4\x01\"\xae\x01\n\x18IpAddressSelectionPolicy\x12)\n%UNDEFINED_IP_ADDRESS_SELECTION_POLICY\x10\x00\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\x12.\n\'IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED\x10\xe0\x8b\xa2\x11\x12\x13\n\x0bPREFER_IPV6\x10\xd6\x85\xeb\xc2\x01\"\xd5\x01\n\x13LoadBalancingScheme\x12#\n\x1fUNDEFINED_LOAD_BALANCING_SCHEME\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x18\n\x10\x45XTERNAL_MANAGED\x10\x8b\xb6\x92\xf4\x01\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12\x17\n\x10INTERNAL_MANAGED\x10\xfd\xd7\xe7\x11\x12\x1c\n\x15INTERNAL_SELF_MANAGED\x10\xce\x97\xd1p\x12%\n\x1dINVALID_LOAD_BALANCING_SCHEME\x10\xfc\x93\xa6\x83\x01\"\xfc\x01\n\x10LocalityLbPolicy\x12 \n\x1cUNDEFINED_LOCALITY_LB_POLICY\x10\x00\x12\x19\n\x11INVALID_LB_POLICY\x10\xb3\xe7\x95\x9a\x01\x12\x14\n\rLEAST_REQUEST\x10\xf9\xc4\x9c\x16\x12\r\n\x06MAGLEV\x10\xea\x97\xea\x38\x12\x1b\n\x14ORIGINAL_DESTINATION\x10\x80\xfd\xa5O\x12\r\n\x06RANDOM\x10\xc3\xb1\x97}\x12\x11\n\tRING_HASH\x10\xbd\xdb\xaf\xce\x01\x12\x12\n\x0bROUND_ROBIN\x10\xf9\x86\xb1I\x12\x16\n\x0fWEIGHTED_MAGLEV\x10\x92\xe0\xc7y\x12\x1b\n\x14WEIGHTED_ROUND_ROBIN\x10\xd1\xf0\xd4\x02\"\x99\x01\n\x08Protocol\x12\x16\n\x12UNDEFINED_PROTOCOL\x10\x00\x12\x0b\n\x04GRPC\x10\x9e\x88\x86\x01\x12\t\n\x03H2C\x10\x99\xa9\x04\x12\x0b\n\x04HTTP\x10\x88\x81\x88\x01\x12\x0c\n\x05HTTP2\x10\xaa\xa1\xf8 \x12\x0c\n\x05HTTPS\x10\xcb\xa1\xf8 \x12\t\n\x03SSL\x10\xec\x83\x05\x12\t\n\x03TCP\x10\xc1\x87\x05\x12\t\n\x03UDP\x10\xa1\x8f\x05\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\"\x8b\x02\n\x0fSessionAffinity\x12\x1e\n\x1aUNDEFINED_SESSION_AFFINITY\x10\x00\x12\x11\n\tCLIENT_IP\x10\x9b\xdc\xe9\xa4\x01\x12\x1f\n\x18\x43LIENT_IP_NO_DESTINATION\x10\x94\x9a\xcd\x32\x12\x1b\n\x14\x43LIENT_IP_PORT_PROTO\x10\xae\xf2\xdci\x12\x16\n\x0f\x43LIENT_IP_PROTO\x10\xa4\xc5\x89\x0c\x12\x18\n\x10GENERATED_COOKIE\x10\xb4\xce\xca\xb0\x01\x12\x13\n\x0cHEADER_FIELD\x10\xa8\x89\xdc_\x12\x13\n\x0bHTTP_COOKIE\x10\xfb\xa3\x83\xec\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x1e\n\x16STRONG_COOKIE_AFFINITY\x10\xfb\xdd\x93\xd1\x01\x42\x1a\n\x18_affinity_cookie_ttl_secB\r\n\x0b_cdn_policyB\x13\n\x11_circuit_breakersB\x13\n\x11_compression_modeB\x16\n\x14_connection_drainingB\x1d\n\x1b_connection_tracking_policyB\x12\n\x10_consistent_hashB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x17\n\x15_edge_security_policyB\x0f\n\r_enable_c_d_nB#\n!_external_managed_migration_stateB0\n._external_managed_migration_testing_percentageB\x12\n\x10_failover_policyB\x0e\n\x0c_fingerprintB\x0c\n\n_ha_policyB\x06\n\x04_iapB\x05\n\x03_idB\x1e\n\x1c_ip_address_selection_policyB\x07\n\x05_kindB\x18\n\x16_load_balancing_schemeB\x15\n\x13_locality_lb_policyB\r\n\x0b_log_configB\x16\n\x14_max_stream_durationB\x07\n\x05_nameB\n\n\x08_networkB\x14\n\x12_outlier_detectionB\t\n\x07_paramsB\x07\n\x05_portB\x0c\n\n_port_nameB\x0b\n\t_protocolB\t\n\x07_regionB\x12\n\x10_security_policyB\x14\n\x12_security_settingsB\x0c\n\n_self_linkB\x14\n\x12_service_lb_policyB\x13\n\x11_session_affinityB!\n\x1f_strong_session_affinity_cookieB\r\n\x0b_subsettingB\x0e\n\x0c_timeout_secB\x0f\n\r_tls_settings\"\xcb\x03\n\x1c\x42\x61\x63kendServiceAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.BackendServiceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a`\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.BackendServicesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb7\x07\n\x17\x42\x61\x63kendServiceCdnPolicy\x12w\n\x1f\x62ypass_cache_on_request_headers\x18\xca\xbd\xeb\xe7\x01 \x03(\x0b\x32J.google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader\x12I\n\x10\x63\x61\x63he_key_policy\x18\xef\xd7\xf8K \x01(\x0b\x32\'.google.cloud.compute.v1.CacheKeyPolicyH\x00\x88\x01\x01\x12\x1a\n\ncache_mode\x18\xc0\xc8\xe2\r \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nclient_ttl\x18\xf8\x8e\xec\r \x01(\x05H\x02\x88\x01\x01\x12\x1b\n\x0b\x64\x65\x66\x61ult_ttl\x18\xee\xfd\xe6/ \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x07max_ttl\x18\x91\x89\xd5\x92\x01 \x01(\x05H\x04\x88\x01\x01\x12!\n\x10negative_caching\x18\xb5\xc3\xa2\xa0\x01 \x01(\x08H\x05\x88\x01\x01\x12i\n\x17negative_caching_policy\x18\xfc\xb5\x8aJ \x03(\x0b\x32\x45.google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy\x12#\n\x12request_coalescing\x18\xd4\x84\x88\xfe\x01 \x01(\x08H\x06\x88\x01\x01\x12!\n\x11serve_while_stale\x18\xdb\xf7\xedp \x01(\x05H\x07\x88\x01\x01\x12-\n\x1csigned_url_cache_max_age_sec\x18\xc6\xa8\xb9\x80\x01 \x01(\x03H\x08\x88\x01\x01\x12 \n\x14signed_url_key_names\x18\xb5\xed\xa7\xb1\x01 \x03(\t\"\x8f\x01\n\tCacheMode\x12\x18\n\x14UNDEFINED_CACHE_MODE\x10\x00\x12\x18\n\x10\x43\x41\x43HE_ALL_STATIC\x10\xe9\x97\xa5\xa9\x01\x12\x17\n\x0f\x46ORCE_CACHE_ALL\x10\xb0\xdd\xe0\xe7\x01\x12\x1a\n\x12INVALID_CACHE_MODE\x10\xc8\xb7\xe8\xb5\x01\x12\x19\n\x12USE_ORIGIN_HEADERS\x10\xa5\x92\xb4\x1a\x42\x13\n\x11_cache_key_policyB\r\n\x0b_cache_modeB\r\n\x0b_client_ttlB\x0e\n\x0c_default_ttlB\n\n\x08_max_ttlB\x13\n\x11_negative_cachingB\x15\n\x13_request_coalescingB\x14\n\x12_serve_while_staleB\x1f\n\x1d_signed_url_cache_max_age_sec\"`\n1BackendServiceCdnPolicyBypassCacheOnRequestHeader\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_header_name\"i\n,BackendServiceCdnPolicyNegativeCachingPolicy\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x03ttl\x18\xec\x83\x07 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_codeB\x06\n\x04_ttl\"\xeb\x04\n&BackendServiceConnectionTrackingPolicy\x12<\n,connection_persistence_on_unhealthy_backends\x18\xf9\x91\xd8H \x01(\tH\x00\x88\x01\x01\x12&\n\x16\x65nable_strong_affinity\x18\x94\xe6\xd9\x0b \x01(\x08H\x01\x88\x01\x01\x12 \n\x10idle_timeout_sec\x18\x88\xc1\xf4\x0b \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\rtracking_mode\x18\xab\xdc\xf5< \x01(\tH\x03\x88\x01\x01\"\xb0\x01\n(ConnectionPersistenceOnUnhealthyBackends\x12:\n6UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS\x10\x00\x12\x15\n\x0e\x41LWAYS_PERSIST\x10\x84\xe7\xa7\x12\x12\x1b\n\x14\x44\x45\x46\x41ULT_FOR_PROTOCOL\x10\xcc\xa5\xa2\x45\x12\x14\n\rNEVER_PERSIST\x10\xe1\xa5\x8e\x42\"t\n\x0cTrackingMode\x12\x1b\n\x17UNDEFINED_TRACKING_MODE\x10\x00\x12\x1c\n\x15INVALID_TRACKING_MODE\x10\xc3\x83\xbd\x17\x12\x15\n\x0ePER_CONNECTION\x10\xe0\xf6\xcd(\x12\x12\n\x0bPER_SESSION\x10\xb4\xba\xeaVB/\n-_connection_persistence_on_unhealthy_backendsB\x19\n\x17_enable_strong_affinityB\x13\n\x11_idle_timeout_secB\x10\n\x0e_tracking_mode\"a\n\x1a\x42\x61\x63kendServiceCustomMetric\x12\x18\n\x07\x64ry_run\x18\xf7\xc3\xb6\x9a\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_dry_runB\x07\n\x05_name\"\xf9\x01\n\x1c\x42\x61\x63kendServiceFailoverPolicy\x12\x34\n$disable_connection_drain_on_failover\x18\xe1\xcc\xedV \x01(\x08H\x00\x88\x01\x01\x12)\n\x19\x64rop_traffic_if_unhealthy\x18\x94\xcd\xc5\x35 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x0e\x66\x61ilover_ratio\x18\xfe\x94\xb4\x65 \x01(\x02H\x02\x88\x01\x01\x42\'\n%_disable_connection_drain_on_failoverB\x1c\n\x1a_drop_traffic_if_unhealthyB\x11\n\x0f_failover_ratio\"\x8d\x02\n\x19\x42\x61\x63kendServiceGroupHealth\x12[\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32\x43.google.cloud.compute.v1.BackendServiceGroupHealth.AnnotationsEntry\x12@\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x03(\x0b\x32%.google.cloud.compute.v1.HealthStatus\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_kind\"\xf2\x01\n\x16\x42\x61\x63kendServiceHAPolicy\x12\x1d\n\rfast_i_p_move\x18\xd9\xbe\x94j \x01(\tH\x00\x88\x01\x01\x12N\n\x06leader\x18\x89\x8a\xa1\xf0\x01 \x01(\x0b\x32\x35.google.cloud.compute.v1.BackendServiceHAPolicyLeaderH\x01\x88\x01\x01\"L\n\nFastIPMove\x12\x1b\n\x17UNDEFINED_FAST_I_P_MOVE\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x07GARP_RA\x10\xb6\x86\xbb\xfb\x01\x42\x10\n\x0e_fast_i_p_moveB\t\n\x07_leader\"\xcd\x01\n\x1c\x42\x61\x63kendServiceHAPolicyLeader\x12\x1e\n\rbackend_group\x18\x94\xc2\xa4\xda\x01 \x01(\tH\x00\x88\x01\x01\x12\x66\n\x10network_endpoint\x18\x86\x91\x8a\x1b \x01(\x0b\x32\x44.google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpointH\x01\x88\x01\x01\x42\x10\n\x0e_backend_groupB\x13\n\x11_network_endpoint\"T\n+BackendServiceHAPolicyLeaderNetworkEndpoint\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_instance\"\x97\x01\n\x18\x42\x61\x63kendServiceHttpCookie\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x03ttl\x18\xec\x83\x07 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x06\n\x04_ttl\"\xfb\x01\n\x11\x42\x61\x63kendServiceIAP\x12\x16\n\x07\x65nabled\x18\xc1\x96> \x01(\x08H\x00\x88\x01\x01\x12!\n\x10oauth2_client_id\x18\xcb\x8e\xde\x95\x01 \x01(\tH\x01\x88\x01\x01\x12$\n\x14oauth2_client_secret\x18\xe0\xe1\xa8\x18 \x01(\tH\x02\x88\x01\x01\x12+\n\x1boauth2_client_secret_sha256\x18\xe6\x8c\xeb\x35 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_enabledB\x13\n\x11_oauth2_client_idB\x17\n\x15_oauth2_client_secretB\x1e\n\x1c_oauth2_client_secret_sha256\"\xad\x02\n\x12\x42\x61\x63kendServiceList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.BackendService\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n\x18\x42\x61\x63kendServiceListUsable\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.BackendService\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x02\n/BackendServiceLocalityLoadBalancingPolicyConfig\x12s\n\rcustom_policy\x18\xc0\x8b\xa6\x02 \x01(\x0b\x32T.google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyH\x00\x88\x01\x01\x12\x66\n\x06policy\x18\xb2\xca\xb6+ \x01(\x0b\x32N.google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicyH\x01\x88\x01\x01\x42\x10\n\x0e_custom_policyB\t\n\x07_policy\"{\n;BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy\x12\x14\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_dataB\x07\n\x05_name\"\xbb\x02\n5BackendServiceLocalityLoadBalancingPolicyConfigPolicy\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\"\xe2\x01\n\x04Name\x12\x12\n\x0eUNDEFINED_NAME\x10\x00\x12\x19\n\x11INVALID_LB_POLICY\x10\xb3\xe7\x95\x9a\x01\x12\x14\n\rLEAST_REQUEST\x10\xf9\xc4\x9c\x16\x12\r\n\x06MAGLEV\x10\xea\x97\xea\x38\x12\x1b\n\x14ORIGINAL_DESTINATION\x10\x80\xfd\xa5O\x12\r\n\x06RANDOM\x10\xc3\xb1\x97}\x12\x11\n\tRING_HASH\x10\xbd\xdb\xaf\xce\x01\x12\x12\n\x0bROUND_ROBIN\x10\xf9\x86\xb1I\x12\x16\n\x0fWEIGHTED_MAGLEV\x10\x92\xe0\xc7y\x12\x1b\n\x14WEIGHTED_ROUND_ROBIN\x10\xd1\xf0\xd4\x02\x42\x07\n\x05_name\"\xb0\x02\n\x17\x42\x61\x63kendServiceLogConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0foptional_fields\x18\xf8\xc8\x86\xfc\x01 \x03(\t\x12\x1d\n\roptional_mode\x18\xa2\x86\xaf= \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0bsample_rate\x18\xd5\x94\x86I \x01(\x02H\x02\x88\x01\x01\"v\n\x0cOptionalMode\x12\x1b\n\x17UNDEFINED_OPTIONAL_MODE\x10\x00\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\x1b\n\x14\x45XCLUDE_ALL_OPTIONAL\x10\xc3\xdd\xb4P\x12\x1c\n\x14INCLUDE_ALL_OPTIONAL\x10\xb5\xed\xb2\xff\x01\x42\t\n\x07_enableB\x10\n\x0e_optional_modeB\x0e\n\x0c_sample_rate\"\xbd\x01\n\x14\x42\x61\x63kendServiceParams\x12i\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x46.google.cloud.compute.v1.BackendServiceParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"O\n\x17\x42\x61\x63kendServiceReference\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_backend_service\"\xda\x01\n\x19\x42\x61\x63kendServiceTlsSettings\x12&\n\x15\x61uthentication_config\x18\xe9\xcd\xc9\xc2\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03sni\x18\xee\xfa\x06 \x01(\tH\x01\x88\x01\x01\x12_\n\x11subject_alt_names\x18\xdf\xb3\xaf\x9d\x01 \x03(\x0b\x32@.google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltNameB\x18\n\x16_authentication_configB\x06\n\x04_sni\"\x9f\x01\n\'BackendServiceTlsSettingsSubjectAltName\x12\x19\n\x08\x64ns_name\x18\xe1\xff\xb9\xc4\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x1buniform_resource_identifier\x18\xef\x9c\xa9\xea\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_dns_nameB\x1e\n\x1c_uniform_resource_identifier\"?\n\x14\x42\x61\x63kendServiceUsedBy\x12\x19\n\treference\x18\xcb\xfe\xec\x46 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_reference\"\xa9\x01\n\x19\x42\x61\x63kendServicesScopedList\x12\x45\n\x10\x62\x61\x63kend_services\x18\xa9\xc3\xa1\xb9\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.BackendService\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe7\t\n\tBfdPacket\x12&\n\x16\x61uthentication_present\x18\xf4\x93\xc4\x32 \x01(\x08H\x00\x88\x01\x01\x12)\n\x19\x63ontrol_plane_independent\x18\xb5\xaf\xde\x1d \x01(\x08H\x01\x88\x01\x01\x12\x17\n\x06\x64\x65mand\x18\xcb\xd4\x9b\x83\x01 \x01(\x08H\x02\x88\x01\x01\x12\x1a\n\ndiagnostic\x18\xa7\xb7\xf3\x1d \x01(\tH\x03\x88\x01\x01\x12\x15\n\x05\x66inal\x18\xf6\x82\xbb. \x01(\x08H\x04\x88\x01\x01\x12\x17\n\x06length\x18\xe6\xf5\xb8\xf0\x01 \x01(\rH\x05\x88\x01\x01\x12\'\n\x17min_echo_rx_interval_ms\x18\xd4\xf5\xb1. \x01(\rH\x06\x88\x01\x01\x12#\n\x12min_rx_interval_ms\x18\xf4\xd0\xfb\xdc\x01 \x01(\rH\x07\x88\x01\x01\x12#\n\x12min_tx_interval_ms\x18\xb2\xf7\xe9\xfa\x01 \x01(\rH\x08\x88\x01\x01\x12\x1a\n\nmultiplier\x18\xc1\xfb\x9d[ \x01(\rH\t\x88\x01\x01\x12\x1a\n\nmultipoint\x18\xf7\xb7\xa3[ \x01(\x08H\n\x88\x01\x01\x12 \n\x10my_discriminator\x18\xc9\x92\xc7$ \x01(\rH\x0b\x88\x01\x01\x12\x14\n\x04poll\x18\xbf\xaf\xd2\x01 \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\r\x88\x01\x01\x12\x18\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\rH\x0e\x88\x01\x01\x12#\n\x12your_discriminator\x18\x90\xe7\xef\xf5\x01 \x01(\rH\x0f\x88\x01\x01\"\xde\x02\n\nDiagnostic\x12\x18\n\x14UNDEFINED_DIAGNOSTIC\x10\x00\x12\x1c\n\x15\x41\x44MINISTRATIVELY_DOWN\x10\xa6\x8e\x83:\x12\x1d\n\x16\x43ONCATENATED_PATH_DOWN\x10\x8c\xa9\xbe\x0c\x12%\n\x1e\x43ONTROL_DETECTION_TIME_EXPIRED\x10\xef\xf8\xcc@\x12\x1d\n\x16\x44IAGNOSTIC_UNSPECIFIED\x10\xff\x84\x80\x1c\x12\x1b\n\x14\x45\x43HO_FUNCTION_FAILED\x10\xea\xd8\x9di\x12\x1d\n\x16\x46ORWARDING_PLANE_RESET\x10\xaa\xae\xb3\t\x12&\n\x1eNEIGHBOR_SIGNALED_SESSION_DOWN\x10\xb6\xfe\xb8\xb2\x01\x12\x14\n\rNO_DIAGNOSTIC\x10\xe5\xc1\x8cj\x12\x11\n\tPATH_DOWN\x10\xfc\x90\xc9\x8a\x01\x12&\n\x1eREVERSE_CONCATENATED_PATH_DOWN\x10\xa9\xb5\xc8\xe4\x01\"m\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x11\n\nADMIN_DOWN\x10\xb2\xdf\xa5=\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x0b\n\x04INIT\x10\x90\xba\x89\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\x19\n\x17_authentication_presentB\x1c\n\x1a_control_plane_independentB\t\n\x07_demandB\r\n\x0b_diagnosticB\x08\n\x06_finalB\t\n\x07_lengthB\x1a\n\x18_min_echo_rx_interval_msB\x15\n\x13_min_rx_interval_msB\x15\n\x13_min_tx_interval_msB\r\n\x0b_multiplierB\r\n\x0b_multipointB\x13\n\x11_my_discriminatorB\x07\n\x05_pollB\x08\n\x06_stateB\n\n\x08_versionB\x15\n\x13_your_discriminator\"\xec\n\n\tBfdStatus\x12/\n\x1f\x62\x66\x64_session_initialization_mode\x18\x9a\x9f\x83h \x01(\tH\x00\x88\x01\x01\x12/\n\x1e\x63onfig_update_timestamp_micros\x18\xb1\x80\x81\xda\x01 \x01(\x03H\x01\x88\x01\x01\x12U\n\x15\x63ontrol_packet_counts\x18\xf9\xd2\x9b? \x01(\x0b\x32..google.cloud.compute.v1.BfdStatusPacketCountsH\x02\x88\x01\x01\x12N\n\x18\x63ontrol_packet_intervals\x18\xf9\xe7\xe6\xee\x01 \x03(\x0b\x32(.google.cloud.compute.v1.PacketIntervals\x12!\n\x10local_diagnostic\x18\xfb\xa1\x90\xdd\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0blocal_state\x18\xbd\x95\x92G \x01(\tH\x04\x88\x01\x01\x12\x37\n\'negotiated_local_control_tx_interval_ms\x18\x94\xd1\xb0\n \x01(\rH\x05\x88\x01\x01\x12>\n\trx_packet\x18\xa1\x81\xeb\xf0\x01 \x01(\x0b\x32\".google.cloud.compute.v1.BfdPacketH\x06\x88\x01\x01\x12=\n\ttx_packet\x18\xa3\xbd\x8e\x35 \x01(\x0b\x32\".google.cloud.compute.v1.BfdPacketH\x07\x88\x01\x01\x12\x19\n\tuptime_ms\x18\xdd\xda\xe5; \x01(\x03H\x08\x88\x01\x01\"\x80\x01\n\x1c\x42\x66\x64SessionInitializationMode\x12-\n)UNDEFINED_BFD_SESSION_INITIALIZATION_MODE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x07PASSIVE\x10\x87\xf6\xd7\xdc\x01\"\xe9\x02\n\x0fLocalDiagnostic\x12\x1e\n\x1aUNDEFINED_LOCAL_DIAGNOSTIC\x10\x00\x12\x1c\n\x15\x41\x44MINISTRATIVELY_DOWN\x10\xa6\x8e\x83:\x12\x1d\n\x16\x43ONCATENATED_PATH_DOWN\x10\x8c\xa9\xbe\x0c\x12%\n\x1e\x43ONTROL_DETECTION_TIME_EXPIRED\x10\xef\xf8\xcc@\x12\x1d\n\x16\x44IAGNOSTIC_UNSPECIFIED\x10\xff\x84\x80\x1c\x12\x1b\n\x14\x45\x43HO_FUNCTION_FAILED\x10\xea\xd8\x9di\x12\x1d\n\x16\x46ORWARDING_PLANE_RESET\x10\xaa\xae\xb3\t\x12&\n\x1eNEIGHBOR_SIGNALED_SESSION_DOWN\x10\xb6\xfe\xb8\xb2\x01\x12\x14\n\rNO_DIAGNOSTIC\x10\xe5\xc1\x8cj\x12\x11\n\tPATH_DOWN\x10\xfc\x90\xc9\x8a\x01\x12&\n\x1eREVERSE_CONCATENATED_PATH_DOWN\x10\xa9\xb5\xc8\xe4\x01\"x\n\nLocalState\x12\x19\n\x15UNDEFINED_LOCAL_STATE\x10\x00\x12\x11\n\nADMIN_DOWN\x10\xb2\xdf\xa5=\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x0b\n\x04INIT\x10\x90\xba\x89\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\"\n _bfd_session_initialization_modeB!\n\x1f_config_update_timestamp_microsB\x18\n\x16_control_packet_countsB\x13\n\x11_local_diagnosticB\x0e\n\x0c_local_stateB*\n(_negotiated_local_control_tx_interval_msB\x0c\n\n_rx_packetB\x0c\n\n_tx_packetB\x0c\n\n_uptime_ms\"\xcd\x01\n\x15\x42\x66\x64StatusPacketCounts\x12\x16\n\x06num_rx\x18\x9f\xa3\xe3\x12 \x01(\rH\x00\x88\x01\x01\x12 \n\x0fnum_rx_rejected\x18\x9e\xae\xff\x85\x01 \x01(\rH\x01\x88\x01\x01\x12\"\n\x11num_rx_successful\x18\xba\x8a\x91\xd9\x01 \x01(\rH\x02\x88\x01\x01\x12\x16\n\x06num_tx\x18\xdd\xa3\xe3\x12 \x01(\rH\x03\x88\x01\x01\x42\t\n\x07_num_rxB\x12\n\x10_num_rx_rejectedB\x14\n\x12_num_rx_successfulB\t\n\x07_num_tx\"\x81\x03\n\x08\x42gpRoute\x12<\n\x08\x61s_paths\x18\xa1\xc5\xcc\x41 \x03(\x0b\x32\'.google.cloud.compute.v1.BgpRouteAsPath\x12\x16\n\x0b\x63ommunities\x18\xc7\xd4\xe2Y \x03(\t\x12\x61\n\x0b\x64\x65stination\x18\x8e\x88\x99V \x01(\x0b\x32\x44.google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformationH\x00\x88\x01\x01\x12\x12\n\x03med\x18\xcc\xcb\x06 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x06origin\x18\xa6\xde\x86\x1f \x01(\tH\x02\x88\x01\x01\"m\n\x06Origin\x12\x14\n\x10UNDEFINED_ORIGIN\x10\x00\x12\x16\n\x0e\x42GP_ORIGIN_EGP\x10\xe9\xce\xd6\xb4\x01\x12\x16\n\x0e\x42GP_ORIGIN_IGP\x10\xed\xec\xd6\xb4\x01\x12\x1d\n\x15\x42GP_ORIGIN_INCOMPLETE\x10\x83\x93\xf7\xd7\x01\x42\x0e\n\x0c_destinationB\x06\n\x04_medB\t\n\x07_origin\"\x95\x01\n\x0e\x42gpRouteAsPath\x12\x0f\n\x04\x61sns\x18\xf7\xaa\xb7\x01 \x03(\x05\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x00\x88\x01\x01\"S\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1d\n\x15\x41S_PATH_TYPE_SEQUENCE\x10\xb9\xf3\x84\xad\x01\x12\x18\n\x10\x41S_PATH_TYPE_SET\x10\xca\xa6\xa4\x90\x01\x42\x07\n\x05_type\"v\n+BgpRouteNetworkLayerReachabilityInformation\x12\x18\n\x07path_id\x18\xf5\xbe\xcd\x86\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\x06prefix\x18\x92\xe5\xd2, \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_path_idB\t\n\x07_prefix\"\xb1\x01\n\x07\x42inding\x12\x1b\n\nbinding_id\x18\x95\xf2\xa9\xd2\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\tcondition\x18\x9b\xda\xa5\x65 \x01(\x0b\x32\x1d.google.cloud.compute.v1.ExprH\x01\x88\x01\x01\x12\x13\n\x07members\x18\x99\x92\xbb\xc4\x01 \x03(\t\x12\x14\n\x04role\x18\xf6\x80\xd6\x01 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_binding_idB\x0c\n\n_conditionB\x07\n\x05_role\"\xe8\x01\n\x15\x42ulkInsertDiskRequest\x12\x64\n\"bulk_insert_disk_resource_resource\x18\xd6\xf9\x97\x8a\x01 \x01(\x0b\x32/.google.cloud.compute.v1.BulkInsertDiskResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"m\n\x16\x42ulkInsertDiskResource\x12/\n\x1fsource_consistency_group_policy\x18\xdd\xa2\xad\t \x01(\tH\x00\x88\x01\x01\x42\"\n _source_consistency_group_policy\"\xf3\x01\n\x19\x42ulkInsertInstanceRequest\x12k\n&bulk_insert_instance_resource_resource\x18\xce\xc2\xe0\x13 \x01(\x0b\x32\x33.google.cloud.compute.v1.BulkInsertInstanceResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x05\n\x1a\x42ulkInsertInstanceResource\x12\x15\n\x05\x63ount\x18\x8f\xa2\x9d- \x01(\x03H\x00\x88\x01\x01\x12P\n\x13instance_properties\x18\x9d\x9e\xd8\x66 \x01(\x0b\x32+.google.cloud.compute.v1.InstancePropertiesH\x01\x88\x01\x01\x12I\n\x0flocation_policy\x18\xfc\xb9\x87\xde\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.LocationPolicyH\x02\x88\x01\x01\x12\x1a\n\tmin_count\x18\xe2\xa9\xbf\xf9\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1d\n\x0cname_pattern\x18\xdc\xa3\xa9\xc5\x01 \x01(\tH\x04\x88\x01\x01\x12r\n\x17per_instance_properties\x18\xfb\xb9\xde\x33 \x03(\x0b\x32N.google.cloud.compute.v1.BulkInsertInstanceResource.PerInstancePropertiesEntry\x12)\n\x18source_instance_template\x18\xc0\xc3\xc1\x9e\x01 \x01(\tH\x05\x88\x01\x01\x1a\x86\x01\n\x1aPerInstancePropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12W\n\x05value\x18\x02 \x01(\x0b\x32H.google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties:\x02\x38\x01\x42\x08\n\x06_countB\x16\n\x14_instance_propertiesB\x12\n\x10_location_policyB\x0c\n\n_min_countB\x0f\n\r_name_patternB\x1b\n\x19_source_instance_template\"w\n/BulkInsertInstanceResourcePerInstanceProperties\x12\x18\n\x08hostname\x18\xb3\xb8\x85q \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_hostnameB\x07\n\x05_name\"\x9c\x03\n\x19\x42ulkInsertOperationStatus\x12!\n\x10\x63reated_vm_count\x18\xfe\xa9\xa2\xbd\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x10\x64\x65leted_vm_count\x18\xed\xd5\xca\x81\x01 \x01(\x05H\x01\x88\x01\x01\x12)\n\x19\x66\x61iled_to_create_vm_count\x18\xe8\xbd\xeb\x1b \x01(\x05H\x02\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\x12 \n\x0ftarget_vm_count\x18\xf5\xa0\x92\xfe\x01 \x01(\x05H\x04\x88\x01\x01\"m\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x0b\n\x04\x44ONE\x10\x82\xb7\x80\x01\x12\x13\n\x0cROLLING_BACK\x10\xc1\x9d\xd9{\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\x13\n\x11_created_vm_countB\x13\n\x11_deleted_vm_countB\x1c\n\x1a_failed_to_create_vm_countB\t\n\x07_statusB\x12\n\x10_target_vm_count\"\xf2\x01\n\x1b\x42ulkInsertRegionDiskRequest\x12\x64\n\"bulk_insert_disk_resource_resource\x18\xd6\xf9\x97\x8a\x01 \x01(\x0b\x32/.google.cloud.compute.v1.BulkInsertDiskResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xfd\x01\n\x1f\x42ulkInsertRegionInstanceRequest\x12k\n&bulk_insert_instance_resource_resource\x18\xce\xc2\xe0\x13 \x01(\x0b\x32\x33.google.cloud.compute.v1.BulkInsertInstanceResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x97\x02\n\x18\x42ulkSetLabelsDiskRequest\x12i\n%bulk_zone_set_labels_request_resource\x18\x9b\xa5\xac\xfd\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.BulkZoneSetLabelsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0b\n\t_resource\"\xcd\x01\n\x14\x42ulkSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12M\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x39.google.cloud.compute.v1.BulkSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"^\n\x18\x42ulkZoneSetLabelsRequest\x12\x42\n\x08requests\x18\xc4\xbf\xbd\x44 \x03(\x0b\x32-.google.cloud.compute.v1.BulkSetLabelsRequest\"l\n\x15\x43\x61\x63heInvalidationRule\x12\x15\n\ncache_tags\x18\xb6\xbd\xee\r \x03(\t\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_hostB\x07\n\x05_path\"\xc2\x02\n\x0e\x43\x61\x63heKeyPolicy\x12\x1d\n\x0cinclude_host\x18\xdf\x85\x94\xe8\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x14include_http_headers\x18\x86\xfa\x97\x01 \x03(\t\x12 \n\x15include_named_cookies\x18\xb2\xb0\xd1) \x03(\t\x12!\n\x10include_protocol\x18\xcf\xd0\xdc\x90\x01 \x01(\x08H\x01\x88\x01\x01\x12%\n\x14include_query_string\x18\x9f\xf3\x84\xe2\x01 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x16query_string_blacklist\x18\x86\xaa\xa1\xa9\x01 \x03(\t\x12!\n\x16query_string_whitelist\x18\xb0\xd8\x81\x19 \x03(\tB\x0f\n\r_include_hostB\x13\n\x11_include_protocolB\x17\n\x15_include_query_string\"\xe3\x01\n.CancelInstanceGroupManagerResizeRequestRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0eresize_request\x18\x84\x84\xb9g \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb0\x02\n\x0f\x43ircuitBreakers\x12\x1f\n\x0fmax_connections\x18\xfa\xd5\xe1\x34 \x01(\x05H\x00\x88\x01\x01\x12%\n\x14max_pending_requests\x18\xe7\xa5\x8a\xb3\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0cmax_requests\x18\xbf\xf8\xb2\r \x01(\x05H\x02\x88\x01\x01\x12,\n\x1bmax_requests_per_connection\x18\xc0\x96\xb8\xac\x01 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\x0bmax_retries\x18\xeb\xa2\xbe\x1a \x01(\x05H\x04\x88\x01\x01\x42\x12\n\x10_max_connectionsB\x17\n\x15_max_pending_requestsB\x0f\n\r_max_requestsB\x1e\n\x1c_max_requests_per_connectionB\x0e\n\x0c_max_retries\"\xb1\x01\n\x1f\x43loneRulesFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12&\n\x16source_firewall_policy\x18\xad\xda\xf6\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x19\n\x17_source_firewall_policy\"\xdb\x01\n&CloneRulesNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12&\n\x16source_firewall_policy\x18\xad\xda\xf6\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x19\n\x17_source_firewall_policy\"\x82\x02\n,CloneRulesRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12&\n\x16source_firewall_policy\x18\xad\xda\xf6\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x19\n\x17_source_firewall_policy\"\xe8\x12\n\nCommitment\x12\x1b\n\nauto_renew\x18\xfd\x97\xa4\xec\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08\x63\x61tegory\x18\xfe\xf9\x8a\x18 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12$\n\x14\x63ustom_end_timestamp\x18\xe4\xb4\xd6V \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12\x1e\n\rend_timestamp\x18\xb2\xad\x9a\xdf\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x15\x65xisting_reservations\x18\xdb\x88\x8c\xeb\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12U\n\x10license_resource\x18\xcc\xd4\xea\xd0\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.LicenseResourceCommitmentH\x08\x88\x01\x01\x12#\n\x18merge_source_commitments\x18\xc1\xaa\xd8Y \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04plan\x18\xa9\x96\xd2\x01 \x01(\tH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12>\n\x0creservations\x18\xa7\xec\xcc\xbe\x01 \x03(\x0b\x32$.google.cloud.compute.v1.Reservation\x12R\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x31.google.cloud.compute.v1.CommitmentResourceStatusH\x0c\x88\x01\x01\x12\x41\n\tresources\x18\xa5\xfc\xb2N \x03(\x0b\x32+.google.cloud.compute.v1.ResourceCommitment\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12(\n\x17split_source_commitment\x18\xd4\xb7\xfd\xbf\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x0fstart_timestamp\x18\xf9\xaa\xf1\' \x01(\tH\x0f\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x10\x88\x01\x01\x12\x1f\n\x0estatus_message\x18\xba\xc9\xe9\x8d\x01 \x01(\tH\x11\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x12\x88\x01\x01\"b\n\x08\x43\x61tegory\x12\x16\n\x12UNDEFINED_CATEGORY\x10\x00\x12\x1c\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\xd6\xba\xe6\xf2\x01\x12\x0f\n\x07LICENSE\x10\xa1\xa0\xf0\xa5\x01\x12\x0f\n\x07MACHINE\x10\xa7\xa0\xf3\xdf\x01\"Y\n\x04Plan\x12\x12\n\x0eUNDEFINED_PLAN\x10\x00\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x17\n\x10THIRTY_SIX_MONTH\x10\x86\xb5\xfd~\x12\x13\n\x0cTWELVE_MONTH\x10\xba\x9a\xc4R\"z\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\tCANCELLED\x10\xb1\xf2\x80\x14\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x0f\n\x07\x45XPIRED\x10\x85\xe6\x88\xe6\x01\x12\x15\n\x0eNOT_YET_ACTIVE\x10\xe9\xe2\xe9\t\"\x9e\x07\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1d\n\x15\x41\x43\x43\x45LERATOR_OPTIMIZED\x10\x93\xd0\xf5\x85\x01\x12\x1f\n\x18\x41\x43\x43\x45LERATOR_OPTIMIZED_A3\x10\xbe\xcf\xceK\x12$\n\x1d\x41\x43\x43\x45LERATOR_OPTIMIZED_A3_MEGA\x10\xd3\x88\xd1J\x12%\n\x1e\x41\x43\x43\x45LERATOR_OPTIMIZED_A3_ULTRA\x10\xcb\xc7\xa1\r\x12\x1f\n\x18\x41\x43\x43\x45LERATOR_OPTIMIZED_A4\x10\xbf\xcf\xceK\x12\x18\n\x11\x43OMPUTE_OPTIMIZED\x10\xdf\xed\xc0K\x12\x1d\n\x15\x43OMPUTE_OPTIMIZED_C2D\x10\xf5\xc0\xdf\xb6\x01\x12\x1c\n\x14\x43OMPUTE_OPTIMIZED_C3\x10\xb0\xab\x8b\xcc\x01\x12\x1d\n\x15\x43OMPUTE_OPTIMIZED_C3D\x10\x94\xc1\xdf\xb6\x01\x12\x1c\n\x14\x43OMPUTE_OPTIMIZED_H3\x10\xcb\xac\x8b\xcc\x01\x12\x1d\n\x15\x43OMPUTE_OPTIMIZED_H4D\x10\xf8\xe6\xdf\xb6\x01\x12\x17\n\x0fGENERAL_PURPOSE\x10\x87\xf9\xf9\x8e\x01\x12\x1a\n\x12GENERAL_PURPOSE_C4\x10\x89\x9e\xfb\x8f\x01\x12\x1a\n\x13GENERAL_PURPOSE_C4A\x10\xd8\xa4\xecn\x12\x1a\n\x13GENERAL_PURPOSE_C4D\x10\xdb\xa4\xecn\x12\x1a\n\x12GENERAL_PURPOSE_E2\x10\xc5\x9e\xfb\x8f\x01\x12\x1a\n\x12GENERAL_PURPOSE_N2\x10\xdc\xa0\xfb\x8f\x01\x12\x1a\n\x13GENERAL_PURPOSE_N2D\x10\xe8\xf6\xecn\x12\x1a\n\x12GENERAL_PURPOSE_N4\x10\xde\xa0\xfb\x8f\x01\x12\x1a\n\x13GENERAL_PURPOSE_T2D\x10\xee\xa3\xedn\x12\x19\n\x12GRAPHICS_OPTIMIZED\x10\xd3\xf8\xd4 \x12\x18\n\x10MEMORY_OPTIMIZED\x10\xc9\xee\xac\x86\x01\x12\x1b\n\x13MEMORY_OPTIMIZED_M3\x10\xbc\x8c\xe0\x83\x01\x12\x1b\n\x13MEMORY_OPTIMIZED_M4\x10\xbd\x8c\xe0\x83\x01\x12\x1e\n\x17MEMORY_OPTIMIZED_M4_6TB\x10\xa2\xc8\xb2\x64\x12\x1f\n\x18MEMORY_OPTIMIZED_X4_16TB\x10\xe0\xef\xa6W\x12\x1f\n\x18MEMORY_OPTIMIZED_X4_24TB\x10\xbd\xc9\xa8W\x12\x1f\n\x18MEMORY_OPTIMIZED_X4_32TB\x10\x9a\xa3\xaaW\x12\x1c\n\x14STORAGE_OPTIMIZED_Z3\x10\xb5\xd9\x87\x97\x01\x12\x18\n\x10TYPE_UNSPECIFIED\x10\x92\xfb\xdb\xd0\x01\x42\r\n\x0b_auto_renewB\x0b\n\t_categoryB\x15\n\x13_creation_timestampB\x17\n\x15_custom_end_timestampB\x0e\n\x0c_descriptionB\x10\n\x0e_end_timestampB\x05\n\x03_idB\x07\n\x05_kindB\x13\n\x11_license_resourceB\x07\n\x05_nameB\x07\n\x05_planB\t\n\x07_regionB\x12\n\x10_resource_statusB\x0c\n\n_self_linkB\x1a\n\x18_split_source_commitmentB\x12\n\x10_start_timestampB\t\n\x07_statusB\x11\n\x0f_status_messageB\x07\n\x05_type\"\xbf\x03\n\x18\x43ommitmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.CommitmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.CommitmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0e\x43ommitmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Commitment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"|\n\x18\x43ommitmentResourceStatus\x12\x36\n%custom_term_eligibility_end_timestamp\x18\xfb\xab\xc7\xad\x01 \x01(\tH\x00\x88\x01\x01\x42(\n&_custom_term_eligibility_end_timestamp\"\x9c\x01\n\x15\x43ommitmentsScopedList\x12<\n\x0b\x63ommitments\x18\xfe\xaf\xf2\xd6\x01 \x03(\x0b\x32#.google.cloud.compute.v1.Commitment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd0\x02\n\x1a\x43onfidentialInstanceConfig\x12*\n\x1a\x63onfidential_instance_type\x18\xad\x8c\xde\x14 \x01(\tH\x00\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x01\x88\x01\x01\"\x99\x01\n\x18\x43onfidentialInstanceType\x12(\n$UNDEFINED_CONFIDENTIAL_INSTANCE_TYPE\x10\x00\x12-\n&CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED\x10\x85\xb0\xec\x36\x12\t\n\x03SEV\x10\xc4\x80\x05\x12\x0e\n\x07SEV_SNP\x10\xda\xdd\xaf\n\x12\t\n\x03TDX\x10\xe8\x87\x05\x42\x1d\n\x1b_confidential_instance_typeB\x1e\n\x1c_enable_confidential_compute\"S\n\x12\x43onnectionDraining\x12$\n\x14\x64raining_timeout_sec\x18\x9e\xd5\xack \x01(\x05H\x00\x88\x01\x01\x42\x17\n\x15_draining_timeout_sec\"\x88\x02\n\"ConsistentHashLoadBalancerSettings\x12\x62\n\x0bhttp_cookie\x18\xfb\xab\x97\x03 \x01(\x0b\x32\x45.google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookieH\x00\x88\x01\x01\x12 \n\x10http_header_name\x18\xc6\xf7\xfao \x01(\tH\x01\x88\x01\x01\x12!\n\x11minimum_ring_size\x18\xbf\xbb\xe1o \x01(\x03H\x02\x88\x01\x01\x42\x0e\n\x0c_http_cookieB\x13\n\x11_http_header_nameB\x14\n\x12_minimum_ring_size\"\xab\x01\n,ConsistentHashLoadBalancerSettingsHttpCookie\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x03ttl\x18\xec\x83\x07 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x06\n\x04_ttl\"\x9e\x02\n\nCorsPolicy\x12\"\n\x11\x61llow_credentials\x18\x86\xfe\xbd\xe5\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\rallow_headers\x18\x90\xc1\xc5\x15 \x03(\t\x12\x18\n\rallow_methods\x18\xbc\xf9\xf8\x61 \x03(\t\x12\x1f\n\x14\x61llow_origin_regexes\x18\xd2\x8d\xda\x66 \x03(\t\x12\x18\n\rallow_origins\x18\x97\xce\xf8\\ \x03(\t\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0e\x65xpose_headers\x18\x8b\xcc\x88v \x03(\t\x12\x18\n\x07max_age\x18\xa4\xf7\xd3\x92\x01 \x01(\x05H\x02\x88\x01\x01\x42\x14\n\x12_allow_credentialsB\x0b\n\t_disabledB\n\n\x08_max_age\"\xd1\x02\n*CreateInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_create_instances_request_resource\x18\x93\xfa\xda\x0b \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n0CreateInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_instance_group_managers_create_instances_request_resource\x18\x88\xbf\x98\xab\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf7\x01\n%CreateMembersInterconnectGroupRequest\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tB\x03\xe0\x41\x02\x12\x85\x01\n3interconnect_groups_create_members_request_resource\x18\xed\xfc\x8b\xa6\x01 \x01(\x0b\x32?.google.cloud.compute.v1.InterconnectGroupsCreateMembersRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\"\x91\x02\n\x19\x43reateSnapshotDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x45\n\x11snapshot_resource\x18\xa9\xb8\xc1\xe5\x01 \x01(\x0b\x32!.google.cloud.compute.v1.SnapshotB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x0e\n\x0c_guest_flushB\r\n\x0b_request_id\"\xed\x01\n\x1f\x43reateSnapshotRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x45\n\x11snapshot_resource\x18\xa9\xb8\xc1\xe5\x01 \x01(\x0b\x32!.google.cloud.compute.v1.SnapshotB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb8\x01\n\x19\x43ustomErrorResponsePolicy\x12j\n\x14\x65rror_response_rules\x18\x90\xad\xfc\x06 \x03(\x0b\x32I.google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule\x12\x1d\n\rerror_service\x18\xfe\xee\xa6N \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_error_service\"\xb6\x01\n0CustomErrorResponsePolicyCustomErrorResponseRule\x12\x1f\n\x14match_response_codes\x18\xe2\x88\x87\x32 \x03(\t\x12\'\n\x16override_response_code\x18\xf8\xd7\xf0\xfc\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x42\x19\n\x17_override_response_codeB\x07\n\x05_path\"\x8f\x02\n\x15\x43ustomerEncryptionKey\x12\x1d\n\x0ckms_key_name\x18\x99\xeb\xfb\xe6\x01 \x01(\tH\x00\x88\x01\x01\x12\'\n\x17kms_key_service_account\x18\xd5\xc5\x90\x64 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x07raw_key\x18\xc8\xe3\x98\xd6\x01 \x01(\tH\x02\x88\x01\x01\x12\"\n\x11rsa_encrypted_key\x18\xa5\xc3\xfc\x9f\x01 \x01(\tH\x03\x88\x01\x01\x12\x16\n\x06sha256\x18\xa7\xec\x8eQ \x01(\tH\x04\x88\x01\x01\x42\x0f\n\r_kms_key_nameB\x1a\n\x18_kms_key_service_accountB\n\n\x08_raw_keyB\x14\n\x12_rsa_encrypted_keyB\t\n\x07_sha256\"\xb5\x01\n\"CustomerEncryptionKeyProtectedDisk\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x00\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_disk_encryption_keyB\t\n\x07_source\"C\n\x04\x44\x61ta\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x08\n\x06_value\"\xeb\x01\n!DeleteAccessConfigInstanceRequest\x12\x1d\n\raccess_config\x18\xfd\xe4\xde\" \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x9f\x01\n\x14\x44\x65leteAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa1\x01\n\x17\x44\x65leteAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x8a\x01\n\x1a\x44\x65leteBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8d\x01\n\x1b\x44\x65leteBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x94\x01\n\x11\x44\x65leteDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x95\x01\n\x1f\x44\x65leteExternalVpnGatewayRequest\x12$\n\x14\x65xternal_vpn_gateway\x18\x85\xd7\xb3\x34 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"j\n\x1b\x44\x65leteFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x80\x01\n\x15\x44\x65leteFirewallRequest\x12\x19\n\x08\x66irewall\x18\x80\xfa\xd5\xf3\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xae\x01\n\x1b\x44\x65leteForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x84\x01\n\x1a\x44\x65leteGlobalAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x93\x01\n!DeleteGlobalForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa0\x01\n\'DeleteGlobalNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"R\n\x1c\x44\x65leteGlobalOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\"\x1f\n\x1d\x44\x65leteGlobalOperationResponse\"o\n(DeleteGlobalOrganizationOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_parent_id\"+\n)DeleteGlobalOrganizationOperationResponse\"\xa2\x01\n)DeleteGlobalPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x87\x01\n\x18\x44\x65leteHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"y\n\x12\x44\x65leteImageRequest\x12\x15\n\x05image\x18\xdb\xd2\xea/ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb6\x01\n!DeleteInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe3\x01\n.DeleteInstanceGroupManagerResizeRequestRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0eresize_request\x18\x84\x84\xb9g \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa7\x01\n\x1a\x44\x65leteInstanceGroupRequest\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x9c\x01\n\x15\x44\x65leteInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x91\x01\n\x1d\x44\x65leteInstanceTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd1\x02\n*DeleteInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_delete_instances_request_resource\x18\x84\xc6\xadO \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n0DeleteInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_instance_group_managers_delete_instances_request_resource\x18\xf9\x8a\xeb\xee\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xac\x01\n\x1c\x44\x65leteInstantSnapshotRequest\x12!\n\x10instant_snapshot\x18\xe2\xdc\xdf\xba\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa7\x01\n(DeleteInterconnectAttachmentGroupRequest\x12-\n\x1dinterconnect_attachment_group\x18\xf4\xef\x98$ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbe\x01\n#DeleteInterconnectAttachmentRequest\x12(\n\x17interconnect_attachment\x18\xf4\x8a\xf7\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x93\x01\n\x1e\x44\x65leteInterconnectGroupRequest\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x87\x01\n\x19\x44\x65leteInterconnectRequest\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"}\n\x14\x44\x65leteLicenseRequest\x12\x17\n\x07license\x18\xc1\x88\xc2O \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x88\x01\n\x19\x44\x65leteMachineImageRequest\x12\x1d\n\rmachine_image\x18\xe3\xfe\xfe \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb3\x01\n\x1e\x44\x65leteNetworkAttachmentRequest\x12\"\n\x12network_attachment\x18\xd4\x97\x8fk \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc7\x01\n\'DeleteNetworkEdgeSecurityServiceRequest\x12-\n\x1dnetwork_edge_security_service\x18\xa7\x9f\xefJ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb7\x01\n!DeleteNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x94\x01\n\"DeleteNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"}\n\x14\x44\x65leteNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa0\x01\n\x16\x44\x65leteNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xaa\x01\n\x19\x44\x65leteNodeTemplateRequest\x12\x1e\n\rnode_template\x18\x97\xe4\x8b\x9a\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x97\x02\n\x1b\x44\x65leteNodesNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12p\n)node_groups_delete_nodes_request_resource\x18\x92\xd7\xb3W \x01(\x0b\x32\x35.google.cloud.compute.v1.NodeGroupsDeleteNodesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xaf\x01\n\x1c\x44\x65letePacketMirroringRequest\x12 \n\x10packet_mirroring\x18\xcc\xb9\xd1\n \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbc\x02\n3DeletePerInstanceConfigsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x9c\x01\n@instance_group_managers_delete_per_instance_configs_req_resource\x18\xa0\xea\xe8\xac\x01 \x01(\x0b\x32I.google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReqB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zone\"\xc6\x02\n9DeletePerInstanceConfigsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9c\x01\nAregion_instance_group_manager_delete_instance_config_req_resource\x18\x85\x9b- \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReqB\x03\xe0\x41\x02\"\x9e\x01\n$DeletePublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n#DeletePublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xab\x01\n\x1d\x44\x65leteRegionAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb4\x01\n!DeleteRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9e\x01\n\x17\x44\x65leteRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xae\x01\n\x1e\x44\x65leteRegionHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n%DeleteRegionHealthCheckServiceRequest\x12%\n\x14health_check_service\x18\xdb\x9b\xdd\xc2\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc0\x01\n\'DeleteRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb8\x01\n#DeleteRegionInstanceTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb6\x01\n\"DeleteRegionInstantSnapshotRequest\x12!\n\x10instant_snapshot\x18\xe2\xdc\xdf\xba\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc1\x01\n\'DeleteRegionNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbb\x01\n(DeleteRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc0\x01\n\'DeleteRegionNotificationEndpointRequest\x12&\n\x15notification_endpoint\x18\xe9\xbc\xd6\xb3\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"j\n\x1c\x44\x65leteRegionOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\"\x1f\n\x1d\x44\x65leteRegionOperationResponse\"\xb3\x01\n!DeleteRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb3\x01\n!DeleteRegionSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fssl_certificate\x18\xe4\xd7\x92\x16 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xaa\x01\n\x1c\x44\x65leteRegionSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb6\x01\n\"DeleteRegionTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb8\x01\n#DeleteRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb5\x01\n!DeleteRegionTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa4\x01\n\x19\x44\x65leteRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa2\x01\n\x18\x44\x65leteReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xad\x01\n\x1b\x44\x65leteResourcePolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fresource_policy\x18\x83\xa5\xf7K \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xca\x01\n\x1e\x44\x65leteRoutePolicyRouterRequest\x12\x16\n\x06policy\x18\xb2\xca\xb6+ \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_policyB\r\n\x0b_request_id\"y\n\x12\x44\x65leteRouteRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05route\x18\xc9\xe4\xea\x33 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9c\x01\n\x13\x44\x65leteRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8c\x01\n\x1b\x44\x65leteSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb4\x01\n\x1e\x44\x65leteServiceAttachmentRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12#\n\x12service_attachment\x18\xed\xa9\xd0\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb1\x01\n&DeleteSignedUrlKeyBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08key_name\x18\xeb\xf0\xee\xee\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb4\x01\n\'DeleteSignedUrlKeyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08key_name\x18\xeb\xf0\xee\xee\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x80\x01\n\x15\x44\x65leteSnapshotRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x08snapshot\x18\xc4\xab\xeb\x87\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8c\x01\n\x1b\x44\x65leteSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fssl_certificate\x18\xe4\xd7\x92\x16 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x83\x01\n\x16\x44\x65leteSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa4\x01\n\x18\x44\x65leteStoragePoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x01\n\x17\x44\x65leteSubnetworkRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8f\x01\n\x1c\x44\x65leteTargetGrpcProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_grpc_proxy\x18\xfb\xb4\xb2\x02 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8f\x01\n\x1c\x44\x65leteTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x91\x01\n\x1d\x44\x65leteTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xaa\x01\n\x1b\x44\x65leteTargetInstanceRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12 \n\x0ftarget_instance\x18\x83\x8f\x96\x8a\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x01\n\x17\x44\x65leteTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8e\x01\n\x1b\x44\x65leteTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8e\x01\n\x1b\x44\x65leteTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb3\x01\n\x1d\x44\x65leteTargetVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12#\n\x12target_vpn_gateway\x18\xcb\x80\xf6\xfd\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"}\n\x13\x44\x65leteUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa6\x01\n\x17\x44\x65leteVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bvpn_gateway\x18\xf9\x83\xf6\xc1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa3\x01\n\x16\x44\x65leteVpnTunnelRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nvpn_tunnel\x18\x93\x94\xca\x44 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"f\n\x1a\x44\x65leteZoneOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\x1d\n\x1b\x44\x65leteZoneOperationResponse\"J\n\x06\x44\x65nied\x12\x1d\n\x0cI_p_protocol\x18\xbd\xf6\xde\xe8\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05ports\x18\x92\xf0\xf9\x32 \x03(\tB\x0f\n\r_I_p_protocol\"\xd6\x01\n\x15\x44\x65precateImageRequest\x12X\n\x1b\x64\x65precation_status_resource\x18\xf0\x89\xe5\x9e\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusB\x03\xe0\x41\x02\x12\x15\n\x05image\x18\xdb\xd2\xea/ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x02\n\x11\x44\x65precationStatus\x12\x18\n\x07\x64\x65leted\x18\x99\xe0\xa8\xe3\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x08obsolete\x18\x99\x8b\xc5\xaa\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0breplacement\x18\x92\x9c\xbd\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x04\x88\x01\x01\"a\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x07\x44\x45LETED\x10\xf9\xf7\xd6\x39\x12\x12\n\nDEPRECATED\x10\xb3\xa3\xf9\xdc\x01\x12\x0f\n\x08OBSOLETE\x10\x99\xeb\xdc\x1f\x42\n\n\x08_deletedB\r\n\x0b_deprecatedB\x0b\n\t_obsoleteB\x0e\n\x0c_replacementB\x08\n\x06_state\"\xbd\x01\n\x19\x44\x65tachDiskInstanceRequest\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcf\x02\n7DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x12\x9c\x01\n@global_network_endpoint_groups_detach_endpoints_request_resource\x18\xdd\x8d\x9f\x04 \x01(\x0b\x32J.google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequestB\x03\xe0\x41\x02\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xda\x02\n1DetachNetworkEndpointsNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x90\x01\n9network_endpoint_groups_detach_endpoints_request_resource\x18\xf9\xa0\xee\xf5\x01 \x01(\x0b\x32\x44.google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf1\x02\n7DetachNetworkEndpointsRegionNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_network_endpoint_groups_detach_endpoints_request_resource\x18\xee\xe5\xab\x95\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"l\n\x1c\x44isableXpnHostProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xec\x01\n DisableXpnResourceProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12z\n.projects_disable_xpn_resource_request_resource\x18\xaa\xd4\xdc\x63 \x01(\x0b\x32:.google.cloud.compute.v1.ProjectsDisableXpnResourceRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xcf\x1a\n\x04\x44isk\x12\x1b\n\x0b\x61\x63\x63\x65ss_mode\x18\x9e\xf7\xcf\x13 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x01\x88\x01\x01\x12Q\n\x12\x61sync_primary_disk\x18\x9d\xf5\x89V \x01(\x0b\x32-.google.cloud.compute.v1.DiskAsyncReplicationH\x02\x88\x01\x01\x12Y\n\x15\x61sync_secondary_disks\x18\xa8\xe8\xfd\x99\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.Disk.AsyncSecondaryDisksEntry\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x05\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x06\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\t\x88\x01\x01\x12=\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32).google.cloud.compute.v1.Disk.LabelsEntry\x12%\n\x15last_attach_timestamp\x18\xa5\x9c\x8d\x14 \x01(\tH\n\x88\x01\x01\x12%\n\x15last_detach_timestamp\x18\xf3\xdb\xf6\x1a \x01(\tH\x0b\x88\x01\x01\x12\x18\n\rlicense_codes\x18\xa8\x85\xd8\x15 \x03(\x03\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\r\x88\x01\x01\x12\x18\n\x07options\x18\x9e\x8d\x9a\xac\x01 \x01(\tH\x0e\x88\x01\x01\x12;\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32#.google.cloud.compute.v1.DiskParamsH\x0f\x88\x01\x01\x12*\n\x19physical_block_size_bytes\x18\x87\xa0\xa3\xc8\x01 \x01(\x03H\x10\x88\x01\x01\x12 \n\x10provisioned_iops\x18\xd4\xbd\x87Y \x01(\x03H\x11\x88\x01\x01\x12\'\n\x16provisioned_throughput\x18\x95\xbe\x88\xfb\x01 \x01(\x03H\x12\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x13\x88\x01\x01\x12\x18\n\rreplica_zones\x18\x80\xb8\x8c\x17 \x03(\t\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12L\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32+.google.cloud.compute.v1.DiskResourceStatusH\x14\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x15\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x16\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x17\x88\x01\x01\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x18\x88\x01\x01\x12/\n\x1fsource_consistency_group_policy\x18\xdd\xa2\xad\t \x01(\tH\x19\x88\x01\x01\x12\x32\n\"source_consistency_group_policy_id\x18\xbd\x8e\xcb\x7f \x01(\tH\x1a\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x1b\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x1c\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x1d\x88\x01\x01\x12\\\n\x1bsource_image_encryption_key\x18\xab\x91\xf5\xb5\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x1e\x88\x01\x01\x12\x1f\n\x0fsource_image_id\x18\xa3\xfc\xb0\x1a \x01(\tH\x1f\x88\x01\x01\x12\'\n\x17source_instant_snapshot\x18\x86\x84\xc3h \x01(\tH \x88\x01\x01\x12+\n\x1asource_instant_snapshot_id\x18\xf4\xd3\x90\x89\x01 \x01(\tH!\x88\x01\x01\x12\x1f\n\x0fsource_snapshot\x18\xe8\x9a\x8e< \x01(\tH\"\x88\x01\x01\x12_\n\x1esource_snapshot_encryption_key\x18\xda\x8e\xe7\x90\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH#\x88\x01\x01\x12\"\n\x12source_snapshot_id\x18\xd2\x96\x98/ \x01(\tH$\x88\x01\x01\x12%\n\x15source_storage_object\x18\xa7\xb4\x90o \x01(\tH%\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH&\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tH\'\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH(\x88\x01\x01\x12\x10\n\x05users\x18\x88\x9c\x9a\x35 \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH)\x88\x01\x01\x1am\n\x18\x41syncSecondaryDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.compute.v1.DiskAsyncReplicationList:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"q\n\nAccessMode\x12\x19\n\x15UNDEFINED_ACCESS_MODE\x10\x00\x12\x15\n\x0eREAD_ONLY_MANY\x10\xa9\xa7\xa1\x1e\x12\x17\n\x0fREAD_WRITE_MANY\x10\xa8\xc2\x86\xe9\x01\x12\x18\n\x11READ_WRITE_SINGLE\x10\xd1\x99\xae/\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"\x88\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x11\n\tRESTORING\x10\xab\xa7\xe2\xc0\x01\x12\x13\n\x0bUNAVAILABLE\x10\xb0\xd8\xa5\xc5\x01\x42\x0e\n\x0c_access_modeB\x0f\n\r_architectureB\x15\n\x13_async_primary_diskB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x16\n\x14_disk_encryption_keyB\x1e\n\x1c_enable_confidential_computeB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x18\n\x16_last_attach_timestampB\x18\n\x16_last_detach_timestampB\x10\n\x0e_location_hintB\x07\n\x05_nameB\n\n\x08_optionsB\t\n\x07_paramsB\x1c\n\x1a_physical_block_size_bytesB\x13\n\x11_provisioned_iopsB\x19\n\x17_provisioned_throughputB\t\n\x07_regionB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\n\n\x08_size_gbB\"\n _source_consistency_group_policyB%\n#_source_consistency_group_policy_idB\x0e\n\x0c_source_diskB\x11\n\x0f_source_disk_idB\x0f\n\r_source_imageB\x1e\n\x1c_source_image_encryption_keyB\x12\n\x10_source_image_idB\x1a\n\x18_source_instant_snapshotB\x1d\n\x1b_source_instant_snapshot_idB\x12\n\x10_source_snapshotB!\n\x1f_source_snapshot_encryption_keyB\x15\n\x13_source_snapshot_idB\x18\n\x16_source_storage_objectB\t\n\x07_statusB\x0f\n\r_storage_poolB\x07\n\x05_typeB\x07\n\x05_zone\"\xad\x03\n\x12\x44iskAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12H\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x36.google.cloud.compute.v1.DiskAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aV\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.google.cloud.compute.v1.DisksScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xed\x01\n\x14\x44iskAsyncReplication\x12\'\n\x18\x63onsistency_group_policy\x18\xb9\xc3y \x01(\tH\x00\x88\x01\x01\x12+\n\x1b\x63onsistency_group_policy_id\x18\xe1\x92\xbe| \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tH\x02\x88\x01\x01\x12\x17\n\x07\x64isk_id\x18\xfd\xc5\x8a\x1d \x01(\tH\x03\x88\x01\x01\x42\x1b\n\x19_consistency_group_policyB\x1e\n\x1c_consistency_group_policy_idB\x07\n\x05_diskB\n\n\x08_disk_id\"\x8c\x01\n\x18\x44iskAsyncReplicationList\x12U\n\x16\x61sync_replication_disk\x18\x93\xcb\xc3n \x01(\x0b\x32-.google.cloud.compute.v1.DiskAsyncReplicationH\x00\x88\x01\x01\x42\x19\n\x17_async_replication_disk\"\xa4\x03\n\x17\x44iskInstantiationConfig\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0c\x63ustom_image\x18\x8d\xfe\xe5W \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tH\x02\x88\x01\x01\x12!\n\x10instantiate_from\x18\xdf\x9f\xca\xbb\x01 \x01(\tH\x03\x88\x01\x01\"\xc6\x01\n\x0fInstantiateFrom\x12\x1e\n\x1aUNDEFINED_INSTANTIATE_FROM\x10\x00\x12\x18\n\x10\x41TTACH_READ_ONLY\x10\xbb\xae\xfe\xf4\x01\x12\x0c\n\x05\x42LANK\x10\xb4\xb2\x96\x1e\x12\x13\n\x0c\x43USTOM_IMAGE\x10\xed\xf5\xcd]\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\x12\x15\n\x0e\x44O_NOT_INCLUDE\x10\xc8\x82\xd9\x31\x12\x13\n\x0cSOURCE_IMAGE\x10\x97\xe0\xee\x1d\x12\x1a\n\x13SOURCE_IMAGE_FAMILY\x10\x8c\xc9\xd2$B\x0e\n\x0c_auto_deleteB\x0f\n\r_custom_imageB\x0e\n\x0c_device_nameB\x13\n\x11_instantiate_from\"\x99\x02\n\x08\x44iskList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12/\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1d.google.cloud.compute.v1.Disk\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"u\n\x0f\x44iskMoveRequest\x12 \n\x10\x64\x65stination_zone\x18\xbd\xe2\xef> \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_disk\x18\x8b\xcf\xe2\x1d \x01(\tH\x01\x88\x01\x01\x42\x13\n\x11_destination_zoneB\x0e\n\x0c_target_disk\"\xa9\x01\n\nDiskParams\x12_\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32<.google.cloud.compute.v1.DiskParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfa\x02\n\x12\x44iskResourceStatus\x12\x65\n\x12\x61sync_primary_disk\x18\x9d\xf5\x89V \x01(\x0b\x32\x41.google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatusH\x00\x88\x01\x01\x12g\n\x15\x61sync_secondary_disks\x18\xa8\xe8\xfd\x99\x01 \x03(\x0b\x32\x44.google.cloud.compute.v1.DiskResourceStatus.AsyncSecondaryDisksEntry\x1a}\n\x18\x41syncSecondaryDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12P\n\x05value\x18\x02 \x01(\x0b\x32\x41.google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus:\x02\x38\x01\x42\x15\n\x13_async_primary_disk\"\xda\x01\n(DiskResourceStatusAsyncReplicationStatus\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x00\x88\x01\x01\"\x8c\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x07\x43REATED\x10\xc8\x95\xe8@\x12\x10\n\x08STARTING\x10\xc0\xa0\x8b\xe9\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x42\x08\n\x06_state\"\x84\x04\n\x08\x44iskType\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12%\n\x14\x64\x65\x66\x61ult_disk_size_gb\x18\xf5\xa4\x85\x81\x01 \x01(\x03H\x01\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12 \n\x0fvalid_disk_size\x18\xe0\x89\xc5\xeb\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\n\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x17\n\x15_default_disk_size_gbB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_linkB\x12\n\x10_valid_disk_sizeB\x07\n\x05_zone\"\xb9\x03\n\x16\x44iskTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.DiskTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.DiskTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa1\x02\n\x0c\x44iskTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.DiskType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x96\x01\n\x13\x44iskTypesScopedList\x12\x38\n\ndisk_types\x18\xd7\xbe\xed^ \x03(\x0b\x32!.google.cloud.compute.v1.DiskType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"?\n\x1f\x44isksAddResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"B\n\"DisksRemoveResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\":\n\x12\x44isksResizeRequest\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_size_gb\"\x89\x01\n\x0f\x44isksScopedList\x12/\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32\x1d.google.cloud.compute.v1.Disk\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"b\n!DisksStartAsyncReplicationRequest\x12$\n\x14\x61sync_secondary_disk\x18\xab\x83\xe3> \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_async_secondary_disk\"]\n&DisksStopGroupAsyncReplicationResource\x12\x1f\n\x0fresource_policy\x18\x83\xa5\xf7K \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_resource_policy\"B\n\rDisplayDevice\x12\x1e\n\x0e\x65nable_display\x18\x86\xe4\xe6\x06 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_enable_display\"\x81\x02\n\x12\x44istributionPolicy\x12\x1d\n\x0ctarget_shape\x18\xf3\xe6\xbb\xa1\x01 \x01(\tH\x00\x88\x01\x01\x12N\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\x0b\x32<.google.cloud.compute.v1.DistributionPolicyZoneConfiguration\"k\n\x0bTargetShape\x12\x1a\n\x16UNDEFINED_TARGET_SHAPE\x10\x00\x12\t\n\x03\x41NY\x10\xcc\xfb\x03\x12\x16\n\x0f\x41NY_SINGLE_ZONE\x10\xd0\xa6\x91\x1d\x12\x10\n\x08\x42\x41LANCED\x10\x88\xba\xad\xdf\x01\x12\x0b\n\x04\x45VEN\x10\x9a\xd2\x82\x01\x42\x0f\n\r_target_shape\"D\n#DistributionPolicyZoneConfiguration\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_zone\"Q\n\x08\x44uration\x12\x15\n\x05nanos\x18\xbf\xb8\xef\x31 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x07seconds\x18\xff\x94\xb5\xab\x01 \x01(\x03H\x01\x88\x01\x01\x42\x08\n\x06_nanosB\n\n\x08_seconds\"k\n\x1b\x45nableXpnHostProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xea\x01\n\x1f\x45nableXpnResourceProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12y\n-projects_enable_xpn_resource_request_resource\x18\xaf\xd0\x9b\xc9\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.ProjectsEnableXpnResourceRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"<\n\x05\x45rror\x12\x33\n\x06\x65rrors\x18\xeb\xde\xd5\x96\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Errors\"\xd7\x02\n\x0c\x45rrorDetails\x12>\n\nerror_info\x18\x85\xa1\x85\x0c \x01(\x0b\x32\".google.cloud.compute.v1.ErrorInfoH\x00\x88\x01\x01\x12\x33\n\x04help\x18\xc1\x9e\xc3\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.HelpH\x01\x88\x01\x01\x12M\n\x11localized_message\x18\xc3\xfe\xf2\xc0\x01 \x01(\x0b\x32).google.cloud.compute.v1.LocalizedMessageH\x02\x88\x01\x01\x12\x46\n\nquota_info\x18\x95\xd4\xe4, \x01(\x0b\x32*.google.cloud.compute.v1.QuotaExceededInfoH\x03\x88\x01\x01\x42\r\n\x0b_error_infoB\x07\n\x05_helpB\x14\n\x12_localized_messageB\r\n\x0b_quota_info\"\xcd\x01\n\tErrorInfo\x12\x17\n\x06\x64omain\x18\xc4\xa9\xcf\x87\x01 \x01(\tH\x00\x88\x01\x01\x12G\n\tmetadatas\x18\xa4\xd6\x87\x04 \x03(\x0b\x32\x31.google.cloud.compute.v1.ErrorInfo.MetadatasEntry\x12\x16\n\x06reason\x18\xc4\xa4\x96\x42 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eMetadatasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_domainB\t\n\x07_reason\"\xb7\x01\n\x06\x45rrors\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\rerror_details\x18\x8b\xc6\xfb\x82\x01 \x03(\x0b\x32%.google.cloud.compute.v1.ErrorDetails\x12\x19\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_codeB\x0b\n\t_locationB\n\n\x08_message\"\xdd\x02\n\x15\x45xchangedPeeringRoute\x12\x1b\n\ndest_range\x18\xe0\xb2\xea\xb5\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08imported\x18\x84\xd6\xcc\x36 \x01(\x08H\x01\x88\x01\x01\x12\x1f\n\x0fnext_hop_region\x18\xf6\xc0\xb9: \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x04\x88\x01\x01\"u\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1d\n\x15\x44YNAMIC_PEERING_ROUTE\x10\xaa\x80\x82\xe0\x01\x12\x1c\n\x14STATIC_PEERING_ROUTE\x10\xb9\xc0\xde\xe1\x01\x12\x1c\n\x14SUBNET_PEERING_ROUTE\x10\xe8\x8d\x8d\xde\x01\x42\r\n\x0b_dest_rangeB\x0b\n\t_importedB\x12\n\x10_next_hop_regionB\x0b\n\t_priorityB\x07\n\x05_type\"\xbc\x02\n\x1a\x45xchangedPeeringRoutesList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12@\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32..google.cloud.compute.v1.ExchangedPeeringRoute\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n\"ExpandIpCidrRangeSubnetworkRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12\x80\x01\n1subnetworks_expand_ip_cidr_range_request_resource\x18\xde\xd0\xba\xe3\x01 \x01(\x0b\x32<.google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa9\x01\n\x04\x45xpr\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nexpression\x18\x98\xa5\xee\xa7\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x05title\x18\xd8\xc4\xd0\x34 \x01(\tH\x03\x88\x01\x01\x42\x0e\n\x0c_descriptionB\r\n\x0b_expressionB\x0b\n\t_locationB\x08\n\x06_title\"\xc8\x05\n\x12\x45xternalVpnGateway\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12K\n\ninterfaces\x18\xda\xf4\xe0\x05 \x03(\x0b\x32\x34.google.cloud.compute.v1.ExternalVpnGatewayInterface\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x04\x88\x01\x01\x12K\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.ExternalVpnGateway.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12 \n\x0fredundancy_type\x18\x9c\xce\xb7\x81\x01 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8f\x01\n\x0eRedundancyType\x12\x1d\n\x19UNDEFINED_REDUNDANCY_TYPE\x10\x00\x12\x1b\n\x13\x46OUR_IPS_REDUNDANCY\x10\xe9\xd2\xff\xf7\x01\x12%\n\x1eSINGLE_IP_INTERNALLY_REDUNDANT\x10\xf9\xc1\xed?\x12\x1a\n\x12TWO_IPS_REDUNDANCY\x10\xa3\xf7\x82\xaf\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x12\n\x10_redundancy_typeB\x0c\n\n_self_link\"\x92\x01\n\x1b\x45xternalVpnGatewayInterface\x12\x10\n\x02id\x18\x9b\x1a \x01(\rH\x00\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x02\x88\x01\x01\x42\x05\n\x03_idB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_address\"\xd4\x02\n\x16\x45xternalVpnGatewayList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12=\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32+.google.cloud.compute.v1.ExternalVpnGateway\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x11\x46ileContentBuffer\x12\x18\n\x07\x63ontent\x18\xf9\xe8\xdc\xc5\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tfile_type\x18\x9d\xc0\xad\x8c\x01 \x01(\tH\x01\x88\x01\x01\"M\n\x08\x46ileType\x12\x17\n\x13UNDEFINED_FILE_TYPE\x10\x00\x12\t\n\x03\x42IN\x10\xe7\x81\x04\x12\x10\n\tUNDEFINED\x10\xb0\xe2\xdd\x41\x12\x0b\n\x04X509\x10\xa6\x9b\xa3\x01\x42\n\n\x08_contentB\x0c\n\n_file_type\"\x9c\x07\n\x08\x46irewall\x12\x34\n\x07\x61llowed\x18\xa8\x83\xb8M \x03(\x0b\x32 .google.cloud.compute.v1.Allowed\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x33\n\x06\x64\x65nied\x18\x9b\xf7\x9d\x83\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Denied\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x12\x64\x65stination_ranges\x18\xa7\xb8\xe2\x91\x01 \x03(\t\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12G\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32*.google.cloud.compute.v1.FirewallLogConfigH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x08\x88\x01\x01\x12?\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallParamsH\t\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\n\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12\x18\n\rsource_ranges\x18\xfa\xfe\xb4_ \x03(\t\x12\"\n\x17source_service_accounts\x18\xd4\xeb\x8e\x32 \x03(\t\x12\x17\n\x0bsource_tags\x18\xbd\xbb\xd1\xd7\x01 \x03(\t\x12#\n\x17target_service_accounts\x18\x9e\x8e\x9c\xda\x01 \x03(\t\x12\x16\n\x0btarget_tags\x18\x87\x9c\xff\x1d \x03(\t\"E\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\x0e\n\x06\x45GRESS\x10\xf5\xf6\xb4\xce\x01\x12\x0f\n\x07INGRESS\x10\x95\xfd\xbe\xf6\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0c\n\n_directionB\x0b\n\t_disabledB\x05\n\x03_idB\x07\n\x05_kindB\r\n\x0b_log_configB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_paramsB\x0b\n\t_priorityB\x0c\n\n_self_link\"\xa1\x02\n\x0c\x46irewallList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\x01\n\x11\x46irewallLogConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08metadata\x18\xaf\xf6\xb5) \x01(\tH\x01\x88\x01\x01\"]\n\x08Metadata\x12\x16\n\x12UNDEFINED_METADATA\x10\x00\x12\x1c\n\x14\x45XCLUDE_ALL_METADATA\x10\x92\xbd\xc1\x9f\x01\x12\x1b\n\x14INCLUDE_ALL_METADATA\x10\x84\xcd\xbfNB\t\n\x07_enableB\x0b\n\t_metadata\"\xb1\x01\n\x0e\x46irewallParams\x12\x63\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32@.google.cloud.compute.v1.FirewallParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x97\x01\n(FirewallPoliciesListAssociationsResponse\x12L\n\x0c\x61ssociations\x18\x92\xe8\xca\xf2\x01 \x03(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_kind\"\xab\x01\n\x1a\x46irewallPoliciesScopedList\x12\x46\n\x11\x66irewall_policies\x18\xaf\x8b\x95\xbb\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x97\x06\n\x0e\x46irewallPolicy\x12L\n\x0c\x61ssociations\x18\x92\xe8\xca\xf2\x01 \x03(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociation\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12O\n\x16packet_mirroring_rules\x18\xc4\xff\xc0\xfd\x01 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x16\n\x06parent\x18\xaa\x91\xac% \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12!\n\x10rule_tuple_count\x18\x95\xc2\x96\xb9\x01 \x01(\x05H\t\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0b\x88\x01\x01\x12\x1b\n\nshort_name\x18\xee\xb8\xd0\xea\x01 \x01(\tH\x0c\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0f\n\r_display_nameB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_parentB\t\n\x07_regionB\x13\n\x11_rule_tuple_countB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\r\n\x0b_short_name\"\x8a\x02\n\x19\x46irewallPolicyAssociation\x12!\n\x11\x61ttachment_target\x18\xad\xb0\xe8S \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x12\x66irewall_policy_id\x18\xc9\xbd\xaa\xaa\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nshort_name\x18\xee\xb8\xd0\xea\x01 \x01(\tH\x04\x88\x01\x01\x42\x14\n\x12_attachment_targetB\x0f\n\r_display_nameB\x15\n\x13_firewall_policy_idB\x07\n\x05_nameB\r\n\x0b_short_name\"\x83\x02\n\x12\x46irewallPolicyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\xb7\x06\n\x12\x46irewallPolicyRule\x12\x16\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x0e\x65nable_logging\x18\xa3\xc9\xed\x8c\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12I\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyRuleMatcherH\x06\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x07\x88\x01\x01\x12\x19\n\trule_name\x18\xee\xb3\xae\x1a \x01(\tH\x08\x88\x01\x01\x12!\n\x10rule_tuple_count\x18\x95\xc2\x96\xb9\x01 \x01(\x05H\t\x88\x01\x01\x12&\n\x16security_profile_group\x18\xaa\xb3\xf3\x62 \x01(\tH\n\x88\x01\x01\x12\x1c\n\x10target_resources\x18\xf7\xd1\xf0\xfb\x01 \x03(\t\x12T\n\x12target_secure_tags\x18\xb3\xc4\x9c\xdf\x01 \x03(\x0b\x32\x34.google.cloud.compute.v1.FirewallPolicyRuleSecureTag\x12#\n\x17target_service_accounts\x18\x9e\x8e\x9c\xda\x01 \x03(\t\x12\x1b\n\x0btls_inspect\x18\xd0\xbd\xda\x14 \x01(\x08H\x0b\x88\x01\x01\"E\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\x0e\n\x06\x45GRESS\x10\xf5\xf6\xb4\xce\x01\x12\x0f\n\x07INGRESS\x10\x95\xfd\xbe\xf6\x01\x42\t\n\x07_actionB\x0e\n\x0c_descriptionB\x0c\n\n_directionB\x0b\n\t_disabledB\x11\n\x0f_enable_loggingB\x07\n\x05_kindB\x08\n\x06_matchB\x0b\n\t_priorityB\x0c\n\n_rule_nameB\x13\n\x11_rule_tuple_countB\x19\n\x17_security_profile_groupB\x0e\n\x0c_tls_inspect\"\xe9\x05\n\x19\x46irewallPolicyRuleMatcher\x12\x1f\n\x13\x64\x65st_address_groups\x18\xbc\xef\xc2\xdf\x01 \x03(\t\x12\x16\n\ndest_fqdns\x18\xa1\xc1\xe2\xb0\x01 \x03(\t\x12\x1a\n\x0e\x64\x65st_ip_ranges\x18\x91\xd7\xee\xa0\x01 \x03(\t\x12\"\n\x11\x64\x65st_network_type\x18\xa8\xba\xb7\xc3\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x11\x64\x65st_region_codes\x18\x98\xab\xf9^ \x03(\t\x12$\n\x19\x64\x65st_threat_intelligences\x18\xac\xf3\x95\x39 \x03(\t\x12Z\n\x0elayer4_configs\x18\xb5\xdc\x8e\xb2\x01 \x03(\x0b\x32>.google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config\x12\x1e\n\x12src_address_groups\x18\xba\x98\x8d\xd0\x01 \x03(\t\x12\x15\n\tsrc_fqdns\x18\xe3\xcc\xed\xcf\x01 \x03(\t\x12\x19\n\rsrc_ip_ranges\x18\xd3\x80\x87\xce\x01 \x03(\t\x12!\n\x10src_network_type\x18\xa6\xf2\xdd\x93\x01 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x0csrc_networks\x18\x80\x80\xebu \x03(\t\x12\x1b\n\x10src_region_codes\x18\x96\xe3\x9f/ \x03(\t\x12Q\n\x0fsrc_secure_tags\x18\x86\x94\xce\xf2\x01 \x03(\x0b\x32\x34.google.cloud.compute.v1.FirewallPolicyRuleSecureTag\x12$\n\x18src_threat_intelligences\x18\xaa\xef\xa8\x9a\x01 \x03(\t\"2\n\x0f\x44\x65stNetworkType\x12\x1f\n\x1bUNDEFINED_DEST_NETWORK_TYPE\x10\x00\"0\n\x0eSrcNetworkType\x12\x1e\n\x1aUNDEFINED_SRC_NETWORK_TYPE\x10\x00\x42\x14\n\x12_dest_network_typeB\x13\n\x11_src_network_type\"g\n%FirewallPolicyRuleMatcherLayer4Config\x12\x1c\n\x0bip_protocol\x18\xb0\x9d\xfa\xe2\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05ports\x18\x92\xf0\xf9\x32 \x03(\tB\x0e\n\x0c_ip_protocol\"\xa2\x01\n\x1b\x46irewallPolicyRuleSecureTag\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x01\x88\x01\x01\"C\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\tEFFECTIVE\x10\x87\xf3\xb8t\x12\x13\n\x0bINEFFECTIVE\x10\x82\xd4\x96\x91\x01\x42\x07\n\x05_nameB\x08\n\x06_state\"\x83\x01\n\x0e\x46ixedOrPercent\x12\x1b\n\ncalculated\x18\xbe\xd3\x8d\xe1\x01 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x05\x66ixed\x18\xf4\xce\xbb. \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x07percent\x18\xc5\xc8\xa1\xbc\x01 \x01(\x05H\x02\x88\x01\x01\x42\r\n\x0b_calculatedB\x08\n\x06_fixedB\n\n\x08_percent\"\x8f\x18\n\x0e\x46orwardingRule\x12\x1b\n\x0bI_p_address\x18\xaf\x8d\xbf\x14 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cI_p_protocol\x18\xbd\xf6\xde\xe8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\tall_ports\x18\xf4\xaf\xa3\xd4\x01 \x01(\x08H\x02\x88\x01\x01\x12$\n\x13\x61llow_global_access\x18\x8a\xc6\x91\xee\x01 \x01(\x08H\x03\x88\x01\x01\x12\'\n\x17\x61llow_psc_global_access\x18\xcb\x85\xd1} \x01(\x08H\x04\x88\x01\x01\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x05\x88\x01\x01\x12%\n\x14\x62\x61se_forwarding_rule\x18\x90\xdb\xa3\xfa\x01 \x01(\tH\x06\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x07\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x08\x88\x01\x01\x12?\n/external_managed_backend_bucket_migration_state\x18\xaa\xa4\xb4\x33 \x01(\tH\t\x88\x01\x01\x12L\n.google.cloud.compute.v1.HealthChecksAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.HealthChecksScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa0\x01\n\x16HealthChecksScopedList\x12?\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\x0b\x32$.google.cloud.compute.v1.HealthCheck\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xf2\x06\n\x0cHealthStatus\x12N\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32\x36.google.cloud.compute.v1.HealthStatus.AnnotationsEntry\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x66orwarding_rule_ip\x18\x88\xac\x91R \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0chealth_state\x18\xee\xe9\xbf\x9a\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11ipv6_health_state\x18\xc6\x80\xe0Z \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x07\x88\x01\x01\x12\x17\n\x06weight\x18\xf8\x84\xc5\x86\x01 \x01(\tH\x08\x88\x01\x01\x12\x1d\n\x0cweight_error\x18\x81\xfb\x92\xf9\x01 \x01(\tH\t\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"M\n\x0bHealthState\x12\x1a\n\x16UNDEFINED_HEALTH_STATE\x10\x00\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12\x11\n\tUNHEALTHY\x10\xc4\xb9\xad\xdc\x01\"2\n\x0fIpv6HealthState\x12\x1f\n\x1bUNDEFINED_IPV6_HEALTH_STATE\x10\x00\"\x8a\x01\n\x0bWeightError\x12\x1a\n\x16UNDEFINED_WEIGHT_ERROR\x10\x00\x12\x16\n\x0eINVALID_WEIGHT\x10\xe0\x8b\xfb\xb6\x01\x12\x16\n\x0eMISSING_WEIGHT\x10\x91\x97\x8f\xb7\x01\x12\x1a\n\x12UNAVAILABLE_WEIGHT\x10\xe7\xe2\xc6\xd1\x01\x12\x13\n\x0bWEIGHT_NONE\x10\x9f\xe9\xc9\xef\x01\x42\x12\n\x10_forwarding_ruleB\x15\n\x13_forwarding_rule_ipB\x0f\n\r_health_stateB\x0b\n\t_instanceB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_addressB\x14\n\x12_ipv6_health_stateB\x07\n\x05_portB\t\n\x07_weightB\x0f\n\r_weight_error\"\xd4\x05\n\x1eHealthStatusForNetworkEndpoint\x12R\n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.BackendServiceReferenceH\x00\x88\x01\x01\x12R\n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.ForwardingRuleReferenceH\x01\x88\x01\x01\x12L\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\x0b\x32-.google.cloud.compute.v1.HealthCheckReferenceH\x02\x88\x01\x01\x12[\n\x14health_check_service\x18\xdb\x9b\xdd\xc2\x01 \x01(\x0b\x32\x34.google.cloud.compute.v1.HealthCheckServiceReferenceH\x03\x88\x01\x01\x12\x1d\n\x0chealth_state\x18\xee\xe9\xbf\x9a\x01 \x01(\tH\x04\x88\x01\x01\x12!\n\x11ipv6_health_state\x18\xc6\x80\xe0Z \x01(\tH\x05\x88\x01\x01\"p\n\x0bHealthState\x12\x1a\n\x16UNDEFINED_HEALTH_STATE\x10\x00\x12\x10\n\x08\x44RAINING\x10\xea\xd5\x8c\xe5\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12\x11\n\tUNHEALTHY\x10\xc4\xb9\xad\xdc\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\"2\n\x0fIpv6HealthState\x12\x1f\n\x1bUNDEFINED_IPV6_HEALTH_STATE\x10\x00\x42\x12\n\x10_backend_serviceB\x12\n\x10_forwarding_ruleB\x0f\n\r_health_checkB\x17\n\x15_health_check_serviceB\x0f\n\r_health_stateB\x14\n\x12_ipv6_health_state\";\n\x04Help\x12\x33\n\x05links\x18\xb9\x9f\x8d\x31 \x03(\x0b\x32!.google.cloud.compute.v1.HelpLink\"T\n\x08HelpLink\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x06\n\x04_url\"z\n\x08HostRule\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05hosts\x18\xcb\xff\xb6/ \x03(\t\x12\x1d\n\x0cpath_matcher\x18\x98\xbe\x8a\xa1\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_path_matcher\"i\n\x0eHttpFaultAbort\x12\x1c\n\x0bhttp_status\x18\x89\xb7\xce\xdf\x01 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\npercentage\x18\x9a\xe5\xb7H \x01(\x01H\x01\x88\x01\x01\x42\x0e\n\x0c_http_statusB\r\n\x0b_percentage\"\x8c\x01\n\x0eHttpFaultDelay\x12?\n\x0b\x66ixed_delay\x18\xf8\xb9\x96\x97\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x00\x88\x01\x01\x12\x1a\n\npercentage\x18\x9a\xe5\xb7H \x01(\x01H\x01\x88\x01\x01\x42\x0e\n\x0c_fixed_delayB\r\n\x0b_percentage\"\xa8\x01\n\x12HttpFaultInjection\x12>\n\x05\x61\x62ort\x18\xb0\xc6\x94, \x01(\x0b\x32\'.google.cloud.compute.v1.HttpFaultAbortH\x00\x88\x01\x01\x12>\n\x05\x64\x65lay\x18\x83\xf3\xc2- \x01(\x0b\x32\'.google.cloud.compute.v1.HttpFaultDelayH\x01\x88\x01\x01\x42\x08\n\x06_abortB\x08\n\x06_delay\"\xfc\x01\n\x10HttpHeaderAction\x12L\n\x16request_headers_to_add\x18\xe6\xae\xb1\" \x03(\x0b\x32).google.cloud.compute.v1.HttpHeaderOption\x12$\n\x19request_headers_to_remove\x18\x9f\xcf\x93h \x03(\t\x12M\n\x17response_headers_to_add\x18\xf4\xb6\xa9\x0f \x03(\x0b\x32).google.cloud.compute.v1.HttpHeaderOption\x12%\n\x1aresponse_headers_to_remove\x18\xd1\x81\xfb# \x03(\t\"\xb0\x03\n\x0fHttpHeaderMatch\x12\x1c\n\x0b\x65xact_match\x18\x85\x99\x9c\xda\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0cinvert_match\x18\x9c\xc8\xfa\xee\x01 \x01(\x08H\x02\x88\x01\x01\x12\x1c\n\x0cprefix_match\x18\xd8\xf3\xfcz \x01(\tH\x03\x88\x01\x01\x12\x1d\n\rpresent_match\x18\xc1\xfa\x93 \x01(\x08H\x04\x88\x01\x01\x12\x45\n\x0brange_match\x18\xc3\xa8\xaf. \x01(\x0b\x32(.google.cloud.compute.v1.Int64RangeMatchH\x05\x88\x01\x01\x12\x1b\n\x0bregex_match\x18\xcd\xb7\x9a\x33 \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x0csuffix_match\x18\xd7\xe6\xae\xcb\x01 \x01(\tH\x07\x88\x01\x01\x42\x0e\n\x0c_exact_matchB\x0e\n\x0c_header_nameB\x0f\n\r_invert_matchB\x0f\n\r_prefix_matchB\x10\n\x0e_present_matchB\x0e\n\x0c_range_matchB\x0e\n\x0c_regex_matchB\x0f\n\r_suffix_match\"\x93\x01\n\x10HttpHeaderOption\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cheader_value\x18\xbf\xf2\xeb` \x01(\tH\x01\x88\x01\x01\x12\x17\n\x07replace\x18\xb4\xe5\xf2\t \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_header_nameB\x0f\n\r_header_valueB\n\n\x08_replace\"\xc4\x01\n\x17HttpQueryParameterMatch\x12\x1c\n\x0b\x65xact_match\x18\x85\x99\x9c\xda\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rpresent_match\x18\xc1\xfa\x93 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0bregex_match\x18\xcd\xb7\x9a\x33 \x01(\tH\x03\x88\x01\x01\x42\x0e\n\x0c_exact_matchB\x07\n\x05_nameB\x10\n\x0e_present_matchB\x0e\n\x0c_regex_match\"\x8c\x04\n\x12HttpRedirectAction\x12\x1d\n\rhost_redirect\x18\x93\xa1\x9c\x33 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0ehttps_redirect\x18\xb0\xf1\x97Q \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\rpath_redirect\x18\xb6\xbd\xee\x81\x01 \x01(\tH\x02\x88\x01\x01\x12 \n\x0fprefix_redirect\x18\xe9\xf5\xe0\xd4\x01 \x01(\tH\x03\x88\x01\x01\x12\'\n\x16redirect_response_code\x18\x88\xd8\x9e\xd0\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0bstrip_query\x18\xe1\x99\xf7\x18 \x01(\x08H\x05\x88\x01\x01\"\xb8\x01\n\x14RedirectResponseCode\x12$\n UNDEFINED_REDIRECT_RESPONSE_CODE\x10\x00\x12\x0c\n\x05\x46OUND\x10\xe2\xbe\xfe\x1f\x12!\n\x19MOVED_PERMANENTLY_DEFAULT\x10\xd1\x99\xb2\xb8\x01\x12\x1a\n\x12PERMANENT_REDIRECT\x10\xed\xe8\x93\xb6\x01\x12\x11\n\tSEE_OTHER\x10\xe4\xef\xaf\xd4\x01\x12\x1a\n\x12TEMPORARY_REDIRECT\x10\xaa\xe4\xb7\xe9\x01\x42\x10\n\x0e_host_redirectB\x11\n\x0f_https_redirectB\x10\n\x0e_path_redirectB\x12\n\x10_prefix_redirectB\x19\n\x17_redirect_response_codeB\x0e\n\x0c_strip_query\"\xb4\x01\n\x0fHttpRetryPolicy\x12\x1b\n\x0bnum_retries\x18\x8d\xab\x81x \x01(\rH\x00\x88\x01\x01\x12\x43\n\x0fper_try_timeout\x18\xbb\xad\xc4\x85\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x01\x88\x01\x01\x12\x1b\n\x10retry_conditions\x18\xaf\xe1\xde\r \x03(\tB\x0e\n\x0c_num_retriesB\x12\n\x10_per_try_timeout\"\xf1\x05\n\x0fHttpRouteAction\x12\x41\n\x0b\x63ors_policy\x18\x84\xcc\x9d\xbe\x01 \x01(\x0b\x32#.google.cloud.compute.v1.CorsPolicyH\x00\x88\x01\x01\x12T\n\x16\x66\x61ult_injection_policy\x18\x97\x94\xea\xc4\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpFaultInjectionH\x01\x88\x01\x01\x12\x46\n\x13max_stream_duration\x18\x98\xa5\xa5\x1d \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x02\x88\x01\x01\x12S\n\x15request_mirror_policy\x18\x82\xe0\xffh \x01(\x0b\x32,.google.cloud.compute.v1.RequestMirrorPolicyH\x03\x88\x01\x01\x12\x46\n\x0cretry_policy\x18\xa9\xe5\x8a\x1b \x01(\x0b\x32(.google.cloud.compute.v1.HttpRetryPolicyH\x04\x88\x01\x01\x12;\n\x07timeout\x18\xe1\x9a\xbd\x8d\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x05\x88\x01\x01\x12\x41\n\x0burl_rewrite\x18\xbc\xfd\xaa\x82\x01 \x01(\x0b\x32#.google.cloud.compute.v1.UrlRewriteH\x06\x88\x01\x01\x12V\n\x19weighted_backend_services\x18\xd1\xc7\xda\xa0\x01 \x03(\x0b\x32/.google.cloud.compute.v1.WeightedBackendServiceB\x0e\n\x0c_cors_policyB\x19\n\x17_fault_injection_policyB\x16\n\x14_max_stream_durationB\x18\n\x16_request_mirror_policyB\x0f\n\r_retry_policyB\n\n\x08_timeoutB\x0e\n\x0c_url_rewrite\"\xe8\x04\n\rHttpRouteRule\x12`\n\x1c\x63ustom_error_response_policy\x18\xeb\xf8\xda` \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x02\x88\x01\x01\x12\x44\n\x0bmatch_rules\x18\xfd\xbb\xb1\xb3\x01 \x03(\x0b\x32+.google.cloud.compute.v1.HttpRouteRuleMatch\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x03\x88\x01\x01\x12G\n\x0croute_action\x18\xec\xa9\xb9\xca\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x04\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x05\x88\x01\x01\x12J\n\x0curl_redirect\x18\xac\xa1\x98\xc1\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x06\x88\x01\x01\x42\x1f\n\x1d_custom_error_response_policyB\x0e\n\x0c_descriptionB\x10\n\x0e_header_actionB\x0b\n\t_priorityB\x0f\n\r_route_actionB\n\n\x08_serviceB\x0f\n\r_url_redirect\"\xf5\x03\n\x12HttpRouteRuleMatch\x12\x1f\n\x0f\x66ull_path_match\x18\xdb\x89\xaa\x66 \x01(\tH\x00\x88\x01\x01\x12\x44\n\x0eheader_matches\x18\x81\xeb\xc8\xac\x01 \x03(\x0b\x32(.google.cloud.compute.v1.HttpHeaderMatch\x12\x1c\n\x0bignore_case\x18\xfd\x92\xb4\xdd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x45\n\x10metadata_filters\x18\xeb\xcd\xcc\xdd\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.MetadataFilter\x12$\n\x13path_template_match\x18\x9a\xc2\xb3\x8b\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0cprefix_match\x18\xd8\xf3\xfcz \x01(\tH\x03\x88\x01\x01\x12U\n\x17query_parameter_matches\x18\xe6\x95\xbe\x88\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.HttpQueryParameterMatch\x12\x1b\n\x0bregex_match\x18\xcd\xb7\x9a\x33 \x01(\tH\x04\x88\x01\x01\x42\x12\n\x10_full_path_matchB\x0e\n\x0c_ignore_caseB\x16\n\x14_path_template_matchB\x0f\n\r_prefix_matchB\x0e\n\x0c_regex_match\"\xb9\x12\n\x05Image\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12\x61rchive_size_bytes\x18\xca\x8c\xdc\xb5\x01 \x01(\x03H\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x05\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x06\x88\x01\x01\x12\x17\n\x06\x66\x61mily\x18\xe4\xb6\xe1\x9c\x01 \x01(\tH\x07\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12U\n\x14image_encryption_key\x18\x87\xce\xfb\xb4\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0b\x88\x01\x01\x12>\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32*.google.cloud.compute.v1.Image.LabelsEntry\x12\x18\n\rlicense_codes\x18\xa8\x85\xd8\x15 \x03(\x03\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0c\x88\x01\x01\x12;\n\x08raw_disk\x18\xd4\xce\xf3\xef\x01 \x01(\x0b\x32 .google.cloud.compute.v1.RawDiskH\r\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x0e\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12\\\n\x1fshielded_instance_initial_state\x18\x83\xc4\xdc[ \x01(\x0b\x32+.google.cloud.compute.v1.InitialStateConfigH\x11\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x12\x88\x01\x01\x12[\n\x1asource_disk_encryption_key\x18\xe1\xa0\xb8\xfd\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x13\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x14\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x15\x88\x01\x01\x12\\\n\x1bsource_image_encryption_key\x18\xab\x91\xf5\xb5\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x16\x88\x01\x01\x12\x1f\n\x0fsource_image_id\x18\xa3\xfc\xb0\x1a \x01(\tH\x17\x88\x01\x01\x12\x1f\n\x0fsource_snapshot\x18\xe8\x9a\x8e< \x01(\tH\x18\x88\x01\x01\x12_\n\x1esource_snapshot_encryption_key\x18\xda\x8e\xe7\x90\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x19\x88\x01\x01\x12\"\n\x12source_snapshot_id\x18\xd2\x96\x98/ \x01(\tH\x1a\x88\x01\x01\x12\x1c\n\x0bsource_type\x18\xde\xf1\xd2\xd7\x01 \x01(\tH\x1b\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x1c\x88\x01\x01\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"2\n\nSourceType\x12\x19\n\x15UNDEFINED_SOURCE_TYPE\x10\x00\x12\t\n\x03RAW\x10\x88\xf8\x04\"^\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x0f\n\r_architectureB\x15\n\x13_archive_size_bytesB\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x0f\n\r_disk_size_gbB\x1e\n\x1c_enable_confidential_computeB\t\n\x07_familyB\x05\n\x03_idB\x17\n\x15_image_encryption_keyB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x0b\n\t_raw_diskB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\"\n _shielded_instance_initial_stateB\x0e\n\x0c_source_diskB\x1d\n\x1b_source_disk_encryption_keyB\x11\n\x0f_source_disk_idB\x0f\n\r_source_imageB\x1e\n\x1c_source_image_encryption_keyB\x12\n\x10_source_image_idB\x12\n\x10_source_snapshotB!\n\x1f_source_snapshot_encryption_keyB\x15\n\x13_source_snapshot_idB\x0e\n\x0c_source_typeB\t\n\x07_status\"R\n\x0fImageFamilyView\x12\x35\n\x05image\x18\xdb\xd2\xea/ \x01(\x0b\x32\x1e.google.cloud.compute.v1.ImageH\x00\x88\x01\x01\x42\x08\n\x06_image\"\x9b\x02\n\tImageList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x30\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1e.google.cloud.compute.v1.Image\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8e\x02\n\x12InitialStateConfig\x12\x39\n\x03\x64\x62s\x18\xb5\x87\x06 \x03(\x0b\x32*.google.cloud.compute.v1.FileContentBuffer\x12;\n\x04\x64\x62xs\x18\xf9\xe7\xbb\x01 \x03(\x0b\x32*.google.cloud.compute.v1.FileContentBuffer\x12;\n\x04keks\x18\xc2\xd8\xc8\x01 \x03(\x0b\x32*.google.cloud.compute.v1.FileContentBuffer\x12<\n\x02pk\x18\xfb\x1b \x01(\x0b\x32*.google.cloud.compute.v1.FileContentBufferH\x00\x88\x01\x01\x42\x05\n\x03_pk\"\xca\x01\n\x14InsertAddressRequest\x12\x43\n\x10\x61\x64\x64ress_resource\x18\xf9\x97\xde\xe6\x01 \x01(\x0b\x32 .google.cloud.compute.v1.AddressB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xce\x01\n\x17InsertAutoscalerRequest\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xbc\x01\n\x1aInsertBackendBucketRequest\x12P\n\x17\x62\x61\x63kend_bucket_resource\x18\x98\xce\xc7\xb5\x01 \x01(\x0b\x32&.google.cloud.compute.v1.BackendBucketB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x01\n\x1bInsertBackendServiceRequest\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xeb\x01\n\x11InsertDiskRequest\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0f\n\r_source_image\"\xcc\x01\n\x1fInsertExternalVpnGatewayRequest\x12[\n\x1d\x65xternal_vpn_gateway_resource\x18\x88\xdf\x90\xe8\x01 \x01(\x0b\x32+.google.cloud.compute.v1.ExternalVpnGatewayB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc4\x01\n\x1bInsertFirewallPolicyRequest\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12&\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tB\x0f\xe0\x41\x02\xf2G\tparent_id\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xab\x01\n\x15InsertFirewallRequest\x12\x44\n\x11\x66irewall_resource\x18\xed\xb0\xe0\x13 \x01(\x0b\x32!.google.cloud.compute.v1.FirewallB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe0\x01\n\x1bInsertForwardingRuleRequest\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xaf\x01\n\x1aInsertGlobalAddressRequest\x12\x43\n\x10\x61\x64\x64ress_resource\x18\xf9\x97\xde\xe6\x01 \x01(\x0b\x32 .google.cloud.compute.v1.AddressB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc5\x01\n!InsertGlobalForwardingRuleRequest\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n\'InsertGlobalNetworkEndpointGroupRequest\x12_\n\x1fnetwork_endpoint_group_resource\x18\xa7\xcd\xdb\xfa\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xdb\x01\n)InsertGlobalPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb5\x01\n\x18InsertHealthCheckRequest\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd2\x01\n\x12InsertImageRequest\x12\x1c\n\x0c\x66orce_create\x18\xd0\x89\xa4^ \x01(\x08H\x00\x88\x01\x01\x12?\n\x0eimage_resource\x18\xf2\xc4\xfe\xb0\x01 \x01(\x0b\x32\x1e.google.cloud.compute.v1.ImageB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_force_createB\r\n\x0b_request_id\"\xee\x01\n!InsertInstanceGroupManagerRequest\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xc0\x02\n.InsertInstanceGroupManagerResizeRequestRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12{\n.instance_group_manager_resize_request_resource\x18\xed\xbe\xb5\xdf\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstanceGroupManagerResizeRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd9\x01\n\x1aInsertInstanceGroupRequest\x12P\n\x17instance_group_resource\x18\xb8\xb5\xd5\x88\x01 \x01(\x0b\x32&.google.cloud.compute.v1.InstanceGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcf\x02\n\x15InsertInstanceRequest\x12\x44\n\x11instance_resource\x18\xf8\xf0\xfe\x66 \x01(\x0b\x32!.google.cloud.compute.v1.InstanceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12)\n\x18source_instance_template\x18\xc0\xc3\xc1\x9e\x01 \x01(\tH\x01\x88\x01\x01\x12$\n\x14source_machine_image\x18\xbf\xdc\xb0\n \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x1b\n\x19_source_instance_templateB\x17\n\x15_source_machine_image\"\xc4\x01\n\x1dInsertInstanceTemplateRequest\x12U\n\x1ainstance_template_resource\x18\x89\xea\x8b\x05 \x01(\x0b\x32).google.cloud.compute.v1.InstanceTemplateB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xdf\x01\n\x1cInsertInstantSnapshotRequest\x12T\n\x19instant_snapshot_resource\x18\xcb\xaa\x88\xb7\x01 \x01(\x0b\x32(.google.cloud.compute.v1.InstantSnapshotB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe6\x01\n(InsertInterconnectAttachmentGroupRequest\x12l\n&interconnect_attachment_group_resource\x18\xf9\xdf\xe1\x04 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectAttachmentGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x02\n#InsertInterconnectAttachmentRequest\x12\x61\n interconnect_attachment_resource\x18\xf9\xa4\xa0\x65 \x01(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xc7\x01\n\x1eInsertInterconnectGroupRequest\x12W\n\x1binterconnect_group_resource\x18\x9f\xf3\xe6( \x01(\x0b\x32*.google.cloud.compute.v1.InterconnectGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb8\x01\n\x19InsertInterconnectRequest\x12M\n\x15interconnect_resource\x18\x9f\xa1\xcc\xbd\x01 \x01(\x0b\x32%.google.cloud.compute.v1.InterconnectB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa9\x01\n\x14InsertLicenseRequest\x12\x43\n\x10license_resource\x18\xcc\xd4\xea\xd0\x01 \x01(\x0b\x32 .google.cloud.compute.v1.LicenseB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xee\x01\n\x19InsertMachineImageRequest\x12M\n\x16machine_image_resource\x18\xea\xaa\xfb\x1c \x01(\x0b\x32%.google.cloud.compute.v1.MachineImageB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12 \n\x0fsource_instance\x18\xb9\x98\xfd\xbc\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_source_instance\"\xe8\x01\n\x1eInsertNetworkAttachmentRequest\x12W\n\x1bnetwork_attachment_resource\x18\x99\xf0\xcc\x64 \x01(\x0b\x32*.google.cloud.compute.v1.NetworkAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb7\x02\n\'InsertNetworkEdgeSecurityServiceRequest\x12l\n&network_edge_security_service_resource\x18\xa6\xa3\xdb\xe3\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.NetworkEdgeSecurityServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xef\x01\n!InsertNetworkEndpointGroupRequest\x12_\n\x1fnetwork_endpoint_group_resource\x18\xa7\xcd\xdb\xfa\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xc6\x01\n\"InsertNetworkFirewallPolicyRequest\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x01\n\x14InsertNetworkRequest\x12\x42\n\x10network_resource\x18\xff\xdd\x9c: \x01(\x0b\x32 .google.cloud.compute.v1.NetworkB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf1\x01\n\x16InsertNodeGroupRequest\x12\"\n\x12initial_node_count\x18\xed\xc8\xa7\" \x01(\x05\x42\x03\xe0\x41\x02\x12H\n\x13node_group_resource\x18\xab\xb3\xfa\xf0\x01 \x01(\x0b\x32\".google.cloud.compute.v1.NodeGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd9\x01\n\x19InsertNodeTemplateRequest\x12M\n\x16node_template_resource\x18\xb6\xda\xdd< \x01(\x0b\x32%.google.cloud.compute.v1.NodeTemplateB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe3\x01\n\x1cInsertPacketMirroringRequest\x12T\n\x19packet_mirroring_resource\x18\xa1\xfc\xa8\xeb\x01 \x01(\x0b\x32(.google.cloud.compute.v1.PacketMirroringB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n$InsertPublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x62\n!public_advertised_prefix_resource\x18\x8f\xd7\xb2o \x01(\x0b\x32/.google.cloud.compute.v1.PublicAdvertisedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf6\x01\n#InsertPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n\x1dInsertRegionAutoscalerRequest\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe6\x01\n!InsertRegionBackendServiceRequest\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n\x1dInsertRegionCommitmentRequest\x12H\n\x13\x63ommitment_resource\x18\xf8\xa3\xbbt \x01(\x0b\x32#.google.cloud.compute.v1.CommitmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf5\x01\n\x17InsertRegionDiskRequest\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0f\n\r_source_image\"\xdc\x01\n\x1eInsertRegionHealthCheckRequest\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf3\x01\n%InsertRegionHealthCheckServiceRequest\x12[\n\x1dhealth_check_service_resource\x18\xf2\x9b\xd0\xe3\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HealthCheckServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf8\x01\n\'InsertRegionInstanceGroupManagerRequest\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xeb\x01\n#InsertRegionInstanceTemplateRequest\x12U\n\x1ainstance_template_resource\x18\x89\xea\x8b\x05 \x01(\x0b\x32).google.cloud.compute.v1.InstanceTemplateB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe9\x01\n\"InsertRegionInstantSnapshotRequest\x12T\n\x19instant_snapshot_resource\x18\xcb\xaa\x88\xb7\x01 \x01(\x0b\x32(.google.cloud.compute.v1.InstantSnapshotB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf9\x01\n\'InsertRegionNetworkEndpointGroupRequest\x12_\n\x1fnetwork_endpoint_group_resource\x18\xa7\xcd\xdb\xfa\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xed\x01\n(InsertRegionNetworkFirewallPolicyRequest\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf8\x01\n\'InsertRegionNotificationEndpointRequest\x12^\n\x1enotification_endpoint_resource\x18\xa4\xfa\xb1\xa1\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NotificationEndpointB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x96\x02\n!InsertRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xe5\x01\n!InsertRegionSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18ssl_certificate_resource\x18\x89\xd4\x95V \x01(\x0b\x32\'.google.cloud.compute.v1.SslCertificateB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd7\x01\n\x1cInsertRegionSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe9\x01\n\"InsertRegionTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x1atarget_http_proxy_resource\x18\xa8\xaf\xe3\x0b \x01(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xed\x01\n#InsertRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe6\x01\n!InsertRegionTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x19target_tcp_proxy_resource\x18\xcb\xf0\xc9\x45 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xcd\x01\n\x19InsertRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd2\x01\n\x18InsertReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x14reservation_resource\x18\xa1\xee\xf4\x87\x01 \x01(\x0b\x32$.google.cloud.compute.v1.ReservationB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xdf\x01\n\x1bInsertResourcePolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18resource_policy_resource\x18\xca\x8c\xd1$ \x01(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa2\x01\n\x12InsertRouteRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12>\n\x0eroute_resource\x18\xc4\x8a\xbfk \x01(\x0b\x32\x1e.google.cloud.compute.v1.RouteB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc6\x01\n\x13InsertRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xef\x01\n\x1bInsertSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xe9\x01\n\x1eInsertServiceAttachmentRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12X\n\x1bservice_attachment_resource\x18\xa0\xb6\xc4\xe1\x01 \x01(\x0b\x32*.google.cloud.compute.v1.ServiceAttachmentB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xac\x01\n\x15InsertSnapshotRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x45\n\x11snapshot_resource\x18\xa9\xb8\xc1\xe5\x01 \x01(\x0b\x32!.google.cloud.compute.v1.SnapshotB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbe\x01\n\x1bInsertSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18ssl_certificate_resource\x18\x89\xd4\x95V \x01(\x0b\x32\'.google.cloud.compute.v1.SslCertificateB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb0\x01\n\x16InsertSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd2\x01\n\x18InsertStoragePoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x15storage_pool_resource\x18\x8d\xbc\xf9J \x01(\x0b\x32$.google.cloud.compute.v1.StoragePoolB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd2\x01\n\x17InsertSubnetworkRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12H\n\x13subnetwork_resource\x18\xbf\xda\x91\x14 \x01(\x0b\x32#.google.cloud.compute.v1.SubnetworkB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc3\x01\n\x1cInsertTargetGrpcProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12U\n\x1atarget_grpc_proxy_resource\x18\xd2\xea\xeb\x9c\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetGrpcProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc2\x01\n\x1cInsertTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x1atarget_http_proxy_resource\x18\xa8\xaf\xe3\x0b \x01(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc6\x01\n\x1dInsertTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xdc\x01\n\x1bInsertTargetInstanceRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x18target_instance_resource\x18\xca\xe2\xa0\xcd\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetInstanceB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd3\x01\n\x17InsertTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12I\n\x14target_pool_resource\x18\xa3\xdd\xa5\x30 \x01(\x0b\x32#.google.cloud.compute.v1.TargetPoolB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbf\x01\n\x1bInsertTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x19target_ssl_proxy_resource\x18\xc0\xfd\xdb\x43 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetSslProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbf\x01\n\x1bInsertTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x19target_tcp_proxy_resource\x18\xcb\xf0\xc9\x45 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe5\x01\n\x1dInsertTargetVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12U\n\x1btarget_vpn_gateway_resource\x18\x82\xb3\x1e \x01(\x0b\x32).google.cloud.compute.v1.TargetVpnGatewayB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa6\x01\n\x13InsertUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd3\x01\n\x17InsertVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12I\n\x14vpn_gateway_resource\x18\x94\xb7\x8eW \x01(\x0b\x32#.google.cloud.compute.v1.VpnGatewayB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd0\x01\n\x16InsertVpnTunnelRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12G\n\x13vpn_tunnel_resource\x18\xba\xa1\xb4) \x01(\x0b\x32\".google.cloud.compute.v1.VpnTunnelB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe7\x1d\n\x08Instance\x12\\\n\x19\x61\x64vanced_machine_features\x18\xb2\xe7\xaa\xc3\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.AdvancedMachineFeaturesH\x00\x88\x01\x01\x12\x1f\n\x0e\x63\x61n_ip_forward\x18\xfc\x86\x84\xdf\x01 \x01(\x08H\x01\x88\x01\x01\x12\x62\n\x1c\x63onfidential_instance_config\x18\xf5\x92\xfa\xe9\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.ConfidentialInstanceConfigH\x02\x88\x01\x01\x12\x1d\n\x0c\x63pu_platform\x18\xaa\xea\xd1\xc3\x01 \x01(\tH\x03\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x04\x88\x01\x01\x12$\n\x13\x64\x65letion_protection\x18\xea\xff\xb2\xda\x01 \x01(\x08H\x05\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x06\x88\x01\x01\x12\x37\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32%.google.cloud.compute.v1.AttachedDisk\x12\x46\n\x0e\x64isplay_device\x18\xf3\x88\xbc{ \x01(\x0b\x32&.google.cloud.compute.v1.DisplayDeviceH\x07\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x08\x88\x01\x01\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12\x18\n\x08hostname\x18\xb3\xb8\x85q \x01(\tH\t\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\n\x88\x01\x01\x12W\n\x17instance_encryption_key\x18\x8d\xc1\xef\x1e \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x0b\x88\x01\x01\x12*\n\x1akey_revocation_action_type\x18\xe2\xdc\xc0p \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\r\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0e\x88\x01\x01\x12\x41\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32-.google.cloud.compute.v1.Instance.LabelsEntry\x12%\n\x14last_start_timestamp\x18\xd0\xa3\xd1\xd3\x01 \x01(\tH\x0f\x88\x01\x01\x12$\n\x13last_stop_timestamp\x18\xe2\xdb\xec\xc4\x01 \x01(\tH\x10\x88\x01\x01\x12)\n\x18last_suspended_timestamp\x18\x89\xa9\xf1\xa9\x01 \x01(\tH\x11\x88\x01\x01\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x12\x88\x01\x01\x12;\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x13\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x14\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x15\x88\x01\x01\x12H\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\x0b\x32).google.cloud.compute.v1.NetworkInterface\x12^\n\x1anetwork_performance_config\x18\xe2\x97\xf8\xbd\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.NetworkPerformanceConfigH\x16\x88\x01\x01\x12?\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32\'.google.cloud.compute.v1.InstanceParamsH\x17\x88\x01\x01\x12*\n\x1aprivate_ipv6_google_access\x18\x8e\xcc\x82\x17 \x01(\tH\x18\x88\x01\x01\x12R\n\x14reservation_affinity\x18\xbb\xb8\xa2K \x01(\x0b\x32,.google.cloud.compute.v1.ReservationAffinityH\x19\x88\x01\x01\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12H\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\'.google.cloud.compute.v1.ResourceStatusH\x1a\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x1b\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x1c\x88\x01\x01\x12@\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingH\x1d\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x1e\x88\x01\x01\x12\x45\n\x10service_accounts\x18\xb0\xc4\xab\x84\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.ServiceAccount\x12Y\n\x18shielded_instance_config\x18\xb5\x8b\x91\x06 \x01(\x0b\x32/.google.cloud.compute.v1.ShieldedInstanceConfigH\x1f\x88\x01\x01\x12l\n\"shielded_instance_integrity_policy\x18\x97\xa2\x87N \x01(\x0b\x32\x38.google.cloud.compute.v1.ShieldedInstanceIntegrityPolicyH \x88\x01\x01\x12$\n\x14source_machine_image\x18\xbf\xdc\xb0\n \x01(\tH!\x88\x01\x01\x12\x63\n#source_machine_image_encryption_key\x18\xa3\xfb\xf9[ \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\"\x88\x01\x01\x12 \n\x10start_restricted\x18\xd8\xd0\xfd: \x01(\x08H#\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH$\x88\x01\x01\x12\x1f\n\x0estatus_message\x18\xba\xc9\xe9\x8d\x01 \x01(\tH%\x88\x01\x01\x12\x33\n\x04tags\x18\x99\xe8\xd8\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsH&\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\'\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x01\n\x17KeyRevocationActionType\x12(\n$UNDEFINED_KEY_REVOCATION_ACTION_TYPE\x10\x00\x12.\n&KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED\x10\xda\x91\xde\xde\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\"\xc0\x01\n\x17PrivateIpv6GoogleAccess\x12(\n$UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS\x10\x00\x12-\n%ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE\x10\xba\xca\x89\xcc\x01\x12+\n#ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE\x10\xd7\xfa\xb6\x89\x01\x12\x1f\n\x17INHERIT_FROM_SUBNETWORK\x10\xbf\xa8\xec\xfc\x01\"\xdc\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x11\n\tREPAIRING\x10\x95\x82\x95\xc5\x01\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x12\x0f\n\x07STAGING\x10\x9b\xc8\xc6\xcd\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x10\n\tSUSPENDED\x10\xbb\xbb\xb6\x18\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x1c\n\x1a_advanced_machine_featuresB\x11\n\x0f_can_ip_forwardB\x1f\n\x1d_confidential_instance_configB\x0f\n\r_cpu_platformB\x15\n\x13_creation_timestampB\x16\n\x14_deletion_protectionB\x0e\n\x0c_descriptionB\x11\n\x0f_display_deviceB\x0e\n\x0c_fingerprintB\x0b\n\t_hostnameB\x05\n\x03_idB\x1a\n\x18_instance_encryption_keyB\x1d\n\x1b_key_revocation_action_typeB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x17\n\x15_last_start_timestampB\x16\n\x14_last_stop_timestampB\x1b\n\x19_last_suspended_timestampB\x0f\n\r_machine_typeB\x0b\n\t_metadataB\x13\n\x11_min_cpu_platformB\x07\n\x05_nameB\x1d\n\x1b_network_performance_configB\t\n\x07_paramsB\x1d\n\x1b_private_ipv6_google_accessB\x17\n\x15_reservation_affinityB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\r\n\x0b_schedulingB\x0c\n\n_self_linkB\x1b\n\x19_shielded_instance_configB%\n#_shielded_instance_integrity_policyB\x17\n\x15_source_machine_imageB&\n$_source_machine_image_encryption_keyB\x13\n\x11_start_restrictedB\t\n\x07_statusB\x11\n\x0f_status_messageB\x07\n\x05_tagsB\x07\n\x05_zone\"\xb9\x03\n\x16InstanceAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.InstanceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.InstancesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa9\x01\n\x17InstanceConsumptionData\x12R\n\x10\x63onsumption_info\x18\xd2\xe5\xe4\x45 \x01(\x0b\x32\x30.google.cloud.compute.v1.InstanceConsumptionInfoH\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x01\x88\x01\x01\x42\x13\n\x11_consumption_infoB\x0b\n\t_instance\"\xd0\x01\n\x17InstanceConsumptionInfo\x12\x1b\n\nguest_cpus\x18\xd2\xcb\xc8\xbb\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x0clocal_ssd_gb\x18\xca\x88\xff\x9c\x01 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\tmemory_mb\x18\x93\x93\xa8\x37 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\rmin_node_cpus\x18\xbb\xa4\xa2\x97\x01 \x01(\x05H\x03\x88\x01\x01\x42\r\n\x0b_guest_cpusB\x0f\n\r_local_ssd_gbB\x0c\n\n_memory_mbB\x10\n\x0e_min_node_cpus\"\x95\x04\n\rInstanceGroup\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPort\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05H\t\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\n\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0b\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\x07\n\x05_sizeB\r\n\x0b_subnetworkB\x07\n\x05_zone\"\xc8\x03\n\x1bInstanceGroupAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Q\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32?.google.cloud.compute.v1.InstanceGroupAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a_\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.compute.v1.InstanceGroupsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x02\n\x11InstanceGroupList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x38\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32&.google.cloud.compute.v1.InstanceGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfd\x12\n\x14InstanceGroupManager\x12\x65\n\x14\x61ll_instances_config\x18\x81\xae\xd8\x35 \x01(\x0b\x32?.google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfigH\x00\x88\x01\x01\x12\x61\n\x15\x61uto_healing_policies\x18\x85\xe7\xe8\xd9\x01 \x03(\x0b\x32>.google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy\x12#\n\x12\x62\x61se_instance_name\x18\x87\x96\xc5\xb9\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\\\n\x0f\x63urrent_actions\x18\xb7\xc8\x9cN \x01(\x0b\x32;.google.cloud.compute.v1.InstanceGroupManagerActionsSummaryH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12Q\n\x13\x64istribution_policy\x18\xcd\xee\xf2\xfe\x01 \x01(\x0b\x32+.google.cloud.compute.v1.DistributionPolicyH\x05\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12s\n\x1binstance_flexibility_policy\x18\x82\x8e\xec\x0c \x01(\x0b\x32\x46.google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyH\x08\x88\x01\x01\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tH\t\x88\x01\x01\x12p\n\x19instance_lifecycle_policy\x18\x91\xb4\xcd\xd5\x01 \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicyH\n\x88\x01\x01\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x0b\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x0c\x88\x01\x01\x12/\n\x1elist_managed_instances_results\x18\xb4\xa4\x95\x8d\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0e\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPort\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0f\x88\x01\x01\x12`\n\x11resource_policies\x18\xe1\x9c\xcc\n \x01(\x0b\x32=.google.cloud.compute.v1.InstanceGroupManagerResourcePoliciesH\x10\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x11\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x13\x88\x01\x01\x12[\n\x0estandby_policy\x18\x84\x86\x8e\xee\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstanceGroupManagerStandbyPolicyH\x14\x88\x01\x01\x12H\n\x0fstateful_policy\x18\x85\xc3\xd5\x16 \x01(\x0b\x32\'.google.cloud.compute.v1.StatefulPolicyH\x15\x88\x01\x01\x12K\n\x06status\x18\xf2\x9f\xb7V \x01(\x0b\x32\x33.google.cloud.compute.v1.InstanceGroupManagerStatusH\x16\x88\x01\x01\x12\x18\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\t\x12\x1b\n\x0btarget_size\x18\xef\xf3\xfd\x1d \x01(\x05H\x17\x88\x01\x01\x12#\n\x13target_stopped_size\x18\xa1\xd6\x93\x01 \x01(\x05H\x18\x88\x01\x01\x12&\n\x15target_suspended_size\x18\xd3\x88\xf4\x92\x01 \x01(\x05H\x19\x88\x01\x01\x12X\n\rupdate_policy\x18\xe8\xca\xeaS \x01(\x0b\x32\x39.google.cloud.compute.v1.InstanceGroupManagerUpdatePolicyH\x1a\x88\x01\x01\x12I\n\x08versions\x18\x9b\xfd\xb9M \x03(\x0b\x32\x34.google.cloud.compute.v1.InstanceGroupManagerVersion\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x1b\x88\x01\x01\"n\n\x1bListManagedInstancesResults\x12,\n(UNDEFINED_LIST_MANAGED_INSTANCES_RESULTS\x10\x00\x12\x0f\n\x08PAGELESS\x10\xa8\xa9\xac\x0f\x12\x10\n\tPAGINATED\x10\xad\x85\x95\x13\x42\x17\n\x15_all_instances_configB\x15\n\x13_base_instance_nameB\x15\n\x13_creation_timestampB\x12\n\x10_current_actionsB\x0e\n\x0c_descriptionB\x16\n\x14_distribution_policyB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x1e\n\x1c_instance_flexibility_policyB\x11\n\x0f_instance_groupB\x1c\n\x1a_instance_lifecycle_policyB\x14\n\x12_instance_templateB\x07\n\x05_kindB!\n\x1f_list_managed_instances_resultsB\x07\n\x05_nameB\t\n\x07_regionB\x14\n\x12_resource_policiesB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x11\n\x0f_standby_policyB\x12\n\x10_stateful_policyB\t\n\x07_statusB\x0e\n\x0c_target_sizeB\x16\n\x14_target_stopped_sizeB\x18\n\x16_target_suspended_sizeB\x10\n\x0e_update_policyB\x07\n\x05_zone\"\xd3\x04\n\"InstanceGroupManagerActionsSummary\x12\x1b\n\nabandoning\x18\xcd\xf2\xe8\xd1\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x08\x63reating\x18\xb9\xdd\x85\x64 \x01(\x05H\x01\x88\x01\x01\x12)\n\x18\x63reating_without_retries\x18\xc9\xf6\xb1\xb0\x01 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x08\x64\x65leting\x18\xa8\xc7\xef\x86\x01 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x04none\x18\xb8\xde\xce\x01 \x01(\x05H\x04\x88\x01\x01\x12\x1b\n\nrecreating\x18\xec\xb3\xd6\xa1\x01 \x01(\x05H\x05\x88\x01\x01\x12\x1a\n\nrefreshing\x18\xa7\xa6\xc5\x66 \x01(\x05H\x06\x88\x01\x01\x12\x1b\n\nrestarting\x18\xf3\x96\xc4\xb1\x01 \x01(\x05H\x07\x88\x01\x01\x12\x18\n\x08resuming\x18\xaa\x9b\xf2_ \x01(\x05H\x08\x88\x01\x01\x12\x18\n\x08starting\x18\xc0\xc0\xf3s \x01(\x05H\t\x88\x01\x01\x12\x18\n\x08stopping\x18\xf4\xf0\x8a\x32 \x01(\x05H\n\x88\x01\x01\x12\x1a\n\nsuspending\x18\xa6\xfc\xf0\r \x01(\x05H\x0b\x88\x01\x01\x12\x1a\n\tverifying\x18\xc9\xa1\xac\xd7\x01 \x01(\x05H\x0c\x88\x01\x01\x42\r\n\x0b_abandoningB\x0b\n\t_creatingB\x1b\n\x19_creating_without_retriesB\x0b\n\t_deletingB\x07\n\x05_noneB\r\n\x0b_recreatingB\r\n\x0b_refreshingB\r\n\x0b_restartingB\x0b\n\t_resumingB\x0b\n\t_startingB\x0b\n\t_stoppingB\r\n\x0b_suspendingB\x0c\n\n_verifying\"\xdd\x03\n\"InstanceGroupManagerAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12X\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x46.google.cloud.compute.v1.InstanceGroupManagerAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x66\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12G\n\x05value\x18\x02 \x01(\x0b\x32\x38.google.cloud.compute.v1.InstanceGroupManagersScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x85\x01\n&InstanceGroupManagerAllInstancesConfig\x12L\n\nproperties\x18\xb3\x9a\xb6\x46 \x01(\x0b\x32\x30.google.cloud.compute.v1.InstancePropertiesPatchH\x00\x88\x01\x01\x42\r\n\x0b_properties\"\x90\x01\n%InstanceGroupManagerAutoHealingPolicy\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x11initial_delay_sec\x18\xda\xf0\xc0} \x01(\x05H\x01\x88\x01\x01\x42\x0f\n\r_health_checkB\x14\n\x12_initial_delay_sec\"\xc4\x02\n-InstanceGroupManagerInstanceFlexibilityPolicy\x12~\n\x13instance_selections\x18\xd1\x84\xf9\n \x03(\x0b\x32^.google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy.InstanceSelectionsEntry\x1a\x92\x01\n\x17InstanceSelectionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x66\n\x05value\x18\x02 \x01(\x0b\x32W.google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection:\x02\x38\x01\"y\n>InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection\x12\x18\n\rmachine_types\x18\x81\xdd\x81& \x03(\t\x12\x14\n\x04rank\x18\xac\x98\xd5\x01 \x01(\x05H\x00\x88\x01\x01\x42\x07\n\x05_rank\"\xf1\x02\n+InstanceGroupManagerInstanceLifecyclePolicy\x12)\n\x19\x64\x65\x66\x61ult_action_on_failure\x18\xd5\xc4\xa2\x1d \x01(\tH\x00\x88\x01\x01\x12\'\n\x16\x66orce_update_on_repair\x18\xcb\xf9\xf2\xa9\x01 \x01(\tH\x01\x88\x01\x01\"d\n\x16\x44\x65\x66\x61ultActionOnFailure\x12\'\n#UNDEFINED_DEFAULT_ACTION_ON_FAILURE\x10\x00\x12\x12\n\nDO_NOTHING\x10\xf9\xcf\x99\xd7\x01\x12\r\n\x06REPAIR\x10\x8d\xa7\xfc~\"O\n\x13\x46orceUpdateOnRepair\x12$\n UNDEFINED_FORCE_UPDATE_ON_REPAIR\x10\x00\x12\x07\n\x02NO\x10\xc1\x13\x12\t\n\x03YES\x10\xc7\xad\x05\x42\x1c\n\x1a_default_action_on_failureB\x19\n\x17_force_update_on_repair\"\xb9\x02\n\x18InstanceGroupManagerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManager\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8d\x06\n!InstanceGroupManagerResizeRequest\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12I\n\x16requested_run_duration\x18\xf9\x8b\xd9n \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x05\x88\x01\x01\x12\x1a\n\tresize_by\x18\xc2\xcf\xc0\xfe\x01 \x01(\x05H\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x08\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\t\x88\x01\x01\x12X\n\x06status\x18\xf2\x9f\xb7V \x01(\x0b\x32@.google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusH\n\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0b\x88\x01\x01\"\x8f\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x10\n\tCANCELLED\x10\xb1\xf2\x80\x14\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x11\n\tSUCCEEDED\x10\xc1\xa4\xdb\xf3\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x19\n\x17_requested_run_durationB\x0c\n\n_resize_byB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x08\n\x06_stateB\t\n\x07_statusB\x07\n\x05_zone\"\xe7\x01\n\'InstanceGroupManagerResizeRequestStatus\x12\x35\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1e.google.cloud.compute.v1.ErrorH\x00\x88\x01\x01\x12j\n\x0clast_attempt\x18\xa4\xac\xa8\xcf\x01 \x01(\x0b\x32K.google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttemptH\x01\x88\x01\x01\x42\x08\n\x06_errorB\x0f\n\r_last_attempt\"u\n2InstanceGroupManagerResizeRequestStatusLastAttempt\x12\x35\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1e.google.cloud.compute.v1.ErrorH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xdc\x02\n.InstanceGroupManagerResizeRequestsListResponse\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.InstanceGroupManagerResizeRequest\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"[\n$InstanceGroupManagerResourcePolicies\x12\x1f\n\x0fworkload_policy\x18\xfa\x85\xda\x36 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_workload_policy\"\xbc\x01\n!InstanceGroupManagerStandbyPolicy\x12!\n\x11initial_delay_sec\x18\xda\xf0\xc0} \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x01\x88\x01\x01\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\r\n\x06MANUAL\x10\xc6\xb7\xf7\x38\x12\x14\n\x0eSCALE_OUT_POOL\x10\x82\xe4&B\x14\n\x12_initial_delay_secB\x07\n\x05_mode\"\xd1\x03\n\x1aInstanceGroupManagerStatus\x12k\n\x14\x61ll_instances_config\x18\x81\xae\xd8\x35 \x01(\x0b\x32\x45.google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfigH\x00\x88\x01\x01\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tis_stable\x18\xf0\xef\xd8\x33 \x01(\x08H\x02\x88\x01\x01\x12U\n\x08stateful\x18\xcc\xe6\xc8t \x01(\x0b\x32;.google.cloud.compute.v1.InstanceGroupManagerStatusStatefulH\x03\x88\x01\x01\x12\x61\n\x0eversion_target\x18\xd8\xdd\xfe\x89\x01 \x01(\x0b\x32@.google.cloud.compute.v1.InstanceGroupManagerStatusVersionTargetH\x04\x88\x01\x01\x42\x17\n\x15_all_instances_configB\r\n\x0b_autoscalerB\x0c\n\n_is_stableB\x0b\n\t_statefulB\x11\n\x0f_version_target\"\x8e\x01\n,InstanceGroupManagerStatusAllInstancesConfig\x12 \n\x10\x63urrent_revision\x18\xe1\x87\xa5\x12 \x01(\tH\x00\x88\x01\x01\x12\x19\n\teffective\x18\xa7\xd3\xd8\x43 \x01(\x08H\x01\x88\x01\x01\x42\x13\n\x11_current_revisionB\x0c\n\n_effective\"\xf0\x01\n\"InstanceGroupManagerStatusStateful\x12#\n\x13has_stateful_config\x18\xf0\xe7\xd6\x34 \x01(\x08H\x00\x88\x01\x01\x12t\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x01(\x0b\x32M.google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigsH\x01\x88\x01\x01\x42\x16\n\x14_has_stateful_configB\x17\n\x15_per_instance_configs\"h\n4InstanceGroupManagerStatusStatefulPerInstanceConfigs\x12\x1e\n\rall_effective\x18\x89\x91\xa7\xf6\x01 \x01(\x08H\x00\x88\x01\x01\x42\x10\n\x0e_all_effective\"U\n\'InstanceGroupManagerStatusVersionTarget\x12\x1b\n\nis_reached\x18\xbd\xfe\xc8\xce\x01 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_is_reached\"\xdc\x06\n InstanceGroupManagerUpdatePolicy\x12-\n\x1cinstance_redistribution_type\x18\x98\xdf\xc4\x8b\x01 \x01(\tH\x00\x88\x01\x01\x12\x43\n\tmax_surge\x18\x93\xc9\xa3\x90\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x01\x88\x01\x01\x12I\n\x0fmax_unavailable\x18\xf5\xcb\x8b\xc1\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x02\x88\x01\x01\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x03\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x04\x88\x01\x01\x12#\n\x12replacement_method\x18\xae\xcf\x9f\xf1\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x06\x88\x01\x01\"H\n\x1aInstanceRedistributionType\x12*\n&UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE\x10\x00\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\"[\n\x11ReplacementMethod\x12 \n\x1cUNDEFINED_REPLACEMENT_METHOD\x10\x00\x12\x10\n\x08RECREATE\x10\xef\xd9\x9b\xf9\x01\x12\x12\n\nSUBSTITUTE\x10\x9a\xa1\xfa\x85\x01\"1\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x15\n\rOPPORTUNISTIC\x10\xe9\xb7\xe8\xcc\x01\x42\x1f\n\x1d_instance_redistribution_typeB\x0c\n\n_max_surgeB\x12\n\x10_max_unavailableB\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_actionB\x15\n\x13_replacement_methodB\x07\n\x05_type\"\xcc\x01\n\x1bInstanceGroupManagerVersion\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x44\n\x0btarget_size\x18\xef\xf3\xfd\x1d \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x02\x88\x01\x01\x42\x14\n\x12_instance_templateB\x07\n\x05_nameB\x0e\n\x0c_target_size\"D\n,InstanceGroupManagersAbandonInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"\xf5\x02\n(InstanceGroupManagersApplyUpdatesRequest\x12\x1e\n\rall_instances\x18\xe0\xba\xbe\xc0\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x01\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x02\x88\x01\x01\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\x42\x10\n\x0e_all_instancesB\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_action\"o\n+InstanceGroupManagersCreateInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"\x9e\x01\n+InstanceGroupManagersDeleteInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x32\n\"skip_instances_on_validation_error\x18\xa1\xf6\xaf\x13 \x01(\x08H\x00\x88\x01\x01\x42%\n#_skip_instances_on_validation_error\"D\n0InstanceGroupManagersDeletePerInstanceConfigsReq\x12\x10\n\x05names\x18\xc8\xae\xef\x31 \x03(\t\"\xa4\x01\n\'InstanceGroupManagersListErrorsResponse\x12\x44\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x32.google.cloud.compute.v1.InstanceManagedByIgmError\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xb1\x01\n1InstanceGroupManagersListManagedInstancesResponse\x12G\n\x11managed_instances\x18\xde\x9b\xa9\xa0\x01 \x03(\x0b\x32(.google.cloud.compute.v1.ManagedInstance\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xeb\x01\n/InstanceGroupManagersListPerInstanceConfigsResp\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x01\x88\x01\x01\x42\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\x7f\n/InstanceGroupManagersPatchPerInstanceConfigsReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"E\n-InstanceGroupManagersRecreateInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"C\n+InstanceGroupManagersResumeInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"\xbb\x01\n\x1fInstanceGroupManagersScopedList\x12Q\n\x17instance_group_managers\x18\x90\xfa\x89\x66 \x03(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManager\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"k\n/InstanceGroupManagersSetInstanceTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_instance_template\"s\n*InstanceGroupManagersSetTargetPoolsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\tB\x0e\n\x0c_fingerprint\"B\n*InstanceGroupManagersStartInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"l\n)InstanceGroupManagersStopInstancesRequest\x12\x1a\n\nforce_stop\x18\xd6\xa1\xa1@ \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\r\n\x0b_force_stop\"u\n,InstanceGroupManagersSuspendInstancesRequest\x12\x1d\n\rforce_suspend\x18\xe8\xed\x96\r \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\x10\n\x0e_force_suspend\"\x80\x01\n0InstanceGroupManagersUpdatePerInstanceConfigsReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"e\n!InstanceGroupsAddInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"\xbe\x02\n\x1bInstanceGroupsListInstances\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.InstanceWithNamedPorts\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa1\x01\n\"InstanceGroupsListInstancesRequest\x12\x1e\n\x0einstance_state\x18\xe7\xf0\xfc+ \x01(\tH\x00\x88\x01\x01\"H\n\rInstanceState\x12\x1c\n\x18UNDEFINED_INSTANCE_STATE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x42\x11\n\x0f_instance_state\"h\n$InstanceGroupsRemoveInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"\xa6\x01\n\x18InstanceGroupsScopedList\x12\x43\n\x0finstance_groups\x18\xbe\xc1\xdf\xae\x01 \x03(\x0b\x32&.google.cloud.compute.v1.InstanceGroup\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8e\x01\n\"InstanceGroupsSetNamedPortsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPortB\x0e\n\x0c_fingerprint\"\xa1\x02\n\x0cInstanceList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.Instance\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x02\n\x15InstanceListReferrers\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.Reference\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbc\x02\n\x19InstanceManagedByIgmError\x12]\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x46.google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceErrorH\x00\x88\x01\x01\x12q\n\x17instance_action_details\x18\xa3\xfc\xab\x8b\x01 \x01(\x0b\x32G.google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetailsH\x01\x88\x01\x01\x12\x19\n\ttimestamp\x18\x96\xd2\xa4\x1a \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_errorB\x1a\n\x18_instance_action_detailsB\x0c\n\n_timestamp\"\xf0\x03\n.InstanceManagedByIgmErrorInstanceActionDetails\x12\x16\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x01\x88\x01\x01\x12I\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\x0b\x32/.google.cloud.compute.v1.ManagedInstanceVersionH\x02\x88\x01\x01\"\x9c\x02\n\x06\x41\x63tion\x12\x14\n\x10UNDEFINED_ACTION\x10\x00\x12\x12\n\nABANDONING\x10\xcd\xca\x90\xb9\x01\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12 \n\x18\x43REATING_WITHOUT_RETRIES\x10\x89\xc6\xbe\xcc\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x12\n\nRECREATING\x10\xec\x8b\xfe\x88\x01\x12\x11\n\nREFRESHING\x10\xa7\xfe\xecM\x12\x12\n\nRESTARTING\x10\xf3\xee\xeb\x98\x01\x12\x10\n\x08RESUMING\x10\xaa\xfb\x89\xd5\x01\x12\x10\n\x08STARTING\x10\xc0\xa0\x8b\xe9\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x10\n\tVERIFYING\x10\xa9\xc1\x8c\x08\x42\t\n\x07_actionB\x0b\n\t_instanceB\n\n\x08_version\"t\n-InstanceManagedByIgmErrorManagedInstanceError\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"\x82\x01\n\x13InstanceMoveRequest\x12 \n\x10\x64\x65stination_zone\x18\xbd\xe2\xef> \x01(\tH\x00\x88\x01\x01\x12 \n\x0ftarget_instance\x18\x83\x8f\x96\x8a\x01 \x01(\tH\x01\x88\x01\x01\x42\x13\n\x11_destination_zoneB\x12\n\x10_target_instance\"\xb1\x01\n\x0eInstanceParams\x12\x63\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32@.google.cloud.compute.v1.InstanceParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd8\x10\n\x12InstanceProperties\x12\\\n\x19\x61\x64vanced_machine_features\x18\xb2\xe7\xaa\xc3\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.AdvancedMachineFeaturesH\x00\x88\x01\x01\x12\x1f\n\x0e\x63\x61n_ip_forward\x18\xfc\x86\x84\xdf\x01 \x01(\x08H\x01\x88\x01\x01\x12\x62\n\x1c\x63onfidential_instance_config\x18\xf5\x92\xfa\xe9\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.ConfidentialInstanceConfigH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x37\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32%.google.cloud.compute.v1.AttachedDisk\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12*\n\x1akey_revocation_action_type\x18\xe2\xdc\xc0p \x01(\tH\x04\x88\x01\x01\x12K\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.InstanceProperties.LabelsEntry\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x05\x88\x01\x01\x12;\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x06\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x07\x88\x01\x01\x12H\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\x0b\x32).google.cloud.compute.v1.NetworkInterface\x12^\n\x1anetwork_performance_config\x18\xe2\x97\xf8\xbd\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.NetworkPerformanceConfigH\x08\x88\x01\x01\x12*\n\x1aprivate_ipv6_google_access\x18\x8e\xcc\x82\x17 \x01(\tH\t\x88\x01\x01\x12R\n\x14reservation_affinity\x18\xbb\xb8\xa2K \x01(\x0b\x32,.google.cloud.compute.v1.ReservationAffinityH\n\x88\x01\x01\x12g\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x44.google.cloud.compute.v1.InstanceProperties.ResourceManagerTagsEntry\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12@\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingH\x0b\x88\x01\x01\x12\x45\n\x10service_accounts\x18\xb0\xc4\xab\x84\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.ServiceAccount\x12Y\n\x18shielded_instance_config\x18\xb5\x8b\x91\x06 \x01(\x0b\x32/.google.cloud.compute.v1.ShieldedInstanceConfigH\x0c\x88\x01\x01\x12\x33\n\x04tags\x18\x99\xe8\xd8\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsH\r\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x01\n\x17KeyRevocationActionType\x12(\n$UNDEFINED_KEY_REVOCATION_ACTION_TYPE\x10\x00\x12.\n&KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED\x10\xda\x91\xde\xde\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\"\xc0\x01\n\x17PrivateIpv6GoogleAccess\x12(\n$UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS\x10\x00\x12-\n%ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE\x10\xba\xca\x89\xcc\x01\x12+\n#ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE\x10\xd7\xfa\xb6\x89\x01\x12\x1f\n\x17INHERIT_FROM_SUBNETWORK\x10\xbf\xa8\xec\xfc\x01\x42\x1c\n\x1a_advanced_machine_featuresB\x11\n\x0f_can_ip_forwardB\x1f\n\x1d_confidential_instance_configB\x0e\n\x0c_descriptionB\x1d\n\x1b_key_revocation_action_typeB\x0f\n\r_machine_typeB\x0b\n\t_metadataB\x13\n\x11_min_cpu_platformB\x1d\n\x1b_network_performance_configB\x1d\n\x1b_private_ipv6_google_accessB\x17\n\x15_reservation_affinityB\r\n\x0b_schedulingB\x1b\n\x19_shielded_instance_configB\x07\n\x05_tags\"\xa0\x02\n\x17InstancePropertiesPatch\x12P\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32<.google.cloud.compute.v1.InstancePropertiesPatch.LabelsEntry\x12S\n\x08metadata\x18\xaf\xf6\xb5) \x03(\x0b\x32>.google.cloud.compute.v1.InstancePropertiesPatch.MetadataEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\":\n\x11InstanceReference\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_instance\"\xd7\x01\n\x10InstanceSettings\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12K\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32\x31.google.cloud.compute.v1.InstanceSettingsMetadataH\x02\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x03\x88\x01\x01\x42\x0e\n\x0c_fingerprintB\x07\n\x05_kindB\x0b\n\t_metadataB\x07\n\x05_zone\"\xb7\x01\n\x18InstanceSettingsMetadata\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.InstanceSettingsMetadata.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x1a,\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_kind\"\x9f\x04\n\x10InstanceTemplate\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12G\n\nproperties\x18\xb3\x9a\xb6\x46 \x01(\x0b\x32+.google.cloud.compute.v1.InstancePropertiesH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12 \n\x0fsource_instance\x18\xb9\x98\xfd\xbc\x01 \x01(\tH\x08\x88\x01\x01\x12U\n\x16source_instance_params\x18\xcc\xd0\xc4@ \x01(\x0b\x32-.google.cloud.compute.v1.SourceInstanceParamsH\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_propertiesB\t\n\x07_regionB\x0c\n\n_self_linkB\x12\n\x10_source_instanceB\x19\n\x17_source_instance_params\"\xb8\x03\n\x1eInstanceTemplateAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.InstanceTemplateAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x62\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.InstanceTemplatesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb1\x02\n\x14InstanceTemplateList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.InstanceTemplate\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x01\n\x1bInstanceTemplatesScopedList\x12I\n\x12instance_templates\x18\x8f\xb8\xa5\xdb\x01 \x03(\x0b\x32).google.cloud.compute.v1.InstanceTemplate\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xfe\x02\n\x16InstanceWithNamedPorts\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x00\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPort\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x01\x88\x01\x01\"\xdc\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x11\n\tREPAIRING\x10\x95\x82\x95\xc5\x01\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x12\x0f\n\x07STAGING\x10\x9b\xc8\xc6\xcd\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x10\n\tSUSPENDED\x10\xbb\xbb\xb6\x18\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x0b\n\t_instanceB\t\n\x07_status\"C\n#InstancesAddResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"\x8a\x02\n$InstancesBulkInsertOperationMetadata\x12t\n\x13per_location_status\x18\x9a\xe9\x84P \x03(\x0b\x32T.google.cloud.compute.v1.InstancesBulkInsertOperationMetadata.PerLocationStatusEntry\x1al\n\x16PerLocationStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.BulkInsertOperationStatus:\x02\x38\x01\"\xd8\x01\n&InstancesGetEffectiveFirewallsResponse\x12t\n\x10\x66irewall_policys\x18\xc2\xca\xfc\xc3\x01 \x03(\x0b\x32V.google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x38\n\tfirewalls\x18\xf3\xc6\xe8\x81\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\"\xac\x04\n=InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12O\n\x16packet_mirroring_rules\x18\xc4\xff\xc0\xfd\x01 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x02\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x1b\n\nshort_name\x18\xee\xb8\xd0\xea\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x04\x88\x01\x01\"\x99\x01\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\tHIERARCHY\x10\x95\xc4\xaa!\x12\x0f\n\x07NETWORK\x10\x8e\xcc\xb3\xc5\x01\x12\x17\n\x10NETWORK_REGIONAL\x10\xb0\xe2\xfdZ\x12\x14\n\rSYSTEM_GLOBAL\x10\xb3\x97\xd4\x1c\x12\x16\n\x0fSYSTEM_REGIONAL\x10\xaf\x8c\x92M\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0f\n\r_display_nameB\x07\n\x05_nameB\x0b\n\t_priorityB\r\n\x0b_short_nameB\x07\n\x05_type\"F\n&InstancesRemoveResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"\xc8\x02\n\"InstancesReportHostAsFaultyRequest\x12#\n\x13\x64isruption_schedule\x18\x83\xc5\xdb- \x01(\tH\x00\x88\x01\x01\x12`\n\rfault_reasons\x18\x92\xab\x91P \x03(\x0b\x32\x46.google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason\"\x82\x01\n\x12\x44isruptionSchedule\x12!\n\x1dUNDEFINED_DISRUPTION_SCHEDULE\x10\x00\x12\'\n\x1f\x44ISRUPTION_SCHEDULE_UNSPECIFIED\x10\xdb\xee\xc8\x9e\x01\x12\x0e\n\x06\x46UTURE\x10\xc3\x83\xa2\xe2\x01\x12\x10\n\tIMMEDIATE\x10\x91\x8f\xf3HB\x16\n\x14_disruption_schedule\"\x9b\x02\n-InstancesReportHostAsFaultyRequestFaultReason\x12\x19\n\x08\x62\x65havior\x18\xd2\xe4\xba\xd0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\"\x93\x01\n\x08\x42\x65havior\x12\x16\n\x12UNDEFINED_BEHAVIOR\x10\x00\x12\x1b\n\x14\x42\x45HAVIOR_UNSPECIFIED\x10\xaa\xe9\xf0(\x12\x12\n\x0bPERFORMANCE\x10\x90\xc8\xda@\x12\x1d\n\x16SILENT_DATA_CORRUPTION\x10\xa6\xf5\x8c\x35\x12\x1f\n\x17UNRECOVERABLE_GPU_ERROR\x10\x9b\x92\xb7\xad\x01\x42\x0b\n\t_behaviorB\x0e\n\x0c_description\"\x95\x01\n\x13InstancesScopedList\x12\x37\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32!.google.cloud.compute.v1.Instance\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd7\x01\n\x19InstancesSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12R\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32>.google.cloud.compute.v1.InstancesSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"q\n#InstancesSetMachineResourcesRequest\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\"O\n\x1eInstancesSetMachineTypeRequest\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_machine_type\"Z\n!InstancesSetMinCpuPlatformRequest\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_min_cpu_platform\"h\n\x17InstancesSetNameRequest\x12\x1d\n\x0c\x63urrent_name\x18\x91\xf3\xab\xbc\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_current_nameB\x07\n\x05_name\"w\n!InstancesSetSecurityPolicyRequest\x12\x1d\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\t\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_security_policy\"W\n!InstancesSetServiceAccountRequest\x12\x15\n\x05\x65mail\x18\x9c\x97\x89. \x01(\tH\x00\x88\x01\x01\x12\x11\n\x06scopes\x18\x9f\x99\x92O \x03(\tB\x08\n\x06_email\"w\n&InstancesStartWithEncryptionKeyRequest\x12M\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32;.google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk\"\xc1\t\n\x0fInstantSnapshot\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x06\x88\x01\x01\x12H\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x34.google.cloud.compute.v1.InstantSnapshot.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12W\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x36.google.cloud.compute.v1.InstantSnapshotResourceStatusH\t\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\n\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\r\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x0f\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x10\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x11\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"u\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x13\n\x0bUNAVAILABLE\x10\xb0\xd8\xa5\xc5\x01\x42\x0f\n\r_architectureB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0f\n\r_disk_size_gbB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x0e\n\x0c_source_diskB\x11\n\x0f_source_disk_idB\t\n\x07_statusB\x07\n\x05_zone\"\xce\x03\n\x1dInstantSnapshotAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.InstantSnapshotAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.InstantSnapshotsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x02\n\x13InstantSnapshotList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.InstantSnapshot\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"[\n\x1dInstantSnapshotResourceStatus\x12#\n\x12storage_size_bytes\x18\xf1\x8d\xe6\xb8\x01 \x01(\x03H\x00\x88\x01\x01\x42\x15\n\x13_storage_size_bytes\"\xac\x01\n\x1aInstantSnapshotsScopedList\x12G\n\x11instant_snapshots\x18\xd1\xbc\x97\x9d\x01 \x03(\x0b\x32(.google.cloud.compute.v1.InstantSnapshot\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"h\n\x0fInt64RangeMatch\x12\x1a\n\trange_end\x18\xd9\x95\xe0\x99\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1b\n\x0brange_start\x18\xe0\xfd\xa2\x31 \x01(\x03H\x01\x88\x01\x01\x42\x0c\n\n_range_endB\x0e\n\x0c_range_start\"\xc5\x12\n\x0cInterconnect\x12\x1c\n\x0b\x61\x61i_enabled\x18\xcb\xa2\xb1\xb9\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x01\x88\x01\x01\x12r\n\x1e\x61pplication_aware_interconnect\x18\x9e\xf8\xcd\xcc\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectH\x02\x88\x01\x01\x12\x1e\n\x12\x61vailable_features\x18\xf3\xb9\xd6\xec\x01 \x03(\t\x12J\n\rcircuit_infos\x18\xaf\x83\xcdN \x03(\x0b\x32\x30.google.cloud.compute.v1.InterconnectCircuitInfo\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12\x1d\n\rcustomer_name\x18\xcc\xdc\xdf\x01 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12T\n\x10\x65xpected_outages\x18\x9b\xea\x8e~ \x03(\x0b\x32\x37.google.cloud.compute.v1.InterconnectOutageNotification\x12\"\n\x11google_ip_address\x18\xa2\x85\xa5\xd3\x01 \x01(\tH\x06\x88\x01\x01\x12$\n\x13google_reference_id\x18\xd5\xb5\x8a\xff\x01 \x01(\tH\x07\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12$\n\x18interconnect_attachments\x18\xff\xd2\xeb\xca\x01 \x03(\t\x12\x1e\n\x13interconnect_groups\x18\xa5\xad\x84q \x03(\t\x12\"\n\x11interconnect_type\x18\xcb\x98\xd3\xf5\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0b\x88\x01\x01\x12\x45\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.Interconnect.LabelsEntry\x12\x1a\n\tlink_type\x18\xdf\x88\xbe\xf9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x19\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\tH\r\x88\x01\x01\x12\x44\n\x06macsec\x18\xa2\xc1\x97\xfc\x01 \x01(\x0b\x32+.google.cloud.compute.v1.InterconnectMacsecH\x0e\x88\x01\x01\x12\x1e\n\x0emacsec_enabled\x18\xa4\xa1\xcd\\ \x01(\x08H\x0f\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x10\x88\x01\x01\x12!\n\x11noc_contact_email\x18\x80\xf8\xda\x06 \x01(\tH\x11\x88\x01\x01\x12\"\n\x12operational_status\x18\xff\xb1\xf0_ \x01(\tH\x12\x88\x01\x01\x12\x1f\n\x0fpeer_ip_address\x18\xd9\x97\x87\x63 \x01(\tH\x13\x88\x01\x01\x12\'\n\x16provisioned_link_count\x18\xf5\xd2\xf6\xc3\x01 \x01(\x05H\x14\x88\x01\x01\x12 \n\x0fremote_location\x18\x8e\x8f\xd7\x9a\x01 \x01(\tH\x15\x88\x01\x01\x12\x1e\n\x12requested_features\x18\xee\xf3\xf7\xdb\x01 \x03(\t\x12$\n\x14requested_link_count\x18\xfb\xdb\xbd\x15 \x01(\x05H\x16\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x17\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x18\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x19\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x11\x41vailableFeatures\x12 \n\x1cUNDEFINED_AVAILABLE_FEATURES\x10\x00\"j\n\x10InterconnectType\x12\x1f\n\x1bUNDEFINED_INTERCONNECT_TYPE\x10\x00\x12\x10\n\tDEDICATED\x10\xcf\x9b\x9c{\x12\x12\n\nIT_PRIVATE\x10\xcf\x8c\x88\xa0\x01\x12\x0f\n\x07PARTNER\x10\xa8\xd1\xa1\xdc\x01\"\x8d\x01\n\x08LinkType\x12\x17\n\x13UNDEFINED_LINK_TYPE\x10\x00\x12\"\n\x1aLINK_TYPE_ETHERNET_100G_LR\x10\xe7\xf2\x81\xa1\x01\x12 \n\x19LINK_TYPE_ETHERNET_10G_LR\x10\xa5\xb9\xf1p\x12\"\n\x1bLINK_TYPE_ETHERNET_400G_LR4\x10\xca\xf4\xc8<\"`\n\x11OperationalStatus\x12 \n\x1cUNDEFINED_OPERATIONAL_STATUS\x10\x00\x12\x10\n\tOS_ACTIVE\x10\xc1\xfb\xc8\x1a\x12\x17\n\x10OS_UNPROVISIONED\x10\xc0\xc1\xaar\"5\n\x11RequestedFeatures\x12 \n\x1cUNDEFINED_REQUESTED_FEATURES\x10\x00\"C\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x15\n\rUNPROVISIONED\x10\xdb\xc7\xd7\xf6\x01\x42\x0e\n\x0c_aai_enabledB\x10\n\x0e_admin_enabledB!\n\x1f_application_aware_interconnectB\x15\n\x13_creation_timestampB\x10\n\x0e_customer_nameB\x0e\n\x0c_descriptionB\x14\n\x12_google_ip_addressB\x16\n\x14_google_reference_idB\x05\n\x03_idB\x14\n\x12_interconnect_typeB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x0c\n\n_link_typeB\x0b\n\t_locationB\t\n\x07_macsecB\x11\n\x0f_macsec_enabledB\x07\n\x05_nameB\x14\n\x12_noc_contact_emailB\x15\n\x13_operational_statusB\x12\n\x10_peer_ip_addressB\x19\n\x17_provisioned_link_countB\x12\n\x10_remote_locationB\x17\n\x15_requested_link_countB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x08\n\x06_state\"\xa7\x04\n(InterconnectApplicationAwareInterconnect\x12\x87\x01\n\x1b\x62\x61ndwidth_percentage_policy\x18\xe9\xdc\x96Y \x01(\x0b\x32Z.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicyH\x00\x88\x01\x01\x12#\n\x13profile_description\x18\xe6\xec\xa8} \x01(\tH\x01\x88\x01\x01\x12z\n\x19shape_average_percentages\x18\xd9\xb8\xf4{ \x03(\x0b\x32T.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage\x12}\n\x16strict_priority_policy\x18\xb7\x95\x97\x45 \x01(\x0b\x32U.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicyH\x02\x88\x01\x01\x42\x1e\n\x1c_bandwidth_percentage_policyB\x16\n\x14_profile_descriptionB\x19\n\x17_strict_priority_policy\"\x88\x02\n;InterconnectApplicationAwareInterconnectBandwidthPercentage\x12\x1a\n\npercentage\x18\x9a\xe5\xb7H \x01(\rH\x00\x88\x01\x01\x12\x1d\n\rtraffic_class\x18\xb6\xf9\xbf^ \x01(\tH\x01\x88\x01\x01\"m\n\x0cTrafficClass\x12\x1b\n\x17UNDEFINED_TRAFFIC_CLASS\x10\x00\x12\t\n\x03TC1\x10\xa2\x87\x05\x12\t\n\x03TC2\x10\xa3\x87\x05\x12\t\n\x03TC3\x10\xa4\x87\x05\x12\t\n\x03TC4\x10\xa5\x87\x05\x12\t\n\x03TC5\x10\xa6\x87\x05\x12\t\n\x03TC6\x10\xa7\x87\x05\x42\r\n\x0b_percentageB\x10\n\x0e_traffic_class\"\xbb\x01\nAInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy\x12v\n\x15\x62\x61ndwidth_percentages\x18\x8b\xfd\xa3o \x03(\x0b\x32T.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage\">\n.google.cloud.compute.v1.InterconnectAttachmentPartnerMetadataH\x19\x88\x01\x01\x12\x65\n\x19private_interconnect_info\x18\x83\xec\x91q \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentPrivateInfoH\x1a\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x1b\x88\x01\x01\x12\x1f\n\x0eremote_service\x18\xbc\xff\xf2\xba\x01 \x01(\tH\x1c\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x1e\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x1f\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH \x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH!\x88\x01\x01\x12\x1e\n\rsubnet_length\x18\x88\xc4\xb7\x85\x01 \x01(\x05H\"\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH#\x88\x01\x01\x12\x1d\n\rvlan_tag8021q\x18\x9c\xe8\x97\x39 \x01(\x05H$\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfe\x01\n\tBandwidth\x12\x17\n\x13UNDEFINED_BANDWIDTH\x10\x00\x12\x0f\n\x08\x42PS_100G\x10\xb0\x95\xd0\x17\x12\x0f\n\x08\x42PS_100M\x10\xb6\x95\xd0\x17\x12\x0f\n\x07\x42PS_10G\x10\x8e\x89\xf2\x84\x01\x12\x0e\n\x06\x42PS_1G\x10\xf0\xad\xb9\xa9\x01\x12\x0f\n\x08\x42PS_200M\x10\x95\xfe\xd1\x17\x12\x0f\n\x07\x42PS_20G\x10\xcf\x90\xf2\x84\x01\x12\x0e\n\x06\x42PS_2G\x10\x8f\xae\xb9\xa9\x01\x12\x0f\n\x08\x42PS_300M\x10\xf4\xe6\xd3\x17\x12\x0f\n\x08\x42PS_400M\x10\xd3\xcf\xd5\x17\x12\x0f\n\x08\x42PS_500M\x10\xb2\xb8\xd7\x17\x12\x0f\n\x07\x42PS_50G\x10\x92\xa7\xf2\x84\x01\x12\x0f\n\x07\x42PS_50M\x10\x98\xa7\xf2\x84\x01\x12\x0e\n\x06\x42PS_5G\x10\xec\xae\xb9\xa9\x01\"\x9f\x01\n\x16\x45\x64geAvailabilityDomain\x12&\n\"UNDEFINED_EDGE_AVAILABILITY_DOMAIN\x10\x00\x12\x1d\n\x15\x41VAILABILITY_DOMAIN_1\x10\xda\xfb\xd6\xa6\x01\x12\x1d\n\x15\x41VAILABILITY_DOMAIN_2\x10\xdb\xfb\xd6\xa6\x01\x12\x1f\n\x17\x41VAILABILITY_DOMAIN_ANY\x10\xb5\xea\xf7\xb2\x01\"A\n\nEncryption\x12\x18\n\x14UNDEFINED_ENCRYPTION\x10\x00\x12\x0c\n\x05IPSEC\x10\xaa\xa3\xa9!\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\"`\n\x11OperationalStatus\x12 \n\x1cUNDEFINED_OPERATIONAL_STATUS\x10\x00\x12\x10\n\tOS_ACTIVE\x10\xc1\xfb\xc8\x1a\x12\x17\n\x10OS_UNPROVISIONED\x10\xc0\xc1\xaar\"I\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\"\xc2\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x07\x44\x45\x46UNCT\x10\xaf\xbc\xa1\x37\x12 \n\x18PARTNER_REQUEST_RECEIVED\x10\xe8\xf0\xf2\xf4\x01\x12\x17\n\x10PENDING_CUSTOMER\x10\xa6\x83\xefO\x12\x17\n\x0fPENDING_PARTNER\x10\xe0\xfb\xfa\xb8\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x15\n\rUNPROVISIONED\x10\xdb\xc7\xd7\xf6\x01\"W\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\tDEDICATED\x10\xcf\x9b\x9c{\x12\x0f\n\x07PARTNER\x10\xa8\xd1\xa1\xdc\x01\x12\x18\n\x10PARTNER_PROVIDER\x10\xa8\xf7\xb7\xe6\x01\x42\x10\n\x0e_admin_enabledB\x13\n\x11_attachment_groupB\x0c\n\n_bandwidthB\x1a\n\x18_cloud_router_ip_addressB\x1c\n\x1a_cloud_router_ipv6_addressB!\n\x1f_cloud_router_ipv6_interface_idB\x1c\n\x1a_configuration_constraintsB\x15\n\x13_creation_timestampB\x1d\n\x1b_customer_router_ip_addressB\x1f\n\x1d_customer_router_ipv6_addressB$\n\"_customer_router_ipv6_interface_idB\x14\n\x12_dataplane_versionB\x0e\n\x0c_descriptionB\x1b\n\x19_edge_availability_domainB\r\n\x0b_encryptionB\x16\n\x14_google_reference_idB\x05\n\x03_idB\x0f\n\r_interconnectB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x06\n\x04_mtuB\x07\n\x05_nameB\x15\n\x13_operational_statusB\x0e\n\x0c_pairing_keyB\x0e\n\x0c_partner_asnB\x13\n\x11_partner_metadataB\x1c\n\x1a_private_interconnect_infoB\t\n\x07_regionB\x11\n\x0f_remote_serviceB\t\n\x07_routerB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\r\n\x0b_stack_typeB\x08\n\x06_stateB\x10\n\x0e_subnet_lengthB\x07\n\x05_typeB\x10\n\x0e_vlan_tag8021q\"\xe3\x03\n$InterconnectAttachmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Z\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32H.google.cloud.compute.v1.InterconnectAttachmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1ah\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12I\n\x05value\x18\x02 \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n.InterconnectAttachmentConfigurationConstraints\x12\x18\n\x07\x62gp_md5\x18\x8a\xe8\xf3\xb1\x01 \x01(\tH\x00\x88\x01\x01\x12w\n\x13\x62gp_peer_asn_ranges\x18\x82\xbb\xf9\xe2\x01 \x03(\x0b\x32V.google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange\"b\n\x06\x42gpMd5\x12\x15\n\x11UNDEFINED_BGP_MD5\x10\x00\x12\x14\n\x0cMD5_OPTIONAL\x10\x81\xa2\xe0\xfd\x01\x12\x13\n\x0cMD5_REQUIRED\x10\xc0\xe2\xfbg\x12\x16\n\x0fMD5_UNSUPPORTED\x10\xd4\xe1\xbb)B\n\n\x08_bgp_md5\"w\n=InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange\x12\x12\n\x03max\x18\xe4\xca\x06 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x03min\x18\xd2\xcc\x06 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_maxB\x06\n\x04_min\"\x81\x07\n\x1bInterconnectAttachmentGroup\x12^\n\x0b\x61ttachments\x18\xb0\x97\xcf\x9f\x01 \x03(\x0b\x32\x45.google.cloud.compute.v1.InterconnectAttachmentGroup.AttachmentsEntry\x12[\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12S\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentGroupIntentH\x05\x88\x01\x01\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12g\n\x11logical_structure\x18\xbd\x99\xf4\x43 \x01(\x0b\x32\x44.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureH\x08\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x1ar\n\x10\x41ttachmentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupAttachment:\x02\x38\x01\x42\r\n\x0b_configuredB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x07\n\x05_etagB\x05\n\x03_idB\t\n\x07_intentB\x15\n\x13_interconnect_groupB\x07\n\x05_kindB\x14\n\x12_logical_structureB\x07\n\x05_nameB\x0c\n\n_self_link\"R\n%InterconnectAttachmentGroupAttachment\x12\x1a\n\nattachment\x18\xa3\xb2\xddW \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_attachment\"\xae\x01\n%InterconnectAttachmentGroupConfigured\x12p\n\x10\x61vailability_sla\x18\xc4\xb8\xb3\xe1\x01 \x01(\x0b\x32M.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAH\x00\x88\x01\x01\x42\x13\n\x11_availability_sla\"\x8a\x03\n4InterconnectAttachmentGroupConfiguredAvailabilitySLA\x12\x1d\n\reffective_sla\x18\x90\xd5\xdf\x44 \x01(\tH\x00\x88\x01\x01\x12\x83\x01\n\x15intended_sla_blockers\x18\x84\xad\xe6\xd5\x01 \x03(\x0b\x32`.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers\"\x9a\x01\n\x0c\x45\x66\x66\x65\x63tiveSla\x12\x1b\n\x17UNDEFINED_EFFECTIVE_SLA\x10\x00\x12!\n\x19\x45\x46\x46\x45\x43TIVE_SLA_UNSPECIFIED\x10\xa8\xa7\x90\xea\x01\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x42\x10\n\x0e_effective_sla\"\xab\x04\nGInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers\x12\x17\n\x0b\x61ttachments\x18\xb0\x97\xcf\x9f\x01 \x03(\t\x12\x1d\n\x0c\x62locker_type\x18\xdf\xa4\xe2\xb5\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x64ocumentation_link\x18\xdf\xd4\xc8, \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x65xplanation\x18\x99\x9c\xd7\xf0\x01 \x01(\tH\x02\x88\x01\x01\x12\x12\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\t\x12\x12\n\x07regions\x18\xff\xef\xf2\x05 \x03(\t\x12\x10\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\t\"\xf3\x01\n\x0b\x42lockerType\x12\x1a\n\x16UNDEFINED_BLOCKER_TYPE\x10\x00\x12 \n\x18\x42LOCKER_TYPE_UNSPECIFIED\x10\xd7\xc2\xf8\xcc\x01\x12\x1b\n\x13INCOMPATIBLE_METROS\x10\xc0\x9f\xbd\x8a\x01\x12\x1b\n\x14INCOMPATIBLE_REGIONS\x10\xd9\x8e\xfa\x02\x12\x1d\n\x16MISSING_GLOBAL_ROUTING\x10\xa3\xc8\x8eO\x12\x16\n\x0eNO_ATTACHMENTS\x10\x92\xdc\xd8\xd9\x01\x12\'\n NO_ATTACHMENTS_IN_METRO_AND_ZONE\x10\xa7\xc6\xd2\x18\x12\x0c\n\x05OTHER\x10\xf0\x8d\x82$B\x0f\n\r_blocker_typeB\x15\n\x13_documentation_linkB\x0e\n\x0c_explanation\"\x80\x02\n!InterconnectAttachmentGroupIntent\x12!\n\x10\x61vailability_sla\x18\xc4\xb8\xb3\xe1\x01 \x01(\tH\x00\x88\x01\x01\"\xa2\x01\n\x0f\x41vailabilitySla\x12\x1e\n\x1aUNDEFINED_AVAILABILITY_SLA\x10\x00\x12#\n\x1c\x41VAILABILITY_SLA_UNSPECIFIED\x10\xfc\xde\xaa\x05\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x42\x13\n\x11_availability_sla\"\x8d\x01\n+InterconnectAttachmentGroupLogicalStructure\x12^\n\x07regions\x18\xff\xef\xf2\x05 \x03(\x0b\x32J.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion\"\xbb\x01\n1InterconnectAttachmentGroupLogicalStructureRegion\x12\x63\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\x0b\x32O.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_region\"\xca\x01\n6InterconnectAttachmentGroupLogicalStructureRegionMetro\x12o\n\nfacilities\x18\x81\xc5\xf4\xff\x01 \x03(\x0b\x32W.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility\x12\x15\n\x05metro\x18\x99\xda\xbe\x31 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_metro\"\xd7\x01\n>InterconnectAttachmentGroupLogicalStructureRegionMetroFacility\x12\x19\n\x08\x66\x61\x63ility\x18\xa3\xdd\xf9\xee\x01 \x01(\tH\x00\x88\x01\x01\x12m\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\x0b\x32[.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneB\x0b\n\t_facility\"|\nBInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone\x12\x17\n\x0b\x61ttachments\x18\xb0\x97\xcf\x9f\x01 \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_zone\"\xc4\x01\n8InterconnectAttachmentGroupsGetOperationalStatusResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12^\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32\x46.google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_result\"\x88\x03\n(InterconnectAttachmentGroupsListResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x46\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x34.google.cloud.compute.v1.InterconnectAttachmentGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x88\x05\n-InterconnectAttachmentGroupsOperationalStatus\x12w\n\x13\x61ttachment_statuses\x18\xbc\xaf\x98\xea\x01 \x03(\x0b\x32V.google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus\x12[\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredH\x00\x88\x01\x01\x12\x1d\n\x0cgroup_status\x18\xb2\xb3\xc5\xa1\x01 \x01(\tH\x01\x88\x01\x01\x12S\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentGroupIntentH\x02\x88\x01\x01\x12[\n\x0boperational\x18\xd2\xc7\xec= \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredH\x03\x88\x01\x01\"u\n\x0bGroupStatus\x12\x1a\n\x16UNDEFINED_GROUP_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x11\n\nFULLY_DOWN\x10\x97\xb0\xeby\x12\x10\n\x08\x46ULLY_UP\x10\xd0\xbe\xb4\xf0\x01\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\r\n\x0b_configuredB\x0f\n\r_group_statusB\t\n\x07_intentB\x0e\n\x0c_operational\"\x94\x06\n=InterconnectAttachmentGroupsOperationalStatusAttachmentStatus\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nattachment\x18\xa3\xb2\xddW \x01(\tH\x01\x88\x01\x01\x12\x19\n\tis_active\x18\xbb\xd7\xe0\x36 \x01(\tH\x02\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\"Z\n\x08IsActive\x12\x17\n\x13UNDEFINED_IS_ACTIVE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\"\xcd\x03\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12!\n\x19\x41TTACHMENT_STATUS_UNKNOWN\x10\xf9\xde\xa5\xe1\x01\x12\x1b\n\x13\x43ONNECTION_DISABLED\x10\xbd\x95\xa9\xce\x01\x12\x16\n\x0f\x43ONNECTION_DOWN\x10\xe3\x8a\xca\x7f\x12\x15\n\rCONNECTION_UP\x10\x9c\xdf\x9e\xd9\x01\x12\x0e\n\x07\x44\x45\x46UNCT\x10\xaf\xbc\xa1\x37\x12)\n!IPSEC_CONFIGURATION_NEEDED_STATUS\x10\xfe\xb5\x87\xd9\x01\x12)\n!IPSEC_READY_TO_RESUME_FLOW_STATUS\x10\x84\x99\xc0\xb7\x01\x12\x19\n\x11IPV4_DOWN_IPV6_UP\x10\xb0\xda\xa8\x84\x01\x12\x19\n\x11IPV4_UP_IPV6_DOWN\x10\xb0\x9e\xda\x96\x01\x12 \n\x18PARTNER_REQUEST_RECEIVED\x10\xe8\xf0\xf2\xf4\x01\x12\x17\n\x10PENDING_CUSTOMER\x10\xa6\x83\xefO\x12\x17\n\x0fPENDING_PARTNER\x10\xe0\xfb\xfa\xb8\x01\x12\x13\n\x0bPROVISIONED\x10\x94\xb0\xd1\xa9\x01\x12\"\n\x1bROUTER_CONFIGURATION_BROKEN\x10\x94\x8d\xe2G\x12\x15\n\rUNPROVISIONED\x10\xdb\xc7\xd7\xf6\x01\x42\x10\n\x0e_admin_enabledB\r\n\x0b_attachmentB\x0c\n\n_is_activeB\t\n\x07_status\"\xbd\x02\n\x1aInterconnectAttachmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbc\x01\n%InterconnectAttachmentPartnerMetadata\x12\"\n\x11interconnect_name\x18\x9c\xef\xc6\xf5\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cpartner_name\x18\xa2\xa7\x90M \x01(\tH\x01\x88\x01\x01\x12\x1b\n\nportal_url\x18\x9c\xce\xad\x80\x01 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_interconnect_nameB\x0f\n\r_partner_nameB\r\n\x0b_portal_url\"K\n!InterconnectAttachmentPrivateInfo\x12\x19\n\x08tag8021q\x18\xc0\xd1\xce\x81\x01 \x01(\rH\x00\x88\x01\x01\x42\x0b\n\t_tag8021q\"\xc1\x01\n!InterconnectAttachmentsScopedList\x12U\n\x18interconnect_attachments\x18\xff\xd2\xeb\xca\x01 \x03(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xc5\x01\n\x17InterconnectCircuitInfo\x12\"\n\x12\x63ustomer_demarc_id\x18\x93\x8c\xdc\r \x01(\tH\x00\x88\x01\x01\x12!\n\x11google_circuit_id\x18\xf7\x8d\xf8| \x01(\tH\x01\x88\x01\x01\x12!\n\x10google_demarc_id\x18\xae\xdd\xdb\xd5\x01 \x01(\tH\x02\x88\x01\x01\x42\x15\n\x13_customer_demarc_idB\x14\n\x12_google_circuit_idB\x13\n\x11_google_demarc_id\"\x95\x05\n\x17InterconnectDiagnostics\x12P\n\narp_caches\x18\x91\xd6\xd8\xc5\x01 \x03(\x0b\x32\x38.google.cloud.compute.v1.InterconnectDiagnosticsARPEntry\x12(\n\x17\x62undle_aggregation_type\x18\x94\xc9\xb2\xcf\x01 \x01(\tH\x00\x88\x01\x01\x12)\n\x19\x62undle_operational_status\x18\xdc\x97\xe0\x32 \x01(\tH\x01\x88\x01\x01\x12L\n\x05links\x18\xb9\x9f\x8d\x31 \x03(\x0b\x32:.google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus\x12\x1c\n\x0bmac_address\x18\x84\xd2\xc8\x9e\x01 \x01(\tH\x02\x88\x01\x01\"\x8a\x01\n\x15\x42undleAggregationType\x12%\n!UNDEFINED_BUNDLE_AGGREGATION_TYPE\x10\x00\x12#\n\x1c\x42UNDLE_AGGREGATION_TYPE_LACP\x10\xcd\xa2\x9e\r\x12%\n\x1e\x42UNDLE_AGGREGATION_TYPE_STATIC\x10\xd9\x98\x95\x18\"\x8f\x01\n\x17\x42undleOperationalStatus\x12\'\n#UNDEFINED_BUNDLE_OPERATIONAL_STATUS\x10\x00\x12&\n\x1e\x42UNDLE_OPERATIONAL_STATUS_DOWN\x10\x85\xae\xb4\xd8\x01\x12#\n\x1c\x42UNDLE_OPERATIONAL_STATUS_UP\x10\xbe\x83\xf9LB\x1a\n\x18_bundle_aggregation_typeB\x1c\n\x1a_bundle_operational_statusB\x0e\n\x0c_mac_address\"{\n\x1fInterconnectDiagnosticsARPEntry\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bmac_address\x18\x84\xd2\xc8\x9e\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_ip_addressB\x0e\n\x0c_mac_address\"\xfa\x01\n%InterconnectDiagnosticsLinkLACPStatus\x12 \n\x10google_system_id\x18\xa5\x85\xbf+ \x01(\tH\x00\x88\x01\x01\x12#\n\x12neighbor_system_id\x18\x9e\x98\xf9\xa3\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x02\x88\x01\x01\"=\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0f\n\x08\x44\x45TACHED\x10\xf2\xf6\xa1gB\x13\n\x11_google_system_idB\x15\n\x13_neighbor_system_idB\x08\n\x06_state\"\xe3\x01\n\'InterconnectDiagnosticsLinkOpticalPower\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\x02H\x01\x88\x01\x01\"v\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x12\n\nHIGH_ALARM\x10\xd4\xf2\xcd\x91\x01\x12\x13\n\x0cHIGH_WARNING\x10\xdf\xeb\xafi\x12\x11\n\tLOW_ALARM\x10\xe6\xaa\xff\x96\x01\x12\x13\n\x0bLOW_WARNING\x10\xf1\xaa\xc6\xa1\x01\x12\x07\n\x02OK\x10\xdc\x13\x42\x08\n\x06_stateB\x08\n\x06_value\"\xf1\x06\n!InterconnectDiagnosticsLinkStatus\x12P\n\narp_caches\x18\x91\xd6\xd8\xc5\x01 \x03(\x0b\x32\x38.google.cloud.compute.v1.InterconnectDiagnosticsARPEntry\x12\x1a\n\ncircuit_id\x18\xb1\xfa\xafk \x01(\tH\x00\x88\x01\x01\x12\x1c\n\rgoogle_demarc\x18\x8c\x8f\x03 \x01(\tH\x01\x88\x01\x01\x12\\\n\x0blacp_status\x18\xaf\xc4\x9e\xac\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatusH\x02\x88\x01\x01\x12U\n\x06macsec\x18\xa2\xc1\x97\xfc\x01 \x01(\x0b\x32<.google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatusH\x03\x88\x01\x01\x12\"\n\x12operational_status\x18\xff\xb1\xf0_ \x01(\tH\x04\x88\x01\x01\x12i\n\x17receiving_optical_power\x18\xdf\xad\xd8t \x01(\x0b\x32@.google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPowerH\x05\x88\x01\x01\x12m\n\x1atransmitting_optical_power\x18\x9d\xba\x89\xdb\x01 \x01(\x0b\x32@.google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPowerH\x06\x88\x01\x01\"\x7f\n\x11OperationalStatus\x12 \n\x1cUNDEFINED_OPERATIONAL_STATUS\x10\x00\x12$\n\x1cLINK_OPERATIONAL_STATUS_DOWN\x10\xfd\xe4\xa6\x86\x01\x12\"\n\x1aLINK_OPERATIONAL_STATUS_UP\x10\xb6\xb6\xed\x91\x01\x42\r\n\x0b_circuit_idB\x10\n\x0e_google_demarcB\x0e\n\x0c_lacp_statusB\t\n\x07_macsecB\x15\n\x13_operational_statusB\x1a\n\x18_receiving_optical_powerB\x1d\n\x1b_transmitting_optical_power\"n\n#InterconnectDiagnosticsMacsecStatus\x12\x12\n\x03\x63kn\x18\x86\x82\x06 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0boperational\x18\xd2\xc7\xec= \x01(\x08H\x01\x88\x01\x01\x42\x06\n\x04_cknB\x0e\n\x0c_operational\"\x94\x06\n\x11InterconnectGroup\x12Q\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectGroupConfiguredH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12I\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectGroupIntentH\x05\x88\x01\x01\x12X\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\x0b\x32=.google.cloud.compute.v1.InterconnectGroup.InterconnectsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12_\n\x12physical_structure\x18\x8b\xd0\x90] \x01(\x0b\x32;.google.cloud.compute.v1.InterconnectGroupPhysicalStructureH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x1al\n\x12InterconnectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.google.cloud.compute.v1.InterconnectGroupInterconnect:\x02\x38\x01\x42\r\n\x0b_configuredB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x07\n\x05_etagB\x05\n\x03_idB\t\n\x07_intentB\x07\n\x05_kindB\x07\n\x05_nameB\x15\n\x13_physical_structureB\x0c\n\n_self_link\"\xa2\x01\n\x1bInterconnectGroupConfigured\x12k\n\x13topology_capability\x18\xe8\xd9\xe0\x44 \x01(\x0b\x32\x46.google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityH\x00\x88\x01\x01\x42\x16\n\x14_topology_capability\"\xfc\x02\n-InterconnectGroupConfiguredTopologyCapability\x12\x8a\x01\n\x1cintended_capability_blockers\x18\xec\xfd\xc0\xfd\x01 \x03(\x0b\x32`.google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers\x12\x1d\n\rsupported_sla\x18\x97\xf4\xa2\x1c \x01(\tH\x00\x88\x01\x01\"\x8c\x01\n\x0cSupportedSla\x12\x1b\n\x17UNDEFINED_SUPPORTED_SLA\x10\x00\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x10\n\x0e_supported_sla\"\x83\x04\nGInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers\x12\x1d\n\x0c\x62locker_type\x18\xdf\xa4\xe2\xb5\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x64ocumentation_link\x18\xdf\xd4\xc8, \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x65xplanation\x18\x99\x9c\xd7\xf0\x01 \x01(\tH\x02\x88\x01\x01\x12\x16\n\nfacilities\x18\x81\xc5\xf4\xff\x01 \x03(\t\x12\x19\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\t\x12\x12\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\t\x12\x10\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\t\"\xc5\x01\n\x0b\x42lockerType\x12\x1a\n\x16UNDEFINED_BLOCKER_TYPE\x10\x00\x12\x1b\n\x13INCOMPATIBLE_METROS\x10\xc0\x9f\xbd\x8a\x01\x12\x14\n\rNOT_AVAILABLE\x10\x9d\x80\x8d\x43\x12\x18\n\x10NO_INTERCONNECTS\x10\x87\xf7\xd2\xf9\x01\x12*\n\"NO_INTERCONNECTS_IN_METRO_AND_ZONE\x10\xdc\xba\xa2\xd2\x01\x12\x0c\n\x05OTHER\x10\xf0\x8d\x82$\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0f\n\r_blocker_typeB\x15\n\x13_documentation_linkB\x0e\n\x0c_explanation\"\xf1\x01\n\x17InterconnectGroupIntent\x12#\n\x13topology_capability\x18\xe8\xd9\xe0\x44 \x01(\tH\x00\x88\x01\x01\"\x98\x01\n\x12TopologyCapability\x12!\n\x1dUNDEFINED_TOPOLOGY_CAPABILITY\x10\x00\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x16\n\x14_topology_capability\"N\n\x1dInterconnectGroupInterconnect\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_interconnect\"{\n\"InterconnectGroupPhysicalStructure\x12U\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\x0b\x32\x41.google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros\"\xb0\x01\n(InterconnectGroupPhysicalStructureMetros\x12\x63\n\nfacilities\x18\x81\xc5\xf4\xff\x01 \x03(\x0b\x32K.google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities\x12\x15\n\x05metro\x18\x99\xda\xbe\x31 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_metro\"\xc0\x01\n2InterconnectGroupPhysicalStructureMetrosFacilities\x12\x19\n\x08\x66\x61\x63ility\x18\xa3\xdd\xf9\xee\x01 \x01(\tH\x00\x88\x01\x01\x12\x62\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\x0b\x32P.google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZonesB\x0b\n\t_facility\"s\n7InterconnectGroupPhysicalStructureMetrosFacilitiesZones\x12\x19\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_zone\"\xd0\x03\n\x1fInterconnectGroupsCreateMembers\x12(\n\x18intent_mismatch_behavior\x18\xc0\xd5\xb2N \x01(\tH\x00\x88\x01\x01\x12\x64\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\x0b\x32I.google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput\x12p\n\x15template_interconnect\x18\xb3\xb0\x95k \x01(\x0b\x32I.google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInputH\x01\x88\x01\x01\"t\n\x16IntentMismatchBehavior\x12&\n\"UNDEFINED_INTENT_MISMATCH_BEHAVIOR\x10\x00\x12\x0e\n\x06\x43REATE\x10\xfc\xa9\xe2\xb7\x01\x12\r\n\x06REJECT\x10\x9f\xcf\xf1~\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x1b\n\x19_intent_mismatch_behaviorB\x18\n\x16_template_interconnect\"\x82\x07\n0InterconnectGroupsCreateMembersInterconnectInput\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\rcustomer_name\x18\xcc\xdc\xdf\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08\x66\x61\x63ility\x18\xa3\xdd\xf9\xee\x01 \x01(\tH\x03\x88\x01\x01\x12\"\n\x11interconnect_type\x18\xcb\x98\xd3\xf5\x01 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\tlink_type\x18\xdf\x88\xbe\xf9\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x11noc_contact_email\x18\x80\xf8\xda\x06 \x01(\tH\x07\x88\x01\x01\x12 \n\x0fremote_location\x18\x8e\x8f\xd7\x9a\x01 \x01(\tH\x08\x88\x01\x01\x12\x1e\n\x12requested_features\x18\xee\xf3\xf7\xdb\x01 \x03(\t\x12$\n\x14requested_link_count\x18\xfb\xdb\xbd\x15 \x01(\x05H\t\x88\x01\x01\"j\n\x10InterconnectType\x12\x1f\n\x1bUNDEFINED_INTERCONNECT_TYPE\x10\x00\x12\x10\n\tDEDICATED\x10\xcf\x9b\x9c{\x12\x12\n\nIT_PRIVATE\x10\xcf\x8c\x88\xa0\x01\x12\x0f\n\x07PARTNER\x10\xa8\xd1\xa1\xdc\x01\"\x8d\x01\n\x08LinkType\x12\x17\n\x13UNDEFINED_LINK_TYPE\x10\x00\x12\"\n\x1aLINK_TYPE_ETHERNET_100G_LR\x10\xe7\xf2\x81\xa1\x01\x12 \n\x19LINK_TYPE_ETHERNET_10G_LR\x10\xa5\xb9\xf1p\x12\"\n\x1bLINK_TYPE_ETHERNET_400G_LR4\x10\xca\xf4\xc8<\"H\n\x11RequestedFeatures\x12 \n\x1cUNDEFINED_REQUESTED_FEATURES\x10\x00\x12\x11\n\tIF_MACSEC\x10\x84\xfc\xfa\xbc\x01\x42\x10\n\x0e_admin_enabledB\x10\n\x0e_customer_nameB\x0e\n\x0c_descriptionB\x0b\n\t_facilityB\x14\n\x12_interconnect_typeB\x0c\n\n_link_typeB\x07\n\x05_nameB\x14\n\x12_noc_contact_emailB\x12\n\x10_remote_locationB\x17\n\x15_requested_link_count\"\x87\x01\n&InterconnectGroupsCreateMembersRequest\x12Q\n\x07request\x18\x8f\xe5\xbb\n \x01(\x0b\x32\x38.google.cloud.compute.v1.InterconnectGroupsCreateMembersH\x00\x88\x01\x01\x42\n\n\x08_request\"\xb0\x01\n.InterconnectGroupsGetOperationalStatusResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12T\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32<.google.cloud.compute.v1.InterconnectGroupsOperationalStatusH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_result\"\xf4\x02\n\x1eInterconnectGroupsListResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.InterconnectGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe8\x04\n#InterconnectGroupsOperationalStatus\x12Q\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectGroupConfiguredH\x00\x88\x01\x01\x12\x1d\n\x0cgroup_status\x18\xb2\xb3\xc5\xa1\x01 \x01(\tH\x01\x88\x01\x01\x12I\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectGroupIntentH\x02\x88\x01\x01\x12q\n\x15interconnect_statuses\x18\xb1\xe9\x83\xd5\x01 \x03(\x0b\x32N.google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus\x12Q\n\x0boperational\x18\xd2\xc7\xec= \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectGroupConfiguredH\x03\x88\x01\x01\"\x82\x01\n\x0bGroupStatus\x12\x1a\n\x16UNDEFINED_GROUP_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x11\n\nFULLY_DOWN\x10\x97\xb0\xeby\x12\x10\n\x08\x46ULLY_UP\x10\xd0\xbe\xb4\xf0\x01\x12 \n\x19GROUPS_STATUS_UNSPECIFIED\x10\x95\x8d\xf3|B\r\n\x0b_configuredB\x0f\n\r_group_statusB\t\n\x07_intentB\x0e\n\x0c_operational\"\x87\x03\n5InterconnectGroupsOperationalStatusInterconnectStatus\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x00\x88\x01\x01\x12N\n\x0b\x64iagnostics\x18\xac\xb3\xfa\x9e\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectDiagnosticsH\x01\x88\x01\x01\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tH\x02\x88\x01\x01\x12\x19\n\tis_active\x18\xbb\xd7\xe0\x36 \x01(\tH\x03\x88\x01\x01\"d\n\x08IsActive\x12\x17\n\x13UNDEFINED_IS_ACTIVE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x12\x1d\n\x15IS_ACTIVE_UNSPECIFIED\x10\x93\xc1\x8d\x83\x01\x42\x10\n\x0e_admin_enabledB\x0e\n\x0c_diagnosticsB\x0f\n\r_interconnectB\x0c\n\n_is_active\"\xa9\x02\n\x10InterconnectList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x37\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32%.google.cloud.compute.v1.Interconnect\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfa\n\n\x14InterconnectLocation\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x11\x61vailability_zone\x18\x90\xd0\xc7K \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x12\x61vailable_features\x18\xf3\xb9\xd6\xec\x01 \x03(\t\x12 \n\x14\x61vailable_link_types\x18\xaa\xd6\xf9\xf2\x01 \x03(\t\x12\x14\n\x04\x63ity\x18\xeb\xb2\xba\x01 \x01(\tH\x02\x88\x01\x01\x12\x19\n\tcontinent\x18\xb4\xdb\xd0? \x01(\tH\x03\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x11\x66\x61\x63ility_provider\x18\x8d\xa0\xa6\xfe\x01 \x01(\tH\x06\x88\x01\x01\x12-\n\x1d\x66\x61\x63ility_provider_facility_id\x18\x85\xbe\xce) \x01(\tH\x07\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12&\n\x15peeringdb_facility_id\x18\xb6\xba\xed\xff\x01 \x01(\tH\x0b\x88\x01\x01\x12Q\n\x0cregion_infos\x18\xfa\xe8\xee\x94\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.InterconnectLocationRegionInfo\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\r\x88\x01\x01\x12\x1c\n\x0csupports_pzs\x18\xee\xf6\x85( \x01(\x08H\x0e\x88\x01\x01\"H\n\x11\x41vailableFeatures\x12 \n\x1cUNDEFINED_AVAILABLE_FEATURES\x10\x00\x12\x11\n\tIF_MACSEC\x10\x84\xfc\xfa\xbc\x01\"\xa2\x01\n\x12\x41vailableLinkTypes\x12\"\n\x1eUNDEFINED_AVAILABLE_LINK_TYPES\x10\x00\x12\"\n\x1aLINK_TYPE_ETHERNET_100G_LR\x10\xe7\xf2\x81\xa1\x01\x12 \n\x19LINK_TYPE_ETHERNET_10G_LR\x10\xa5\xb9\xf1p\x12\"\n\x1bLINK_TYPE_ETHERNET_400G_LR4\x10\xca\xf4\xc8<\"\xea\x01\n\tContinent\x12\x17\n\x13UNDEFINED_CONTINENT\x10\x00\x12\x0e\n\x06\x41\x46RICA\x10\xfa\x9c\xaf\x97\x01\x12\x0f\n\x08\x41SIA_PAC\x10\xfd\xf6\x8e\x39\x12\x0f\n\x08\x43_AFRICA\x10\xf6\x93\xaa\"\x12\x12\n\nC_ASIA_PAC\x10\xf9\x8f\x86\xde\x01\x12\x0f\n\x08\x43_EUROPE\x10\x9e\xca\xc5_\x12\x17\n\x0f\x43_NORTH_AMERICA\x10\x98\x9b\xbb\x83\x01\x12\x17\n\x0f\x43_SOUTH_AMERICA\x10\xe0\x8c\xb0\xbd\x01\x12\x0e\n\x06\x45UROPE\x10\xa2\xd3\xca\xd4\x01\x12\x15\n\rNORTH_AMERICA\x10\x94\xd9\xd0\xd5\x01\x12\x14\n\rSOUTH_AMERICA\x10\xdc\xca\xc5\x0f\"A\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x11\n\tAVAILABLE\x10\xa9\xb5\xe6\xd2\x01\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x42\n\n\x08_addressB\x14\n\x12_availability_zoneB\x07\n\x05_cityB\x0c\n\n_continentB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x14\n\x12_facility_providerB \n\x1e_facility_provider_facility_idB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x18\n\x16_peeringdb_facility_idB\x0c\n\n_self_linkB\t\n\x07_statusB\x0f\n\r_supports_pzs\"\xb9\x02\n\x18InterconnectLocationList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.InterconnectLocation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xba\x02\n\x1eInterconnectLocationRegionInfo\x12 \n\x0f\x65xpected_rtt_ms\x18\xfa\x83\xbe\xc9\x01 \x01(\x03H\x00\x88\x01\x01\x12!\n\x11location_presence\x18\xc5\x94\xb4\x30 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x02\x88\x01\x01\"\x85\x01\n\x10LocationPresence\x12\x1f\n\x1bUNDEFINED_LOCATION_PRESENCE\x10\x00\x12\x0e\n\x06GLOBAL\x10\xa3\xef\xef\xeb\x01\x12\x14\n\x0cLOCAL_REGION\x10\xe8\xec\xb5\xc0\x01\x12\x11\n\tLP_GLOBAL\x10\xbe\xdd\xeb\xcc\x01\x12\x17\n\x0fLP_LOCAL_REGION\x10\xc3\xda\xfd\xe8\x01\x42\x12\n\x10_expected_rtt_msB\x14\n\x12_location_presenceB\t\n\x07_region\"\x94\x01\n\x12InterconnectMacsec\x12\x1a\n\tfail_open\x18\xcb\x95\xfb\xfd\x01 \x01(\x08H\x00\x88\x01\x01\x12T\n\x0fpre_shared_keys\x18\xf2\xcb\xb5\xc8\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.InterconnectMacsecPreSharedKeyB\x0c\n\n_fail_open\"v\n\x18InterconnectMacsecConfig\x12Z\n\x0fpre_shared_keys\x18\xf2\xcb\xb5\xc8\x01 \x03(\x0b\x32=.google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey\"\xa8\x01\n$InterconnectMacsecConfigPreSharedKey\x12\x12\n\x03\x63\x61k\x18\xcd\xff\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03\x63kn\x18\x86\x82\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x03\x88\x01\x01\x42\x06\n\x04_cakB\x06\n\x04_cknB\x07\n\x05_nameB\r\n\x0b_start_time\"j\n\x1eInterconnectMacsecPreSharedKey\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_start_time\"\x85\x05\n\x1eInterconnectOutageNotification\x12\x1c\n\x11\x61\x66\x66\x65\x63ted_circuits\x18\x95\xfe\xdeT \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x65nd_time\x18\xb1\xa7\xe7\x36 \x01(\x03H\x01\x88\x01\x01\x12\x1b\n\nissue_type\x18\xe0\xfd\xa0\xb0\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x04\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x06\x88\x01\x01\"w\n\tIssueType\x12\x18\n\x14UNDEFINED_ISSUE_TYPE\x10\x00\x12\x10\n\tIT_OUTAGE\x10\x85\xe1\xe8S\x12\x18\n\x11IT_PARTIAL_OUTAGE\x10\xa3\xca\xf5+\x12\r\n\x06OUTAGE\x10\xf1\xa5\x8f]\x12\x15\n\x0ePARTIAL_OUTAGE\x10\x8f\xb7\x8f\x46\"C\n\x06Source\x12\x14\n\x10UNDEFINED_SOURCE\x10\x00\x12\x0e\n\x06GOOGLE\x10\xb9\xa4\x99\xed\x01\x12\x13\n\x0bNSRC_GOOGLE\x10\xe2\xff\xba\xf3\x01\"x\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\tCANCELLED\x10\xb1\xf2\x80\x14\x12\x11\n\tCOMPLETED\x10\xab\x8c\xe4\x93\x01\x12\x10\n\tNS_ACTIVE\x10\xc0\x9d\xb7x\x12\x13\n\x0bNS_CANCELED\x10\xd3\x93\xc7\xf1\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_end_timeB\r\n\x0b_issue_typeB\x07\n\x05_nameB\t\n\x07_sourceB\r\n\x0b_start_timeB\x08\n\x06_state\"\xcb\x0b\n\x1aInterconnectRemoteLocation\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12~\n$attachment_configuration_constraints\x18\xd1\xe8\xeb\x9b\x01 \x01(\x0b\x32G.google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsH\x01\x88\x01\x01\x12\x14\n\x04\x63ity\x18\xeb\xb2\xba\x01 \x01(\tH\x02\x88\x01\x01\x12[\n\x0b\x63onstraints\x18\xb6\xcc\xee\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectRemoteLocationConstraintsH\x03\x88\x01\x01\x12\x19\n\tcontinent\x18\xb4\xdb\xd0? \x01(\tH\x04\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x06\x88\x01\x01\x12\"\n\x11\x66\x61\x63ility_provider\x18\x8d\xa0\xa6\xfe\x01 \x01(\tH\x07\x88\x01\x01\x12-\n\x1d\x66\x61\x63ility_provider_facility_id\x18\x85\xbe\xce) \x01(\tH\x08\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x14\n\x04lacp\x18\xa2\xa1\xca\x01 \x01(\tH\x0b\x88\x01\x01\x12$\n\x14max_lag_size100_gbps\x18\xb5\xff\xf6t \x01(\x05H\x0c\x88\x01\x01\x12$\n\x13max_lag_size10_gbps\x18\x95\xe6\x98\x8c\x01 \x01(\x05H\r\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0e\x88\x01\x01\x12&\n\x15peeringdb_facility_id\x18\xb6\xba\xed\xff\x01 \x01(\tH\x0f\x88\x01\x01\x12j\n\x15permitted_connections\x18\xae\xb3\xe5\xd2\x01 \x03(\x0b\x32G.google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections\x12\x1f\n\x0eremote_service\x18\xbc\xff\xf2\xba\x01 \x01(\tH\x10\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x11\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x12\x88\x01\x01\"\x82\x01\n\tContinent\x12\x17\n\x13UNDEFINED_CONTINENT\x10\x00\x12\x0e\n\x06\x41\x46RICA\x10\xfa\x9c\xaf\x97\x01\x12\x0f\n\x08\x41SIA_PAC\x10\xfd\xf6\x8e\x39\x12\x0e\n\x06\x45UROPE\x10\xa2\xd3\xca\xd4\x01\x12\x15\n\rNORTH_AMERICA\x10\x94\xd9\xd0\xd5\x01\x12\x14\n\rSOUTH_AMERICA\x10\xdc\xca\xc5\x0f\"K\n\x04Lacp\x12\x12\n\x0eUNDEFINED_LACP\x10\x00\x12\x16\n\x0eLACP_SUPPORTED\x10\xb1\x8a\xf6\xa1\x01\x12\x17\n\x10LACP_UNSUPPORTED\x10\xf8\xf3\x9e\x61\"A\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x11\n\tAVAILABLE\x10\xa9\xb5\xe6\xd2\x01\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x42\n\n\x08_addressB\'\n%_attachment_configuration_constraintsB\x07\n\x05_cityB\x0e\n\x0c_constraintsB\x0c\n\n_continentB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x14\n\x12_facility_providerB \n\x1e_facility_provider_facility_idB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_lacpB\x17\n\x15_max_lag_size100_gbpsB\x16\n\x14_max_lag_size10_gbpsB\x07\n\x05_nameB\x18\n\x16_peeringdb_facility_idB\x11\n\x0f_remote_serviceB\x0c\n\n_self_linkB\t\n\x07_status\"\xc5\x04\n%InterconnectRemoteLocationConstraints\x12*\n\x19port_pair_remote_location\x18\xa7\xb2\xbc\xec\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0eport_pair_vlan\x18\xea\xf2\x83\xe4\x01 \x01(\tH\x01\x88\x01\x01\x12t\n\x13subnet_length_range\x18\xc6\xb0\xfbW \x01(\x0b\x32O.google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRangeH\x02\x88\x01\x01\"\x9c\x01\n\x16PortPairRemoteLocation\x12\'\n#UNDEFINED_PORT_PAIR_REMOTE_LOCATION\x10\x00\x12)\n\"PORT_PAIR_MATCHING_REMOTE_LOCATION\x10\xd3\x8b\xec\x62\x12.\n\'PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION\x10\xa5\xaa\xf3\x1c\"q\n\x0cPortPairVlan\x12\x1c\n\x18UNDEFINED_PORT_PAIR_VLAN\x10\x00\x12\x1e\n\x17PORT_PAIR_MATCHING_VLAN\x10\xbe\xe8\xacw\x12#\n\x1cPORT_PAIR_UNCONSTRAINED_VLAN\x10\xac\x88\xc7SB\x1c\n\x1a_port_pair_remote_locationB\x11\n\x0f_port_pair_vlanB\x16\n\x14_subnet_length_range\"p\n6InterconnectRemoteLocationConstraintsSubnetLengthRange\x12\x12\n\x03max\x18\xe4\xca\x06 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x03min\x18\xd2\xcc\x06 \x01(\x05H\x01\x88\x01\x01\x42\x06\n\x04_maxB\x06\n\x04_min\"\xc5\x02\n\x1eInterconnectRemoteLocationList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x45\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x33.google.cloud.compute.v1.InterconnectRemoteLocation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"r\n.InterconnectRemoteLocationPermittedConnections\x12&\n\x15interconnect_location\x18\xc6\xd8\xdb\xea\x01 \x01(\tH\x00\x88\x01\x01\x42\x18\n\x16_interconnect_location\"z\n#InterconnectsGetDiagnosticsResponse\x12H\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectDiagnosticsH\x00\x88\x01\x01\x42\t\n\x07_result\"\x9b\x01\n$InterconnectsGetMacsecConfigResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12I\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32\x31.google.cloud.compute.v1.InterconnectMacsecConfigH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_result\"\xe9\x01\n\x1cInvalidateCacheUrlMapRequest\x12\x61\n cache_invalidation_rule_resource\x18\xad\xc3\x93\x95\x01 \x01(\x0b\x32..google.cloud.compute.v1.CacheInvalidationRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"D\n\x05Items\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x08\n\x06_value\"\xd4\x08\n\x07License\x12\'\n\x1c\x61llowed_replacement_licenses\x18\x96\x9c\xa7] \x03(\t\x12\"\n\x12\x61ppendable_to_disk\x18\x96\x8e\x8b\x08 \x01(\x08H\x00\x88\x01\x01\x12 \n\x0f\x63harges_use_fee\x18\xce\xa1\xca\xb1\x01 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12!\n\x15incompatible_licenses\x18\x98\xb0\xb0\x9f\x01 \x03(\t\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0clicense_code\x18\xab\xc6Y \x01(\x04H\x06\x88\x01\x01\x12\x44\n\x11minimum_retention\x18\xad\xe0\x8cJ \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x07\x88\x01\x01\x12\"\n\x11multi_tenant_only\x18\x9b\xe0\xeb\x82\x01 \x01(\x08H\x08\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x1b\n\nos_license\x18\xe6\xa9\xd8\xe8\x01 \x01(\x08H\n\x88\x01\x01\x12#\n\x13removable_from_disk\x18\xae\x85\xaa\x0c \x01(\x08H\x0b\x88\x01\x01\x12\'\n\x1crequired_coattached_licenses\x18\x81\xba\xcd= \x03(\t\x12[\n\x15resource_requirements\x18\xa1\xb2\x97\x66 \x01(\x0b\x32\x34.google.cloud.compute.v1.LicenseResourceRequirementsH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0e\x88\x01\x01\x12!\n\x10sole_tenant_only\x18\xb7\x8b\xee\xcb\x01 \x01(\x08H\x0f\x88\x01\x01\x12\x1c\n\x0ctransferable\x18\xc5\xbf\x89\x02 \x01(\x08H\x10\x88\x01\x01\x12 \n\x10update_timestamp\x18\xa0\xea\xd2\x39 \x01(\tH\x11\x88\x01\x01\x42\x15\n\x13_appendable_to_diskB\x12\n\x10_charges_use_feeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x0f\n\r_license_codeB\x14\n\x12_minimum_retentionB\x14\n\x12_multi_tenant_onlyB\x07\n\x05_nameB\r\n\x0b_os_licenseB\x16\n\x14_removable_from_diskB\x18\n\x16_resource_requirementsB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x13\n\x11_sole_tenant_onlyB\x0f\n\r_transferableB\x13\n\x11_update_timestamp\"\x94\x04\n\x0bLicenseCode\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12J\n\rlicense_alias\x18\xd2\x91\xe2\x14 \x03(\x0b\x32\x30.google.cloud.compute.v1.LicenseCodeLicenseAlias\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0ctransferable\x18\xc5\xbf\x89\x02 \x01(\x08H\x07\x88\x01\x01\"\x7f\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0e\n\x07\x45NABLED\x10\xa1\xae\xecV\x12\x11\n\nRESTRICTED\x10\xdb\xe8\xdb|\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_self_linkB\x08\n\x06_stateB\x0f\n\r_transferable\"q\n\x17LicenseCodeLicenseAlias\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0c\n\n_self_link\"\x9c\x01\n\x19LicenseResourceCommitment\x12\x16\n\x06\x61mount\x18\xd8\xa0\xe9] \x01(\x03H\x00\x88\x01\x01\x12!\n\x11\x63ores_per_license\x18\x94\xc8\xbe\x0f \x01(\tH\x01\x88\x01\x01\x12\x17\n\x07license\x18\xc1\x88\xc2O \x01(\tH\x02\x88\x01\x01\x42\t\n\x07_amountB\x14\n\x12_cores_per_licenseB\n\n\x08_license\"\x8d\x01\n\x1bLicenseResourceRequirements\x12$\n\x13min_guest_cpu_count\x18\xa4\xd4\xf4\xe3\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\rmin_memory_mb\x18\xe6\xd7\xd9\xf0\x01 \x01(\x05H\x01\x88\x01\x01\x42\x16\n\x14_min_guest_cpu_countB\x10\n\x0e_min_memory_mb\"\x89\x02\n\x14LicensesListResponse\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.License\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x01\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n\x1bListAcceleratorTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xae\x02\n\x14ListAddressesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"]\n%ListAssociationsFirewallPolicyRequest\x12 \n\x0ftarget_resource\x18\xfc\xed\xea\xde\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_target_resource\"\xae\x02\n\x16ListAutoscalersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc7\x02\n-ListAvailableFeaturesRegionSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa9\x02\n\'ListAvailableFeaturesSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9b\x02\n\x19ListBackendBucketsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x8b\x06\n\x1bListBgpRoutesRoutersRequest\x12\x1e\n\x0e\x61\x64\x64ress_family\x18\x8f\xc4\xecR \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x64\x65stination_prefix\x18\xe3\xbf\xe9} \x01(\tH\x01\x88\x01\x01\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x03\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x04\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04peer\x18\xe2\xe2\xd1\x01 \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x0epolicy_applied\x18\xf0\xd4\xf8\xb4\x01 \x01(\x08H\x07\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x08\x88\x01\x01\x12\x1b\n\nroute_type\x18\xf0\xb6\x9e\xb3\x01 \x01(\tH\t\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\"f\n\rAddressFamily\x12\x1c\n\x18UNDEFINED_ADDRESS_FAMILY\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\x12\x1d\n\x16UNSPECIFIED_IP_VERSION\x10\xc8\xe7\xe3\"\"g\n\tRouteType\x12\x18\n\x14UNDEFINED_ROUTE_TYPE\x10\x00\x12\x11\n\nADVERTISED\x10\x9d\x92\xd7\t\x12\x0e\n\x07LEARNED\x10\xc3\xcb\xc9n\x12\x1d\n\x16UNSPECIFIED_ROUTE_TYPE\x10\xb8\xd3\xa4vB\x11\n\x0f_address_familyB\x15\n\x13_destination_prefixB\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x07\n\x05_peerB\x11\n\x0f_policy_appliedB\x19\n\x17_return_partial_successB\r\n\x0b_route_type\"\xac\x02\n\x14ListDiskTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa8\x02\n\x10ListDisksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd3\x02\n\x1cListDisksStoragePoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xe6\x02\n&ListErrorsInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xee\x02\n,ListErrorsRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa0\x02\n\x1eListExternalVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xae\x02\n\x1bListFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tH\x04\x88\x01\x01\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x0c\n\n_parent_idB\x19\n\x17_return_partial_success\"\x96\x02\n\x14ListFirewallsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb4\x02\n\x1aListForwardingRulesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListGlobalAddressesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa2\x02\n ListGlobalForwardingRulesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa8\x02\n&ListGlobalNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListGlobalOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xba\x02\n\'ListGlobalOrganizationOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tH\x04\x88\x01\x01\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x0c\n\n_parent_idB\x19\n\x17_return_partial_success\"\xaa\x02\n(ListGlobalPublicDelegatedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x99\x02\n\x17ListHealthChecksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x93\x02\n\x11ListImagesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xed\x02\n-ListInstanceGroupManagerResizeRequestsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb8\x02\n ListInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb1\x02\n\x19ListInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9e\x02\n\x1cListInstanceTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd9\x03\n\"ListInstancesInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12}\n/instance_groups_list_instances_request_resource\x18\x9f\xa8\x8c\xe3\x01 \x01(\x0b\x32;.google.cloud.compute.v1.InstanceGroupsListInstancesRequestB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xee\x03\n(ListInstancesRegionInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x89\x01\n6region_instance_groups_list_instances_request_resource\x18\xd4\xa9\x80\x17 \x01(\x0b\x32\x41.google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequestB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xac\x02\n\x14ListInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb3\x02\n\x1bListInstantSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa9\x02\n\'ListInterconnectAttachmentGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListInterconnectAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9f\x02\n\x1dListInterconnectGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa2\x02\n ListInterconnectLocationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa8\x02\n&ListInterconnectRemoteLocationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9a\x02\n\x18ListInterconnectsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x95\x02\n\x13ListLicensesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9a\x02\n\x18ListMachineImagesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x17ListMachineTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xf0\x02\n0ListManagedInstancesInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xf8\x02\n6ListManagedInstancesRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb7\x02\n\x1dListNetworkAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb8\x02\n ListNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xe1\x02\n6ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xff\x03\n0ListNetworkEndpointsNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8b\x01\n7network_endpoint_groups_list_endpoints_request_resource\x18\x8e\x98\xaf\x1c \x01(\x0b\x32\x42.google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequestB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xf9\x02\n6ListNetworkEndpointsRegionNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa4\x02\n\"ListNetworkFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListNetworkProfilesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x95\x02\n\x13ListNetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xad\x02\n\x15ListNodeGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb2\x02\n\x18ListNodeTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xac\x02\n\x14ListNodeTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xcf\x02\n\x1aListNodesNodeGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb5\x02\n\x1bListPacketMirroringsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x80\x04\n ListPeeringRoutesNetworksRequest\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0cpeering_name\x18\xaa\xd0\x80w \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x07\x88\x01\x01\"H\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\x10\n\x08INCOMING\x10\xa6\xd0\xb7\xa1\x01\x12\x10\n\x08OUTGOING\x10\xec\xc6\xcc\x92\x01\x42\x0c\n\n_directionB\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x0f\n\r_peering_nameB\t\n\x07_regionB\x19\n\x17_return_partial_success\"\xf2\x02\n2ListPerInstanceConfigsInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xfa\x02\n8ListPerInstanceConfigsRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb8\x02\n6ListPreconfiguredExpressionSetsSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa5\x02\n#ListPublicAdvertisedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListPublicDelegatedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xcf\x02\n\x1dListReferrersInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListRegionAutoscalersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xba\x02\n ListRegionBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListRegionCommitmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb4\x02\n\x1aListRegionDiskTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListRegionDisksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbe\x02\n$ListRegionHealthCheckServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb7\x02\n\x1dListRegionHealthChecksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb9\x02\n\x1fListRegionInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListRegionInstanceTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbb\x02\n!ListRegionInstantSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListRegionNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc2\x02\n(ListRegionNetworkFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListRegionNotificationEndpointsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb5\x02\n\x1bListRegionOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbb\x02\n!ListRegionSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xba\x02\n ListRegionSslCertificatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListRegionSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListRegionTargetHttpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbd\x02\n#ListRegionTargetHttpsProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbb\x02\n!ListRegionTargetTcpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb2\x02\n\x18ListRegionUrlMapsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListRegionZonesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x94\x02\n\x12ListRegionsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd1\x02\n\x1cListReservationBlocksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd5\x02\n\x1fListReservationSubBlocksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0bparent_name\x18\x80\x8a\x80\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x17ListReservationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb5\x02\n\x1bListResourcePoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd1\x02\n\x1fListRoutePoliciesRoutersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xac\x02\n\x12ListRoutersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x93\x02\n\x11ListRoutesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb7\x02\n\x1dListServiceAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x96\x02\n\x14ListSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListSslCertificatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x98\x02\n\x16ListSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb3\x02\n\x1bListStoragePoolTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x17ListStoragePoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListSubnetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9e\x02\n\x1cListTargetGrpcProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9e\x02\n\x1cListTargetHttpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9f\x02\n\x1dListTargetHttpsProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb2\x02\n\x1aListTargetInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListTargetPoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListTargetSslProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListTargetTcpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListTargetVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x94\x02\n\x12ListUrlMapsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa2\x02\n ListUsableBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListUsableRegionBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd4\x02\n\x1cListUsableSubnetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12 \n\x0fservice_project\x18\x8f\xe7\x80\xfd\x01 \x01(\tH\x05\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x12\n\x10_service_project\"\xb0\x02\n\x16ListVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x15ListVpnTunnelsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x8d\x03\n\x1bListXpnHostsProjectsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12n\n(projects_list_xpn_hosts_request_resource\x18\x97\xd0\xceq \x01(\x0b\x32\x34.google.cloud.compute.v1.ProjectsListXpnHostsRequestB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb1\x02\n\x19ListZoneOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x92\x02\n\x10ListZonesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x8f\x01\n\tLocalDisk\x12\x1a\n\ndisk_count\x18\xed\xaf\x9dW \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\tdisk_type\x18\x9c\xe9\xac, \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_disk_countB\x0f\n\r_disk_size_gbB\x0c\n\n_disk_type\"\\\n\x10LocalizedMessage\x12\x17\n\x06locale\x18\xda\x9c\xd8\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_localeB\n\n\x08_message\"\xd2\x02\n\x0eLocationPolicy\x12M\n\tlocations\x18\xde\xae\x91\xc5\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.LocationPolicy.LocationsEntry\x12\x1d\n\x0ctarget_shape\x18\xf3\xe6\xbb\xa1\x01 \x01(\tH\x00\x88\x01\x01\x1a\x61\n\x0eLocationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.LocationPolicyLocation:\x02\x38\x01\"^\n\x0bTargetShape\x12\x1a\n\x16UNDEFINED_TARGET_SHAPE\x10\x00\x12\t\n\x03\x41NY\x10\xcc\xfb\x03\x12\x16\n\x0f\x41NY_SINGLE_ZONE\x10\xd0\xa6\x91\x1d\x12\x10\n\x08\x42\x41LANCED\x10\x88\xba\xad\xdf\x01\x42\x0f\n\r_target_shape\"\x8e\x02\n\x16LocationPolicyLocation\x12W\n\x0b\x63onstraints\x18\xb6\xcc\xee\x01 \x01(\x0b\x32:.google.cloud.compute.v1.LocationPolicyLocationConstraintsH\x00\x88\x01\x01\x12\x1a\n\npreference\x18\xdb\xf9\xf2G \x01(\tH\x01\x88\x01\x01\"`\n\nPreference\x12\x18\n\x14UNDEFINED_PREFERENCE\x10\x00\x12\x0c\n\x05\x41LLOW\x10\xa9\xd6\xde\x1d\x12\n\n\x04\x44\x45NY\x10\x8c\xec\x7f\x12\x1e\n\x16PREFERENCE_UNSPECIFIED\x10\xb3\xeb\xce\xec\x01\x42\x0e\n\x0c_constraintsB\r\n\x0b_preference\"M\n!LocationPolicyLocationConstraints\x12\x1a\n\tmax_count\x18\xf4\xfc\x92\x89\x01 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_max_count\"\xe4\n\n\x0cMachineImage\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12P\n\x13instance_properties\x18\x9d\x9e\xd8\x66 \x01(\x0b\x32+.google.cloud.compute.v1.InstancePropertiesH\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x06\x88\x01\x01\x12\x45\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.MachineImage.LabelsEntry\x12]\n\x1cmachine_image_encryption_key\x18\xff\xff\xe7\xfb\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\t\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\n\x88\x01\x01\x12;\n\x0bsaved_disks\x18\xbe\xed\xc0\xbd\x01 \x03(\x0b\x32\".google.cloud.compute.v1.SavedDisk\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12Y\n\x1bsource_disk_encryption_keys\x18\xb2\xf8\xcf\xb0\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.SourceDiskEncryptionKey\x12 \n\x0fsource_instance\x18\xb9\x98\xfd\xbc\x01 \x01(\tH\x0c\x88\x01\x01\x12^\n\x1asource_instance_properties\x18\xf9\xd1\xcb\xe2\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.SourceInstancePropertiesH\r\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0e\x88\x01\x01\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x12#\n\x13total_storage_bytes\x18\xec\x87\x84\' \x01(\x03H\x0f\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"s\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x10\n\tUPLOADING\x10\xa1\x9c\xcd\x7f\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_guest_flushB\x05\n\x03_idB\x16\n\x14_instance_propertiesB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x1f\n\x1d_machine_image_encryption_keyB\x07\n\x05_nameB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x12\n\x10_source_instanceB\x1d\n\x1b_source_instance_propertiesB\t\n\x07_statusB\x16\n\x14_total_storage_bytes\"\xa9\x02\n\x10MachineImageList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x37\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32%.google.cloud.compute.v1.MachineImage\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa4\x07\n\x0bMachineType\x12?\n\x0c\x61\x63\x63\x65lerators\x18\xe8\xd6\xc5\x80\x01 \x03(\x0b\x32%.google.cloud.compute.v1.Accelerators\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nguest_cpus\x18\xd2\xcb\xc8\xbb\x01 \x01(\x05H\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x1e\n\x0eimage_space_gb\x18\x98\xf2\xf5# \x01(\x05H\x06\x88\x01\x01\x12\x1e\n\ris_shared_cpu\x18\x83\xda\xcf\xf8\x01 \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12)\n\x18maximum_persistent_disks\x18\x8d\xf6\xce\xec\x01 \x01(\x05H\t\x88\x01\x01\x12\x30\n maximum_persistent_disks_size_gb\x18\xa7\x95\xc8I \x01(\x03H\n\x88\x01\x01\x12\x19\n\tmemory_mb\x18\x93\x93\xa8\x37 \x01(\x05H\x0b\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0e\x88\x01\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\x42\x0f\n\r_architectureB\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\r\n\x0b_guest_cpusB\x05\n\x03_idB\x11\n\x0f_image_space_gbB\x10\n\x0e_is_shared_cpuB\x07\n\x05_kindB\x1b\n\x19_maximum_persistent_disksB#\n!_maximum_persistent_disks_size_gbB\x0c\n\n_memory_mbB\x07\n\x05_nameB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xc2\x03\n\x19MachineTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.MachineTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.MachineTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa7\x02\n\x0fMachineTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x36\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32$.google.cloud.compute.v1.MachineType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9f\x01\n\x16MachineTypesScopedList\x12>\n\rmachine_types\x18\x81\xdd\x81& \x03(\x0b\x32$.google.cloud.compute.v1.MachineType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xf2\n\n\x0fManagedInstance\x12\x1e\n\x0e\x63urrent_action\x18\xbc\xa7\x8dU \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x02\x88\x01\x01\x12S\n\x0finstance_health\x18\xc6\x92\xbc\xb6\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.ManagedInstanceInstanceHealth\x12\x1f\n\x0finstance_status\x18\xdc\xad\x9fS \x01(\tH\x03\x88\x01\x01\x12R\n\x0clast_attempt\x18\xa4\xac\xa8\xcf\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.ManagedInstanceLastAttemptH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12T\n\x1bpreserved_state_from_config\x18\xe2\xeb\x85/ \x01(\x0b\x32\'.google.cloud.compute.v1.PreservedStateH\x06\x88\x01\x01\x12U\n\x1bpreserved_state_from_policy\x18\xd2\xaf\xbe\xe0\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.PreservedStateH\x07\x88\x01\x01\x12{\n\"properties_from_flexibility_policy\x18\xc1\xc5\x94J \x01(\x0b\x32G.google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicyH\x08\x88\x01\x01\x12I\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\x0b\x32/.google.cloud.compute.v1.ManagedInstanceVersionH\t\x88\x01\x01\"\x85\x02\n\rCurrentAction\x12\x1c\n\x18UNDEFINED_CURRENT_ACTION\x10\x00\x12\x12\n\nABANDONING\x10\xcd\xca\x90\xb9\x01\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12 \n\x18\x43REATING_WITHOUT_RETRIES\x10\x89\xc6\xbe\xcc\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x12\n\nRECREATING\x10\xec\x8b\xfe\x88\x01\x12\x11\n\nREFRESHING\x10\xa7\xfe\xecM\x12\x12\n\nRESTARTING\x10\xf3\xee\xeb\x98\x01\x12\x10\n\x08RESUMING\x10\xaa\xfb\x89\xd5\x01\x12\x10\n\x08STARTING\x10\xc0\xa0\x8b\xe9\x01\x12\x10\n\tVERIFYING\x10\xa9\xc1\x8c\x08\"\xed\x01\n\x0eInstanceStatus\x12\x1d\n\x19UNDEFINED_INSTANCE_STATUS\x10\x00\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x11\n\tREPAIRING\x10\x95\x82\x95\xc5\x01\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x12\x0f\n\x07STAGING\x10\x9b\xc8\xc6\xcd\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x10\n\tSUSPENDED\x10\xbb\xbb\xb6\x18\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x11\n\x0f_current_actionB\x05\n\x03_idB\x0b\n\t_instanceB\x12\n\x10_instance_statusB\x0f\n\r_last_attemptB\x07\n\x05_nameB\x1e\n\x1c_preserved_state_from_configB\x1e\n\x1c_preserved_state_from_policyB%\n#_properties_from_flexibility_policyB\n\n\x08_version\"\xa6\x02\n\x1dManagedInstanceInstanceHealth\x12&\n\x15\x64\x65tailed_health_state\x18\x9d\xd0\xb4\xf3\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tH\x01\x88\x01\x01\"\x92\x01\n\x13\x44\x65tailedHealthState\x12#\n\x1fUNDEFINED_DETAILED_HEALTH_STATE\x10\x00\x12\x10\n\x08\x44RAINING\x10\xea\xd5\x8c\xe5\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12\x0f\n\x07TIMEOUT\x10\xc1\xb2\xeb\xe3\x01\x12\x11\n\tUNHEALTHY\x10\xc4\xb9\xad\xdc\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\x42\x18\n\x16_detailed_health_stateB\x0f\n\r_health_check\"{\n\x1aManagedInstanceLastAttempt\x12R\n\x06\x65rrors\x18\xeb\xde\xd5\x96\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.ManagedInstanceLastAttemptErrorsH\x00\x88\x01\x01\x42\t\n\x07_errors\"W\n ManagedInstanceLastAttemptErrors\x12\x33\n\x06\x65rrors\x18\xeb\xde\xd5\x96\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Errors\"_\n.ManagedInstancePropertiesFromFlexibilityPolicy\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_machine_type\"q\n\x16ManagedInstanceVersion\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_instance_templateB\x07\n\x05_name\"\x88\x01\n\x08Metadata\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x30\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1e.google.cloud.compute.v1.Items\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_fingerprintB\x07\n\x05_kind\"\x8f\x02\n\x0eMetadataFilter\x12L\n\rfilter_labels\x18\xa6\xf5\xe8\x92\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.MetadataFilterLabelMatch\x12%\n\x15\x66ilter_match_criteria\x18\xc0\xd0\xb6r \x01(\tH\x00\x88\x01\x01\"n\n\x13\x46ilterMatchCriteria\x12#\n\x1fUNDEFINED_FILTER_MATCH_CRITERIA\x10\x00\x12\x10\n\tMATCH_ALL\x10\xe7\xe7\x92V\x12\x10\n\tMATCH_ANY\x10\xb2\xe8\x92V\x12\x0e\n\x07NOT_SET\x10\xb6\x99\x84NB\x18\n\x16_filter_match_criteria\"Z\n\x18MetadataFilterLabelMatch\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\x8b\x02\n\x12MoveAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12l\n®ion_addresses_move_request_resource\x18\xc4\xb0\x88\xc3\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.RegionAddressesMoveRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n\x16MoveDiskProjectRequest\x12U\n\x1a\x64isk_move_request_resource\x18\xca\xc2\xa0\x95\x01 \x01(\x0b\x32(.google.cloud.compute.v1.DiskMoveRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x90\x01\n\x19MoveFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12&\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tB\x0f\xe0\x41\x02\xf2G\tparent_id\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf0\x01\n\x18MoveGlobalAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12l\n&global_addresses_move_request_resource\x18\xf3\xf1\xb1\x90\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.GlobalAddressesMoveRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc9\x01\n\x1aMoveInstanceProjectRequest\x12]\n\x1einstance_move_request_resource\x18\xc2\xbc\xce\x94\x01 \x01(\x0b\x32,.google.cloud.compute.v1.InstanceMoveRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"I\n\tNamedPort\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_port\"\x88\x01\n\tNatIpInfo\x12S\n\x14nat_ip_info_mappings\x18\x9c\x80\x8es \x03(\x0b\x32\x32.google.cloud.compute.v1.NatIpInfoNatIpInfoMapping\x12\x19\n\x08nat_name\x18\xe9\xad\xf8\xca\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_nat_name\"\xf2\x01\n\x19NatIpInfoNatIpInfoMapping\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06nat_ip\x18\x85\xd2\x88\n \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05usage\x18\xa1\xfb\x99\x35 \x01(\tH\x02\x88\x01\x01\"5\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\n\n\x04\x41UTO\x10\xaf\xab{\x12\r\n\x06MANUAL\x10\xc6\xb7\xf7\x38\";\n\x05Usage\x12\x13\n\x0fUNDEFINED_USAGE\x10\x00\x12\r\n\x06IN_USE\x10\xcd\xce\xa5\x08\x12\x0e\n\x06UNUSED\x10\xd6\xf3\xfb\xab\x01\x42\x07\n\x05_modeB\t\n\x07_nat_ipB\x08\n\x06_usage\"J\n\x11NatIpInfoResponse\x12\x35\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32\".google.cloud.compute.v1.NatIpInfo\"\xed\t\n\x07Network\x12\x1b\n\x0bI_pv4_range\x18\xb6\xb0\x9f\x1c \x01(\tH\x00\x88\x01\x01\x12\'\n\x17\x61uto_create_subnetworks\x18\x92\xc8\x92z \x01(\x08H\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12)\n\x18\x65nable_ula_internal_ipv6\x18\x98\x8f\x88\xca\x01 \x01(\x08H\x04\x88\x01\x01\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tH\x05\x88\x01\x01\x12\x1d\n\rgateway_i_pv4\x18\xdd\xd8\x99U \x01(\tH\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12$\n\x13internal_ipv6_range\x18\xa7\xcf\xa6\x84\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\t\x88\x01\x01\x12\x12\n\x03mtu\x18\xae\xcf\x06 \x01(\x05H\n\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0b\x88\x01\x01\x12\x39\n)network_firewall_policy_enforcement_order\x18\xd0\x82\x8d\x03 \x01(\tH\x0c\x88\x01\x01\x12\x1f\n\x0fnetwork_profile\x18\x98\xf9\xc5R \x01(\tH\r\x88\x01\x01\x12>\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32&.google.cloud.compute.v1.NetworkParamsH\x0e\x88\x01\x01\x12<\n\x08peerings\x18\xb3\xaa\xa9! \x03(\x0b\x32\'.google.cloud.compute.v1.NetworkPeering\x12N\n\x0erouting_config\x18\xdb\xa9\xd3\xf9\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkRoutingConfigH\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x11\x88\x01\x01\x12\x17\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\t\"\xa0\x01\n%NetworkFirewallPolicyEnforcementOrder\x12\x37\n3UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER\x10\x00\x12\x1d\n\x16\x41\x46TER_CLASSIC_FIREWALL\x10\xd0\xfc\xdaI\x12\x1f\n\x17\x42\x45\x46ORE_CLASSIC_FIREWALL\x10\xed\xed\xb1\xa1\x01\x42\x0e\n\x0c_I_pv4_rangeB\x1a\n\x18_auto_create_subnetworksB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x1b\n\x19_enable_ula_internal_ipv6B\x12\n\x10_firewall_policyB\x10\n\x0e_gateway_i_pv4B\x05\n\x03_idB\x16\n\x14_internal_ipv6_rangeB\x07\n\x05_kindB\x06\n\x04_mtuB\x07\n\x05_nameB,\n*_network_firewall_policy_enforcement_orderB\x12\n\x10_network_profileB\t\n\x07_paramsB\x11\n\x0f_routing_configB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_id\"\xa7\x06\n\x11NetworkAttachment\x12]\n\x14\x63onnection_endpoints\x18\xdd\xa2\xbe\x9b\x01 \x03(\x0b\x32;.google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint\x12&\n\x15\x63onnection_preference\x18\xdc\xf9\xa4\x88\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12 \n\x15producer_accept_lists\x18\xab\x9a\xda` \x03(\t\x12 \n\x15producer_reject_lists\x18\x82\xfd\xfa\x01 \x03(\t\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\n\x88\x01\x01\x12\x17\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\t\"|\n\x14\x43onnectionPreference\x12#\n\x1fUNDEFINED_CONNECTION_PREFERENCE\x10\x00\x12\x17\n\x10\x41\x43\x43\x45PT_AUTOMATIC\x10\x94\xf7\xf0#\x12\x15\n\rACCEPT_MANUAL\x10\xdd\xed\xf1\xb1\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x42\x18\n\x16_connection_preferenceB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_id\"\xbb\x03\n\x1fNetworkAttachmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12U\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x43.google.cloud.compute.v1.NetworkAttachmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x63\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworkAttachmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x87\x04\n\"NetworkAttachmentConnectedEndpoint\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x11project_id_or_num\x18\xa8\x8a\xe5\xa6\x01 \x01(\tH\x02\x88\x01\x01\x12#\n\x18secondary_ip_cidr_ranges\x18\x94\xb2\xf0\x37 \x03(\t\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x04\x88\x01\x01\x12&\n\x15subnetwork_cidr_range\x18\xa3\xdb\xdf\xb6\x01 \x01(\tH\x05\x88\x01\x01\"\x94\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x12\x17\n\x0fNEEDS_ATTENTION\x10\xbc\x8b\xa2\xa4\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\r\n\x0b_ip_addressB\x0f\n\r_ipv6_addressB\x14\n\x12_project_id_or_numB\t\n\x07_statusB\r\n\x0b_subnetworkB\x18\n\x16_subnetwork_cidr_range\"\xb3\x02\n\x15NetworkAttachmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.NetworkAttachment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x1cNetworkAttachmentsScopedList\x12K\n\x13network_attachments\x18\x9f\xde\xd6\xf8\x01 \x03(\x0b\x32*.google.cloud.compute.v1.NetworkAttachment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xc4\x03\n\x1aNetworkEdgeSecurityService\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_security_policyB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_id\"\x8e\x04\n(NetworkEdgeSecurityServiceAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12^\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32L.google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1al\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xce\x01\n%NetworkEdgeSecurityServicesScopedList\x12^\n\x1enetwork_edge_security_services\x18\xac\xcb\xf8\x10 \x03(\x0b\x32\x33.google.cloud.compute.v1.NetworkEdgeSecurityService\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x9e\x03\n\x0fNetworkEndpoint\x12Q\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32\x39.google.cloud.compute.v1.NetworkEndpoint.AnnotationsEntry\x12\'\n\x17\x63lient_destination_port\x18\x86\x88\x82; \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04\x66qdn\x18\x95\xa5\xc0\x01 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x03\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x05\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x1a\n\x18_client_destination_portB\x07\n\x05_fqdnB\x0b\n\t_instanceB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_addressB\x07\n\x05_port\"\x89\x0b\n\x14NetworkEndpointGroup\x12V\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32>.google.cloud.compute.v1.NetworkEndpointGroup.AnnotationsEntry\x12S\n\napp_engine\x18\xa0\x8c\xc0\xa2\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.NetworkEndpointGroupAppEngineH\x00\x88\x01\x01\x12[\n\x0e\x63loud_function\x18\xa2\xe5\xf3\xf7\x01 \x01(\x0b\x32:.google.cloud.compute.v1.NetworkEndpointGroupCloudFunctionH\x01\x88\x01\x01\x12P\n\tcloud_run\x18\x81\xcb\xfa\x34 \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworkEndpointGroupCloudRunH\x02\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12\x1d\n\x0c\x64\x65\x66\x61ult_port\x18\xbf\xf7\xf0\xc9\x01 \x01(\x05H\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\t\x88\x01\x01\x12%\n\x15network_endpoint_type\x18\xd3\xc6\xb4\x38 \x01(\tH\n\x88\x01\x01\x12N\n\x08psc_data\x18\xc9\xdb\xa6\" \x01(\x0b\x32\x34.google.cloud.compute.v1.NetworkEndpointGroupPscDataH\x0b\x88\x01\x01\x12#\n\x12psc_target_service\x18\xe6\xc2\xaa\x80\x01 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\r\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0e\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05H\x0f\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x10\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x11\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8a\x02\n\x13NetworkEndpointType\x12#\n\x1fUNDEFINED_NETWORK_ENDPOINT_TYPE\x10\x00\x12\x11\n\tGCE_VM_IP\x10\xd9\xed\xd0\xbf\x01\x12\x16\n\x0eGCE_VM_IP_PORT\x10\xa7\xe4\xa5\xef\x01\x12\x18\n\x11GCE_VM_IP_PORTMAP\x10\xb5\xe3\xf0\n\x12\x1a\n\x12INTERNET_FQDN_PORT\x10\xed\xd0\xdb\xc0\x01\x12\x18\n\x10INTERNET_IP_PORT\x10\x9b\xdb\xe5\xe3\x01\x12\x1f\n\x17NON_GCP_PRIVATE_IP_PORT\x10\xe0\x93\xb7\xa0\x01\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x12\n\nSERVERLESS\x10\xdc\xc6\xfd\x80\x01\x42\r\n\x0b_app_engineB\x11\n\x0f_cloud_functionB\x0c\n\n_cloud_runB\x15\n\x13_creation_timestampB\x0f\n\r_default_portB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\x18\n\x16_network_endpoint_typeB\x0b\n\t_psc_dataB\x15\n\x13_psc_target_serviceB\t\n\x07_regionB\x0c\n\n_self_linkB\x07\n\x05_sizeB\r\n\x0b_subnetworkB\x07\n\x05_zone\"\xdd\x03\n\"NetworkEndpointGroupAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12X\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x46.google.cloud.compute.v1.NetworkEndpointGroupAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x66\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12G\n\x05value\x18\x02 \x01(\x0b\x32\x38.google.cloud.compute.v1.NetworkEndpointGroupsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x92\x01\n\x1dNetworkEndpointGroupAppEngine\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08url_mask\x18\xbc\x8f\xa4\x31 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_serviceB\x0b\n\t_url_maskB\n\n\x08_version\"r\n!NetworkEndpointGroupCloudFunction\x12\x19\n\x08\x66unction\x18\xd8\xe7\xbd\x92\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08url_mask\x18\xbc\x8f\xa4\x31 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_functionB\x0b\n\t_url_mask\"\x87\x01\n\x1cNetworkEndpointGroupCloudRun\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03tag\x18\x9a\xff\x06 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x08url_mask\x18\xbc\x8f\xa4\x31 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_serviceB\x06\n\x04_tagB\x0b\n\t_url_mask\"\xb9\x02\n\x18NetworkEndpointGroupList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\x03\n\x1bNetworkEndpointGroupPscData\x12%\n\x14\x63onsumer_psc_address\x18\xac\xad\xeb\xd7\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\rproducer_port\x18\x8e\xda\xc1\xc3\x01 \x01(\x05H\x01\x88\x01\x01\x12\"\n\x11psc_connection_id\x18\xdd\xa5\xa3\x8b\x01 \x01(\x04H\x02\x88\x01\x01\x12%\n\x15psc_connection_status\x18\xb4\xc9\xe7W \x01(\tH\x03\x88\x01\x01\"\xb0\x01\n\x13PscConnectionStatus\x12#\n\x1fUNDEFINED_PSC_CONNECTION_STATUS\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x12\x17\n\x0fNEEDS_ATTENTION\x10\xbc\x8b\xa2\xa4\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\x17\n\x15_consumer_psc_addressB\x10\n\x0e_producer_portB\x14\n\x12_psc_connection_idB\x18\n\x16_psc_connection_status\"u\n+NetworkEndpointGroupsAttachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"u\n+NetworkEndpointGroupsDetachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"\xa4\x01\n)NetworkEndpointGroupsListEndpointsRequest\x12\x1e\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x01(\tH\x00\x88\x01\x01\"E\n\x0cHealthStatus\x12\x1b\n\x17UNDEFINED_HEALTH_STATUS\x10\x00\x12\x0b\n\x04SHOW\x10\xfd\xa5\x9b\x01\x12\x0b\n\x04SKIP\x10\xff\xba\x9b\x01\x42\x10\n\x0e_health_status\"\xab\x02\n)NetworkEndpointGroupsListNetworkEndpoints\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12J\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x38.google.cloud.compute.v1.NetworkEndpointWithHealthStatus\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\xbb\x01\n\x1fNetworkEndpointGroupsScopedList\x12Q\n\x17network_endpoint_groups\x18\xad\x97\xff\r \x03(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroup\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xcf\x01\n\x1fNetworkEndpointWithHealthStatus\x12K\n\x07healths\x18\x97\x93\xad{ \x03(\x0b\x32\x37.google.cloud.compute.v1.HealthStatusForNetworkEndpoint\x12J\n\x10network_endpoint\x18\x86\x91\x8a\x1b \x01(\x0b\x32(.google.cloud.compute.v1.NetworkEndpointH\x00\x88\x01\x01\x42\x13\n\x11_network_endpoint\"\xda\x03\n#NetworkFirewallPolicyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Y\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32G.google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.FirewallPoliciesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\t\n\x10NetworkInterface\x12@\n\x0e\x61\x63\x63\x65ss_configs\x18\x96\xbb\xfa\x34 \x03(\x0b\x32%.google.cloud.compute.v1.AccessConfig\x12\x41\n\x0f\x61lias_ip_ranges\x18\xbf\x83\xdcN \x03(\x0b\x32%.google.cloud.compute.v1.AliasIpRange\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12+\n\x1binternal_ipv6_prefix_length\x18\x9d\x83\x99\x61 \x01(\x05H\x01\x88\x01\x01\x12\x46\n\x13ipv6_access_configs\x18\xee\xe5\xc4\xe6\x01 \x03(\x0b\x32%.google.cloud.compute.v1.AccessConfig\x12!\n\x10ipv6_access_type\x18\xdd\xf5\xd1\xf0\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12\"\n\x12network_attachment\x18\xd4\x97\x8fk \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0bnetwork_i_p\x18\x89\xb1\xe5\x62 \x01(\tH\x08\x88\x01\x01\x12\x18\n\x08nic_type\x18\x91\xc6\xc2\x1c \x01(\tH\t\x88\x01\x01\x12\x1c\n\x0bqueue_count\x18\xe1\xf8\x97\xf0\x01 \x01(\x05H\n\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x0b\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x0c\x88\x01\x01\"y\n\x0eIpv6AccessType\x12\x1e\n\x1aUNDEFINED_IPV6_ACCESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12$\n\x1cUNSPECIFIED_IPV6_ACCESS_TYPE\x10\xa5\xf6\xa4\x95\x01\"\x89\x01\n\x07NicType\x12\x16\n\x12UNDEFINED_NIC_TYPE\x10\x00\x12\x0c\n\x05GVNIC\x10\x99\x95\xc3 \x12\x0b\n\x04IDPF\x10\xd1\xf0\x88\x01\x12\x0c\n\x05IRDMA\x10\x8f\x86\xac!\x12\x0c\n\x05MRDMA\x10\x93\xc2\x8d#\x12\x1b\n\x14UNSPECIFIED_NIC_TYPE\x10\xd9\xbe\x92 \x12\x12\n\nVIRTIO_NET\x10\xd9\xb6\xcb\xd7\x01\"{\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\x12\x1e\n\x16UNSPECIFIED_STACK_TYPE\x10\xd9\xd1\x91\x8e\x01\x42\x0e\n\x0c_fingerprintB\x1e\n\x1c_internal_ipv6_prefix_lengthB\x13\n\x11_ipv6_access_typeB\x0f\n\r_ipv6_addressB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\x15\n\x13_network_attachmentB\x0e\n\x0c_network_i_pB\x0b\n\t_nic_typeB\x0e\n\x0c_queue_countB\r\n\x0b_stack_typeB\r\n\x0b_subnetwork\"\x9f\x02\n\x0bNetworkList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.Network\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x01\n\rNetworkParams\x12\x62\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32?.google.cloud.compute.v1.NetworkParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xce\x08\n\x0eNetworkPeering\x12\"\n\x12\x61uto_create_routes\x18\xdd\xe2\xb2\x1b \x01(\x08H\x00\x88\x01\x01\x12[\n\x11\x63onnection_status\x18\xf3\xf0\xd1\xfa\x01 \x01(\x0b\x32\x37.google.cloud.compute.v1.NetworkPeeringConnectionStatusH\x01\x88\x01\x01\x12&\n\x16\x65xchange_subnet_routes\x18\xd0\xca\xc6\x0c \x01(\x08H\x02\x88\x01\x01\x12$\n\x14\x65xport_custom_routes\x18\x8d\xa5\xdf\x1c \x01(\x08H\x03\x88\x01\x01\x12\x33\n#export_subnet_routes_with_public_ip\x18\xe2\xea\xd9. \x01(\x08H\x04\x88\x01\x01\x12$\n\x14import_custom_routes\x18\xbe\xf1\xb3^ \x01(\x08H\x05\x88\x01\x01\x12\x33\n#import_subnet_routes_with_public_ip\x18\x91\x8e\xf0\x06 \x01(\x08H\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x08\x88\x01\x01\x12\x18\n\x08peer_mtu\x18\xd1\x8e\x97! \x01(\x05H\t\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\n\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x0b\x88\x01\x01\x12\x1d\n\rstate_details\x18\x94\xf9\xc8- \x01(\tH\x0c\x88\x01\x01\x12\x1f\n\x0fupdate_strategy\x18\xa9\xdc\xf5\x02 \x01(\tH\r\x88\x01\x01\"I\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\">\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\"j\n\x0eUpdateStrategy\x12\x1d\n\x19UNDEFINED_UPDATE_STRATEGY\x10\x00\x12\x10\n\tCONSENSUS\x10\xd7\xf8\xfc`\x12\x12\n\x0bINDEPENDENT\x10\xda\x96\xc8<\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x15\n\x13_auto_create_routesB\x14\n\x12_connection_statusB\x19\n\x17_exchange_subnet_routesB\x17\n\x15_export_custom_routesB&\n$_export_subnet_routes_with_public_ipB\x17\n\x15_import_custom_routesB&\n$_import_subnet_routes_with_public_ipB\x07\n\x05_nameB\n\n\x08_networkB\x0b\n\t_peer_mtuB\r\n\x0b_stack_typeB\x08\n\x06_stateB\x10\n\x0e_state_detailsB\x12\n\x10_update_strategy\"\xcc\x03\n\x1eNetworkPeeringConnectionStatus\x12g\n\x0f\x63onsensus_state\x18\xc9\xbd\x8b\xb5\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusStateH\x00\x88\x01\x01\x12r\n\x15traffic_configuration\x18\xb4\xd4\xb6? \x01(\x0b\x32K.google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfigurationH\x01\x88\x01\x01\x12\x1f\n\x0fupdate_strategy\x18\xa9\xdc\xf5\x02 \x01(\tH\x02\x88\x01\x01\"j\n\x0eUpdateStrategy\x12\x1d\n\x19UNDEFINED_UPDATE_STRATEGY\x10\x00\x12\x10\n\tCONSENSUS\x10\xd7\xf8\xfc`\x12\x12\n\x0bINDEPENDENT\x10\xda\x96\xc8<\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x12\n\x10_consensus_stateB\x18\n\x16_traffic_configurationB\x12\n\x10_update_strategy\"\xe6\x03\n,NetworkPeeringConnectionStatusConsensusState\x12\x1e\n\rdelete_status\x18\x86\xc2\xc2\xe6\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\rupdate_status\x18\xa8\xa0\xeb~ \x01(\tH\x01\x88\x01\x01\"\xa8\x01\n\x0c\x44\x65leteStatus\x12\x1b\n\x17UNDEFINED_DELETE_STATUS\x10\x00\x12\x1b\n\x13\x44\x45LETE_ACKNOWLEDGED\x10\xdc\xae\x8e\x9b\x01\x12!\n\x19\x44\x45LETE_STATUS_UNSPECIFIED\x10\xde\x8a\xc5\xbc\x01\x12\x1d\n\x16LOCAL_DELETE_REQUESTED\x10\xae\xb8\xb3l\x12\x1c\n\x15PEER_DELETE_REQUESTED\x10\xf7\xd5\xab^\"\xa7\x01\n\x0cUpdateStatus\x12\x1b\n\x17UNDEFINED_UPDATE_STATUS\x10\x00\x12\x0e\n\x07IN_SYNC\x10\xf5\xe2\x8a\x01\x12\"\n\x1bPENDING_LOCAL_ACKNOWLEDMENT\x10\xc0\xcd\xd1m\x12$\n\x1cPENDING_PEER_ACKNOWLEDGEMENT\x10\xc5\x8d\xae\xc8\x01\x12 \n\x19UPDATE_STATUS_UNSPECIFIED\x10\x80\xa3\xcf\x39\x42\x10\n\x0e_delete_statusB\x10\n\x0e_update_status\"\xad\x04\n2NetworkPeeringConnectionStatusTrafficConfiguration\x12-\n\x1c\x65xport_custom_routes_to_peer\x18\xf4\x99\xca\x88\x01 \x01(\x08H\x00\x88\x01\x01\x12;\n+export_subnet_routes_with_public_ip_to_peer\x18\xc9\x95\xfe\x03 \x01(\x08H\x01\x88\x01\x01\x12/\n\x1eimport_custom_routes_from_peer\x18\x96\xd5\x87\xbe\x01 \x01(\x08H\x02\x88\x01\x01\x12=\n-import_subnet_routes_with_public_ip_from_peer\x18\xa9\xda\xf5o \x01(\x08H\x03\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x04\x88\x01\x01\"I\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\nB\x1f\n\x1d_export_custom_routes_to_peerB.\n,_export_subnet_routes_with_public_ip_to_peerB!\n\x1f_import_custom_routes_from_peerB0\n._import_subnet_routes_with_public_ip_from_peerB\r\n\x0b_stack_type\"\xce\x01\n\x18NetworkPerformanceConfig\x12+\n\x1btotal_egress_bandwidth_tier\x18\xff\x9f\x85> \x01(\tH\x00\x88\x01\x01\"e\n\x18TotalEgressBandwidthTier\x12)\n%UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER\x10\x00\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\x12\x0e\n\x06TIER_1\x10\x94\xca\xf1\x9b\x01\x42\x1e\n\x1c_total_egress_bandwidth_tier\"\x8a\x04\n\x0eNetworkProfile\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12P\n\x08\x66\x65\x61tures\x18\xbd\xc8\xb3u \x01(\x0b\x32\x36.google.cloud.compute.v1.NetworkProfileNetworkFeaturesH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12J\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\x0b\x32/.google.cloud.compute.v1.NetworkProfileLocationH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0b\n\t_featuresB\x05\n\x03_idB\x07\n\x05_kindB\x0b\n\t_locationB\x07\n\x05_nameB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x07\n\x05_zone\"\x92\x01\n\x16NetworkProfileLocation\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05scope\x18\xd4\xfc\x8c\x34 \x01(\tH\x01\x88\x01\x01\"8\n\x05Scope\x12\x13\n\x0fUNDEFINED_SCOPE\x10\x00\x12\r\n\x06REGION\x10\xf4\xb5\xec~\x12\x0b\n\x04ZONE\x10\xac\xb7\xa8\x01\x42\x07\n\x05_nameB\x08\n\x06_scope\"\xfe(\n\x1dNetworkProfileNetworkFeatures\x12\x1c\n\x10\x61\x64\x64ress_purposes\x18\x80\xde\xbd\xce\x01 \x03(\t\x12&\n\x15\x61llow_alias_ip_ranges\x18\xc9\x91\xb1\xda\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16\x61llow_auto_mode_subnet\x18\x9f\x82\xc9H \x01(\tH\x01\x88\x01\x01\x12\'\n\x17\x61llow_class_d_firewalls\x18\x9b\xe3\xe0> \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0f\x61llow_cloud_nat\x18\xa1\xd5\xc1y \x01(\tH\x03\x88\x01\x01\x12#\n\x12\x61llow_cloud_router\x18\xc9\xcb\x8d\xd7\x01 \x01(\tH\x04\x88\x01\x01\x12,\n\x1c\x61llow_default_nic_attachment\x18\xae\xee\xda\x19 \x01(\tH\x05\x88\x01\x01\x12(\n\x18\x61llow_external_ip_access\x18\xbe\xb9\xdc> \x01(\tH\x06\x88\x01\x01\x12#\n\x12\x61llow_interconnect\x18\xc4\x93\xe1\x85\x01 \x01(\tH\x07\x88\x01\x01\x12$\n\x13\x61llow_ip_forwarding\x18\x9f\xdd\xe8\xee\x01 \x01(\tH\x08\x88\x01\x01\x12$\n\x14\x61llow_load_balancing\x18\xb6\x98\xc1j \x01(\tH\t\x88\x01\x01\x12/\n\x1f\x61llow_multi_nic_in_same_network\x18\xfc\xb4\x8a* \x01(\tH\n\x88\x01\x01\x12\x1a\n\tallow_ncc\x18\xd8\xde\xc6\xb1\x01 \x01(\tH\x0b\x88\x01\x01\x12\'\n\x17\x61llow_network_migration\x18\x87\xa7\x9fr \x01(\tH\x0c\x88\x01\x01\x12\'\n\x16\x61llow_packet_mirroring\x18\x82\xee\x9f\xf4\x01 \x01(\tH\r\x88\x01\x01\x12,\n\x1b\x61llow_private_google_access\x18\xf8\xff\xd5\xb2\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1a\n\tallow_psc\x18\xca\xf1\xc6\xb1\x01 \x01(\tH\x0f\x88\x01\x01\x12*\n\x1a\x61llow_same_network_unicast\x18\xfb\xa8\xf1O \x01(\tH\x10\x88\x01\x01\x12#\n\x13\x61llow_static_routes\x18\xc5\x9f\xabX \x01(\tH\x11\x88\x01\x01\x12$\n\x14\x61llow_sub_interfaces\x18\xef\xb2\xf0u \x01(\tH\x12\x88\x01\x01\x12!\n\x11\x61llow_vpc_peering\x18\xf4\xcb\x83\x37 \x01(\tH\x13\x88\x01\x01\x12\x1a\n\tallow_vpn\x18\xfe\x9d\xc7\xb1\x01 \x01(\tH\x14\x88\x01\x01\x12\x1a\n\x0finterface_types\x18\xf3\xb3\xaaK \x03(\t\x12\x1b\n\x0fsubnet_purposes\x18\xb7\x9b\xd8\x8f\x01 \x03(\t\x12\x1e\n\x12subnet_stack_types\x18\xa0\xec\xb7\xf8\x01 \x03(\t\x12\x1f\n\x13subnetwork_purposes\x18\xc6\xa0\xf1\xfb\x01 \x03(\t\x12\"\n\x16subnetwork_stack_types\x18\xb1\xea\xa5\xd0\x01 \x03(\t\x12\x17\n\x07unicast\x18\xaf\x90\x91w \x01(\tH\x15\x88\x01\x01\"\xf3\x01\n\x0f\x41\x64\x64ressPurposes\x12\x1e\n\x1aUNDEFINED_ADDRESS_PURPOSES\x10\x00\x12\x14\n\x0c\x44NS_RESOLVER\x10\xfc\xdc\x83\xe3\x01\x12\x13\n\x0cGCE_ENDPOINT\x10\xab\xc4\xf5m\x12\x1a\n\x12IPSEC_INTERCONNECT\x10\x83\xd2\xaa\xa2\x01\x12\x0f\n\x08NAT_AUTO\x10\xad\xb4\x85N\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x12\n\nSERVERLESS\x10\xdc\xc6\xfd\x80\x01\x12\x1f\n\x17SHARED_LOADBALANCER_VIP\x10\xd4\xd3\xb3\x8c\x01\x12\x13\n\x0bVPC_PEERING\x10\xaa\xf3\x8e\xbf\x01\"{\n\x12\x41llowAliasIpRanges\x12#\n\x1fUNDEFINED_ALLOW_ALIAS_IP_RANGES\x10\x00\x12\x1f\n\x17\x41LIAS_IP_RANGES_ALLOWED\x10\xe8\x9d\xd5\xdd\x01\x12\x1f\n\x17\x41LIAS_IP_RANGES_BLOCKED\x10\xac\xde\x80\x86\x01\"~\n\x13\x41llowAutoModeSubnet\x12$\n UNDEFINED_ALLOW_AUTO_MODE_SUBNET\x10\x00\x12 \n\x18\x41UTO_MODE_SUBNET_ALLOWED\x10\xb2\xac\xbb\xba\x01\x12\x1f\n\x18\x41UTO_MODE_SUBNET_BLOCKED\x10\xf6\xec\xe6\x62\"\x82\x01\n\x14\x41llowClassDFirewalls\x12%\n!UNDEFINED_ALLOW_CLASS_D_FIREWALLS\x10\x00\x12!\n\x19\x43LASS_D_FIREWALLS_ALLOWED\x10\xfa\xcf\x85\xa6\x01\x12 \n\x19\x43LASS_D_FIREWALLS_BLOCKED\x10\xbe\x90\xb1N\"b\n\rAllowCloudNat\x12\x1d\n\x19UNDEFINED_ALLOW_CLOUD_NAT\x10\x00\x12\x18\n\x11\x43LOUD_NAT_ALLOWED\x10\xa0\xba\xa2u\x12\x18\n\x11\x43LOUD_NAT_BLOCKED\x10\xe4\xfa\xcd\x1d\"o\n\x10\x41llowCloudRouter\x12 \n\x1cUNDEFINED_ALLOW_CLOUD_ROUTER\x10\x00\x12\x1c\n\x14\x43LOUD_ROUTER_ALLOWED\x10\xfc\xc3\x9d\xae\x01\x12\x1b\n\x14\x43LOUD_ROUTER_BLOCKED\x10\xc0\x84\xc9V\"\x96\x01\n\x19\x41llowDefaultNicAttachment\x12*\n&UNDEFINED_ALLOW_DEFAULT_NIC_ATTACHMENT\x10\x00\x12%\n\x1e\x44\x45\x46\x41ULT_NIC_ATTACHMENT_ALLOWED\x10\x81\x9c\xc2\x05\x12&\n\x1e\x44\x45\x46\x41ULT_NIC_ATTACHMENT_BLOCKED\x10\xc5\xdc\xed\xad\x01\"\x86\x01\n\x15\x41llowExternalIpAccess\x12&\n\"UNDEFINED_ALLOW_EXTERNAL_IP_ACCESS\x10\x00\x12!\n\x1a\x45XTERNAL_IP_ACCESS_ALLOWED\x10\xd1\x98\x9d\x34\x12\"\n\x1a\x45XTERNAL_IP_ACCESS_BLOCKED\x10\x95\xd9\xc8\xdc\x01\"p\n\x11\x41llowInterconnect\x12 \n\x1cUNDEFINED_ALLOW_INTERCONNECT\x10\x00\x12\x1b\n\x14INTERCONNECT_ALLOWED\x10\xd7\xa5\xd3M\x12\x1c\n\x14INTERCONNECT_BLOCKED\x10\x9b\xe6\xfe\xf5\x01\"s\n\x11\x41llowIpForwarding\x12!\n\x1dUNDEFINED_ALLOW_IP_FORWARDING\x10\x00\x12\x1c\n\x15IP_FORWARDING_ALLOWED\x10\xde\xd8\xe1H\x12\x1d\n\x15IP_FORWARDING_BLOCKED\x10\xa2\x99\x8d\xf1\x01\"w\n\x12\x41llowLoadBalancing\x12\"\n\x1eUNDEFINED_ALLOW_LOAD_BALANCING\x10\x00\x12\x1d\n\x16LOAD_BALANCING_ALLOWED\x10\xa9\xf1\xc5\r\x12\x1e\n\x16LOAD_BALANCING_BLOCKED\x10\xed\xb1\xf1\xb5\x01\"\xa1\x01\n\x1a\x41llowMultiNicInSameNetwork\x12-\n)UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_NETWORK\x10\x00\x12)\n!MULTI_NIC_IN_SAME_NETWORK_ALLOWED\x10\xdb\xfb\x96\xda\x01\x12)\n!MULTI_NIC_IN_SAME_NETWORK_BLOCKED\x10\x9f\xbc\xc2\x82\x01\"M\n\x08\x41llowNcc\x12\x17\n\x13UNDEFINED_ALLOW_NCC\x10\x00\x12\x13\n\x0bNCC_ALLOWED\x10\xf7\xa6\xe5\xde\x01\x12\x13\n\x0bNCC_BLOCKED\x10\xbb\xe7\x90\x87\x01\"\x83\x01\n\x15\x41llowNetworkMigration\x12%\n!UNDEFINED_ALLOW_NETWORK_MIGRATION\x10\x00\x12 \n\x19NETWORK_MIGRATION_ALLOWED\x10\x86\xa4\xee\x06\x12!\n\x19NETWORK_MIGRATION_BLOCKED\x10\xca\xe4\x99\xaf\x01\"\x7f\n\x14\x41llowPacketMirroring\x12$\n UNDEFINED_ALLOW_PACKET_MIRRORING\x10\x00\x12\x1f\n\x18PACKET_MIRRORING_ALLOWED\x10\xf5\xd1\x88,\x12 \n\x18PACKET_MIRRORING_BLOCKED\x10\xb9\x92\xb4\xd4\x01\"\x91\x01\n\x18\x41llowPrivateGoogleAccess\x12)\n%UNDEFINED_ALLOW_PRIVATE_GOOGLE_ACCESS\x10\x00\x12$\n\x1dPRIVATE_GOOGLE_ACCESS_ALLOWED\x10\x97\xe5\xa3i\x12$\n\x1dPRIVATE_GOOGLE_ACCESS_BLOCKED\x10\xdb\xa5\xcf\x11\"L\n\x08\x41llowPsc\x12\x17\n\x13UNDEFINED_ALLOW_PSC\x10\x00\x12\x12\n\x0bPSC_ALLOWED\x10\xe9\x95\xe7Q\x12\x13\n\x0bPSC_BLOCKED\x10\xad\xd6\x92\xfa\x01\"\x8e\x01\n\x17\x41llowSameNetworkUnicast\x12(\n$UNDEFINED_ALLOW_SAME_NETWORK_UNICAST\x10\x00\x12#\n\x1cSAME_NETWORK_UNICAST_ALLOWED\x10\xce\xa8\x95L\x12$\n\x1cSAME_NETWORK_UNICAST_BLOCKED\x10\x92\xe9\xc0\xf4\x01\"s\n\x11\x41llowStaticRoutes\x12!\n\x1dUNDEFINED_ALLOW_STATIC_ROUTES\x10\x00\x12\x1d\n\x15STATIC_ROUTES_ALLOWED\x10\x84\xaf\x86\xc3\x01\x12\x1c\n\x15STATIC_ROUTES_BLOCKED\x10\xc8\xef\xb1k\"u\n\x12\x41llowSubInterfaces\x12\"\n\x1eUNDEFINED_ALLOW_SUB_INTERFACES\x10\x00\x12\x1c\n\x15SUBINTERFACES_ALLOWED\x10\xc3\xb5\xd5K\x12\x1d\n\x15SUBINTERFACES_BLOCKED\x10\x87\xf6\x80\xf4\x01\"j\n\x0f\x41llowVpcPeering\x12\x1f\n\x1bUNDEFINED_ALLOW_VPC_PEERING\x10\x00\x12\x1a\n\x13VPC_PEERING_ALLOWED\x10\xf3\xc7\xd6|\x12\x1a\n\x13VPC_PEERING_BLOCKED\x10\xb7\x88\x82%\"L\n\x08\x41llowVpn\x12\x17\n\x13UNDEFINED_ALLOW_VPN\x10\x00\x12\x12\n\x0bVPN_ALLOWED\x10\x9d\xda\xa9M\x12\x13\n\x0bVPN_BLOCKED\x10\xe1\x9a\xd5\xf5\x01\"\x97\x01\n\x0eInterfaceTypes\x12\x1d\n\x19UNDEFINED_INTERFACE_TYPES\x10\x00\x12\x0c\n\x05GVNIC\x10\x99\x95\xc3 \x12\x0b\n\x04IDPF\x10\xd1\xf0\x88\x01\x12\x0c\n\x05IRDMA\x10\x8f\x86\xac!\x12\x0c\n\x05MRDMA\x10\x93\xc2\x8d#\x12\x1b\n\x14UNSPECIFIED_NIC_TYPE\x10\xd9\xbe\x92 \x12\x12\n\nVIRTIO_NET\x10\xd9\xb6\xcb\xd7\x01\"w\n\x0eSubnetPurposes\x12\x1d\n\x19UNDEFINED_SUBNET_PURPOSES\x10\x00\x12&\n\x1eSUBNET_PURPOSE_CUSTOM_HARDWARE\x10\xd3\xdd\x82\x87\x01\x12\x1e\n\x16SUBNET_PURPOSE_PRIVATE\x10\xc0\xec\xe8\xc0\x01\"\xa0\x01\n\x10SubnetStackTypes\x12 \n\x1cUNDEFINED_SUBNET_STACK_TYPES\x10\x00\x12\"\n\x1bSUBNET_STACK_TYPE_IPV4_IPV6\x10\x95\x97\xe2\x13\x12\"\n\x1bSUBNET_STACK_TYPE_IPV4_ONLY\x10\xba\xfa\xec\x13\x12\"\n\x1bSUBNET_STACK_TYPE_IPV6_ONLY\x10\xf8\xdc\x93/\"\xef\x01\n\x12SubnetworkPurposes\x12!\n\x1dUNDEFINED_SUBNETWORK_PURPOSES\x10\x00\x12\x1b\n\x14GLOBAL_MANAGED_PROXY\x10\xf2\xcb\xe0p\x12#\n\x1cINTERNAL_HTTPS_LOAD_BALANCER\x10\xd9\xb6\xcev\x12\x16\n\x0ePEER_MIGRATION\x10\x91\xaa\xc7\xea\x01\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\x13\n\x0bPRIVATE_NAT\x10\xa5\xc8\xae\xaf\x01\x12\x17\n\x10PRIVATE_RFC_1918\x10\xdb\xfe\xc5y\x12\x1d\n\x16REGIONAL_MANAGED_PROXY\x10\xee\xb6\xfdH\"r\n\x14SubnetworkStackTypes\x12$\n UNDEFINED_SUBNETWORK_STACK_TYPES\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\"J\n\x07Unicast\x12\x15\n\x11UNDEFINED_UNICAST\x10\x00\x12\x13\n\x0bUNICAST_SDN\x10\xed\xc7\x96\xb5\x01\x12\x13\n\x0bUNICAST_ULL\x10\xe5\xd8\x96\xb5\x01\x42\x18\n\x16_allow_alias_ip_rangesB\x19\n\x17_allow_auto_mode_subnetB\x1a\n\x18_allow_class_d_firewallsB\x12\n\x10_allow_cloud_natB\x15\n\x13_allow_cloud_routerB\x1f\n\x1d_allow_default_nic_attachmentB\x1b\n\x19_allow_external_ip_accessB\x15\n\x13_allow_interconnectB\x16\n\x14_allow_ip_forwardingB\x17\n\x15_allow_load_balancingB\"\n _allow_multi_nic_in_same_networkB\x0c\n\n_allow_nccB\x1a\n\x18_allow_network_migrationB\x19\n\x17_allow_packet_mirroringB\x1e\n\x1c_allow_private_google_accessB\x0c\n\n_allow_pscB\x1d\n\x1b_allow_same_network_unicastB\x16\n\x14_allow_static_routesB\x17\n\x15_allow_sub_interfacesB\x14\n\x12_allow_vpc_peeringB\x0c\n\n_allow_vpnB\n\n\x08_unicast\"\xee\x02\n\x1bNetworkProfilesListResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.NetworkProfile\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xae\x06\n\x14NetworkRoutingConfig\x12&\n\x16\x62gp_always_compare_med\x18\xb6\xe2\xce\x65 \x01(\x08H\x00\x88\x01\x01\x12-\n\x1c\x62gp_best_path_selection_mode\x18\xe9\xfb\xc5\x97\x01 \x01(\tH\x01\x88\x01\x01\x12&\n\x15\x62gp_inter_region_cost\x18\xe1\xf9\xae\xdc\x01 \x01(\tH\x02\x88\x01\x01\x12\x30\n effective_bgp_always_compare_med\x18\xce\xf5\xad\x66 \x01(\x08H\x03\x88\x01\x01\x12/\n\x1f\x65\x66\x66\x65\x63tive_bgp_inter_region_cost\x18\xc9\xc0\xa1X \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0crouting_mode\x18\xfc\xba\xc8\xe2\x01 \x01(\tH\x05\x88\x01\x01\"g\n\x18\x42gpBestPathSelectionMode\x12*\n&UNDEFINED_BGP_BEST_PATH_SELECTION_MODE\x10\x00\x12\r\n\x06LEGACY\x10\xc9\xcf\xf7,\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\"b\n\x12\x42gpInterRegionCost\x12#\n\x1fUNDEFINED_BGP_INTER_REGION_COST\x10\x00\x12\x17\n\x0f\x41\x44\x44_COST_TO_MED\x10\xdc\xe7\xf6\xe9\x01\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\"L\n\x1b\x45\x66\x66\x65\x63tiveBgpInterRegionCost\x12-\n)UNDEFINED_EFFECTIVE_BGP_INTER_REGION_COST\x10\x00\"J\n\x0bRoutingMode\x12\x1a\n\x16UNDEFINED_ROUTING_MODE\x10\x00\x12\x0e\n\x06GLOBAL\x10\xa3\xef\xef\xeb\x01\x12\x0f\n\x08REGIONAL\x10\x9f\xec\x80,B\x19\n\x17_bgp_always_compare_medB\x1f\n\x1d_bgp_best_path_selection_modeB\x18\n\x16_bgp_inter_region_costB#\n!_effective_bgp_always_compare_medB\"\n _effective_bgp_inter_region_costB\x0f\n\r_routing_mode\"\x84\x02\n\x19NetworksAddPeeringRequest\x12\"\n\x12\x61uto_create_routes\x18\xdd\xe2\xb2\x1b \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12I\n\x0fnetwork_peering\x18\xaf\x8c\xec\x9c\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.NetworkPeeringH\x02\x88\x01\x01\x12\x1d\n\x0cpeer_network\x18\xd1\xe0\xdb\xee\x01 \x01(\tH\x03\x88\x01\x01\x42\x15\n\x13_auto_create_routesB\x07\n\x05_nameB\x12\n\x10_network_peeringB\x0f\n\r_peer_network\"\xd6\x01\n%NetworksGetEffectiveFirewallsResponse\x12s\n\x10\x66irewall_policys\x18\xc2\xca\xfc\xc3\x01 \x03(\x0b\x32U.google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x38\n\tfirewalls\x18\xf3\xc6\xe8\x81\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\"\xf3\x03\n.google.cloud.compute.v1.NodeTemplateAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a^\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.google.cloud.compute.v1.NodeTemplatesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa9\x02\n\x10NodeTemplateList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x37\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32%.google.cloud.compute.v1.NodeTemplate\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8e\x01\n\x1fNodeTemplateNodeTypeFlexibility\x12\x14\n\x04\x63pus\x18\xcb\xe7\xba\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tlocal_ssd\x18\xb0\xbe\xbc\xc1\x01 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x06memory\x18\x81\xfa\x8a\xfe\x01 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_cpusB\x0c\n\n_local_ssdB\t\n\x07_memory\"\xa3\x01\n\x17NodeTemplatesScopedList\x12\x41\n\x0enode_templates\x18\xbc\xa2\xed\xa8\x01 \x03(\x0b\x32%.google.cloud.compute.v1.NodeTemplate\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xc6\x04\n\x08NodeType\x12\x1d\n\x0c\x63pu_platform\x18\xaa\xea\xd1\xc3\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nguest_cpus\x18\xd2\xcb\xc8\xbb\x01 \x01(\x05H\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x0clocal_ssd_gb\x18\xca\x88\xff\x9c\x01 \x01(\x05H\x07\x88\x01\x01\x12\x18\n\x07max_vms\x18\xc1\x96\xd5\x92\x01 \x01(\x05H\x08\x88\x01\x01\x12\x19\n\tmemory_mb\x18\x93\x93\xa8\x37 \x01(\x05H\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0c\x88\x01\x01\x42\x0f\n\r_cpu_platformB\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\r\n\x0b_guest_cpusB\x05\n\x03_idB\x07\n\x05_kindB\x0f\n\r_local_ssd_gbB\n\n\x08_max_vmsB\x0c\n\n_memory_mbB\x07\n\x05_nameB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xb9\x03\n\x16NodeTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.NodeTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.NodeTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa1\x02\n\x0cNodeTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.NodeType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x97\x01\n\x13NodeTypesScopedList\x12\x39\n\nnode_types\x18\xfc\xbf\xf5\xe5\x01 \x03(\x0b\x32!.google.cloud.compute.v1.NodeType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x90\x03\n\x14NotificationEndpoint\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12Y\n\rgrpc_settings\x18\xa4\xc6\xc0\xd9\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.NotificationEndpointGrpcSettingsH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x10\n\x0e_grpc_settingsB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_link\"\xb7\x02\n NotificationEndpointGrpcSettings\x12\x1a\n\tauthority\x18\xc3\x8e\xd0\xbf\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x65ndpoint\x18\x95\xbb\x9c> \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0cpayload_name\x18\x9c\xb5\x9c\x8f\x01 \x01(\tH\x02\x88\x01\x01\x12\x43\n\x0fresend_interval\x18\xc9\xb8\x88\xe4\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x03\x88\x01\x01\x12\"\n\x12retry_duration_sec\x18\xdd\xce\x94\x37 \x01(\rH\x04\x88\x01\x01\x42\x0c\n\n_authorityB\x0b\n\t_endpointB\x0f\n\r_payload_nameB\x12\n\x10_resend_intervalB\x15\n\x13_retry_duration_sec\"\xb9\x02\n\x18NotificationEndpointList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.NotificationEndpoint\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\x0c\n\tOperation\x12$\n\x13\x63lient_operation_id\x18\xe7\x8d\xde\x8d\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08\x65nd_time\x18\xb1\xa7\xe7\x36 \x01(\tH\x03\x88\x01\x01\x12\x35\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1e.google.cloud.compute.v1.ErrorH\x04\x88\x01\x01\x12\'\n\x12http_error_message\x18\xd9\xfa\xc8` \x01(\tB\x03\xe8G\x04H\x05\x88\x01\x01\x12,\n\x16http_error_status_code\x18\xec\x84\xf8\x94\x01 \x01(\x05\x42\x03\xe8G\x03H\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12\x1c\n\x0binsert_time\x18\x93\xa9\xe8\xce\x01 \x01(\tH\x08\x88\x01\x01\x12w\n(instances_bulk_insert_operation_metadata\x18\xc1\x86\xc1* \x01(\x0b\x32=.google.cloud.compute.v1.InstancesBulkInsertOperationMetadataH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x19\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tB\x03\xe8G\x01H\x0b\x88\x01\x01\x12\"\n\x12operation_group_id\x18\xb3\xed\x93\x13 \x01(\tH\x0c\x88\x01\x01\x12\x1e\n\x0eoperation_type\x18\x92\xf6\xdaT \x01(\tH\r\x88\x01\x01\x12\x18\n\x08progress\x18\xad\x84\xd3\" \x01(\x05H\x0e\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12\x85\x01\n/set_common_instance_metadata_operation_metadata\x18\xe4\xad\xea\xe9\x01 \x01(\x0b\x32\x43.google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataH\x11\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x12\x88\x01\x01\x12\x46\n\x06status\x18\xf2\x9f\xb7V \x01(\x0e\x32).google.cloud.compute.v1.Operation.StatusB\x03\xe8G\x02H\x13\x88\x01\x01\x12\x1f\n\x0estatus_message\x18\xba\xc9\xe9\x8d\x01 \x01(\tH\x14\x88\x01\x01\x12\x19\n\ttarget_id\x18\x89\x95\x8d{ \x01(\x04H\x15\x88\x01\x01\x12\x1b\n\x0btarget_link\x18\xe8\x93\xf1\x1d \x01(\tH\x16\x88\x01\x01\x12\x14\n\x04user\x18\xcb\xd7\xdb\x01 \x01(\tH\x17\x88\x01\x01\x12\x37\n\x08warnings\x18\xd7\x88\xc1\xed\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Warnings\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x18\x88\x01\x01\"K\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44ONE\x10\x82\xb7\x80\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x42\x16\n\x14_client_operation_idB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0b\n\t_end_timeB\x08\n\x06_errorB\x15\n\x13_http_error_messageB\x19\n\x17_http_error_status_codeB\x05\n\x03_idB\x0e\n\x0c_insert_timeB+\n)_instances_bulk_insert_operation_metadataB\x07\n\x05_kindB\x07\n\x05_nameB\x15\n\x13_operation_group_idB\x11\n\x0f_operation_typeB\x0b\n\t_progressB\t\n\x07_regionB\x0c\n\n_self_linkB2\n0_set_common_instance_metadata_operation_metadataB\r\n\x0b_start_timeB\t\n\x07_statusB\x11\n\x0f_status_messageB\x0c\n\n_target_idB\x0e\n\x0c_target_linkB\x07\n\x05_userB\x07\n\x05_zone\"\xbc\x03\n\x17OperationAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12M\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32;.google.cloud.compute.v1.OperationAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a[\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x05value\x18\x02 \x01(\x0b\x32-.google.cloud.compute.v1.OperationsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa3\x02\n\rOperationList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.Operation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x98\x01\n\x14OperationsScopedList\x12\x39\n\noperations\x18\xec\xaf\xff\x01 \x03(\x0b\x32\".google.cloud.compute.v1.Operation\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xda\x06\n\x10OutlierDetection\x12\x45\n\x12\x62\x61se_ejection_time\x18\x87\xd7\xcf& \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x00\x88\x01\x01\x12#\n\x12\x63onsecutive_errors\x18\xa0\xb3\xd0\xb8\x01 \x01(\x05H\x01\x88\x01\x01\x12,\n\x1b\x63onsecutive_gateway_failure\x18\xfa\xb7\x8a\xc7\x01 \x01(\x05H\x02\x88\x01\x01\x12,\n\x1c\x65nforcing_consecutive_errors\x18\xc0\xd3\xd0\x65 \x01(\x05H\x03\x88\x01\x01\x12\x36\n%enforcing_consecutive_gateway_failure\x18\xda\xdf\x8a\xbc\x01 \x01(\x05H\x04\x88\x01\x01\x12&\n\x16\x65nforcing_success_rate\x18\xbc\xef\xdf\\ \x01(\x05H\x05\x88\x01\x01\x12;\n\x08interval\x18\xc5\xc9\xff\x0f \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x06\x88\x01\x01\x12$\n\x14max_ejection_percent\x18\x98\xa6\xe5\x08 \x01(\x05H\x07\x88\x01\x01\x12+\n\x1asuccess_rate_minimum_hosts\x18\xf7\xa1\xda\xfa\x01 \x01(\x05H\x08\x88\x01\x01\x12,\n\x1bsuccess_rate_request_volume\x18\xcd\xeb\x98\x86\x01 \x01(\x05H\t\x88\x01\x01\x12)\n\x19success_rate_stdev_factor\x18\x9d\x83\xa9S \x01(\x05H\n\x88\x01\x01\x42\x15\n\x13_base_ejection_timeB\x15\n\x13_consecutive_errorsB\x1e\n\x1c_consecutive_gateway_failureB\x1f\n\x1d_enforcing_consecutive_errorsB(\n&_enforcing_consecutive_gateway_failureB\x19\n\x17_enforcing_success_rateB\x0b\n\t_intervalB\x17\n\x15_max_ejection_percentB\x1d\n\x1b_success_rate_minimum_hostsB\x1e\n\x1c_success_rate_request_volumeB\x1c\n\x1a_success_rate_stdev_factor\"\xc6\x03\n\x0fPacketIntervals\x12\x16\n\x06\x61vg_ms\x18\xb3\xdc\xd4\x61 \x01(\x03H\x00\x88\x01\x01\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x01\x88\x01\x01\x12\x17\n\x06max_ms\x18\xe1\xc4\xbc\xfc\x01 \x01(\x03H\x02\x88\x01\x01\x12\x17\n\x06min_ms\x18\xb3\xa5\xed\xff\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1d\n\rnum_intervals\x18\xd5\xd5\xecX \x01(\x03H\x04\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x05\x88\x01\x01\"g\n\x08\x44uration\x12\x16\n\x12UNDEFINED_DURATION\x10\x00\x12\x1c\n\x14\x44URATION_UNSPECIFIED\x10\xec\xf9\xa3\xfc\x01\x12\x0b\n\x04HOUR\x10\xe4\xdb\x87\x01\x12\t\n\x03MAX\x10\xc4\xd2\x04\x12\r\n\x06MINUTE\x10\x94\xb4\xba<\"h\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\x08LOOPBACK\x10\x8b\x93\xeb\xa9\x01\x12\x0e\n\x07RECEIVE\x10\xc3\xfd\xb7Z\x12\x10\n\x08TRANSMIT\x10\xb0\x85\xfb\xd7\x01\x12\x18\n\x10TYPE_UNSPECIFIED\x10\x92\xfb\xdb\xd0\x01\x42\t\n\x07_avg_msB\x0b\n\t_durationB\t\n\x07_max_msB\t\n\x07_min_msB\x10\n\x0e_num_intervalsB\x07\n\x05_type\"\xba\x06\n\x0fPacketMirroring\x12Z\n\rcollector_ilb\x18\xed\x89\xb6\xcb\x01 \x01(\x0b\x32:.google.cloud.compute.v1.PacketMirroringForwardingRuleInfoH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\tH\x03\x88\x01\x01\x12G\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\x0b\x32..google.cloud.compute.v1.PacketMirroringFilterH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12`\n\x12mirrored_resources\x18\xc4\x9f\xc2; \x01(\x0b\x32<.google.cloud.compute.v1.PacketMirroringMirroredResourceInfoH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12L\n\x07network\x18\xae\xb4\x85o \x01(\x0b\x32\x33.google.cloud.compute.v1.PacketMirroringNetworkInfoH\t\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\rH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\"9\n\x06\x45nable\x12\x14\n\x10UNDEFINED_ENABLE\x10\x00\x12\x0c\n\x05\x46\x41LSE\x10\x83\xc2\xe4\x1f\x12\x0b\n\x04TRUE\x10\x8e\xdb\x9d\x01\x42\x10\n\x0e_collector_ilbB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\t\n\x07_enableB\t\n\x07_filterB\x05\n\x03_idB\x07\n\x05_kindB\x15\n\x13_mirrored_resourcesB\x07\n\x05_nameB\n\n\x08_networkB\x0b\n\t_priorityB\t\n\x07_regionB\x0c\n\n_self_link\"\xce\x03\n\x1dPacketMirroringAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.PacketMirroringAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.PacketMirroringsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xc6\x01\n\x15PacketMirroringFilter\x12\x18\n\rI_p_protocols\x18\xd6\xd9\xfe. \x03(\t\x12\x17\n\x0b\x63idr_ranges\x18\x81\x94\xd3\xe8\x01 \x03(\t\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x00\x88\x01\x01\"Q\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\n\n\x04\x42OTH\x10\x81\xe7|\x12\x0e\n\x06\x45GRESS\x10\xf5\xf6\xb4\xce\x01\x12\x0f\n\x07INGRESS\x10\x95\xfd\xbe\xf6\x01\x42\x0c\n\n_direction\"q\n!PacketMirroringForwardingRuleInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"\xaf\x02\n\x13PacketMirroringList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.PacketMirroring\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xf7\x01\n#PacketMirroringMirroredResourceInfo\x12^\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32H.google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo\x12_\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\x0b\x32\x46.google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo\x12\x0f\n\x04tags\x18\x99\xe8\xd8\x01 \x03(\t\"\x7f\n/PacketMirroringMirroredResourceInfoInstanceInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"}\n-PacketMirroringMirroredResourceInfoSubnetInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"j\n\x1aPacketMirroringNetworkInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"\xab\x01\n\x1aPacketMirroringsScopedList\x12\x46\n\x11packet_mirrorings\x18\xa7\xfa\xdcI \x03(\x0b\x32(.google.cloud.compute.v1.PacketMirroring\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xf9\x01\n\x16PatchAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\xdb\x01\n\x19PatchBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12P\n\x17\x62\x61\x63kend_bucket_resource\x18\x98\xce\xc7\xb5\x01 \x01(\x0b\x32&.google.cloud.compute.v1.BackendBucketB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe0\x01\n\x1aPatchBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n\x1aPatchFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc5\x01\n\x14PatchFirewallRequest\x12\x19\n\x08\x66irewall\x18\x80\xfa\xd5\xf3\x01 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x11\x66irewall_resource\x18\xed\xb0\xe0\x13 \x01(\x0b\x32!.google.cloud.compute.v1.FirewallB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x81\x02\n\x1aPatchForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe6\x01\n PatchGlobalForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x83\x02\n(PatchGlobalPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd3\x01\n\x17PatchHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb9\x01\n\x11PatchImageRequest\x12\x15\n\x05image\x18\xdb\xd2\xea/ \x01(\tB\x03\xe0\x41\x02\x12?\n\x0eimage_resource\x18\xf2\xc4\xfe\xb0\x01 \x01(\x0b\x32\x1e.google.cloud.compute.v1.ImageB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x95\x02\n PatchInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x8e\x02\n\x1bPatchInstanceSettingRequest\x12V\n\x1ainstance_settings_resource\x18\x80\xa7\xce\x8a\x01 \x01(\x0b\x32).google.cloud.compute.v1.InstanceSettingsB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xc2\x02\n\'PatchInterconnectAttachmentGroupRequest\x12-\n\x1dinterconnect_attachment_group\x18\xf4\xef\x98$ \x01(\tB\x03\xe0\x41\x02\x12l\n&interconnect_attachment_group_resource\x18\xf9\xdf\xe1\x04 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectAttachmentGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xa0\x02\n\"PatchInterconnectAttachmentRequest\x12(\n\x17interconnect_attachment\x18\xf4\x8a\xf7\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12\x61\n interconnect_attachment_resource\x18\xf9\xa4\xa0\x65 \x01(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x99\x02\n\x1dPatchInterconnectGroupRequest\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1binterconnect_group_resource\x18\x9f\xf3\xe6( \x01(\x0b\x32*.google.cloud.compute.v1.InterconnectGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xd5\x01\n\x18PatchInterconnectRequest\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tB\x03\xe0\x41\x02\x12M\n\x15interconnect_resource\x18\x9f\xa1\xcc\xbd\x01 \x01(\x0b\x32%.google.cloud.compute.v1.InterconnectB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8b\x02\n\x1dPatchNetworkAttachmentRequest\x12\"\n\x12network_attachment\x18\xd4\x97\x8fk \x01(\tB\x03\xe0\x41\x02\x12W\n\x1bnetwork_attachment_resource\x18\x99\xf0\xcc\x64 \x01(\x0b\x32*.google.cloud.compute.v1.NetworkAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x83\x03\n&PatchNetworkEdgeSecurityServiceRequest\x12-\n\x1dnetwork_edge_security_service\x18\xa7\x9f\xefJ \x01(\tB\x03\xe0\x41\x02\x12l\n&network_edge_security_service_resource\x18\xa6\xa3\xdb\xe3\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.NetworkEdgeSecurityServiceB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xe7\x01\n!PatchNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc0\x01\n\x13PatchNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12\x42\n\x10network_resource\x18\xff\xdd\x9c: \x01(\x0b\x32 .google.cloud.compute.v1.NetworkB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe9\x01\n\x15PatchNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13node_group_resource\x18\xab\xb3\xfa\xf0\x01 \x01(\x0b\x32\".google.cloud.compute.v1.NodeGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x84\x02\n\x1bPatchPacketMirroringRequest\x12 \n\x10packet_mirroring\x18\xcc\xb9\xd1\n \x01(\tB\x03\xe0\x41\x02\x12T\n\x19packet_mirroring_resource\x18\xa1\xfc\xa8\xeb\x01 \x01(\x0b\x32(.google.cloud.compute.v1.PacketMirroringB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xaa\x02\n4PatchPacketMirroringRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xe4\x02\n2PatchPerInstanceConfigsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x9a\x01\n?instance_group_managers_patch_per_instance_configs_req_resource\x18\xff\x9b\x88\xaa\x01 \x01(\x0b\x32H.google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReqB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xef\x02\n8PatchPerInstanceConfigsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9b\x01\n@region_instance_group_manager_patch_instance_config_req_resource\x18\xca\xcd\xa1^ \x01(\x0b\x32I.google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReqB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x81\x02\n#PatchPublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x62\n!public_advertised_prefix_resource\x18\x8f\xd7\xb2o \x01(\x0b\x32/.google.cloud.compute.v1.PublicAdvertisedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9e\x02\n\"PatchPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x83\x02\n\x1cPatchRegionAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\x87\x02\n PatchRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xfa\x01\n\x1dPatchRegionHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x99\x02\n$PatchRegionHealthCheckServiceRequest\x12%\n\x14health_check_service\x18\xdb\x9b\xdd\xc2\x01 \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dhealth_check_service_resource\x18\xf2\x9b\xd0\xe3\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HealthCheckServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9f\x02\n&PatchRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8e\x02\n\'PatchRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb3\x02\n PatchRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xf3\x01\n\x1bPatchRegionSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x90\x02\n\"PatchRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe6\x01\n\x18PatchRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xad\x02\n\x1aPatchResourcePolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fresource_policy\x18\x83\xa5\xf7K \x01(\tB\x03\xe0\x41\x02\x12Q\n\x18resource_policy_resource\x18\xca\x8c\xd1$ \x01(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicyB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xf3\x01\n\x1dPatchRoutePolicyRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x15route_policy_resource\x18\x85\xbd\xb5\x37 \x01(\x0b\x32$.google.cloud.compute.v1.RoutePolicyB\x03\xe0\x41\x02\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xdd\x01\n\x12PatchRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf1\x01\n\x1ePatchRuleFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\x9b\x02\n%PatchRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xc2\x02\n+PatchRuleRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xef\x02\n$PatchRuleRegionSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x0e\n\x0c_update_maskB\x10\n\x0e_validate_only\"\xc8\x02\n\x1ePatchRuleSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x0e\n\x0c_update_maskB\x10\n\x0e_validate_only\"\x8c\x02\n\x1aPatchSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\x8d\x02\n\x1dPatchServiceAttachmentRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12#\n\x12service_attachment\x18\xed\xa9\xd0\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x12X\n\x1bservice_attachment_resource\x18\xa0\xb6\xc4\xe1\x01 \x01(\x0b\x32*.google.cloud.compute.v1.ServiceAttachmentB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf1\x01\n\x1bPatchSnapshotSettingRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12V\n\x1asnapshot_settings_resource\x18\xef\x8d\xc6\xaa\x01 \x01(\x0b\x32).google.cloud.compute.v1.SnapshotSettingsB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xcc\x01\n\x15PatchSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb0\x02\n\x16PatchSubnetworkRequest\x12&\n\x15\x64rain_timeout_seconds\x18\xda\xda\xc8\xaa\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13subnetwork_resource\x18\xbf\xda\x91\x14 \x01(\x0b\x32#.google.cloud.compute.v1.SubnetworkB\x03\xe0\x41\x02\x42\x18\n\x16_drain_timeout_secondsB\r\n\x0b_request_id\"\xe5\x01\n\x1bPatchTargetGrpcProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_grpc_proxy\x18\xfb\xb4\xb2\x02 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1atarget_grpc_proxy_resource\x18\xd2\xea\xeb\x9c\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetGrpcProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe4\x01\n\x1bPatchTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x12T\n\x1atarget_http_proxy_resource\x18\xa8\xaf\xe3\x0b \x01(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe9\x01\n\x1cPatchTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbf\x01\n\x12PatchUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd2\x05\n\x0bPathMatcher\x12h\n$default_custom_error_response_policy\x18\xa9\x8b\xe0& \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x00\x88\x01\x01\x12O\n\x14\x64\x65\x66\x61ult_route_action\x18\xaa\xb4\xd7\xb4\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x01\x88\x01\x01\x12 \n\x0f\x64\x65\x66\x61ult_service\x18\xb7\xe5\xc5\xb0\x01 \x01(\tH\x02\x88\x01\x01\x12R\n\x14\x64\x65\x66\x61ult_url_redirect\x18\xea\xab\xb6\xab\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x38\n\npath_rules\x18\xdd\xc0\xe6\x31 \x03(\x0b\x32!.google.cloud.compute.v1.PathRule\x12?\n\x0broute_rules\x18\x81\x87\xb7\xb3\x01 \x03(\x0b\x32&.google.cloud.compute.v1.HttpRouteRuleB\'\n%_default_custom_error_response_policyB\x17\n\x15_default_route_actionB\x12\n\x10_default_serviceB\x17\n\x15_default_url_redirectB\x0e\n\x0c_descriptionB\x10\n\x0e_header_actionB\x07\n\x05_name\"\xfc\x02\n\x08PathRule\x12`\n\x1c\x63ustom_error_response_policy\x18\xeb\xf8\xda` \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x00\x88\x01\x01\x12\x10\n\x05paths\x18\xee\xc1\xe0\x32 \x03(\t\x12G\n\x0croute_action\x18\xec\xa9\xb9\xca\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x01\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x02\x88\x01\x01\x12J\n\x0curl_redirect\x18\xac\xa1\x98\xc1\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x03\x88\x01\x01\x42\x1f\n\x1d_custom_error_response_policyB\x0f\n\r_route_actionB\n\n\x08_serviceB\x0f\n\r_url_redirect\"\xf3\x02\n\x11PerInstanceConfig\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12H\n\x0fpreserved_state\x18\xaa\xe2\xa0\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.PreservedStateH\x02\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\"\x90\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x41PPLYING\x10\xb4\xcb\xec\xa7\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x10\n\tEFFECTIVE\x10\x87\xf3\xb8t\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x11\n\tUNAPPLIED\x10\xa4\x87\xe1\xe6\x01\x12\x1a\n\x12UNAPPLIED_DELETION\x10\x89\xb4\xda\x95\x01\x42\x0e\n\x0c_fingerprintB\x07\n\x05_nameB\x12\n\x10_preserved_stateB\t\n\x07_status\"\xa8\x01\n!PerformMaintenanceInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xac\x02\n\"PerformMaintenanceNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12~\n0node_groups_perform_maintenance_request_resource\x18\xd6\xb8\xaeX \x01(\x0b\x32<.google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n)PerformMaintenanceReservationBlockRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11reservation_block\x18\xda\xc4\x89\xfe\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n8reservations_blocks_perform_maintenance_request_resource\x18\x89\xa9\xd4\xe7\x01 \x01(\x0b\x32\x44.google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequestB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb2\x02\n$PerformMaintenanceReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\x81\x01\n1reservations_perform_maintenance_request_resource\x18\xa0\xf5\x94\x0e \x01(\x0b\x32>.google.cloud.compute.v1.ReservationsPerformMaintenanceRequestB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xde\x01\n,PerformMaintenanceReservationSubBlockRequest\x12\x1c\n\x0bparent_name\x18\x80\x8a\x80\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12%\n\x15reservation_sub_block\x18\x9b\xca\xec\n \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf0\x01\n\x06Policy\x12?\n\raudit_configs\x18\x8d\xba\xb8\x9c\x01 \x03(\x0b\x32$.google.cloud.compute.v1.AuditConfig\x12\x36\n\x08\x62indings\x18\x8e\xc5\xa4\xc0\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Binding\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tiam_owned\x18\xbb\xb0\xec\xd6\x01 \x01(\x08H\x01\x88\x01\x01\x12\x18\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\x05H\x02\x88\x01\x01\x42\x07\n\x05_etagB\x0c\n\n_iam_ownedB\n\n\x08_version\"]\n\x13PreconfiguredWafSet\x12\x46\n\x0f\x65xpression_sets\x18\x98\xab\x83\xe2\x01 \x03(\x0b\x32).google.cloud.compute.v1.WafExpressionSet\"\xbe\x05\n\x0ePreservedState\x12\x44\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32\x32.google.cloud.compute.v1.PreservedState.DisksEntry\x12S\n\rexternal_i_ps\x18\x8d\xd3\x80\xfe\x01 \x03(\x0b\x32\x38.google.cloud.compute.v1.PreservedState.ExternalIPsEntry\x12R\n\rinternal_i_ps\x18\xdb\x9b\xef\x66 \x03(\x0b\x32\x38.google.cloud.compute.v1.PreservedState.InternalIPsEntry\x12J\n\x08metadata\x18\xaf\xf6\xb5) \x03(\x0b\x32\x35.google.cloud.compute.v1.PreservedState.MetadataEntry\x1a\x62\n\nDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.PreservedStatePreservedDisk:\x02\x38\x01\x1am\n\x10\x45xternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0b\x32\x39.google.cloud.compute.v1.PreservedStatePreservedNetworkIp:\x02\x38\x01\x1am\n\x10InternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0b\x32\x39.google.cloud.compute.v1.PreservedStatePreservedNetworkIp:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xac\x02\n\x1bPreservedStatePreservedDisk\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x02\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x10\n\tREAD_ONLY\x10\xb5\x99\xec+\x12\x11\n\nREAD_WRITE\x10\xd6\x97\xe4RB\x0e\n\x0c_auto_deleteB\x07\n\x05_modeB\t\n\x07_source\"\x9e\x02\n PreservedStatePreservedNetworkIp\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\x12_\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\x0b\x32\x42.google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddressH\x01\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-B\x0e\n\x0c_auto_deleteB\r\n\x0b_ip_address\"v\n)PreservedStatePreservedNetworkIpIpAddress\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x07literal\x18\xaf\xc1\x80W \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_literal\"\xa1\x01\n\x14PreviewRouterRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\"\xea\n\n\x07Project\x12 \n\x10\x63loud_armor_tier\x18\xac\x9a\x8e\x02 \x01(\tH\x00\x88\x01\x01\x12K\n\x18\x63ommon_instance_metadata\x18\xc5\xfc\xcbX \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12%\n\x14\x64\x65\x66\x61ult_network_tier\x18\x91\xc5\xf9\xe0\x01 \x01(\tH\x03\x88\x01\x01\x12(\n\x17\x64\x65\x66\x61ult_service_account\x18\xa5\xf9\xb7\x8e\x01 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x10\x65nabled_features\x18\xfb\xc6\xd2\xdf\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x31\n\x06quotas\x18\xfb\xa1\xe2; \x03(\x0b\x32\x1e.google.cloud.compute.v1.Quota\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12T\n\x15usage_export_location\x18\xc2\xb2\xdc\xa5\x01 \x01(\x0b\x32,.google.cloud.compute.v1.UsageExportLocationH\n\x88\x01\x01\x12\x1e\n\x0evm_dns_setting\x18\xb2\xa7\x88\x1c \x01(\tH\x0b\x88\x01\x01\x12\"\n\x12xpn_project_status\x18\xc1\xcd\xf5l \x01(\tH\x0c\x88\x01\x01\"~\n\x0e\x43loudArmorTier\x12\x1e\n\x1aUNDEFINED_CLOUD_ARMOR_TIER\x10\x00\x12\x1b\n\x14\x43\x41_ENTERPRISE_ANNUAL\x10\xdc\xf5\xeeh\x12\x1b\n\x13\x43\x41_ENTERPRISE_PAYGO\x10\xd3\xa5\xa1\xd8\x01\x12\x12\n\x0b\x43\x41_STANDARD\x10\xfe\x82\xa3\x06\"\x9e\x01\n\x12\x44\x65\x66\x61ultNetworkTier\x12\"\n\x1eUNDEFINED_DEFAULT_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"\x92\x01\n\x0cVmDnsSetting\x12\x1c\n\x18UNDEFINED_VM_DNS_SETTING\x10\x00\x12\x16\n\x0eGLOBAL_DEFAULT\x10\x85\xdb\xda\xa4\x01\x12!\n\x1aUNSPECIFIED_VM_DNS_SETTING\x10\x9a\xbb\x82\x11\x12\x15\n\rZONAL_DEFAULT\x10\x86\xfd\xd9\xaf\x01\x12\x12\n\nZONAL_ONLY\x10\xe7\xba\xc3\xf8\x01\"i\n\x10XpnProjectStatus\x12 \n\x1cUNDEFINED_XPN_PROJECT_STATUS\x10\x00\x12\x0b\n\x04HOST\x10\xa8\xdb\x87\x01\x12&\n\x1eUNSPECIFIED_XPN_PROJECT_STATUS\x10\xa9\xfa\xa7\xa2\x01\x42\x13\n\x11_cloud_armor_tierB\x1b\n\x19_common_instance_metadataB\x15\n\x13_creation_timestampB\x17\n\x15_default_network_tierB\x1a\n\x18_default_service_accountB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_self_linkB\x18\n\x16_usage_export_locationB\x11\n\x0f_vm_dns_settingB\x15\n\x13_xpn_project_status\"z\n!ProjectsDisableXpnResourceRequest\x12\x44\n\x0cxpn_resource\x18\xb7\x93\xcd? \x01(\x0b\x32&.google.cloud.compute.v1.XpnResourceIdH\x00\x88\x01\x01\x42\x0f\n\r_xpn_resource\"y\n ProjectsEnableXpnResourceRequest\x12\x44\n\x0cxpn_resource\x18\xb7\x93\xcd? \x01(\x0b\x32&.google.cloud.compute.v1.XpnResourceIdH\x00\x88\x01\x01\x42\x0f\n\r_xpn_resource\"\xab\x01\n\x17ProjectsGetXpnResources\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x01\x88\x01\x01\x12<\n\tresources\x18\xa5\xfc\xb2N \x03(\x0b\x32&.google.cloud.compute.v1.XpnResourceIdB\x07\n\x05_kindB\x12\n\x10_next_page_token\"L\n\x1bProjectsListXpnHostsRequest\x12\x1c\n\x0corganization\x18\xb3\xda\x93\x32 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_organization\"\xd9\x01\n ProjectsSetCloudArmorTierRequest\x12 \n\x10\x63loud_armor_tier\x18\xac\x9a\x8e\x02 \x01(\tH\x00\x88\x01\x01\"~\n\x0e\x43loudArmorTier\x12\x1e\n\x1aUNDEFINED_CLOUD_ARMOR_TIER\x10\x00\x12\x1b\n\x14\x43\x41_ENTERPRISE_ANNUAL\x10\xdc\xf5\xeeh\x12\x1b\n\x13\x43\x41_ENTERPRISE_PAYGO\x10\xd3\xa5\xa1\xd8\x01\x12\x12\n\x0b\x43\x41_STANDARD\x10\xfe\x82\xa3\x06\x42\x13\n\x11_cloud_armor_tier\"\xe8\x01\n$ProjectsSetDefaultNetworkTierRequest\x12\x1d\n\x0cnetwork_tier\x18\xd3\xba\xdb\xf6\x01 \x01(\tH\x00\x88\x01\x01\"\x8f\x01\n\x0bNetworkTier\x12\x1a\n\x16UNDEFINED_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\x42\x0f\n\r_network_tier\"\x96\t\n\x16PublicAdvertisedPrefix\x12!\n\x11\x62yoip_api_version\x18\x93\xb3\xc9M \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12#\n\x13\x64ns_verification_ip\x18\xb5\x95\xf6r \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tpdp_scope\x18\xd1\xca\xfe\xf9\x01 \x01(\tH\t\x88\x01\x01\x12j\n\x18public_delegated_prefixs\x18\x8b\xbe\x85\xcb\x01 \x03(\x0b\x32\x44.google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12\x1e\n\rshared_secret\x18\xca\xa7\x8f\xb6\x01 \x01(\tH\x0b\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0c\x88\x01\x01\"D\n\x0f\x42yoipApiVersion\x12\x1f\n\x1bUNDEFINED_BYOIP_API_VERSION\x10\x00\x12\x07\n\x02V1\x10\x9b\x15\x12\x07\n\x02V2\x10\x9c\x15\"a\n\x08PdpScope\x12\x17\n\x13UNDEFINED_PDP_SCOPE\x10\x00\x12\x0e\n\x06GLOBAL\x10\xa3\xef\xef\xeb\x01\x12\x1b\n\x13GLOBAL_AND_REGIONAL\x10\xc3\xb5\xd4\x97\x01\x12\x0f\n\x08REGIONAL\x10\x9f\xec\x80,\"\xa9\x02\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x1c\n\x15\x41NNOUNCED_TO_INTERNET\x10\xc1\xfe\xe8T\x12\x0f\n\x07INITIAL\x10\xa4\xc6\xb3\xf7\x01\x12%\n\x1dPREFIX_CONFIGURATION_COMPLETE\x10\xcf\x95\xa7\xe5\x01\x12(\n PREFIX_CONFIGURATION_IN_PROGRESS\x10\xb1\xf5\xc0\xb4\x01\x12\"\n\x1aPREFIX_REMOVAL_IN_PROGRESS\x10\xe7\xf5\xcc\x87\x01\x12\x16\n\x0ePTR_CONFIGURED\x10\xcf\xb0\xed\xf4\x01\x12\x18\n\x11READY_TO_ANNOUNCE\x10\xf1\xb1\xe9\x1e\x12!\n\x19REVERSE_DNS_LOOKUP_FAILED\x10\xaf\xbb\x83\x8d\x01\x12\x10\n\tVALIDATED\x10\xee\xb3\xc8\x1f\x42\x14\n\x12_byoip_api_versionB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x16\n\x14_dns_verification_ipB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x10\n\x0e_ip_cidr_rangeB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_pdp_scopeB\x0c\n\n_self_linkB\x10\n\x0e_shared_secretB\t\n\x07_status\"\xbd\x02\n\x1aPublicAdvertisedPrefixList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.PublicAdvertisedPrefix\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xde\x01\n+PublicAdvertisedPrefixPublicDelegatedPrefix\x12\x18\n\x08ip_range\x18\xa5\xe0\x97\x45 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tH\x02\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x03\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x04\x88\x01\x01\x42\x0b\n\t_ip_rangeB\x07\n\x05_nameB\n\n\x08_projectB\t\n\x07_regionB\t\n\x07_status\"\xa3\t\n\x15PublicDelegatedPrefix\x12)\n\x19\x61llocatable_prefix_length\x18\xb6\xb6\xa9\x12 \x01(\x05H\x00\x88\x01\x01\x12!\n\x11\x62yoip_api_version\x18\x93\xb3\xc9M \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x06\x88\x01\x01\x12\"\n\x11is_live_migration\x18\xf0\x9f\x87\xf4\x01 \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12\x1d\n\rparent_prefix\x18\xc7\xe7\xa1\x07 \x01(\tH\x0b\x88\x01\x01\x12o\n\x1cpublic_delegated_sub_prefixs\x18\x8c\xfe\x8bZ \x03(\x0b\x32\x46.google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0e\x88\x01\x01\"D\n\x0f\x42yoipApiVersion\x12\x1f\n\x1bUNDEFINED_BYOIP_API_VERSION\x10\x00\x12\x07\n\x02V1\x10\x9b\x15\x12\x07\n\x02V2\x10\x9c\x15\"\x87\x01\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x11\n\nDELEGATION\x10\xa8\xb2\xfa}\x12.\n&EXTERNAL_IPV6_FORWARDING_RULE_CREATION\x10\xc4\xe1\x8d\xbe\x01\x12(\n!EXTERNAL_IPV6_SUBNETWORK_CREATION\x10\xcc\x9f\x97\x1d\"\xae\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x11\n\tANNOUNCED\x10\xfb\x91\x8c\xae\x01\x12\x1b\n\x13\x41NNOUNCED_TO_GOOGLE\x10\xb9\xb4\xf3\xd8\x01\x12\x1c\n\x15\x41NNOUNCED_TO_INTERNET\x10\xc1\xfe\xe8T\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x14\n\x0cINITIALIZING\x10\xcd\xd8\x98\x92\x01\x12\x18\n\x11READY_TO_ANNOUNCE\x10\xf1\xb1\xe9\x1e\x42\x1c\n\x1a_allocatable_prefix_lengthB\x14\n\x12_byoip_api_versionB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x10\n\x0e_ip_cidr_rangeB\x14\n\x12_is_live_migrationB\x07\n\x05_kindB\x07\n\x05_modeB\x07\n\x05_nameB\x10\n\x0e_parent_prefixB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_status\"\xe1\x03\n#PublicDelegatedPrefixAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Y\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32G.google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1ah\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12I\n\x05value\x18\x02 \x01(\x0b\x32:.google.cloud.compute.v1.PublicDelegatedPrefixesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbb\x02\n\x19PublicDelegatedPrefixList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12@\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefix\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8d\x05\n-PublicDelegatedPrefixPublicDelegatedSubPrefix\x12)\n\x19\x61llocatable_prefix_length\x18\xb6\xb6\xa9\x12 \x01(\x05H\x00\x88\x01\x01\x12\"\n\x11\x64\x65legatee_project\x18\xda\x8a\xe9\xc5\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nis_address\x18\xdf\x8b\x92\xa8\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x08\x88\x01\x01\"\x87\x01\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x11\n\nDELEGATION\x10\xa8\xb2\xfa}\x12.\n&EXTERNAL_IPV6_FORWARDING_RULE_CREATION\x10\xc4\xe1\x8d\xbe\x01\x12(\n!EXTERNAL_IPV6_SUBNETWORK_CREATION\x10\xcc\x9f\x97\x1d\"@\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x42\x1c\n\x1a_allocatable_prefix_lengthB\x14\n\x12_delegatee_projectB\x0e\n\x0c_descriptionB\x10\n\x0e_ip_cidr_rangeB\r\n\x0b_is_addressB\x07\n\x05_modeB\x07\n\x05_nameB\t\n\x07_regionB\t\n\x07_status\"\xc1\x01\n!PublicDelegatedPrefixesScopedList\x12U\n\x19public_delegated_prefixes\x18\x96\x82\xaa\x96\x01 \x03(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefix\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe6(\n\x05Quota\x12\x15\n\x05limit\x18\xbb\x97\x8d\x31 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\x06metric\x18\xb0\xeb\x97\xfe\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05owner\x18\xb3\xe5\xcf\x32 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x05usage\x18\xa1\xfb\x99\x35 \x01(\x01H\x03\x88\x01\x01\"\xd5\'\n\x06Metric\x12\x14\n\x10UNDEFINED_METRIC\x10\x00\x12\x0e\n\x07\x41\x32_CPUS\x10\xb9\xfe\x86I\x12\x16\n\x0f\x41\x46\x46INITY_GROUPS\x10\xcb\xa9\xd2\x33\x12\x13\n\x0b\x41UTOSCALERS\x10\xdc\xe0\xda\xe0\x01\x12\x16\n\x0f\x42\x41\x43KEND_BUCKETS\x10\xde\x89\xd0\x41\x12\x18\n\x10\x42\x41\x43KEND_SERVICES\x10\xc9\xc3\xc8\x80\x01\x12\x10\n\x08\x43\x32\x44_CPUS\x10\xf5\xff\xa8\xf2\x01\x12\x0f\n\x07\x43\x32_CPUS\x10\xbb\xeb\xb8\x97\x01\x12\x0f\n\x07\x43\x33_CPUS\x10\xda\x9c\x8c\xa5\x01\x12\x13\n\x0b\x43OMMITMENTS\x10\xde\xd7\xc0\xd9\x01\x12\x18\n\x11\x43OMMITTED_A2_CPUS\x10\xd6\xa2\xa5\x1c\x12\x1a\n\x12\x43OMMITTED_C2D_CPUS\x10\xf8\xe2\xd3\x86\x01\x12\x18\n\x11\x43OMMITTED_C2_CPUS\x10\xd8\x8f\xd7j\x12\x18\n\x11\x43OMMITTED_C3_CPUS\x10\xf7\xc0\xaax\x12\x16\n\x0e\x43OMMITTED_CPUS\x10\xce\xad\xb6\x8b\x01\x12\x19\n\x11\x43OMMITTED_E2_CPUS\x10\xda\xfc\x88\xb9\x01\x12\x1a\n\x12\x43OMMITTED_LICENSES\x10\xd5\xcb\xc2\xaa\x01\x12$\n\x1c\x43OMMITTED_LOCAL_SSD_TOTAL_GB\x10\x88\xec\x86\x93\x01\x12\x17\n\x11\x43OMMITTED_M3_CPUS\x10\x81\xe2#\x12\'\n\x1f\x43OMMITTED_MEMORY_OPTIMIZED_CPUS\x10\xde\xdc\x99\xe9\x01\x12\x19\n\x12\x43OMMITTED_N2A_CPUS\x10\xb0\xaa\x8d\x13\x12\x19\n\x12\x43OMMITTED_N2D_CPUS\x10\x8d\xbe\x87<\x12\x19\n\x11\x43OMMITTED_N2_CPUS\x10\xa3\xa7\xe9\x99\x01\x12\'\n\x1f\x43OMMITTED_NVIDIA_A100_80GB_GPUS\x10\xa5\x9f\xb4\xdd\x01\x12\"\n\x1a\x43OMMITTED_NVIDIA_A100_GPUS\x10\x95\xfd\x98\xb3\x01\x12!\n\x1a\x43OMMITTED_NVIDIA_H100_GPUS\x10\x9c\x8f\x95\"\x12 \n\x19\x43OMMITTED_NVIDIA_K80_GPUS\x10\xa4\xb6\xeb\x01\x12\x1f\n\x18\x43OMMITTED_NVIDIA_L4_GPUS\x10\xfd\xd3\x91\t\x12!\n\x1a\x43OMMITTED_NVIDIA_P100_GPUS\x10\xa4\xff\xa2\x33\x12 \n\x18\x43OMMITTED_NVIDIA_P4_GPUS\x10\x81\xae\xf5\xa5\x01\x12\x1f\n\x18\x43OMMITTED_NVIDIA_T4_GPUS\x10\x85\x88\xd9\x42\x12 \n\x1a\x43OMMITTED_NVIDIA_V100_GPUS\x10\xaa\xb3\r\x12\x1a\n\x12\x43OMMITTED_T2A_CPUS\x10\xea\xc4\xa9\x8d\x01\x12\x1a\n\x12\x43OMMITTED_T2D_CPUS\x10\xc7\xd8\xa3\xb6\x01\x12\x18\n\x11\x43OMMITTED_Z3_CPUS\x10\xce\xe6\xe7}\x12\n\n\x04\x43PUS\x10\xcb\xd7~\x12\x18\n\x10\x43PUS_ALL_REGIONS\x10\xad\x91\xc6\xe0\x01\x12\x16\n\x0e\x44ISKS_TOTAL_GB\x10\x9f\x97\xc9\xa8\x01\x12\x0f\n\x07\x45\x32_CPUS\x10\xbd\xd8\xea\xe5\x01\x12(\n!EXTERNAL_MANAGED_FORWARDING_RULES\x10\xc9\xbf\xf3G\x12,\n$EXTERNAL_NETWORK_LB_FORWARDING_RULES\x10\x99\xad\xbd\xb2\x01\x12)\n\"EXTERNAL_PROTOCOL_FORWARDING_RULES\x10\xe8\xb8\xa2\x1e\x12\x1d\n\x15\x45XTERNAL_VPN_GATEWAYS\x10\xae\xbb\xf5\x81\x01\x12\x11\n\tFIREWALLS\x10\xd3\xe6\xc8\xb2\x01\x12\x18\n\x10\x46ORWARDING_RULES\x10\x95\x82\xa8\xce\x01\x12/\n(GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES\x10\xe1\xad\xbcN\x12\x30\n(GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES\x10\xad\xec\x9b\x9c\x01\x12\x31\n)GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES\x10\xa9\xd9\xed\xbe\x01\x12 \n\x19GLOBAL_INTERNAL_ADDRESSES\x10\x9c\xc5\xb0\x14\x12/\n(GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES\x10\xaf\x90\xaez\x12\x39\n1GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES\x10\xd4\xde\xa1\x9a\x01\x12\x17\n\x10GPUS_ALL_REGIONS\x10\xa9\x80\xe4\x12\x12\x14\n\x0cHDB_TOTAL_GB\x10\xaf\xc2\xa1\x98\x01\x12\x16\n\x0eHDB_TOTAL_IOPS\x10\xfd\xe9\xd7\x93\x01\x12\x1b\n\x14HDB_TOTAL_THROUGHPUT\x10\xfe\xcc\x80\n\x12\x15\n\rHEALTH_CHECKS\x10\xae\xaf\xfc\x89\x01\x12\r\n\x06IMAGES\x10\xf8\xec\xb5\x07\x12\x10\n\tINSTANCES\x10\xde\x9c\xd0>\x12\x17\n\x0fINSTANCE_GROUPS\x10\xbe\xc9\xdb\xa9\x01\x12\x1e\n\x17INSTANCE_GROUP_MANAGERS\x10\xb0\xa2\xc5\x30\x12\x19\n\x12INSTANCE_TEMPLATES\x10\xef\xb7\xedk\x12\x15\n\rINTERCONNECTS\x10\x85\x8b\xfe\xc5\x01\x12*\n#INTERCONNECT_ATTACHMENTS_PER_REGION\x10\xd6\xd6\xa3L\x12+\n#INTERCONNECT_ATTACHMENTS_TOTAL_MBPS\x10\xf3\xba\xd9\xca\x01\x12\x1f\n\x17INTERCONNECT_TOTAL_GBPS\x10\xaa\xf1\x87\x88\x01\x12\x19\n\x12INTERNAL_ADDRESSES\x10\x80\xe9\xae^\x12\x31\n*INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES\x10\x84\xe9\x85\x7f\x12\x19\n\x12IN_PLACE_SNAPSHOTS\x10\x9d\x9d\x96H\x12\x18\n\x10IN_USE_ADDRESSES\x10\x90\xe2\xdf\xbf\x01\x12\x1e\n\x17IN_USE_BACKUP_SCHEDULES\x10\x91\x92\xd1\x0f\x12!\n\x19IN_USE_SNAPSHOT_SCHEDULES\x10\x93\xcc\xac\xdc\x01\x12\x1a\n\x12LOCAL_SSD_TOTAL_GB\x10\xc5\x98\xe3\x9d\x01\x12\x0e\n\x07M1_CPUS\x10\xa6\xdb\xde\x11\x12\x0e\n\x07M2_CPUS\x10\xc5\x8c\xb2\x1f\x12\x0e\n\x07M3_CPUS\x10\xe4\xbd\x85-\x12\x16\n\x0eMACHINE_IMAGES\x10\x90\xf3\x91\xd5\x01\x12\x0f\n\x08N2A_CPUS\x10\xad\xc7\xe2~\x12\x10\n\x08N2D_CPUS\x10\x8a\xdb\xdc\xa7\x01\x12\x0f\n\x07N2_CPUS\x10\x86\x83\xcb\xc6\x01\x12\x10\n\x08NETWORKS\x10\x85\xb8\xbf\xe7\x01\x12\x1a\n\x13NETWORK_ATTACHMENTS\x10\xdf\xfd\x87G\x12\x1e\n\x17NETWORK_ENDPOINT_GROUPS\x10\x8d\xb7\xda\x30\x12 \n\x19NETWORK_FIREWALL_POLICIES\x10\xbe\xdb\x9b\x30\x12*\n#NET_LB_SECURITY_POLICIES_PER_REGION\x10\xad\xfd\xa4K\x12/\n\'NET_LB_SECURITY_POLICY_RULES_PER_REGION\x10\xb3\x88\xe6\xa9\x01\x12\x39\n1NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION\x10\xf0\xe8\xb4\x94\x01\x12\x12\n\x0bNODE_GROUPS\x10\xb1\xfd\xde\x0b\x12\x16\n\x0eNODE_TEMPLATES\x10\x9c\xb2\xb9\xe2\x01\x12\x1d\n\x15NVIDIA_A100_80GB_GPUS\x10\xc8\xe8\xc7\x88\x01\x12\x18\n\x10NVIDIA_A100_GPUS\x10\x92\x80\xdf\xf0\x01\x12\x16\n\x0fNVIDIA_K80_GPUS\x10\x87\xec\x92N\x12\x16\n\x0eNVIDIA_L4_GPUS\x10\xba\xcd\xc8\xea\x01\x12\x17\n\x10NVIDIA_P100_GPUS\x10\xa1\x82\xe9p\x12\x1b\n\x14NVIDIA_P100_VWS_GPUS\x10\x8e\xdd\x83\x66\x12\x16\n\x0eNVIDIA_P4_GPUS\x10\xbe\xa7\xac\x87\x01\x12\x1a\n\x12NVIDIA_P4_VWS_GPUS\x10\xab\xd5\xf4\xfb\x01\x12\x15\n\x0eNVIDIA_T4_GPUS\x10\xc2\x81\x90$\x12\x1a\n\x12NVIDIA_T4_VWS_GPUS\x10\xaf\xeb\xbf\x98\x01\x12\x17\n\x10NVIDIA_V100_GPUS\x10\xa7\xb6\xd3=\x12\x18\n\x11PACKET_MIRRORINGS\x10\xa7\xea\xb6\x07\x12(\n!PD_EXTREME_TOTAL_PROVISIONED_IOPS\x10\xed\xd6\x97!\x12\x17\n\x10PREEMPTIBLE_CPUS\x10\xc9\x8d\xe3w\x12\x1f\n\x18PREEMPTIBLE_LOCAL_SSD_GB\x10\x88\x93\xaf|\x12(\n!PREEMPTIBLE_NVIDIA_A100_80GB_GPUS\x10\x8a\xea\xb9H\x12#\n\x1cPREEMPTIBLE_NVIDIA_A100_GPUS\x10\x90\x9c\xe9 \x12$\n\x1cPREEMPTIBLE_NVIDIA_H100_GPUS\x10\x97\xae\xe5\x8f\x01\x12#\n\x1bPREEMPTIBLE_NVIDIA_K80_GPUS\x10\xc9\xe0\xe5\xb2\x01\x12!\n\x1aPREEMPTIBLE_NVIDIA_L4_GPUS\x10\xb8\xb8\xf0/\x12$\n\x1cPREEMPTIBLE_NVIDIA_P100_GPUS\x10\x9f\x9e\xf3\xa0\x01\x12(\n PREEMPTIBLE_NVIDIA_P100_VWS_GPUS\x10\x8c\x9b\xc1\x95\x01\x12\"\n\x1aPREEMPTIBLE_NVIDIA_P4_GPUS\x10\xbc\x92\xd4\xcc\x01\x12%\n\x1ePREEMPTIBLE_NVIDIA_P4_VWS_GPUS\x10\xa9\xe2\xd0x\x12!\n\x1aPREEMPTIBLE_NVIDIA_T4_GPUS\x10\xc0\xec\xb7i\x12%\n\x1ePREEMPTIBLE_NVIDIA_T4_VWS_GPUS\x10\xad\xf8\x9b\x15\x12#\n\x1cPREEMPTIBLE_NVIDIA_V100_GPUS\x10\xa5\xd2\xddm\x12%\n\x1ePREEMPTIBLE_TPU_LITE_DEVICE_V5\x10\xfb\x91\x8cS\x12\'\n PREEMPTIBLE_TPU_LITE_PODSLICE_V5\x10\xc4\x91\xc5\x35\x12#\n\x1bPREEMPTIBLE_TPU_PODSLICE_V4\x10\x8c\xfc\xf4\xca\x01\x12=\n6PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK\x10\x83\x93\x9dn\x12\'\n PSC_INTERNAL_LB_FORWARDING_RULES\x10\xfb\xa2\xcbP\x12\"\n\x1aPUBLIC_ADVERTISED_PREFIXES\x10\xcc\xa1\xe2\xe0\x01\x12!\n\x19PUBLIC_DELEGATED_PREFIXES\x10\xb6\x92\xf3\xfd\x01\x12\x1b\n\x14REGIONAL_AUTOSCALERS\x10\xbc\x9c\x80\x0e\x12\x31\n*REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES\x10\xdd\xec\x82\x02\x12\x35\n-REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES\x10\xed\xea\xa5\xc3\x01\x12\'\n REGIONAL_INSTANCE_GROUP_MANAGERS\x10\x90\xbe\xf3\x11\x12,\n%REGIONAL_INTERNAL_LB_BACKEND_SERVICES\x10\x90\xee\xe5\x41\x12\x31\n*REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES\x10\xab\xcf\xf4-\x12;\n3REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES\x10\xd8\xf6\xb1\xe6\x01\x12\x13\n\x0cRESERVATIONS\x10\xa7\xbc\xc8\x0f\x12\x18\n\x11RESOURCE_POLICIES\x10\xe1\x9c\x84(\x12\x0f\n\x07ROUTERS\x10\xaa\xbc\x8b\xeb\x01\x12\x0e\n\x06ROUTES\x10\xca\x96\xba\x83\x01\x12\x18\n\x11SECURITY_POLICIES\x10\xef\xa6\xafZ\x12#\n\x1cSECURITY_POLICIES_PER_REGION\x10\xc6\xa6\xe0v\x12\x31\n)SECURITY_POLICY_ADVANCED_RULES_PER_REGION\x10\xad\xe7\xa5\xb1\x01\x12#\n\x1bSECURITY_POLICY_CEVAL_RULES\x10\xc9\xa7\xc0\xe0\x01\x12\x1c\n\x15SECURITY_POLICY_RULES\x10\xa9\xd4\x87\x61\x12\'\n SECURITY_POLICY_RULES_PER_REGION\x10\xcc\xc8\xa9<\x12\x1b\n\x13SERVICE_ATTACHMENTS\x10\xe6\xb1\xeb\xe0\x01\x12\x11\n\tSNAPSHOTS\x10\x8f\xe6\xdf\xa3\x01\x12\x13\n\x0cSSD_TOTAL_GB\x10\xd1\xaf\x8fM\x12\x18\n\x10SSL_CERTIFICATES\x10\xaf\x82\xb6\xb4\x01\x12\x14\n\x0cSSL_POLICIES\x10\xc3\xf4\xc0\xf9\x01\x12\x17\n\x10STATIC_ADDRESSES\x10\xf1\xad\xd2,\x12\x1e\n\x16STATIC_BYOIP_ADDRESSES\x10\xf1\x8a\xc2\x83\x01\x12+\n#STATIC_EXTERNAL_IPV6_ADDRESS_RANGES\x10\x96\xe1\x9d\xe1\x01\x12\x13\n\x0bSUBNETWORKS\x10\xa5\xfc\xf3\xc8\x01\x12\x10\n\x08T2A_CPUS\x10\xe7\xe1\xfe\xf8\x01\x12\x0f\n\x08T2D_CPUS\x10\xc4\xf5\xf8!\x12\x1b\n\x14TARGET_HTTPS_PROXIES\x10\xca\xcb\xd6h\x12\x1a\n\x13TARGET_HTTP_PROXIES\x10\xa3\xf5\xa0N\x12\x18\n\x10TARGET_INSTANCES\x10\xb0\xda\xd5\x87\x01\x12\x14\n\x0cTARGET_POOLS\x10\x89\x97\x88\xa6\x01\x12\x19\n\x12TARGET_SSL_PROXIES\x10\xeb\xe4\xf5K\x12\x19\n\x12TARGET_TCP_PROXIES\x10\xc0\x9e\xf3V\x12\x1a\n\x13TARGET_VPN_GATEWAYS\x10\xa8\xbb\xe3#\x12\x1a\n\x12TPU_LITE_DEVICE_V5\x10\xfd\x84\xb0\xd6\x01\x12\x1b\n\x14TPU_LITE_PODSLICE_V5\x10\xc6\xd3\x87\x06\x12\x16\n\x0fTPU_PODSLICE_V4\x10\xca\x87\xa2\x66\x12\x10\n\x08URL_MAPS\x10\x87\xcf\xc7\xb4\x01\x12.\n\'VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES\x10\xa1\xf6\x9c=\x12\x13\n\x0cVPN_GATEWAYS\x10\xba\x8b\xfe\x10\x12\x12\n\x0bVPN_TUNNELS\x10\x80\xd1\xdf\x31\x12\x1b\n\x14XPN_SERVICE_PROJECTS\x10\xad\x87\xb2-B\x08\n\x06_limitB\t\n\x07_metricB\x08\n\x06_ownerB\x08\n\x06_usage\"\xe0\x03\n\x11QuotaExceededInfo\x12R\n\ndimensions\x18\xcd\xff\xc8\xc5\x01 \x03(\x0b\x32:.google.cloud.compute.v1.QuotaExceededInfo.DimensionsEntry\x12\x1d\n\x0c\x66uture_limit\x18\xbf\xbc\xda\xd9\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x05limit\x18\xbb\x97\x8d\x31 \x01(\x01H\x01\x88\x01\x01\x12\x1b\n\nlimit_name\x18\x8f\x89\xf0\xbd\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0bmetric_name\x18\xba\x97\xb9\xc3\x01 \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x0erollout_status\x18\xc0\xe4\x96\xe3\x01 \x01(\tH\x04\x88\x01\x01\x1a\x31\n\x0f\x44imensionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"e\n\rRolloutStatus\x12\x1c\n\x18UNDEFINED_ROLLOUT_STATUS\x10\x00\x12\x13\n\x0bIN_PROGRESS\x10\x87\xa8\xdd\xdf\x01\x12!\n\x1aROLLOUT_STATUS_UNSPECIFIED\x10\xb8\xd7\xe7\x0c\x42\x0f\n\r_future_limitB\x08\n\x06_limitB\r\n\x0b_limit_nameB\x0e\n\x0c_metric_nameB\x11\n\x0f_rollout_status\"\x88\t\n\x12QuotaStatusWarning\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Data\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\"\xfc\x07\n\x04\x43ode\x12\x12\n\x0eUNDEFINED_CODE\x10\x00\x12\x15\n\x0e\x43LEANUP_FAILED\x10\xd8\x8c\xd6G\x12 \n\x18\x44\x45PRECATED_RESOURCE_USED\x10\xc2\xdf\xeb\xba\x01\x12\x1c\n\x14\x44\x45PRECATED_TYPE_USED\x10\x96\xa4\x9e\xa5\x01\x12(\n DISK_SIZE_LARGER_THAN_IMAGE_SIZE\x10\x97\x81\x95\xb0\x01\x12\x1e\n\x16\x45XPERIMENTAL_TYPE_USED\x10\x8b\x8e\xc1\xd7\x01\x12\x1b\n\x14\x45XTERNAL_API_WARNING\x10\xc3\xbf\xdaS\x12\x1d\n\x15\x46IELD_VALUE_OVERRIDEN\x10\xaf\xb6\x99\x9d\x01\x12#\n\x1bINJECTED_KERNELS_DEPRECATED\x10\x8b\xd9\x82\xc7\x01\x12\x34\n,INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB\x10\xce\x9b\xbc\xbf\x01\x12 \n\x18LARGE_DEPLOYMENT_WARNING\x10\xa6\xe7\xc8\xe5\x01\x12!\n\x1aLIST_OVERHEAD_QUOTA_EXCEED\x10\xc5\xb0\xda\x16\x12\x1f\n\x17MISSING_TYPE_DEPENDENCY\x10\xf7\xf8\xa2\xa4\x01\x12%\n\x1dNEXT_HOP_ADDRESS_NOT_ASSIGNED\x10\x87\xa5\xfa\x9a\x01\x12\"\n\x1aNEXT_HOP_CANNOT_IP_FORWARD\x10\xe7\xea\xe7\xb6\x01\x12.\n\'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE\x10\x92\xe8\xfc\x45\x12#\n\x1bNEXT_HOP_INSTANCE_NOT_FOUND\x10\xce\xcc\xaf\xdd\x01\x12\'\n NEXT_HOP_INSTANCE_NOT_ON_NETWORK\x10\xc2\xe8\x9dt\x12\x1c\n\x14NEXT_HOP_NOT_RUNNING\x10\xb1\xcf\xf0\xc6\x01\x12\x19\n\x12NOT_CRITICAL_ERROR\x10\xd4\xa8\xb7\x32\x12\x19\n\x12NO_RESULTS_ON_PAGE\x10\x88\xa6\xa9\x0e\x12\x16\n\x0fPARTIAL_SUCCESS\x10\x85\xae\x87\x13\x12\x1e\n\x16QUOTA_INFO_UNAVAILABLE\x10\xa6\xd2\x8c\x91\x01\x12\x1d\n\x16REQUIRED_TOS_AGREEMENT\x10\x83\xce\xe4\x01\x12\x31\n)RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING\x10\xc1\xf4\xed\xec\x01\x12\x1b\n\x14RESOURCE_NOT_DELETED\x10\xbc\xb7\xb2P\x12!\n\x19SCHEMA_VALIDATION_IGNORED\x10\xca\xd4\x9f\x83\x01\x12(\n!SINGLE_INSTANCE_PROPERTY_TEMPLATE\x10\xd1\x89\xf8\x7f\x12\x1d\n\x15UNDECLARED_PROPERTIES\x10\x9f\x86\x9b\xba\x01\x12\x12\n\x0bUNREACHABLE\x10\xb4\xbd\xad\x06\x42\x07\n\x05_codeB\n\n\x08_message\"\xcc\x01\n\x07RawDisk\x12\x1f\n\x0e\x63ontainer_type\x18\xb8\xc8\x82\x98\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\rsha1_checksum\x18\xbd\x94\xf8\x95\x01 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x02\x88\x01\x01\"8\n\rContainerType\x12\x1c\n\x18UNDEFINED_CONTAINER_TYPE\x10\x00\x12\t\n\x03TAR\x10\x85\x87\x05\x42\x11\n\x0f_container_typeB\x10\n\x0e_sha1_checksumB\t\n\x07_source\"\xd7\x02\n,RecreateInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x93\x01\n;instance_group_managers_recreate_instances_request_resource\x18\x80\xc2\x9a\n \x01(\x0b\x32\x46.google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xdb\x02\n2RecreateInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x8d\x01\n8region_instance_group_managers_recreate_request_resource\x18\x94\xfc\xc4Q \x01(\x0b\x32\x43.google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x01\n\tReference\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0ereference_type\x18\xae\xbf\x83v \x01(\tH\x01\x88\x01\x01\x12\x19\n\x08referrer\x18\x9f\xf8\xb9\xa7\x01 \x01(\tH\x02\x88\x01\x01\x12\x16\n\x06target\x18\x91\xe3\xf9[ \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_kindB\x11\n\x0f_reference_typeB\x0b\n\t_referrerB\t\n\x07_target\"\x84\x05\n\x06Region\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12R\n\x14quota_status_warning\x18\xf6\x89\xba\x90\x01 \x01(\x0b\x32+.google.cloud.compute.v1.QuotaStatusWarningH\x06\x88\x01\x01\x12\x31\n\x06quotas\x18\xfb\xa1\xe2; \x03(\x0b\x32\x1e.google.cloud.compute.v1.Quota\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0csupports_pzs\x18\xee\xf6\x85( \x01(\x08H\t\x88\x01\x01\x12\x10\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\t\"4\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x17\n\x15_quota_status_warningB\x0c\n\n_self_linkB\t\n\x07_statusB\x0f\n\r_supports_pzs\"\x88\x01\n\x1aRegionAddressesMoveRequest\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12$\n\x13\x64\x65stination_address\x18\xc3\xb1\x9e\xb1\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x16\n\x14_destination_address\"\xab\x02\n\x14RegionAutoscalerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Autoscaler\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa7\x02\n\x12RegionDiskTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.DiskType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"E\n%RegionDisksAddResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"H\n(RegionDisksRemoveResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"@\n\x18RegionDisksResizeRequest\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_size_gb\"h\n\'RegionDisksStartAsyncReplicationRequest\x12$\n\x14\x61sync_secondary_disk\x18\xab\x83\xe3> \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_async_secondary_disk\"\xb1\x02\n\x17RegionInstanceGroupList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x38\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32&.google.cloud.compute.v1.InstanceGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"E\n1RegionInstanceGroupManagerDeleteInstanceConfigReq\x12\x10\n\x05names\x18\xc8\xae\xef\x31 \x03(\t\"\xbf\x02\n\x1eRegionInstanceGroupManagerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManager\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x80\x01\n0RegionInstanceGroupManagerPatchInstanceConfigReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"\x81\x01\n1RegionInstanceGroupManagerUpdateInstanceConfigReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"J\n2RegionInstanceGroupManagersAbandonInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"\xfb\x02\n.RegionInstanceGroupManagersApplyUpdatesRequest\x12\x1e\n\rall_instances\x18\xe0\xba\xbe\xc0\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x01\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x02\x88\x01\x01\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\x42\x10\n\x0e_all_instancesB\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_action\"u\n1RegionInstanceGroupManagersCreateInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"\xa4\x01\n1RegionInstanceGroupManagersDeleteInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x32\n\"skip_instances_on_validation_error\x18\xa1\xf6\xaf\x13 \x01(\x08H\x00\x88\x01\x01\x42%\n#_skip_instances_on_validation_error\"\xaa\x01\n-RegionInstanceGroupManagersListErrorsResponse\x12\x44\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x32.google.cloud.compute.v1.InstanceManagedByIgmError\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xee\x01\n2RegionInstanceGroupManagersListInstanceConfigsResp\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x01\x88\x01\x01\x42\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\xb0\x01\n0RegionInstanceGroupManagersListInstancesResponse\x12G\n\x11managed_instances\x18\xde\x9b\xa9\xa0\x01 \x03(\x0b\x32(.google.cloud.compute.v1.ManagedInstance\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"B\n*RegionInstanceGroupManagersRecreateRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"I\n1RegionInstanceGroupManagersResumeInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"y\n0RegionInstanceGroupManagersSetTargetPoolsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\tB\x0e\n\x0c_fingerprint\"i\n-RegionInstanceGroupManagersSetTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_instance_template\"H\n0RegionInstanceGroupManagersStartInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"r\n/RegionInstanceGroupManagersStopInstancesRequest\x12\x1a\n\nforce_stop\x18\xd6\xa1\xa1@ \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\r\n\x0b_force_stop\"{\n2RegionInstanceGroupManagersSuspendInstancesRequest\x12\x1d\n\rforce_suspend\x18\xe8\xed\x96\r \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\x10\n\x0e_force_suspend\"\xc4\x02\n!RegionInstanceGroupsListInstances\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.InstanceWithNamedPorts\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd0\x01\n(RegionInstanceGroupsListInstancesRequest\x12\x1e\n\x0einstance_state\x18\xe7\xf0\xfc+ \x01(\tH\x00\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x01\x88\x01\x01\"H\n\rInstanceState\x12\x1c\n\x18UNDEFINED_INSTANCE_STATE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x42\x11\n\x0f_instance_stateB\x0c\n\n_port_name\"\x94\x01\n(RegionInstanceGroupsSetNamedPortsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPortB\x0e\n\x0c_fingerprint\"\x9d\x02\n\nRegionList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x31\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1f.google.cloud.compute.v1.Region\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"{\n1RegionNetworkEndpointGroupsAttachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"{\n1RegionNetworkEndpointGroupsDetachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"\x81\x02\n:RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse\x12\x88\x01\n\x10\x66irewall_policys\x18\xc2\xca\xfc\xc3\x01 \x03(\x0b\x32j.google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x38\n\tfirewalls\x18\xf3\xc6\xe8\x81\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\"\x94\x04\nQRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12O\n\x16packet_mirroring_rules\x18\xc4\xff\xc0\xfd\x01 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x02\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x03\x88\x01\x01\"\x99\x01\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\tHIERARCHY\x10\x95\xc4\xaa!\x12\x0f\n\x07NETWORK\x10\x8e\xcc\xb3\xc5\x01\x12\x17\n\x10NETWORK_REGIONAL\x10\xb0\xe2\xfdZ\x12\x14\n\rSYSTEM_GLOBAL\x10\xb3\x97\xd4\x1c\x12\x16\n\x0fSYSTEM_REGIONAL\x10\xaf\x8c\x92M\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0f\n\r_display_nameB\x07\n\x05_nameB\x0b\n\t_priorityB\x07\n\x05_type\"\xd1\x01\n\x16RegionSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12O\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32;.google.cloud.compute.v1.RegionSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"\xb3\x01\n\x16RegionSetPolicyRequest\x12\x36\n\x08\x62indings\x18\x8e\xc5\xa4\xc0\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Binding\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06policy\x18\xb2\xca\xb6+ \x01(\x0b\x32\x1f.google.cloud.compute.v1.PolicyH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_policy\"Q\n1RegionTargetHttpsProxiesSetSslCertificatesRequest\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\"f\n\x1cRegionUrlMapsValidateRequest\x12\x39\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapH\x00\x88\x01\x01\x42\x0b\n\t_resource\"\x94\x01\n&RemoveAssociationFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_request_id\"\xbe\x01\n-RemoveAssociationNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_request_id\"\xe5\x01\n3RemoveAssociationRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_request_id\"\xb3\x02\n\"RemoveHealthCheckTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12\x80\x01\n1target_pools_remove_health_check_request_resource\x18\xb3\xe7\xb6\x91\x01 \x01(\x0b\x32<.google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n\x1fRemoveInstanceTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12x\n-target_pools_remove_instance_request_resource\x18\x83\xc0\x8b\x0e \x01(\x0b\x32\x39.google.cloud.compute.v1.TargetPoolsRemoveInstanceRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb4\x02\n#RemoveInstancesInstanceGroupRequest\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12\x81\x01\n1instance_groups_remove_instances_request_resource\x18\xb9\xd1\xb7\xba\x01 \x01(\x0b\x32=.google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcf\x01\n5RemovePacketMirroringRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xf6\x01\n\x1bRemovePeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12p\n(networks_remove_peering_request_resource\x18\xfe\xdb\xe9\xc8\x01 \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworksRemovePeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa3\x02\n!RemoveResourcePoliciesDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12}\n/disks_remove_resource_policies_request_resource\x18\xee\xc1\xa1\xd0\x01 \x01(\x0b\x32;.google.cloud.compute.v1.DisksRemoveResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb3\x02\n%RemoveResourcePoliciesInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x84\x01\n3instances_remove_resource_policies_request_resource\x18\xf6\xdd\xbc\x17 \x01(\x0b\x32?.google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xba\x02\n\'RemoveResourcePoliciesRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x89\x01\n6region_disks_remove_resource_policies_request_resource\x18\xa3\xc3\x95\x04 \x01(\x0b\x32\x41.google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x96\x01\n\x1fRemoveRuleFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xc0\x01\n&RemoveRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xe7\x01\n,RemoveRuleRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xb4\x01\n%RemoveRuleRegionSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\x0b\n\t_priority\"\x8d\x01\n\x1fRemoveRuleSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\x0b\n\t_priority\"\xa8\x02\n!ReportHostAsFaultyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12~\n0instances_report_host_as_faulty_request_resource\x18\xa6\x94\xcd\xeb\x01 \x01(\x0b\x32;.google.cloud.compute.v1.InstancesReportHostAsFaultyRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"K\n\x13RequestMirrorPolicy\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_backend_service\"\x8b\x02\n\"RequestRemovePeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12~\n0networks_request_remove_peering_request_resource\x18\xce\xe4\xf7G \x01(\x0b\x32<.google.cloud.compute.v1.NetworksRequestRemovePeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x95\x10\n\x0bReservation\x12k\n\x1b\x61\x64vanced_deployment_control\x18\xa0\x92\xe6\xc3\x01 \x01(\x0b\x32=.google.cloud.compute.v1.ReservationAdvancedDeploymentControlH\x00\x88\x01\x01\x12_\n\x15\x61ggregate_reservation\x18\xcc\xf2\x83\x8b\x01 \x01(\x0b\x32\x37.google.cloud.compute.v1.AllocationAggregateReservationH\x01\x88\x01\x01\x12\x1b\n\ncommitment\x18\x95\x96\xf3\xe5\x01 \x01(\tH\x02\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12I\n\x15\x64\x65lete_after_duration\x18\xab\x9b\xbf\x9a\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x04\x88\x01\x01\x12\x1e\n\x0e\x64\x65lete_at_time\x18\xc5\xf1\xdb\' \x01(\tH\x05\x88\x01\x01\x12 \n\x0f\x64\x65ployment_type\x18\xf4\x80\x96\xbd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x07\x88\x01\x01\x12,\n\x1b\x65nable_emergent_maintenance\x18\x89\xe2\xd7\xa8\x01 \x01(\x08H\x08\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x1e\n\x12linked_commitments\x18\xd8\xfd\xc8\xe0\x01 \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0b\x88\x01\x01\x12g\n\x1areservation_sharing_policy\x18\xc8\xb5\x9b\x62 \x01(\x0b\x32;.google.cloud.compute.v1.AllocationReservationSharingPolicyH\x0c\x88\x01\x01\x12X\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\x0b\x32:.google.cloud.compute.v1.Reservation.ResourcePoliciesEntry\x12R\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x31.google.cloud.compute.v1.AllocationResourceStatusH\r\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x0e\x88\x01\x01\x12\x1f\n\x0fscheduling_type\x18\x85\xfe\xa4_ \x01(\tH\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12\x46\n\x0eshare_settings\x18\x83\x91\x94\x7f \x01(\x0b\x32&.google.cloud.compute.v1.ShareSettingsH\x11\x88\x01\x01\x12`\n\x14specific_reservation\x18\xbf\xa0\x89\xc1\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.AllocationSpecificSKUReservationH\x12\x88\x01\x01\x12-\n\x1dspecific_reservation_required\x18\x9f\xc7\x83l \x01(\x08H\x13\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x14\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x15\x88\x01\x01\x1a\x37\n\x15ResourcePoliciesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"a\n\x0e\x44\x65ploymentType\x12\x1d\n\x19UNDEFINED_DEPLOYMENT_TYPE\x10\x00\x12\x0c\n\x05\x44\x45NSE\x10\xff\x95\xfb\x1e\x12\"\n\x1b\x44\x45PLOYMENT_TYPE_UNSPECIFIED\x10\xcc\xf7\xfdo\"\x80\x01\n\x0eSchedulingType\x12\x1d\n\x19UNDEFINED_SCHEDULING_TYPE\x10\x00\x12\x0f\n\x07GROUPED\x10\xbe\xd6\xa3\xe2\x01\x12*\n\"GROUP_MAINTENANCE_TYPE_UNSPECIFIED\x10\xbe\xf6\x9d\xd5\x01\x12\x12\n\x0bINDEPENDENT\x10\xda\x96\xc8<\"s\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x42\x1e\n\x1c_advanced_deployment_controlB\x18\n\x16_aggregate_reservationB\r\n\x0b_commitmentB\x15\n\x13_creation_timestampB\x18\n\x16_delete_after_durationB\x11\n\x0f_delete_at_timeB\x12\n\x10_deployment_typeB\x0e\n\x0c_descriptionB\x1e\n\x1c_enable_emergent_maintenanceB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x1d\n\x1b_reservation_sharing_policyB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pzsB\x12\n\x10_scheduling_typeB\x0c\n\n_self_linkB\x11\n\x0f_share_settingsB\x17\n\x15_specific_reservationB \n\x1e_specific_reservation_requiredB\t\n\x07_statusB\x07\n\x05_zone\"\xaa\x02\n$ReservationAdvancedDeploymentControl\x12-\n\x1creservation_operational_mode\x18\x83\xa4\xb4\xee\x01 \x01(\tH\x00\x88\x01\x01\"\xb1\x01\n\x1aReservationOperationalMode\x12*\n&UNDEFINED_RESERVATION_OPERATIONAL_MODE\x10\x00\x12\x14\n\x0c\x41LL_CAPACITY\x10\xb8\xb3\xb7\xee\x01\x12 \n\x19HIGHLY_AVAILABLE_CAPACITY\x10\xa0\xba\xee\x34\x12/\n(RESERVATION_OPERATIONAL_MODE_UNSPECIFIED\x10\x9b\xf6\xd2\\B\x1f\n\x1d_reservation_operational_mode\"\xb0\x02\n\x13ReservationAffinity\x12)\n\x18\x63onsume_reservation_type\x18\xb0\xc3\xb3\x8f\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x06values\x18\xa2\xba\x96w \x03(\t\"\xa1\x01\n\x16\x43onsumeReservationType\x12&\n\"UNDEFINED_CONSUME_RESERVATION_TYPE\x10\x00\x12\x16\n\x0f\x41NY_RESERVATION\x10\xb9\xc3\xaf_\x12\x15\n\x0eNO_RESERVATION\x10\xae\xcc\xdeP\x12\x1b\n\x14SPECIFIC_RESERVATION\x10\x9f\xa8\xcfm\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x1b\n\x19_consume_reservation_typeB\x06\n\x04_key\"\xc2\x03\n\x19ReservationAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.ReservationAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.ReservationsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xf2\x07\n\x10ReservationBlock\x12\x15\n\x05\x63ount\x18\x8f\xa2\x9d- \x01(\x05H\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12P\n\x0bhealth_info\x18\xb1\xe9\x98p \x01(\x0b\x32\x33.google.cloud.compute.v1.ReservationBlockHealthInfoH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x0cin_use_count\x18\xbd\xab\xa6\xeb\x01 \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12]\n\x11physical_topology\x18\xd7\xa9\xb4\x85\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.ReservationBlockPhysicalTopologyH\x07\x88\x01\x01\x12W\n\x17reservation_maintenance\x18\xa0\x86\xb5\xa2\x01 \x01(\x0b\x32-.google.cloud.compute.v1.GroupMaintenanceInfoH\x08\x88\x01\x01\x12,\n\x1breservation_sub_block_count\x18\xeb\xb1\xdd\x9d\x01 \x01(\x05H\t\x88\x01\x01\x12\x32\n\"reservation_sub_block_in_use_count\x18\xe1\xfc\xd8X \x01(\x05H\n\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\r\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0e\x88\x01\x01\"a\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x08\n\x06_countB\x15\n\x13_creation_timestampB\x0e\n\x0c_health_infoB\x05\n\x03_idB\x0f\n\r_in_use_countB\x07\n\x05_kindB\x07\n\x05_nameB\x14\n\x12_physical_topologyB\x1a\n\x18_reservation_maintenanceB\x1e\n\x1c_reservation_sub_block_countB%\n#_reservation_sub_block_in_use_countB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\t\n\x07_statusB\x07\n\x05_zone\"\xce\x02\n\x1aReservationBlockHealthInfo\x12)\n\x18\x64\x65graded_sub_block_count\x18\xcd\xe8\xb4\xda\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x01(\tH\x01\x88\x01\x01\x12\'\n\x17healthy_sub_block_count\x18\xbc\xb9\xc6\x02 \x01(\x05H\x02\x88\x01\x01\"q\n\x0cHealthStatus\x12\x1b\n\x17UNDEFINED_HEALTH_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12!\n\x19HEALTH_STATUS_UNSPECIFIED\x10\x8d\x82\xfa\xe5\x01\x42\x1b\n\x19_degraded_sub_block_countB\x10\n\x0e_health_statusB\x1a\n\x18_healthy_sub_block_count\"\xc2\x01\n ReservationBlockPhysicalTopology\x12\x15\n\x05\x62lock\x18\x8d\x89\xdf, \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07\x63luster\x18\xfa\xa3\xec\x9f\x01 \x01(\tH\x01\x88\x01\x01\x12W\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32\x41.google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstanceB\x08\n\x06_blockB\n\n\x08_cluster\"\x9d\x02\n(ReservationBlockPhysicalTopologyInstance\x12\x1b\n\x0binstance_id\x18\x85\xb2\xd8\x15 \x01(\x04H\x00\x88\x01\x01\x12~\n\x16physical_host_topology\x18\xbe\x93\xaf\xba\x01 \x01(\x0b\x32U.google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopologyH\x01\x88\x01\x01\x12\x1a\n\nproject_id\x18\x81\xc8\xd2T \x01(\x04H\x02\x88\x01\x01\x42\x0e\n\x0c_instance_idB\x19\n\x17_physical_host_topologyB\r\n\x0b_project_id\"\x87\x01\n\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32,.google.cloud.compute.v1.ReservationSubBlock\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfa\x01\n+ReservationsBlocksPerformMaintenanceRequest\x12!\n\x11maintenance_scope\x18\xa8\xf4\x8a\x43 \x01(\tH\x00\x88\x01\x01\"\x91\x01\n\x10MaintenanceScope\x12\x1f\n\x1bUNDEFINED_MAINTENANCE_SCOPE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12$\n\x1dMAINTENANCE_SCOPE_UNSPECIFIED\x10\xc0\x9e\xcb%\x12\x13\n\x0bRUNNING_VMS\x10\xdc\xeb\xbc\xff\x01\x12\x16\n\x0fUNUSED_CAPACITY\x10\x83\xda\xb7\x65\x42\x14\n\x12_maintenance_scope\"\xf4\x01\n%ReservationsPerformMaintenanceRequest\x12!\n\x11maintenance_scope\x18\xa8\xf4\x8a\x43 \x01(\tH\x00\x88\x01\x01\"\x91\x01\n\x10MaintenanceScope\x12\x1f\n\x1bUNDEFINED_MAINTENANCE_SCOPE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12$\n\x1dMAINTENANCE_SCOPE_UNSPECIFIED\x10\xc0\x9e\xcb%\x12\x13\n\x0bRUNNING_VMS\x10\xdc\xeb\xbc\xff\x01\x12\x16\n\x0fUNUSED_CAPACITY\x10\x83\xda\xb7\x65\x42\x14\n\x12_maintenance_scope\"V\n\x19ReservationsResizeRequest\x12\"\n\x12specific_sku_count\x18\xa0\xe9\xcf\x06 \x01(\x03H\x00\x88\x01\x01\x42\x15\n\x13_specific_sku_count\"\x9f\x01\n\x16ReservationsScopedList\x12>\n\x0creservations\x18\xa7\xec\xcc\xbe\x01 \x03(\x0b\x32$.google.cloud.compute.v1.Reservation\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x9b\x01\n\x14ResetInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf0\x01\n\x11ResizeDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x64isks_resize_request_resource\x18\xa0\xc2\xab% \x01(\x0b\x32+.google.cloud.compute.v1.DisksResizeRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcc\x01\n!ResizeInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x88\x02\n\x17ResizeRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12h\n$region_disks_resize_request_resource\x18\x95\xaa\xfc\xd4\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.RegionDisksResizeRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd6\x01\n\'ResizeRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05\x42\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8d\x02\n\x18ResizeReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12i\n$reservations_resize_request_resource\x18\xd1\xdb\xce\xb9\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.ReservationsResizeRequestB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x82\x02\n\x12ResourceCommitment\x12 \n\x10\x61\x63\x63\x65lerator_type\x18\x8e\xe1\xe8\x41 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06\x61mount\x18\xd8\xa0\xe9] \x01(\x03H\x01\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x02\x88\x01\x01\"s\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x13\n\x0b\x41\x43\x43\x45LERATOR\x10\xcb\xec\xf9\xcc\x01\x12\x11\n\tLOCAL_SSD\x10\xf0\xf5\xd6\xf2\x01\x12\r\n\x06MEMORY\x10\x81\xe2\xd6:\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x12\x0b\n\x04VCPU\x10\xf2\xba\xa0\x01\x42\x13\n\x11_accelerator_typeB\t\n\x07_amountB\x07\n\x05_type\"9\n\x16ResourceGroupReference\x12\x15\n\x05group\x18\xff\xec\x83/ \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_group\"\xaa\x01\n\x1aResourcePoliciesScopedList\x12\x45\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xae\t\n\x0eResourcePolicy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12q\n\x1d\x64isk_consistency_group_policy\x18\x9b\x84\xf2\xe1\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicyH\x02\x88\x01\x01\x12\x63\n\x16group_placement_policy\x18\x8c\x9b\x9b\x05 \x01(\x0b\x32;.google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicyH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12h\n\x18instance_schedule_policy\x18\xb0\xd0\xb9\xa4\x01 \x01(\x0b\x32=.google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicyH\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12V\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x35.google.cloud.compute.v1.ResourcePolicyResourceStatusH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12g\n\x18snapshot_schedule_policy\x18\xdf\xd6\x81h \x01(\x0b\x32=.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyH\x0b\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0c\x88\x01\x01\x12V\n\x0fworkload_policy\x18\xfa\x85\xda\x36 \x01(\x0b\x32\x35.google.cloud.compute.v1.ResourcePolicyWorkloadPolicyH\r\x88\x01\x01\"r\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07\x45XPIRED\x10\x85\xe6\x88\xe6\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB \n\x1e_disk_consistency_group_policyB\x19\n\x17_group_placement_policyB\x05\n\x03_idB\x1b\n\x19_instance_schedule_policyB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_resource_statusB\x0c\n\n_self_linkB\x1b\n\x19_snapshot_schedule_policyB\t\n\x07_statusB\x12\n\x10_workload_policy\"\xeb\x03\n\x1cResourcePolicyAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.ResourcePolicyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.ResourcePoliciesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9e\x01\n\x18ResourcePolicyDailyCycle\x12\x1e\n\rdays_in_cycle\x18\xb4\x98\xaa\xb0\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_days_in_cycleB\x0b\n\t_durationB\r\n\x0b_start_time\"*\n(ResourcePolicyDiskConsistencyGroupPolicy\"\xcf\x02\n\"ResourcePolicyGroupPlacementPolicy\x12)\n\x19\x61vailability_domain_count\x18\xb8\x8c\xf8\x05 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0b\x63ollocation\x18\xb5\xc2\xde\xf3\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0cgpu_topology\x18\xa2\xc9\x9dv \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08vm_count\x18\x87\xbb\xd6| \x01(\x05H\x03\x88\x01\x01\"\\\n\x0b\x43ollocation\x12\x19\n\x15UNDEFINED_COLLOCATION\x10\x00\x12\x11\n\nCOLLOCATED\x10\xd2\xab\x9e\x31\x12\x1f\n\x17UNSPECIFIED_COLLOCATION\x10\xed\x8f\xb3\xdd\x01\x42\x1c\n\x1a_availability_domain_countB\x0e\n\x0c_collocationB\x0f\n\r_gpu_topologyB\x0b\n\t_vm_count\"\xa1\x01\n\x19ResourcePolicyHourlyCycle\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0ehours_in_cycle\x18\xfc\x88\x97\xfb\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_durationB\x11\n\x0f_hours_in_cycleB\r\n\x0b_start_time\"\xae\x03\n$ResourcePolicyInstanceSchedulePolicy\x12\x1f\n\x0f\x65xpiration_time\x18\xdd\xac\xe8m \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x01\x88\x01\x01\x12\x19\n\ttime_zone\x18\xde\x83\xc9\x11 \x01(\tH\x02\x88\x01\x01\x12h\n\x11vm_start_schedule\x18\xdc\x90\xbc\x08 \x01(\x0b\x32\x45.google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicyScheduleH\x03\x88\x01\x01\x12h\n\x10vm_stop_schedule\x18\xac\xe5\x9f\xcb\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicyScheduleH\x04\x88\x01\x01\x42\x12\n\x10_expiration_timeB\r\n\x0b_start_timeB\x0c\n\n_time_zoneB\x14\n\x12_vm_start_scheduleB\x13\n\x11_vm_stop_schedule\"V\n,ResourcePolicyInstanceSchedulePolicySchedule\x12\x19\n\x08schedule\x18\x97\xa5\x9a\xb3\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_schedule\"\xcc\x02\n\x12ResourcePolicyList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb9\x01\n\x1cResourcePolicyResourceStatus\x12|\n\x18instance_schedule_policy\x18\xb0\xd0\xb9\xa4\x01 \x01(\x0b\x32Q.google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatusH\x00\x88\x01\x01\x42\x1b\n\x19_instance_schedule_policy\"\xb6\x01\n8ResourcePolicyResourceStatusInstanceSchedulePolicyStatus\x12$\n\x13last_run_start_time\x18\x87\xef\xc1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12$\n\x13next_run_start_time\x18\x8a\xb3\xf8\x97\x01 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_last_run_start_timeB\x16\n\x14_next_run_start_time\"\xa8\x03\n$ResourcePolicySnapshotSchedulePolicy\x12n\n\x10retention_policy\x18\xf3\xca\xdc \x01(\x0b\x32L.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicyH\x00\x88\x01\x01\x12`\n\x08schedule\x18\x97\xa5\x9a\xb3\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyScheduleH\x01\x88\x01\x01\x12t\n\x13snapshot_properties\x18\x8e\x95\xb2X \x01(\x0b\x32O.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesH\x02\x88\x01\x01\x42\x13\n\x11_retention_policyB\x0b\n\t_scheduleB\x16\n\x14_snapshot_properties\"\xd5\x02\n3ResourcePolicySnapshotSchedulePolicyRetentionPolicy\x12#\n\x12max_retention_days\x18\x93\xc2\xd1\x9a\x01 \x01(\x05H\x00\x88\x01\x01\x12&\n\x15on_source_disk_delete\x18\xc9\xcd\xc2\x99\x01 \x01(\tH\x01\x88\x01\x01\"\x9f\x01\n\x12OnSourceDiskDelete\x12#\n\x1fUNDEFINED_ON_SOURCE_DISK_DELETE\x10\x00\x12\x1e\n\x16\x41PPLY_RETENTION_POLICY\x10\xe4\x94\x92\xff\x01\x12\x1a\n\x13KEEP_AUTO_SNAPSHOTS\x10\xf9\xc8\xbb{\x12(\n!UNSPECIFIED_ON_SOURCE_DISK_DELETE\x10\xa1\xff\x83rB\x15\n\x13_max_retention_daysB\x18\n\x16_on_source_disk_delete\"\xe7\x02\n,ResourcePolicySnapshotSchedulePolicySchedule\x12Q\n\x0e\x64\x61ily_schedule\x18\xfd\xe3\x8a) \x01(\x0b\x32\x31.google.cloud.compute.v1.ResourcePolicyDailyCycleH\x00\x88\x01\x01\x12S\n\x0fhourly_schedule\x18\xa5\xb1\xa3\x12 \x01(\x0b\x32\x32.google.cloud.compute.v1.ResourcePolicyHourlyCycleH\x01\x88\x01\x01\x12T\n\x0fweekly_schedule\x18\x95\x89\xb9\xab\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.ResourcePolicyWeeklyCycleH\x02\x88\x01\x01\x42\x11\n\x0f_daily_scheduleB\x12\n\x10_hourly_scheduleB\x12\n\x10_weekly_schedule\"\xd0\x02\n6ResourcePolicySnapshotSchedulePolicySnapshotProperties\x12\x1a\n\nchain_name\x18\xc9\xda\xdd \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\x01\x88\x01\x01\x12o\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32[.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties.LabelsEntry\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_chain_nameB\x0e\n\x0c_guest_flush\"q\n\x19ResourcePolicyWeeklyCycle\x12T\n\x0c\x64\x61y_of_weeks\x18\xda\x9f\xfbz \x03(\x0b\x32;.google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek\"\xb4\x02\n\"ResourcePolicyWeeklyCycleDayOfWeek\x12\x12\n\x03\x64\x61y\x18\x9c\x87\x06 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x02\x88\x01\x01\"\x9f\x01\n\x03\x44\x61y\x12\x11\n\rUNDEFINED_DAY\x10\x00\x12\x0e\n\x06\x46RIDAY\x10\xdf\xf2\xe3\xe0\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\r\n\x06MONDAY\x10\x90\xca\x8b?\x12\x10\n\x08SATURDAY\x10\xb9\x8f\x87\x85\x01\x12\x0e\n\x06SUNDAY\x10\xd0\x8b\xd2\x93\x01\x12\x0f\n\x08THURSDAY\x10\xda\xb3\xe6\x62\x12\x0f\n\x07TUESDAY\x10\xad\xec\xa9\x84\x01\x12\x11\n\tWEDNESDAY\x10\xb6\xce\x9e\xc9\x01\x42\x06\n\x04_dayB\x0b\n\t_durationB\r\n\x0b_start_time\"\xfa\x02\n\x1cResourcePolicyWorkloadPolicy\x12%\n\x14\x61\x63\x63\x65lerator_topology\x18\xc3\xb3\xd2\xb9\x01 \x01(\tH\x00\x88\x01\x01\x12%\n\x15max_topology_distance\x18\xaa\x8b\xcb\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x02\x88\x01\x01\"k\n\x13MaxTopologyDistance\x12#\n\x1fUNDEFINED_MAX_TOPOLOGY_DISTANCE\x10\x00\x12\x0c\n\x05\x42LOCK\x10\xed\x98\x97\x1e\x12\x0f\n\x07\x43LUSTER\x10\xda\xbb\x9a\xf6\x01\x12\x10\n\x08SUBBLOCK\x10\xcd\xbc\xe3\x96\x01\"M\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x19\n\x11HIGH_AVAILABILITY\x10\xd8\x91\xa1\xc3\x01\x12\x16\n\x0fHIGH_THROUGHPUT\x10\xe7\xd1\xed\x45\x42\x17\n\x15_accelerator_topologyB\x18\n\x16_max_topology_distanceB\x07\n\x05_type\"\x8f\x03\n\x0eResourceStatus\x12\x1e\n\rphysical_host\x18\x90\xf8\xb6\xdd\x01 \x01(\tH\x00\x88\x01\x01\x12\x64\n\x16physical_host_topology\x18\xbe\x93\xaf\xba\x01 \x01(\x0b\x32;.google.cloud.compute.v1.ResourceStatusPhysicalHostTopologyH\x01\x88\x01\x01\x12N\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.ResourceStatusSchedulingH\x02\x88\x01\x01\x12R\n\x14upcoming_maintenance\x18\xf0\xa0\xb4l \x01(\x0b\x32,.google.cloud.compute.v1.UpcomingMaintenanceH\x03\x88\x01\x01\x42\x10\n\x0e_physical_hostB\x19\n\x17_physical_host_topologyB\r\n\x0b_schedulingB\x17\n\x15_upcoming_maintenance\"\xb1\x01\n\"ResourceStatusPhysicalHostTopology\x12\x15\n\x05\x62lock\x18\x8d\x89\xdf, \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07\x63luster\x18\xfa\xa3\xec\x9f\x01 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08subblock\x18\xcd\xdc\xcb! \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_blockB\n\n\x08_clusterB\x07\n\x05_hostB\x0b\n\t_subblock\"W\n\x18ResourceStatusScheduling\x12#\n\x13\x61vailability_domain\x18\xa8\xa0\xb4x \x01(\x05H\x00\x88\x01\x01\x42\x16\n\x14_availability_domain\"\x9c\x01\n\x15ResumeInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd1\x02\n*ResumeInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_resume_instances_request_resource\x18\xc2\xbe\xc2= \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n0ResumeInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_instance_group_managers_resume_instances_request_resource\x18\xb7\x83\x80\xdd\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x96\x0c\n\x05Route\x12\x39\n\x08\x61s_paths\x18\xa1\xc5\xcc\x41 \x03(\x0b\x32$.google.cloud.compute.v1.RouteAsPath\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\ndest_range\x18\xe0\xb2\xea\xb5\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12!\n\x10next_hop_gateway\x18\x82\xfa\xec\xb3\x01 \x01(\tH\x07\x88\x01\x01\x12\x1c\n\x0cnext_hop_hub\x18\xb3\xb5\xde^ \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0cnext_hop_ilb\x18\xdd\xba\xde^ \x01(\tH\t\x88\x01\x01\x12\"\n\x11next_hop_instance\x18\x97\xeb\xd1\xbb\x01 \x01(\tH\n\x88\x01\x01\x12*\n\x1anext_hop_inter_region_cost\x18\x93\xe9\xd3\x0b \x01(\rH\x0b\x88\x01\x01\x12\x1b\n\x0bnext_hop_ip\x18\xa9\xaf\xcd\x34 \x01(\tH\x0c\x88\x01\x01\x12\x1c\n\x0cnext_hop_med\x18\x8a\xd7\xde^ \x01(\rH\r\x88\x01\x01\x12 \n\x10next_hop_network\x18\xec\xa1\x89} \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x0fnext_hop_origin\x18\xa8\xd1\x9f\x17 \x01(\tH\x0f\x88\x01\x01\x12!\n\x10next_hop_peering\x18\xfe\x93\xe4\xc4\x01 \x01(\tH\x10\x88\x01\x01\x12$\n\x13next_hop_vpn_tunnel\x18\x95\xe5\xf0\xf7\x01 \x01(\tH\x11\x88\x01\x01\x12<\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32$.google.cloud.compute.v1.RouteParamsH\x12\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\rH\x13\x88\x01\x01\x12\x1d\n\x0croute_status\x18\xa8\xcd\xb2\xc7\x01 \x01(\tH\x14\x88\x01\x01\x12\x1b\n\nroute_type\x18\xf0\xb6\x9e\xb3\x01 \x01(\tH\x15\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x16\x88\x01\x01\x12\x0f\n\x04tags\x18\x99\xe8\xd8\x01 \x03(\t\x12\x37\n\x08warnings\x18\xd7\x88\xc1\xed\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Warnings\"W\n\rNextHopOrigin\x12\x1d\n\x19UNDEFINED_NEXT_HOP_ORIGIN\x10\x00\x12\t\n\x03\x45GP\x10\xee\x97\x04\x12\t\n\x03IGP\x10\xf2\xb5\x04\x12\x11\n\nINCOMPLETE\x10\xde\xea\xd8\x05\"l\n\x0bRouteStatus\x12\x1a\n\x16UNDEFINED_ROUTE_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0f\n\x07\x44ROPPED\x10\xa0\xe7\xcf\xec\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\"`\n\tRouteType\x12\x18\n\x14UNDEFINED_ROUTE_TYPE\x10\x00\x12\t\n\x03\x42GP\x10\xab\x81\x04\x12\x0e\n\x06STATIC\x10\xee\x84\x83\x93\x01\x12\x0e\n\x06SUBNET\x10\xdd\xee\xbc\x93\x01\x12\x0e\n\x07TRANSIT\x10\xb3\x83\xc6YB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\r\n\x0b_dest_rangeB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\x13\n\x11_next_hop_gatewayB\x0f\n\r_next_hop_hubB\x0f\n\r_next_hop_ilbB\x14\n\x12_next_hop_instanceB\x1d\n\x1b_next_hop_inter_region_costB\x0e\n\x0c_next_hop_ipB\x0f\n\r_next_hop_medB\x13\n\x11_next_hop_networkB\x12\n\x10_next_hop_originB\x13\n\x11_next_hop_peeringB\x16\n\x14_next_hop_vpn_tunnelB\t\n\x07_paramsB\x0b\n\t_priorityB\x0f\n\r_route_statusB\r\n\x0b_route_typeB\x0c\n\n_self_link\"\xe7\x01\n\x0bRouteAsPath\x12\x13\n\x08\x61s_lists\x18\xc8\xca\xf9? \x03(\r\x12\"\n\x11path_segment_type\x18\xa0\xb5\xeb\xf4\x01 \x01(\tH\x00\x88\x01\x01\"\x88\x01\n\x0fPathSegmentType\x12\x1f\n\x1bUNDEFINED_PATH_SEGMENT_TYPE\x10\x00\x12\x19\n\x12\x41S_CONFED_SEQUENCE\x10\xb0\x8f\xf7i\x12\x15\n\rAS_CONFED_SET\x10\xf3\xcd\xad\xb2\x01\x12\x12\n\x0b\x41S_SEQUENCE\x10\xae\xd2\xf2\x32\x12\x0e\n\x06\x41S_SET\x10\xb5\x9d\xa4\x9d\x01\x42\x14\n\x12_path_segment_type\"\x9b\x02\n\tRouteList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x30\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x01\n\x0bRouteParams\x12`\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32=.google.cloud.compute.v1.RouteParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc8\x02\n\x0bRoutePolicy\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x12@\n\x05terms\x18\x87\x93\xc9\x34 \x03(\x0b\x32..google.cloud.compute.v1.RoutePolicyPolicyTerm\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x03\x88\x01\x01\"^\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12 \n\x18ROUTE_POLICY_TYPE_EXPORT\x10\xa2\xcd\xe0\x8b\x01\x12 \n\x18ROUTE_POLICY_TYPE_IMPORT\x10\x93\x8d\xc2\xbd\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x07\n\x05_nameB\x07\n\x05_type\"\xb3\x01\n\x15RoutePolicyPolicyTerm\x12\x32\n\x07\x61\x63tions\x18\xfd\x91\x81\xd6\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Expr\x12\x34\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\x0b\x32\x1d.google.cloud.compute.v1.ExprH\x00\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_matchB\x0b\n\t_priority\"\xda\x05\n\x06Router\x12\x36\n\x03\x62gp\x18\xcb\xf9\x05 \x01(\x0b\x32\".google.cloud.compute.v1.RouterBgpH\x00\x88\x01\x01\x12=\n\tbgp_peers\x18\xdd\xad\xee\xd7\x01 \x03(\x0b\x32&.google.cloud.compute.v1.RouterBgpPeer\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12.\n\x1d\x65ncrypted_interconnect_router\x18\x9f\xa2\x8c\x8e\x01 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12?\n\ninterfaces\x18\xda\xf4\xe0\x05 \x03(\x0b\x32(.google.cloud.compute.v1.RouterInterface\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12W\n\x17md5_authentication_keys\x18\x9a\xae\xf1! \x03(\x0b\x32\x33.google.cloud.compute.v1.RouterMd5AuthenticationKey\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x33\n\x04nats\x18\xf2\xf6\xcd\x01 \x03(\x0b\x32\".google.cloud.compute.v1.RouterNat\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x42\x06\n\x04_bgpB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB \n\x1e_encrypted_interconnect_routerB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_link\"h\n\x17RouterAdvertisedIpRange\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05range\x18\xbd\xf2\xd0\x33 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_range\"\xb3\x03\n\x14RouterAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12J\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x38.google.cloud.compute.v1.RouterAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aX\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.google.cloud.compute.v1.RoutersScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd8\x03\n\tRouterBgp\x12\x1f\n\x0e\x61\x64vertise_mode\x18\xbb\x95\xeb\x94\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x11\x61\x64vertised_groups\x18\xb6\xde\x85\n \x03(\t\x12Q\n\x14\x61\x64vertised_ip_ranges\x18\xcc\xd8\xf3\x10 \x03(\x0b\x32\x30.google.cloud.compute.v1.RouterAdvertisedIpRange\x12\x12\n\x03\x61sn\x18\xfc\xf4\x05 \x01(\rH\x01\x88\x01\x01\x12!\n\x10identifier_range\x18\xa7\xcc\x95\xef\x01 \x01(\tH\x02\x88\x01\x01\x12#\n\x12keepalive_interval\x18\xbc\xe5\xfc\x83\x01 \x01(\rH\x03\x88\x01\x01\"M\n\rAdvertiseMode\x12\x1c\n\x18UNDEFINED_ADVERTISE_MODE\x10\x00\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\"G\n\x10\x41\x64vertisedGroups\x12\x1f\n\x1bUNDEFINED_ADVERTISED_GROUPS\x10\x00\x12\x12\n\x0b\x41LL_SUBNETS\x10\xd8\x8f\xdd\x01\x42\x11\n\x0f_advertise_modeB\x06\n\x04_asnB\x13\n\x11_identifier_rangeB\x15\n\x13_keepalive_interval\"\xa5\r\n\rRouterBgpPeer\x12\x1f\n\x0e\x61\x64vertise_mode\x18\xbb\x95\xeb\x94\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x11\x61\x64vertised_groups\x18\xb6\xde\x85\n \x03(\t\x12Q\n\x14\x61\x64vertised_ip_ranges\x18\xcc\xd8\xf3\x10 \x03(\x0b\x32\x30.google.cloud.compute.v1.RouterAdvertisedIpRange\x12)\n\x19\x61\x64vertised_route_priority\x18\xbc\x9c\xf6X \x01(\rH\x01\x88\x01\x01\x12=\n\x03\x62\x66\x64\x18\xa0\xf9\x05 \x01(\x0b\x32).google.cloud.compute.v1.RouterBgpPeerBfdH\x02\x88\x01\x01\x12`\n\x18\x63ustom_learned_ip_ranges\x18\xc4\x88\xc4\xe5\x01 \x03(\x0b\x32:.google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange\x12.\n\x1d\x63ustom_learned_route_priority\x18\xc4\xe2\xc6\x9d\x01 \x01(\x05H\x03\x88\x01\x01\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv4\x18\xa1\xf6\xc3V \x01(\x08H\x05\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv6\x18\xa3\xf6\xc3V \x01(\x08H\x06\x88\x01\x01\x12\x1a\n\x0f\x65xport_policies\x18\xfb\xf2\xf7? \x03(\t\x12\x1b\n\x0fimport_policies\x18\xaa\xf1\x8f\xd7\x01 \x03(\t\x12\x1f\n\x0einterface_name\x18\xd1\xc3\xe4\xd0\x01 \x01(\tH\x07\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x08\x88\x01\x01\x12$\n\x14ipv4_nexthop_address\x18\xd1\x8d\xdc\x02 \x01(\tH\t\x88\x01\x01\x12$\n\x14ipv6_nexthop_address\x18\xd3\x85\xab\r \x01(\tH\n\x88\x01\x01\x12\x1f\n\x0fmanagement_type\x18\xb6\x83\xeaR \x01(\tH\x0b\x88\x01\x01\x12,\n\x1bmd5_authentication_key_name\x18\x91\xbd\x83\x86\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\r\x88\x01\x01\x12\x18\n\x08peer_asn\x18\x9f\xb4\x96! \x01(\rH\x0e\x88\x01\x01\x12\x1f\n\x0fpeer_ip_address\x18\xd9\x97\x87\x63 \x01(\tH\x0f\x88\x01\x01\x12*\n\x19peer_ipv4_nexthop_address\x18\x8e\x83\xdf\xdf\x01 \x01(\tH\x10\x88\x01\x01\x12*\n\x19peer_ipv6_nexthop_address\x18\x90\xfb\xad\xea\x01 \x01(\tH\x11\x88\x01\x01\x12*\n\x19router_appliance_instance\x18\x9d\xc7\xa7\xdf\x01 \x01(\tH\x12\x88\x01\x01\"M\n\rAdvertiseMode\x12\x1c\n\x18UNDEFINED_ADVERTISE_MODE\x10\x00\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\"G\n\x10\x41\x64vertisedGroups\x12\x1f\n\x1bUNDEFINED_ADVERTISED_GROUPS\x10\x00\x12\x12\n\x0b\x41LL_SUBNETS\x10\xd8\x8f\xdd\x01\"9\n\x06\x45nable\x12\x14\n\x10UNDEFINED_ENABLE\x10\x00\x12\x0c\n\x05\x46\x41LSE\x10\x83\xc2\xe4\x1f\x12\x0b\n\x04TRUE\x10\x8e\xdb\x9d\x01\"g\n\x0eManagementType\x12\x1d\n\x19UNDEFINED_MANAGEMENT_TYPE\x10\x00\x12\x1d\n\x15MANAGED_BY_ATTACHMENT\x10\xcb\xd2\xea\xda\x01\x12\x17\n\x0fMANAGED_BY_USER\x10\xf3\x8b\xa6\x97\x01\x42\x11\n\x0f_advertise_modeB\x1c\n\x1a_advertised_route_priorityB\x06\n\x04_bfdB \n\x1e_custom_learned_route_priorityB\t\n\x07_enableB\x0e\n\x0c_enable_ipv4B\x0e\n\x0c_enable_ipv6B\x11\n\x0f_interface_nameB\r\n\x0b_ip_addressB\x17\n\x15_ipv4_nexthop_addressB\x17\n\x15_ipv6_nexthop_addressB\x12\n\x10_management_typeB\x1e\n\x1c_md5_authentication_key_nameB\x07\n\x05_nameB\x0b\n\t_peer_asnB\x12\n\x10_peer_ip_addressB\x1c\n\x1a_peer_ipv4_nexthop_addressB\x1c\n\x1a_peer_ipv6_nexthop_addressB\x1c\n\x1a_router_appliance_instance\"\x86\x03\n\x10RouterBgpPeerBfd\x12$\n\x14min_receive_interval\x18\xee\xb9\x94Y \x01(\rH\x00\x88\x01\x01\x12&\n\x15min_transmit_interval\x18\xc7\xd1\xc2\xf9\x01 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\nmultiplier\x18\xc1\xfb\x9d[ \x01(\rH\x02\x88\x01\x01\x12+\n\x1bsession_initialization_mode\x18\xb9\x8d\xc3\x32 \x01(\tH\x03\x88\x01\x01\"y\n\x19SessionInitializationMode\x12)\n%UNDEFINED_SESSION_INITIALIZATION_MODE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x07PASSIVE\x10\x87\xf6\xd7\xdc\x01\x42\x17\n\x15_min_receive_intervalB\x18\n\x16_min_transmit_intervalB\r\n\x0b_multiplierB\x1e\n\x1c_session_initialization_mode\"D\n!RouterBgpPeerCustomLearnedIpRange\x12\x15\n\x05range\x18\xbd\xf2\xd0\x33 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_range\"\x95\x05\n\x0fRouterInterface\x12\x18\n\x08ip_range\x18\xa5\xe0\x97\x45 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nip_version\x18\xc0\xf3\xd2\x8c\x01 \x01(\tH\x01\x88\x01\x01\x12/\n\x1elinked_interconnect_attachment\x18\xce\xea\xf7\xee\x01 \x01(\tH\x02\x88\x01\x01\x12\"\n\x11linked_vpn_tunnel\x18\xf9\xbf\xfe\xa7\x01 \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x0fmanagement_type\x18\xb6\x83\xeaR \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x12private_ip_address\x18\x98\xd2\x8b\x30 \x01(\tH\x06\x88\x01\x01\x12$\n\x13redundant_interface\x18\xe7\xe8\xbc\xf9\x01 \x01(\tH\x07\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x08\x88\x01\x01\"?\n\tIpVersion\x12\x18\n\x14UNDEFINED_IP_VERSION\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\"g\n\x0eManagementType\x12\x1d\n\x19UNDEFINED_MANAGEMENT_TYPE\x10\x00\x12\x1d\n\x15MANAGED_BY_ATTACHMENT\x10\xcb\xd2\xea\xda\x01\x12\x17\n\x0fMANAGED_BY_USER\x10\xf3\x8b\xa6\x97\x01\x42\x0b\n\t_ip_rangeB\r\n\x0b_ip_versionB!\n\x1f_linked_interconnect_attachmentB\x14\n\x12_linked_vpn_tunnelB\x12\n\x10_management_typeB\x07\n\x05_nameB\x15\n\x13_private_ip_addressB\x16\n\x14_redundant_interfaceB\r\n\x0b_subnetwork\"\x9d\x02\n\nRouterList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x31\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1f.google.cloud.compute.v1.Router\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"W\n\x1aRouterMd5AuthenticationKey\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x07\n\x05_name\"\xb5\x11\n\tRouterNat\x12\"\n\x11\x61uto_network_tier\x18\xe3\xbb\xd1\x80\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\rdrain_nat_ips\x18\xc7\xc1\xae\xf0\x01 \x03(\t\x12/\n\x1e\x65nable_dynamic_port_allocation\x18\xa2\x99\xdd\xfd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x33\n#enable_endpoint_independent_mapping\x18\x9b\x89\xdb{ \x01(\x08H\x02\x88\x01\x01\x12\x1a\n\x0e\x65ndpoint_types\x18\xcf\xaa\xd6\xef\x01 \x03(\t\x12%\n\x15icmp_idle_timeout_sec\x18\xca\xd0\xde\x01 \x01(\x05H\x03\x88\x01\x01\x12H\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32+.google.cloud.compute.v1.RouterNatLogConfigH\x04\x88\x01\x01\x12 \n\x10max_ports_per_vm\x18\xe1\xc9\x9ew \x01(\x05H\x05\x88\x01\x01\x12 \n\x10min_ports_per_vm\x18\xb3\xad\xe4X \x01(\x05H\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12Q\n\x11nat64_subnetworks\x18\xa5\xfb\xa8\x1e \x03(\x0b\x32\x33.google.cloud.compute.v1.RouterNatSubnetworkToNat64\x12\'\n\x16nat_ip_allocate_option\x18\xfd\xb8\xf4\xcc\x01 \x01(\tH\x08\x88\x01\x01\x12\x12\n\x07nat_ips\x18\x8e\xf0\x8b\x38 \x03(\t\x12\x38\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32&.google.cloud.compute.v1.RouterNatRule\x12\x32\n\"source_subnetwork_ip_ranges_to_nat\x18\xdb\xef\xa1x \x01(\tH\t\x88\x01\x01\x12\x34\n$source_subnetwork_ip_ranges_to_nat64\x18\xd9\xe7\xa7v \x01(\tH\n\x88\x01\x01\x12J\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.RouterNatSubnetworkToNat\x12\x30\n tcp_established_idle_timeout_sec\x18\xed\xeb\xb0j \x01(\x05H\x0b\x88\x01\x01\x12*\n\x19tcp_time_wait_timeout_sec\x18\xfd\xbb\xf3\xf4\x01 \x01(\x05H\x0c\x88\x01\x01\x12/\n\x1ftcp_transitory_idle_timeout_sec\x18\xa6\xfb\xe1\x61 \x01(\x05H\r\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x0e\x88\x01\x01\x12$\n\x14udp_idle_timeout_sec\x18\xc6\xb2\xfa\x1e \x01(\x05H\x0f\x88\x01\x01\"\x98\x01\n\x0f\x41utoNetworkTier\x12\x1f\n\x1bUNDEFINED_AUTO_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"\x88\x01\n\rEndpointTypes\x12\x1c\n\x18UNDEFINED_ENDPOINT_TYPES\x10\x00\x12&\n\x1e\x45NDPOINT_TYPE_MANAGED_PROXY_LB\x10\x82\xba\xb6\xd1\x01\x12\x18\n\x11\x45NDPOINT_TYPE_SWG\x10\xc8\xce\xfdK\x12\x17\n\x10\x45NDPOINT_TYPE_VM\x10\xb2\xea\x9c\x1b\"a\n\x13NatIpAllocateOption\x12$\n UNDEFINED_NAT_IP_ALLOCATE_OPTION\x10\x00\x12\x10\n\tAUTO_ONLY\x10\xbc\xe0\xf8V\x12\x12\n\x0bMANUAL_ONLY\x10\x85\xc1\xc9|\"\xc2\x01\n\x1dSourceSubnetworkIpRangesToNat\x12\x30\n,UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT\x10\x00\x12$\n\x1d\x41LL_SUBNETWORKS_ALL_IP_RANGES\x10\xd8\x93\xe8U\x12,\n%ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES\x10\xbb\xc3\xbeX\x12\x1b\n\x13LIST_OF_SUBNETWORKS\x10\xfe\xa2\xe4\xf6\x01\"\x95\x01\n\x1fSourceSubnetworkIpRangesToNat64\x12\x32\n.UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT64\x10\x00\x12\x1c\n\x14\x41LL_IPV6_SUBNETWORKS\x10\xeb\xcd\xf3\xa2\x01\x12 \n\x18LIST_OF_IPV6_SUBNETWORKS\x10\xb4\x98\xbc\xf8\x01\":\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\r\n\x06PUBLIC\x10\xe9\xcc\xc2jB\x14\n\x12_auto_network_tierB!\n\x1f_enable_dynamic_port_allocationB&\n$_enable_endpoint_independent_mappingB\x18\n\x16_icmp_idle_timeout_secB\r\n\x0b_log_configB\x13\n\x11_max_ports_per_vmB\x13\n\x11_min_ports_per_vmB\x07\n\x05_nameB\x19\n\x17_nat_ip_allocate_optionB%\n#_source_subnetwork_ip_ranges_to_natB\'\n%_source_subnetwork_ip_ranges_to_nat64B#\n!_tcp_established_idle_timeout_secB\x1c\n\x1a_tcp_time_wait_timeout_secB\"\n _tcp_transitory_idle_timeout_secB\x07\n\x05_typeB\x17\n\x15_udp_idle_timeout_sec\"\xb7\x01\n\x12RouterNatLogConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x01\x88\x01\x01\"Y\n\x06\x46ilter\x12\x14\n\x10UNDEFINED_FILTER\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12\x13\n\x0b\x45RRORS_ONLY\x10\x80\xb0\xcf\x92\x01\x12\x19\n\x11TRANSLATIONS_ONLY\x10\xe9\xc3\xaa\xaa\x01\x42\t\n\x07_enableB\t\n\x07_filter\"\xdd\x01\n\rRouterNatRule\x12\x44\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\x0b\x32,.google.cloud.compute.v1.RouterNatRuleActionH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0brule_number\x18\xec\xdb\x9a\xff\x01 \x01(\rH\x03\x88\x01\x01\x42\t\n\x07_actionB\x0e\n\x0c_descriptionB\x08\n\x06_matchB\x0e\n\x0c_rule_number\"\xa2\x01\n\x13RouterNatRuleAction\x12 \n\x15source_nat_active_ips\x18\xf5\xbb\xa8\x64 \x03(\t\x12#\n\x18source_nat_active_ranges\x18\xed\xd0\xeeZ \x03(\t\x12 \n\x14source_nat_drain_ips\x18\xa3\xc5\xc1\xa2\x01 \x03(\t\x12\"\n\x17source_nat_drain_ranges\x18\xff\xf9\xb7( \x03(\t\"\x96\x02\n\x18RouterNatSubnetworkToNat\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x18secondary_ip_range_names\x18\xd9\xc1\x84~ \x03(\t\x12#\n\x17source_ip_ranges_to_nat\x18\xf2\xca\x94\xb9\x01 \x03(\t\"\x90\x01\n\x13SourceIpRangesToNat\x12%\n!UNDEFINED_SOURCE_IP_RANGES_TO_NAT\x10\x00\x12\x14\n\rALL_IP_RANGES\x10\xb0\xaf\xfd\x10\x12\"\n\x1bLIST_OF_SECONDARY_IP_RANGES\x10\x9c\xb4\xd8[\x12\x18\n\x10PRIMARY_IP_RANGE\x10\xc2\x93\xd6\x8d\x01\x42\x07\n\x05_name\";\n\x1aRouterNatSubnetworkToNat64\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xc6\x02\n\x0cRouterStatus\x12\x37\n\x0b\x62\x65st_routes\x18\x85\xac\xdf\xbc\x01 \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12\x41\n\x16\x62\x65st_routes_for_router\x18\xf9\xfb\xf6\x38 \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12N\n\x0f\x62gp_peer_status\x18\xfb\xd7\x95h \x03(\x0b\x32\x32.google.cloud.compute.v1.RouterStatusBgpPeerStatus\x12\x45\n\nnat_status\x18\xd0\x99\x8b\x1e \x03(\x0b\x32..google.cloud.compute.v1.RouterStatusNatStatus\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_network\"\xe9\n\n\x19RouterStatusBgpPeerStatus\x12=\n\x11\x61\x64vertised_routes\x18\xac\xd9\xfc\x9e\x01 \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12?\n\nbfd_status\x18\xf1\xb8\xd3\xbc\x01 \x01(\x0b\x32\".google.cloud.compute.v1.BfdStatusH\x00\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv4\x18\xa1\xf6\xc3V \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv6\x18\xa3\xf6\xc3V \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x03\x88\x01\x01\x12$\n\x14ipv4_nexthop_address\x18\xd1\x8d\xdc\x02 \x01(\tH\x04\x88\x01\x01\x12$\n\x14ipv6_nexthop_address\x18\xd3\x85\xab\r \x01(\tH\x05\x88\x01\x01\x12\"\n\x11linked_vpn_tunnel\x18\xf9\xbf\xfe\xa7\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x10md5_auth_enabled\x18\xcb\x91\x90\xd7\x01 \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\"\n\x12num_learned_routes\x18\xff\xd5\xcb@ \x01(\rH\t\x88\x01\x01\x12\x1f\n\x0fpeer_ip_address\x18\xd9\x97\x87\x63 \x01(\tH\n\x88\x01\x01\x12*\n\x19peer_ipv4_nexthop_address\x18\x8e\x83\xdf\xdf\x01 \x01(\tH\x0b\x88\x01\x01\x12*\n\x19peer_ipv6_nexthop_address\x18\x90\xfb\xad\xea\x01 \x01(\tH\x0c\x88\x01\x01\x12*\n\x19router_appliance_instance\x18\x9d\xc7\xa7\xdf\x01 \x01(\tH\r\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x0e\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0f\x88\x01\x01\x12\x1e\n\rstatus_reason\x18\xb1\x96\xb5\xa3\x01 \x01(\tH\x10\x88\x01\x01\x12\x16\n\x06uptime\x18\xe8\xb7\x9ep \x01(\tH\x11\x88\x01\x01\x12\x1e\n\x0euptime_seconds\x18\xa8\xca\xf8\x31 \x01(\tH\x12\x88\x01\x01\"E\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\x12\x07\n\x02UP\x10\x9b\x15\"\xc6\x01\n\x0cStatusReason\x12\x1b\n\x17UNDEFINED_STATUS_REASON\x10\x00\x12)\n!IPV4_PEER_ON_IPV6_ONLY_CONNECTION\x10\x96\xbb\xef\xcf\x01\x12)\n!IPV6_PEER_ON_IPV4_ONLY_CONNECTION\x10\xd2\xf1\x85\xd0\x01\x12 \n\x19MD5_AUTH_INTERNAL_PROBLEM\x10\xb3\x91\xfd\x42\x12!\n\x19STATUS_REASON_UNSPECIFIED\x10\x89\x8e\x84\xbc\x01\x42\r\n\x0b_bfd_statusB\x0e\n\x0c_enable_ipv4B\x0e\n\x0c_enable_ipv6B\r\n\x0b_ip_addressB\x17\n\x15_ipv4_nexthop_addressB\x17\n\x15_ipv6_nexthop_addressB\x14\n\x12_linked_vpn_tunnelB\x13\n\x11_md5_auth_enabledB\x07\n\x05_nameB\x15\n\x13_num_learned_routesB\x12\n\x10_peer_ip_addressB\x1c\n\x1a_peer_ipv4_nexthop_addressB\x1c\n\x1a_peer_ipv6_nexthop_addressB\x1c\n\x1a_router_appliance_instanceB\x08\n\x06_stateB\t\n\x07_statusB\x10\n\x0e_status_reasonB\t\n\x07_uptimeB\x11\n\x0f_uptime_seconds\"\xf7\x03\n\x15RouterStatusNatStatus\x12\"\n\x16\x61uto_allocated_nat_ips\x18\x86\xb4\xc8\xf3\x01 \x03(\t\x12(\n\x1c\x64rain_auto_allocated_nat_ips\x18\xad\x90\xb7\x93\x01 \x03(\t\x12(\n\x1c\x64rain_user_allocated_nat_ips\x18\xc9\x8e\xc8\x91\x01 \x03(\t\x12)\n\x18min_extra_nat_ips_needed\x18\xe2\xe9\xb5\xae\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x33\n\"num_vm_endpoints_with_nat_mappings\x18\xec\xb6\xa8\xf4\x01 \x01(\x05H\x02\x88\x01\x01\x12S\n\x0brule_status\x18\x95\xc5\xee\x42 \x03(\x0b\x32;.google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus\x12*\n\x1fuser_allocated_nat_ip_resources\x18\xd7\xe9\xba\x65 \x03(\t\x12\"\n\x16user_allocated_nat_ips\x18\xa2\xb2\xd9\xf1\x01 \x03(\tB\x1b\n\x19_min_extra_nat_ips_neededB\x07\n\x05_nameB%\n#_num_vm_endpoints_with_nat_mappings\"\xa4\x02\n\"RouterStatusNatStatusNatRuleStatus\x12\x19\n\x0e\x61\x63tive_nat_ips\x18\xd5\xef\xb6\x63 \x03(\t\x12\x19\n\rdrain_nat_ips\x18\xc7\xc1\xae\xf0\x01 \x03(\t\x12%\n\x14min_extra_ips_needed\x18\x84\xca\xa9\xa8\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n\"num_vm_endpoints_with_nat_mappings\x18\xec\xb6\xa8\xf4\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0brule_number\x18\xec\xdb\x9a\xff\x01 \x01(\x05H\x02\x88\x01\x01\x42\x17\n\x15_min_extra_ips_neededB%\n#_num_vm_endpoints_with_nat_mappingsB\x0e\n\x0c_rule_number\"\x7f\n\x14RouterStatusResponse\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32%.google.cloud.compute.v1.RouterStatusH\x01\x88\x01\x01\x42\x07\n\x05_kindB\t\n\x07_result\"l\n\x1dRoutersGetRoutePolicyResponse\x12>\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32$.google.cloud.compute.v1.RoutePolicyH\x00\x88\x01\x01\x42\x0b\n\t_resource\"\xe2\x02\n\x14RoutersListBgpRoutes\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x34\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32!.google.cloud.compute.v1.BgpRoute\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe9\x02\n\x18RoutersListRoutePolicies\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x37\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32$.google.cloud.compute.v1.RoutePolicy\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"`\n\x16RoutersPreviewResponse\x12\x39\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterH\x00\x88\x01\x01\x42\x0b\n\t_resource\"\x90\x01\n\x11RoutersScopedList\x12\x34\n\x07routers\x18\xca\xa4\xdd\x94\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Router\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd8\x03\n\x0eSSLHealthCheck\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x00\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12port_specification\x18\xc5\xeb\xcc\x18 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07request\x18\x8f\xe5\xbb\n \x01(\tH\x04\x88\x01\x01\x12\x18\n\x08response\x18\xc1\xa8\xdc] \x01(\tH\x05\x88\x01\x01\"~\n\x11PortSpecification\x12 \n\x1cUNDEFINED_PORT_SPECIFICATION\x10\x00\x12\x15\n\x0eUSE_FIXED_PORT\x10\xe4\x88\xdbZ\x12\x16\n\x0eUSE_NAMED_PORT\x10\xbf\xcf\xc7\xa6\x01\x12\x18\n\x10USE_SERVING_PORT\x10\xcc\xd1\xf5\xac\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x07\n\x05_portB\x0c\n\n_port_nameB\x15\n\x13_port_specificationB\x0f\n\r_proxy_headerB\n\n\x08_requestB\x0b\n\t_response\"\x8f\x08\n\x11SavedAttachedDisk\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04\x62oot\x18\xf2\xf5\xb8\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tH\x02\x88\x01\x01\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x03\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x04\x88\x01\x01\x12\x19\n\tdisk_type\x18\x9c\xe9\xac, \x01(\tH\x05\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x15\n\x05index\x18\xd2\xd1\xec/ \x01(\x05H\x06\x88\x01\x01\x12\x1a\n\tinterface\x18\xb9\xda\xd5\xef\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\t\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\n\x88\x01\x01\x12\x1e\n\rstorage_bytes\x18\xa7\xbb\xbd\xca\x01 \x01(\x03H\x0b\x88\x01\x01\x12%\n\x14storage_bytes_status\x18\x8a\xab\x80\xea\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\r\x88\x01\x01\">\n\tInterface\x12\x17\n\x13UNDEFINED_INTERFACE\x10\x00\x12\x0b\n\x04NVME\x10\xe0\x82\x93\x01\x12\x0b\n\x04SCSI\x10\xa6\x81\x9b\x01\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x10\n\tREAD_ONLY\x10\xb5\x99\xec+\x12\x11\n\nREAD_WRITE\x10\xd6\x97\xe4R\"]\n\x12StorageBytesStatus\x12\"\n\x1eUNDEFINED_STORAGE_BYTES_STATUS\x10\x00\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x12\x11\n\nUP_TO_DATE\x10\xce\xa2\xa7\x30\"?\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\nPERSISTENT\x10\x97\xf5\xd5\xdb\x01\x12\x0f\n\x07SCRATCH\x10\xda\xfd\xf0\xec\x01\x42\x0e\n\x0c_auto_deleteB\x07\n\x05_bootB\x0e\n\x0c_device_nameB\x16\n\x14_disk_encryption_keyB\x0f\n\r_disk_size_gbB\x0c\n\n_disk_typeB\x08\n\x06_indexB\x0c\n\n_interfaceB\x07\n\x05_kindB\x07\n\x05_modeB\t\n\x07_sourceB\x10\n\x0e_storage_bytesB\x17\n\x15_storage_bytes_statusB\x07\n\x05_type\"\xc5\x03\n\tSavedDisk\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\rstorage_bytes\x18\xa7\xbb\xbd\xca\x01 \x01(\x03H\x03\x88\x01\x01\x12%\n\x14storage_bytes_status\x18\x8a\xab\x80\xea\x01 \x01(\tH\x04\x88\x01\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"]\n\x12StorageBytesStatus\x12\"\n\x1eUNDEFINED_STORAGE_BYTES_STATUS\x10\x00\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x12\x11\n\nUP_TO_DATE\x10\xce\xa2\xa7\x30\x42\x0f\n\r_architectureB\x07\n\x05_kindB\x0e\n\x0c_source_diskB\x10\n\x0e_storage_bytesB\x17\n\x15_storage_bytes_status\"\x81\x02\n\x15ScalingScheduleStatus\x12\x1f\n\x0flast_start_time\x18\xd3\xbb\xbc\x10 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fnext_start_time\x18\xd6\xf2\xb0. \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x02\x88\x01\x01\"]\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x08OBSOLETE\x10\x99\xeb\xdc\x1f\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x12\n\x10_last_start_timeB\x12\n\x10_next_start_timeB\x08\n\x06_state\"\xd5\n\n\nScheduling\x12\"\n\x11\x61utomatic_restart\x18\xfb\xb7\xa4\xa7\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x13\x61vailability_domain\x18\xa8\xa0\xb4x \x01(\x05H\x01\x88\x01\x01\x12+\n\x1ahost_error_timeout_seconds\x18\x93\xdc\xd9\xc2\x01 \x01(\x05H\x02\x88\x01\x01\x12+\n\x1binstance_termination_action\x18\xbb\xff\x99\x33 \x01(\tH\x03\x88\x01\x01\x12M\n\x1alocal_ssd_recovery_timeout\x18\xe6\xaf\xe6\x7f \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x04\x88\x01\x01\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\x05\x88\x01\x01\x12\x44\n\x10max_run_duration\x18\xc3\xaf\xb8\xcd\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x06\x88\x01\x01\x12\x1e\n\rmin_node_cpus\x18\xbb\xa4\xa2\x97\x01 \x01(\x05H\x07\x88\x01\x01\x12L\n\x0fnode_affinities\x18\xa3\x84\x9a\xdc\x01 \x03(\x0b\x32/.google.cloud.compute.v1.SchedulingNodeAffinity\x12#\n\x13on_host_maintenance\x18\xdc\xf2\xe7\x1e \x01(\tH\x08\x88\x01\x01\x12\x61\n\x17on_instance_stop_action\x18\xc9\x8d\xd5\xfc\x01 \x01(\x0b\x32\x37.google.cloud.compute.v1.SchedulingOnInstanceStopActionH\t\x88\x01\x01\x12\x1c\n\x0bpreemptible\x18\xa1\xe5\xcb\x9a\x01 \x01(\x08H\n\x88\x01\x01\x12!\n\x12provisioning_model\x18\xd7\x96\x1e \x01(\tH\x0b\x88\x01\x01\x12!\n\x10termination_time\x18\xa8\x8e\x90\xcc\x01 \x01(\tH\x0c\x88\x01\x01\"\x93\x01\n\x19InstanceTerminationAction\x12)\n%UNDEFINED_INSTANCE_TERMINATION_ACTION\x10\x00\x12\x0e\n\x06\x44\x45LETE\x10\xab\xf3\xe5\xbf\x01\x12.\n\'INSTANCE_TERMINATION_ACTION_UNSPECIFIED\x10\xb3\xc1\xa9,\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\"Y\n\x11OnHostMaintenance\x12!\n\x1dUNDEFINED_ON_HOST_MAINTENANCE\x10\x00\x12\x0e\n\x07MIGRATE\x10\x8b\xc3\x81O\x12\x11\n\tTERMINATE\x10\xc1\x9c\xcb\xfb\x01\"o\n\x11ProvisioningModel\x12 \n\x1cUNDEFINED_PROVISIONING_MODEL\x10\x00\x12\x19\n\x11RESERVATION_BOUND\x10\x8b\x96\xfc\x8b\x01\x12\x0b\n\x04SPOT\x10\x82\xe2\x9b\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\x14\n\x12_automatic_restartB\x16\n\x14_availability_domainB\x1d\n\x1b_host_error_timeout_secondsB\x1e\n\x1c_instance_termination_actionB\x1d\n\x1b_local_ssd_recovery_timeoutB\x10\n\x0e_location_hintB\x13\n\x11_max_run_durationB\x10\n\x0e_min_node_cpusB\x16\n\x14_on_host_maintenanceB\x1a\n\x18_on_instance_stop_actionB\x0e\n\x0c_preemptibleB\x15\n\x13_provisioning_modelB\x13\n\x11_termination_time\"\xc7\x01\n\x16SchedulingNodeAffinity\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08operator\x18\xa4\xd1\xa8\x11 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x06values\x18\xa2\xba\x96w \x03(\t\"W\n\x08Operator\x12\x16\n\x12UNDEFINED_OPERATOR\x10\x00\x12\x07\n\x02IN\x10\xa5\x12\x12\r\n\x06NOT_IN\x10\xb1\xbc\xebL\x12\x1b\n\x14OPERATOR_UNSPECIFIED\x10\xfc\xff\xba=B\x06\n\x04_keyB\x0b\n\t_operator\"Z\n\x1eSchedulingOnInstanceStopAction\x12\"\n\x11\x64iscard_local_ssd\x18\xcf\xe9\xad\x98\x01 \x01(\x08H\x00\x88\x01\x01\x42\x14\n\x12_discard_local_ssd\"S\n\nScreenshot\x12\x19\n\x08\x63ontents\x18\x9a\xb6\xbd\xf1\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_contentsB\x07\n\x05_kind\"\xef\x03\n\x1eSecurityPoliciesAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.SecurityPoliciesAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.SecurityPoliciesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbf\x01\n7SecurityPoliciesListPreconfiguredExpressionSetsResponse\x12\x62\n\x1dpreconfigured_expression_sets\x18\xfa\x8c\xd7\xff\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.SecurityPoliciesWafConfigH\x00\x88\x01\x01\x42 \n\x1e_preconfigured_expression_sets\"\xaa\x01\n\x1aSecurityPoliciesScopedList\x12\x45\n\x11security_policies\x18\xef\xa6\xf7< \x03(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"r\n\x19SecurityPoliciesWafConfig\x12G\n\twaf_rules\x18\xd4\xc3\xdb# \x01(\x0b\x32,.google.cloud.compute.v1.PreconfiguredWafSetH\x00\x88\x01\x01\x42\x0c\n\n_waf_rules\"\xaf\n\n\x0eSecurityPolicy\x12k\n\x1a\x61\x64\x61ptive_protection_config\x18\xdf\xfb\xd1G \x01(\x0b\x32?.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigH\x00\x88\x01\x01\x12\x66\n\x17\x61\x64vanced_options_config\x18\xc0\xd3\x9d\xd6\x01 \x01(\x0b\x32<.google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x63\n\x16\x64\x64os_protection_config\x18\xcd\x84\xff\x17 \x01(\x0b\x32;.google.cloud.compute.v1.SecurityPolicyDdosProtectionConfigH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x08\x88\x01\x01\x12G\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x33.google.cloud.compute.v1.SecurityPolicy.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12h\n\x18recaptcha_options_config\x18\xdb\xd4\xbd\xf7\x01 \x01(\x0b\x32=.google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfigH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRule\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\r\x88\x01\x01\x12W\n\x13user_defined_fields\x18\xa3\x89\xc0\r \x03(\x0b\x32\x37.google.cloud.compute.v1.SecurityPolicyUserDefinedField\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\x0b\x43LOUD_ARMOR\x10\xf5\x9c\xa4|\x12\x17\n\x10\x43LOUD_ARMOR_EDGE\x10\xc7\xa2\xc7w\x12\x1b\n\x13\x43LOUD_ARMOR_NETWORK\x10\xc4\xac\xf9\xe8\x01\x42\x1d\n\x1b_adaptive_protection_configB\x1a\n\x18_advanced_options_configB\x15\n\x13_creation_timestampB\x19\n\x17_ddos_protection_configB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x1b\n\x19_recaptcha_options_configB\t\n\x07_regionB\x0c\n\n_self_linkB\x07\n\x05_type\"\xcd\x01\n&SecurityPolicyAdaptiveProtectionConfig\x12\x83\x01\n\x1alayer7_ddos_defense_config\x18\xa3\xd9\xc3\xd0\x01 \x01(\x0b\x32V.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigH\x00\x88\x01\x01\x42\x1d\n\x1b_layer7_ddos_defense_config\"\xf3\x02\n=SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x0frule_visibility\x18\xb5\xd8\x90\xd8\x01 \x01(\tH\x01\x88\x01\x01\x12\x83\x01\n\x11threshold_configs\x18\x9d\xab\xe3\x1c \x03(\x0b\x32\x65.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig\"R\n\x0eRuleVisibility\x12\x1d\n\x19UNDEFINED_RULE_VISIBILITY\x10\x00\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\t\n\x07_enableB\x12\n\x10_rule_visibility\"\xd1\x06\nLSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig\x12\x30\n auto_deploy_confidence_threshold\x18\xbe\xed\x99( \x01(\x02H\x00\x88\x01\x01\x12*\n\x1a\x61uto_deploy_expiration_sec\x18\x89\xb5\x9a! \x01(\x05H\x01\x88\x01\x01\x12\x38\n\'auto_deploy_impacted_baseline_threshold\x18\xc3\x9c\xb9\x8b\x01 \x01(\x02H\x02\x88\x01\x01\x12+\n\x1a\x61uto_deploy_load_threshold\x18\x9a\xa0\x82\xf9\x01 \x01(\x02H\x03\x88\x01\x01\x12\'\n\x16\x64\x65tection_absolute_qps\x18\xe6\xfd\xd7\xb6\x01 \x01(\x02H\x04\x88\x01\x01\x12)\n\x18\x64\x65tection_load_threshold\x18\xcc\xca\xa3\xcd\x01 \x01(\x02H\x05\x88\x01\x01\x12\x33\n\"detection_relative_to_baseline_qps\x18\x85\x9b\xf6\x8a\x01 \x01(\x02H\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\xa5\x01\n\x1btraffic_granularity_configs\x18\xbe\xb4\xda( \x03(\x0b\x32}.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfigB#\n!_auto_deploy_confidence_thresholdB\x1d\n\x1b_auto_deploy_expiration_secB*\n(_auto_deploy_impacted_baseline_thresholdB\x1d\n\x1b_auto_deploy_load_thresholdB\x19\n\x17_detection_absolute_qpsB\x1b\n\x19_detection_load_thresholdB%\n#_detection_relative_to_baseline_qpsB\x07\n\x05_name\"\xd0\x02\ndSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig\x12)\n\x18\x65nable_each_unique_value\x18\xc5\x8a\xde\xdf\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x02\x88\x01\x01\"`\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x18\n\x10HTTP_HEADER_HOST\x10\xe3\xe5\xbe\xb2\x01\x12\x11\n\tHTTP_PATH\x10\xfc\xd2\xc4\x94\x01\x12\x17\n\x10UNSPECIFIED_TYPE\x10\xe2\xee\xdb\x19\x42\x1b\n\x19_enable_each_unique_valueB\x07\n\x05_typeB\x08\n\x06_value\"\xde\x03\n#SecurityPolicyAdvancedOptionsConfig\x12p\n\x12json_custom_config\x18\xb9\xd9\x99\x35 \x01(\x0b\x32L.google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfigH\x00\x88\x01\x01\x12\x1d\n\x0cjson_parsing\x18\xd9\x84\xda\x86\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tlog_level\x18\xc9\xbd\x84\x43 \x01(\tH\x02\x88\x01\x01\x12#\n\x17user_ip_request_headers\x18\xb2\xef\xe2\xc8\x01 \x03(\t\"k\n\x0bJsonParsing\x12\x1a\n\x16UNDEFINED_JSON_PARSING\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12\x1c\n\x15STANDARD_WITH_GRAPHQL\x10\x92\xbf\x81\x33\"C\n\x08LogLevel\x12\x17\n\x13UNDEFINED_LOG_LEVEL\x10\x00\x12\r\n\x06NORMAL\x10\xe7\xe1\xe6L\x12\x0f\n\x07VERBOSE\x10\xe2\x8a\xe4\xfd\x01\x42\x15\n\x13_json_custom_configB\x0f\n\r_json_parsingB\x0c\n\n_log_level\"O\n3SecurityPolicyAdvancedOptionsConfigJsonCustomConfig\x12\x18\n\rcontent_types\x18\xb3\xe2\xa7\x08 \x03(\t\"\xc7\x01\n\"SecurityPolicyDdosProtectionConfig\x12 \n\x0f\x64\x64os_protection\x18\x94\x9f\x9b\x83\x01 \x01(\tH\x00\x88\x01\x01\"k\n\x0e\x44\x64osProtection\x12\x1d\n\x19UNDEFINED_DDOS_PROTECTION\x10\x00\x12\x0f\n\x08\x41\x44VANCED\x10\xa2\xb0\xb5\x1e\x12\x17\n\x10\x41\x44VANCED_PREVIEW\x10\x8b\xd9\xc0\x13\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\x12\n\x10_ddos_protection\"\x83\x02\n\x12SecurityPolicyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\n\n\x08_warning\"`\n$SecurityPolicyRecaptchaOptionsConfig\x12\"\n\x11redirect_site_key\x18\xea\x84\xbc\xd5\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_redirect_site_key\"N\n\x17SecurityPolicyReference\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_security_policy\"\xf7\x06\n\x12SecurityPolicyRule\x12\x16\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12[\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32;.google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionH\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12I\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\x0b\x32\x32.google.cloud.compute.v1.SecurityPolicyRuleMatcherH\x04\x88\x01\x01\x12Y\n\rnetwork_match\x18\xf4\xf8\xfa\xdc\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherH\x05\x88\x01\x01\x12k\n\x18preconfigured_waf_config\x18\xe3\x9f\x96\x38 \x01(\x0b\x32\x41.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigH\x06\x88\x01\x01\x12\x17\n\x07preview\x18\xc8\xc7\xa3h \x01(\x08H\x07\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x08\x88\x01\x01\x12_\n\x12rate_limit_options\x18\xfb\xc9\x9a \x01(\x0b\x32;.google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsH\t\x88\x01\x01\x12\\\n\x10redirect_options\x18\xbb\x92\xeeM \x01(\x0b\x32:.google.cloud.compute.v1.SecurityPolicyRuleRedirectOptionsH\n\x88\x01\x01\x42\t\n\x07_actionB\x0e\n\x0c_descriptionB\x10\n\x0e_header_actionB\x07\n\x05_kindB\x08\n\x06_matchB\x10\n\x0e_network_matchB\x1b\n\x19_preconfigured_waf_configB\n\n\x08_previewB\x0b\n\t_priorityB\x15\n\x13_rate_limit_optionsB\x13\n\x11_redirect_options\"\x95\x01\n\"SecurityPolicyRuleHttpHeaderAction\x12o\n\x17request_headers_to_adds\x18\xcd\xab\xfa) \x03(\x0b\x32K.google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption\"\x90\x01\n2SecurityPolicyRuleHttpHeaderActionHttpHeaderOption\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cheader_value\x18\xbf\xf2\xeb` \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_header_nameB\x0f\n\r_header_value\"\x9b\x03\n\x19SecurityPolicyRuleMatcher\x12P\n\x06\x63onfig\x18\xc2\x86\xfey \x01(\x0b\x32\x38.google.cloud.compute.v1.SecurityPolicyRuleMatcherConfigH\x00\x88\x01\x01\x12\x33\n\x04\x65xpr\x18\xf5\xf3\xbe\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.ExprH\x01\x88\x01\x01\x12\\\n\x0c\x65xpr_options\x18\xd4\xc4\xec\xe7\x01 \x01(\x0b\x32=.google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsH\x02\x88\x01\x01\x12\x1f\n\x0eversioned_expr\x18\xbd\xe3\xd6\x99\x01 \x01(\tH\x03\x88\x01\x01\"@\n\rVersionedExpr\x12\x1c\n\x18UNDEFINED_VERSIONED_EXPR\x10\x00\x12\x11\n\nSRC_IPS_V1\x10\x89\xfd\xe8!B\t\n\x07_configB\x07\n\x05_exprB\x0f\n\r_expr_optionsB\x11\n\x0f_versioned_expr\"<\n\x1fSecurityPolicyRuleMatcherConfig\x12\x19\n\rsrc_ip_ranges\x18\xd3\x80\x87\xce\x01 \x03(\t\"\xaf\x01\n$SecurityPolicyRuleMatcherExprOptions\x12q\n\x11recaptcha_options\x18\xc6\xf6\xc7\xb9\x01 \x01(\x0b\x32M.google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptionsH\x00\x88\x01\x01\x42\x14\n\x12_recaptcha_options\"~\n4SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions\x12!\n\x16\x61\x63tion_token_site_keys\x18\x9d\xea\xc9\x1c \x03(\t\x12#\n\x17session_token_site_keys\x18\xfd\xf2\xfa\x9e\x01 \x03(\t\"\xc3\x02\n SecurityPolicyRuleNetworkMatcher\x12\x1a\n\x0e\x64\x65st_ip_ranges\x18\x91\xd7\xee\xa0\x01 \x03(\t\x12\x16\n\ndest_ports\x18\xb5\xb0\x93\xb5\x01 \x03(\t\x12\x17\n\x0cip_protocols\x18\xc3\x8f\xcd{ \x03(\t\x12\x13\n\x08src_asns\x18\xf2\xbd\x97\x38 \x03(\r\x12\x19\n\rsrc_ip_ranges\x18\xd3\x80\x87\xce\x01 \x03(\t\x12\x15\n\tsrc_ports\x18\xf7\xbb\x9e\xd4\x01 \x03(\t\x12\x1b\n\x10src_region_codes\x18\x96\xe3\x9f/ \x03(\t\x12n\n\x13user_defined_fields\x18\xa3\x89\xc0\r \x03(\x0b\x32N.google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch\"i\n5SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x06values\x18\xa2\xba\x96w \x03(\tB\x07\n\x05_name\"\x8d\x01\n(SecurityPolicyRulePreconfiguredWafConfig\x12\x61\n\nexclusions\x18\xe5\xf8\xbf\x63 \x03(\x0b\x32J.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion\"\x82\x05\n1SecurityPolicyRulePreconfiguredWafConfigExclusion\x12|\n\x1arequest_cookies_to_exclude\x18\xf6\xde\xdfJ \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12|\n\x1arequest_headers_to_exclude\x18\x9f\xa4\x93\x1e \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12\x82\x01\n\x1frequest_query_params_to_exclude\x18\x88\x9e\xba\xa2\x01 \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12y\n\x17request_uris_to_exclude\x18\x9e\xaa\x9f+ \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12\x1b\n\x0ftarget_rule_ids\x18\xe3\xe3\xd5\xed\x01 \x03(\t\x12 \n\x0ftarget_rule_set\x18\x8d\xaf\xd6\xed\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_target_rule_set\"\xe7\x01\n.google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit\x12 \n\x15\x63onsumer_reject_lists\x18\x9e\x99\xa5\x61 \x03(\t\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x17\n\x0c\x64omain_names\x18\x8d\xd8\x89\x03 \x03(\t\x12&\n\x15\x65nable_proxy_protocol\x18\x85\x87\xbc\xad\x01 \x01(\x08H\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12M\n\x08metadata\x18\xaf\xf6\xb5) \x03(\x0b\x32\x38.google.cloud.compute.v1.ServiceAttachment.MetadataEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x17\n\x0bnat_subnets\x18\x98\x8f\xdb\xb2\x01 \x03(\t\x12(\n\x18producer_forwarding_rule\x18\xd1\xa8\x9cv \x01(\tH\x08\x88\x01\x01\x12,\n\x1bpropagated_connection_limit\x18\xfe\xc8\xd3\x9e\x01 \x01(\rH\t\x88\x01\x01\x12L\n\x19psc_service_attachment_id\x18\xee\xfa\xcf\xfb\x01 \x01(\x0b\x32 .google.cloud.compute.v1.Uint128H\n\x88\x01\x01\x12%\n\x15reconcile_connections\x18\xe4\xc3\xeb; \x01(\x08H\x0b\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12\x1d\n\x0etarget_service\x18\x87\xfcN \x01(\tH\x0e\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x95\x01\n\x14\x43onnectionPreference\x12#\n\x1fUNDEFINED_CONNECTION_PREFERENCE\x10\x00\x12\x17\n\x10\x41\x43\x43\x45PT_AUTOMATIC\x10\x94\xf7\xf0#\x12\x15\n\rACCEPT_MANUAL\x10\xdd\xed\xf1\xb1\x01\x12(\n!CONNECTION_PREFERENCE_UNSPECIFIED\x10\xb4\xa0\xbf\x10\x42\x18\n\x16_connection_preferenceB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x18\n\x16_enable_proxy_protocolB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x1b\n\x19_producer_forwarding_ruleB\x1e\n\x1c_propagated_connection_limitB\x1c\n\x1a_psc_service_attachment_idB\x18\n\x16_reconcile_connectionsB\t\n\x07_regionB\x0c\n\n_self_linkB\x11\n\x0f_target_service\"\xd4\x03\n\x1fServiceAttachmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12U\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x43.google.cloud.compute.v1.ServiceAttachmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x63\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.google.cloud.compute.v1.ServiceAttachmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xc4\x03\n\"ServiceAttachmentConnectedEndpoint\x12 \n\x10\x63onsumer_network\x18\xe5\xdd\xa4y \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x65ndpoint\x18\x95\xbb\x9c> \x01(\tH\x01\x88\x01\x01\x12,\n\x1bpropagated_connection_count\x18\xd2\xd3\xe3\x9a\x01 \x01(\rH\x02\x88\x01\x01\x12\"\n\x11psc_connection_id\x18\xdd\xa5\xa3\x8b\x01 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x04\x88\x01\x01\"\x94\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x12\x17\n\x0fNEEDS_ATTENTION\x10\xbc\x8b\xa2\xa4\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\x13\n\x11_consumer_networkB\x0b\n\t_endpointB\x1e\n\x1c_propagated_connection_countB\x14\n\x12_psc_connection_idB\t\n\x07_status\"\xc5\x01\n%ServiceAttachmentConsumerProjectLimit\x12 \n\x10\x63onnection_limit\x18\x9a\x9e\xd4> \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0bnetwork_url\x18\xde\x8f\xe6\x62 \x01(\tH\x01\x88\x01\x01\x12\"\n\x11project_id_or_num\x18\xa8\x8a\xe5\xa6\x01 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_connection_limitB\x0e\n\x0c_network_urlB\x14\n\x12_project_id_or_num\"\xb3\x02\n\x15ServiceAttachmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.ServiceAttachment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x1cServiceAttachmentsScopedList\x12K\n\x13service_attachments\x18\xa6\x92\xba\x92\x01 \x03(\x0b\x32*.google.cloud.compute.v1.ServiceAttachment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xa6\x02\n&SetBackendServiceTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8a\x01\n7target_ssl_proxies_set_backend_service_request_resource\x18\xa4\xe9\xa8\x42 \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n&SetBackendServiceTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8b\x01\n7target_tcp_proxies_set_backend_service_request_resource\x18\xef\xd1\xc2\x82\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequestB\x03\xe0\x41\x02\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb1\x02\n\x1aSetBackupTargetPoolRequest\x12\x1e\n\x0e\x66\x61ilover_ratio\x18\xfe\x94\xb4\x65 \x01(\x02H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12T\n\x19target_reference_resource\x18\xf0\xb7\xdd\xf9\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetReferenceB\x03\xe0\x41\x02\x42\x11\n\x0f_failover_ratioB\r\n\x0b_request_id\"\xae\x02\n(SetCertificateMapTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8f\x01\n9target_https_proxies_set_certificate_map_request_resource\x18\xbb\xb6\xfe\xde\x01 \x01(\x0b\x32\x43.google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequestB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n&SetCertificateMapTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8b\x01\n7target_ssl_proxies_set_certificate_map_request_resource\x18\xba\x96\x83\xa4\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xea\x01\n\x1fSetCloudArmorTierProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12y\n.projects_set_cloud_armor_tier_request_resource\x18\xcf\xfb\xde$ \x01(\x0b\x32\x39.google.cloud.compute.v1.ProjectsSetCloudArmorTierRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8c\x03\n*SetCommonInstanceMetadataOperationMetadata\x12$\n\x13\x63lient_operation_id\x18\xe7\x8d\xde\x8d\x01 \x01(\tH\x00\x88\x01\x01\x12\x83\x01\n\x17per_location_operations\x18\x94\xd1\x82\xc3\x01 \x03(\x0b\x32^.google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata.PerLocationOperationsEntry\x1a\x99\x01\n\x1aPerLocationOperationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12j\n\x05value\x18\x02 \x01(\x0b\x32[.google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo:\x02\x38\x01\x42\x16\n\x14_client_operation_id\"\xb2\x02\nBSetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo\x12\x36\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1f.google.cloud.compute.v1.StatusH\x00\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x01\x88\x01\x01\"\x88\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\tABANDONED\x10\xb4\xc3\x80\'\x12\x0b\n\x04\x44ONE\x10\x82\xb7\x80\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x12\n\nPROPAGATED\x10\xdb\xb4\x82\xf2\x01\x12\x12\n\x0bPROPAGATING\x10\x86\x83\xcbN\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x08\n\x06_errorB\x08\n\x06_state\"\xbe\x01\n\'SetCommonInstanceMetadataProjectRequest\x12\x45\n\x11metadata_resource\x18\x9e\xbe\xe6\x8a\x01 \x01(\x0b\x32!.google.cloud.compute.v1.MetadataB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf7\x01\n#SetDefaultNetworkTierProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x81\x01\n2projects_set_default_network_tier_request_resource\x18\x8a\xc0\xa3< \x01(\x0b\x32=.google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe9\x01\n$SetDeletionProtectionInstanceRequest\x12$\n\x13\x64\x65letion_protection\x18\xea\xff\xb2\xda\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x16\n\x14_deletion_protectionB\r\n\x0b_request_id\"\xe2\x01\n SetDiskAutoDeleteInstanceRequest\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08\x42\x03\xe0\x41\x02\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xff\x01\n)SetEdgeSecurityPolicyBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x82\x02\n*SetEdgeSecurityPolicyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbb\x01\n SetIamPolicyBackendBucketRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xbc\x01\n!SetIamPolicyBackendServiceRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc4\x01\n\x17SetIamPolicyDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xbb\x01\n!SetIamPolicyFirewallPolicyRequest\x12|\n/global_organization_set_policy_request_resource\x18\xde\x94\xccT \x01(\x0b\x32;.google.cloud.compute.v1.GlobalOrganizationSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xb3\x01\n\x18SetIamPolicyImageRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc8\x01\n\x1bSetIamPolicyInstanceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xbe\x01\n#SetIamPolicyInstanceTemplateRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xcf\x01\n\"SetIamPolicyInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xc9\x01\n.SetIamPolicyInterconnectAttachmentGroupRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xbf\x01\n$SetIamPolicyInterconnectGroupRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xb5\x01\n\x1aSetIamPolicyLicenseRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xba\x01\n\x1fSetIamPolicyMachineImageRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xd7\x01\n$SetIamPolicyNetworkAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc3\x01\n(SetIamPolicyNetworkFirewallPolicyRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc9\x01\n\x1cSetIamPolicyNodeGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xd2\x01\n\x1fSetIamPolicyNodeTemplateRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xda\x01\n\'SetIamPolicyRegionBackendServiceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xd0\x01\n\x1dSetIamPolicyRegionDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xdb\x01\n(SetIamPolicyRegionInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xe1\x01\n.SetIamPolicyRegionNetworkFirewallPolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xcb\x01\n\x1eSetIamPolicyReservationRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xd4\x01\n!SetIamPolicyResourcePolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xd7\x01\n$SetIamPolicyServiceAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xb6\x01\n\x1bSetIamPolicySnapshotRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xcb\x01\n\x1eSetIamPolicyStoragePoolRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xd0\x01\n\x1dSetIamPolicySubnetworkRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xde\x02\n.SetInstanceTemplateInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x98\x01\n>instance_group_managers_set_instance_template_request_resource\x18\xc5\xd9\xd6\x04 \x01(\x0b\x32H.google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe4\x02\n4SetInstanceTemplateRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x94\x01\n.google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9d\x02\n#SetProxyHeaderTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x84\x01\n4target_tcp_proxies_set_proxy_header_request_resource\x18\xc3\x98\xf1h \x01(\x0b\x32>.google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequestB\x03\xe0\x41\x02\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n&SetQuicOverrideTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8a\x01\n7target_https_proxies_set_quic_override_request_resource\x18\xe2\xf5\xe3\" \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequestB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xee\x01\n\x1cSetSchedulingInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12I\n\x13scheduling_resource\x18\xd9\xac\xee\xdc\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xfe\x01\n&SetSecurityPolicyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa3\x02\n SetSecurityPolicyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12z\n.instances_set_security_policy_request_resource\x18\x8a\xd1\xbav \x01(\x0b\x32:.google.cloud.compute.v1.InstancesSetSecurityPolicyRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x02\n,SetSecurityPolicyRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9b\x02\n&SetSecurityPolicyTargetInstanceRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x12 \n\x0ftarget_instance\x18\x83\x8f\x96\x8a\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x96\x02\n\"SetSecurityPolicyTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa4\x02\n SetServiceAccountInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12{\n.instances_set_service_account_request_resource\x18\xb8\x9e\xb2\x83\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstancesSetServiceAccountRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb0\x02\n1SetShieldedInstanceIntegrityPolicyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12v\n+shielded_instance_integrity_policy_resource\x18\xb6\xdc\x8d\xc3\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.ShieldedInstanceIntegrityPolicyB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe5\x02\n/SetSslCertificatesRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9e\x01\nAregion_target_https_proxies_set_ssl_certificates_request_resource\x18\x87\x84\xa6\xba\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb0\x02\n)SetSslCertificatesTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x90\x01\n:target_https_proxies_set_ssl_certificates_request_resource\x18\xdc\xab\xb2j \x01(\x0b\x32\x44.google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequestB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa9\x02\n\'SetSslCertificatesTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8c\x01\n8target_ssl_proxies_set_ssl_certificates_request_resource\x18\xbd\xcb\xc5\x46 \x01(\x0b\x32\x42.google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf3\x01\n#SetSslPolicyTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Z\n\x1dssl_policy_reference_resource\x18\xbc\xf4\x9fp \x01(\x0b\x32+.google.cloud.compute.v1.SslPolicyReferenceB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf0\x01\n!SetSslPolicyTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Z\n\x1dssl_policy_reference_resource\x18\xbc\xf4\x9fp \x01(\x0b\x32+.google.cloud.compute.v1.SslPolicyReferenceB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xdc\x01\n\x16SetTagsInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12=\n\rtags_resource\x18\xf4\x9a\x85\x9e\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x87\x02\n\x1eSetTargetForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x19target_reference_resource\x18\xf0\xb7\xdd\xf9\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xec\x01\n$SetTargetGlobalForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x19target_reference_resource\x18\xf0\xb7\xdd\xf9\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd0\x02\n)SetTargetPoolsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_set_target_pools_request_resource\x18\x88\x86\x88\x86\x01 \x01(\x0b\x32\x43.google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe6\x02\n/SetTargetPoolsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9b\x01\n@region_instance_group_managers_set_target_pools_request_resource\x18\xfd\xca\xc5% \x01(\x0b\x32I.google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x90\x02\n%SetUrlMapRegionTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x92\x02\n&SetUrlMapRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe9\x01\n\x1fSetUrlMapTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xeb\x01\n SetUrlMapTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd0\x01\n\"SetUsageExportBucketProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\\\n\x1eusage_export_location_resource\x18\xeb\xcc\xd4\t \x01(\x0b\x32,.google.cloud.compute.v1.UsageExportLocationB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xfa\x02\n\rShareSettings\x12N\n\x0bproject_map\x18\xb6\xd6\xff? \x03(\x0b\x32\x36.google.cloud.compute.v1.ShareSettings.ProjectMapEntry\x12\x1b\n\nshare_type\x18\x9a\x97\xb8\xab\x01 \x01(\tH\x00\x88\x01\x01\x1a\x66\n\x0fProjectMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.ShareSettingsProjectConfig:\x02\x38\x01\"\x84\x01\n\tShareType\x12\x18\n\x14UNDEFINED_SHARE_TYPE\x10\x00\x12\x0c\n\x05LOCAL\x10\xcb\xce\xcf\"\x12\x14\n\x0cORGANIZATION\x10\xb3\xaa\x8f\x83\x01\x12\x1e\n\x16SHARE_TYPE_UNSPECIFIED\x10\x92\xbc\xf6\xeb\x01\x12\x19\n\x11SPECIFIC_PROJECTS\x10\xe7\xb1\xee\xa5\x01\x42\r\n\x0b_share_type\"G\n\x1aShareSettingsProjectConfig\x12\x1a\n\nproject_id\x18\x81\xc8\xd2T \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_project_id\"\xce\x01\n\x16ShieldedInstanceConfig\x12,\n\x1b\x65nable_integrity_monitoring\x18\xb6\xdb\x87\xc3\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x12\x65nable_secure_boot\x18\xfe\x83\xf6: \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x65nable_vtpm\x18\xf7\xe4\xdbV \x01(\x08H\x02\x88\x01\x01\x42\x1e\n\x1c_enable_integrity_monitoringB\x15\n\x13_enable_secure_bootB\x0e\n\x0c_enable_vtpm\"\x8b\x02\n\x18ShieldedInstanceIdentity\x12W\n\x0e\x65ncryption_key\x18\xa3\xc7\xe9\xe8\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.ShieldedInstanceIdentityEntryH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12T\n\x0bsigning_key\x18\xa5\x90\x85\x99\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.ShieldedInstanceIdentityEntryH\x02\x88\x01\x01\x42\x11\n\x0f_encryption_keyB\x07\n\x05_kindB\x0e\n\x0c_signing_key\"i\n\x1dShieldedInstanceIdentityEntry\x12\x18\n\x07\x65k_cert\x18\x9d\xdc\xd4\xd6\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06\x65k_pub\x18\xe4\xd7\xa8\x93\x01 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_ek_certB\t\n\x07_ek_pub\"h\n\x1fShieldedInstanceIntegrityPolicy\x12(\n\x18update_auto_learn_policy\x18\xa7\xc4\x87u \x01(\x08H\x00\x88\x01\x01\x42\x1b\n\x19_update_auto_learn_policy\"`\n\x0cSignedUrlKey\x12\x19\n\x08key_name\x18\xeb\xf0\xee\xee\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tkey_value\x18\x91\x9f\xb0\xf0\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_key_nameB\x0c\n\n_key_value\"\xfc\x01\n\'SimulateMaintenanceEventInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12,\n\x1bwith_extended_notifications\x18\xfb\xd7\xc9\xc1\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x1e\n\x1c_with_extended_notifications\"\xc1\x02\n(SimulateMaintenanceEventNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8c\x01\n7node_groups_simulate_maintenance_event_request_resource\x18\xdc\xf9\xcb\xa7\x01 \x01(\x0b\x32\x42.google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcd\x14\n\x08Snapshot\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0c\x61uto_created\x18\xd8\xc8\x9b\xdd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1a\n\nchain_name\x18\xc9\xda\xdd \x01(\tH\x02\x88\x01\x01\x12#\n\x13\x63reation_size_bytes\x18\x8d\xe8\xe5; \x01(\x03H\x03\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x06\x88\x01\x01\x12\x1f\n\x0e\x64ownload_bytes\x18\xf4\xcb\xb9\xcf\x01 \x01(\x03H\x07\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x08\x88\x01\x01\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\t\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\n\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x0b\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0c\x88\x01\x01\x12\x41\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32-.google.cloud.compute.v1.Snapshot.LabelsEntry\x12\x18\n\rlicense_codes\x18\xa8\x85\xd8\x15 \x03(\x03\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x10\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x11\x88\x01\x01\x12W\n\x17snapshot_encryption_key\x18\xfe\xf6\xd4\x14 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x12\x88\x01\x01\x12\x1d\n\rsnapshot_type\x18\xd5\xd9\xa5; \x01(\tH\x13\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x14\x88\x01\x01\x12[\n\x1asource_disk_encryption_key\x18\xe1\xa0\xb8\xfd\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x15\x88\x01\x01\x12\x34\n#source_disk_for_recovery_checkpoint\x18\xfe\xe1\xca\xab\x01 \x01(\tH\x16\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x17\x88\x01\x01\x12\'\n\x17source_instant_snapshot\x18\x86\x84\xc3h \x01(\tH\x18\x88\x01\x01\x12g\n&source_instant_snapshot_encryption_key\x18\xfc\x85\x94\xd0\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x19\x88\x01\x01\x12+\n\x1asource_instant_snapshot_id\x18\xf4\xd3\x90\x89\x01 \x01(\tH\x1a\x88\x01\x01\x12/\n\x1fsource_snapshot_schedule_policy\x18\x83\xb6\xb5p \x01(\tH\x1b\x88\x01\x01\x12\x32\n\"source_snapshot_schedule_policy_id\x18\xd7\xa7\xce! \x01(\tH\x1c\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\rstorage_bytes\x18\xa7\xbb\xbd\xca\x01 \x01(\x03H\x1e\x88\x01\x01\x12%\n\x14storage_bytes_status\x18\x8a\xab\x80\xea\x01 \x01(\tH\x1f\x88\x01\x01\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"N\n\x0cSnapshotType\x12\x1b\n\x17UNDEFINED_SNAPSHOT_TYPE\x10\x00\x12\x0f\n\x07\x41RCHIVE\x10\xa2\xd9\xd1\xf1\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\"r\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x10\n\tUPLOADING\x10\xa1\x9c\xcd\x7f\"]\n\x12StorageBytesStatus\x12\"\n\x1eUNDEFINED_STORAGE_BYTES_STATUS\x10\x00\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x12\x11\n\nUP_TO_DATE\x10\xce\xa2\xa7\x30\x42\x0f\n\r_architectureB\x0f\n\r_auto_createdB\r\n\x0b_chain_nameB\x16\n\x14_creation_size_bytesB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0f\n\r_disk_size_gbB\x11\n\x0f_download_bytesB\x1e\n\x1c_enable_confidential_computeB\x0e\n\x0c_guest_flushB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x10\n\x0e_location_hintB\x07\n\x05_nameB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x1a\n\x18_snapshot_encryption_keyB\x10\n\x0e_snapshot_typeB\x0e\n\x0c_source_diskB\x1d\n\x1b_source_disk_encryption_keyB&\n$_source_disk_for_recovery_checkpointB\x11\n\x0f_source_disk_idB\x1a\n\x18_source_instant_snapshotB)\n\'_source_instant_snapshot_encryption_keyB\x1d\n\x1b_source_instant_snapshot_idB\"\n _source_snapshot_schedule_policyB%\n#_source_snapshot_schedule_policy_idB\t\n\x07_statusB\x10\n\x0e_storage_bytesB\x17\n\x15_storage_bytes_status\"\xa1\x02\n\x0cSnapshotList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.Snapshot\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8c\x01\n\x10SnapshotSettings\x12\x63\n\x10storage_location\x18\xf9\xd1\xe0\xdb\x01 \x01(\x0b\x32@.google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsH\x00\x88\x01\x01\x42\x13\n\x11_storage_location\"\xde\x03\n\'SnapshotSettingsStorageLocationSettings\x12\x66\n\tlocations\x18\xde\xae\x91\xc5\x01 \x03(\x0b\x32O.google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings.LocationsEntry\x12\x16\n\x06policy\x18\xb2\xca\xb6+ \x01(\tH\x00\x88\x01\x01\x1a\x8b\x01\n\x0eLocationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12h\n\x05value\x18\x02 \x01(\x0b\x32Y.google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference:\x02\x38\x01\"\x99\x01\n\x06Policy\x12\x14\n\x10UNDEFINED_POLICY\x10\x00\x12\x14\n\x0cLOCAL_REGION\x10\xe8\xec\xb5\xc0\x01\x12\x1b\n\x14NEAREST_MULTI_REGION\x10\xbb\xfe\xa7\x65\x12\x1a\n\x12SPECIFIC_LOCATIONS\x10\xf1\xc8\xc7\x85\x01\x12*\n#STORAGE_LOCATION_POLICY_UNSPECIFIED\x10\xf0\x90\xc2wB\t\n\x07_policy\"a\n@SnapshotSettingsStorageLocationSettingsStorageLocationPreference\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xb5\x01\n\x17SourceDiskEncryptionKey\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x00\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_disk_encryption_keyB\x0e\n\x0c_source_disk\"a\n\x14SourceInstanceParams\x12I\n\x0c\x64isk_configs\x18\xcf\xd9\xaap \x03(\x0b\x32\x30.google.cloud.compute.v1.DiskInstantiationConfig\"\xf1\x08\n\x18SourceInstanceProperties\x12\x1f\n\x0e\x63\x61n_ip_forward\x18\xfc\x86\x84\xdf\x01 \x01(\x08H\x00\x88\x01\x01\x12$\n\x13\x64\x65letion_protection\x18\xea\xff\xb2\xda\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12<\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32*.google.cloud.compute.v1.SavedAttachedDisk\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12*\n\x1akey_revocation_action_type\x18\xe2\xdc\xc0p \x01(\tH\x03\x88\x01\x01\x12Q\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32=.google.cloud.compute.v1.SourceInstanceProperties.LabelsEntry\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x04\x88\x01\x01\x12;\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x05\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x06\x88\x01\x01\x12H\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\x0b\x32).google.cloud.compute.v1.NetworkInterface\x12@\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingH\x07\x88\x01\x01\x12\x45\n\x10service_accounts\x18\xb0\xc4\xab\x84\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.ServiceAccount\x12\x33\n\x04tags\x18\x99\xe8\xd8\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsH\x08\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x01\n\x17KeyRevocationActionType\x12(\n$UNDEFINED_KEY_REVOCATION_ACTION_TYPE\x10\x00\x12.\n&KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED\x10\xda\x91\xde\xde\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\x42\x11\n\x0f_can_ip_forwardB\x16\n\x14_deletion_protectionB\x0e\n\x0c_descriptionB\x1d\n\x1b_key_revocation_action_typeB\x0f\n\r_machine_typeB\x0b\n\t_metadataB\x13\n\x11_min_cpu_platformB\r\n\x0b_schedulingB\x07\n\x05_tags\"\xa0\x06\n\x0eSslCertificate\x12\x1c\n\x0b\x63\x65rtificate\x18\x97\x83\xfd\xa2\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x65xpire_time\x18\xed\xd3\x91\xd2\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12V\n\x07managed\x18\x9f\x9f\xa4\x8e\x01 \x01(\x0b\x32<.google.cloud.compute.v1.SslCertificateManagedSslCertificateH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x1c\n\x0bprivate_key\x18\xa3\xf3\xa5\xac\x01 \x01(\tH\x08\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12_\n\x0cself_managed\x18\xac\xf3\x81\x9d\x01 \x01(\x0b\x32@.google.cloud.compute.v1.SslCertificateSelfManagedSslCertificateH\x0b\x88\x01\x01\x12%\n\x19subject_alternative_names\x18\xe3\xef\x93\xfc\x01 \x03(\t\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x0c\x88\x01\x01\"[\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x0f\n\x07MANAGED\x10\xff\xb6\xd2\xe4\x01\x12\x14\n\x0cSELF_MANAGED\x10\x8c\xfb\x93\xcf\x01\x12\x18\n\x10TYPE_UNSPECIFIED\x10\x92\xfb\xdb\xd0\x01\x42\x0e\n\x0c_certificateB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_expire_timeB\x05\n\x03_idB\x07\n\x05_kindB\n\n\x08_managedB\x07\n\x05_nameB\x0e\n\x0c_private_keyB\t\n\x07_regionB\x0c\n\n_self_linkB\x0f\n\r_self_managedB\x07\n\x05_type\"\xcb\x03\n\x1cSslCertificateAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.SslCertificateAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a`\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.SslCertificatesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x02\n\x12SslCertificateList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.SslCertificate\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd0\x03\n#SslCertificateManagedSslCertificate\x12i\n\rdomain_status\x18\xcd\xa7\xe7\xab\x01 \x03(\x0b\x32N.google.cloud.compute.v1.SslCertificateManagedSslCertificate.DomainStatusEntry\x12\x12\n\x07\x64omains\x18\xaf\x88\x9bl \x03(\t\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x00\x88\x01\x01\x1a\x33\n\x11\x44omainStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd1\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12.\n&MANAGED_CERTIFICATE_STATUS_UNSPECIFIED\x10\xd2\xc5\xb3\xe2\x01\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x1a\n\x13PROVISIONING_FAILED\x10\xcf\xab\xd0$\x12\'\n\x1fPROVISIONING_FAILED_PERMANENTLY\x10\xab\xf0\x92\x83\x01\x12\x16\n\x0eRENEWAL_FAILED\x10\x84\xbe\xa1\xcf\x01\x42\t\n\x07_status\"\x85\x01\n\'SslCertificateSelfManagedSslCertificate\x12\x1c\n\x0b\x63\x65rtificate\x18\x97\x83\xfd\xa2\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bprivate_key\x18\xa3\xf3\xa5\xac\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_certificateB\x0e\n\x0c_private_key\"\xa9\x01\n\x19SslCertificatesScopedList\x12\x45\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.SslCertificate\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe0\x03\n\x19SslPoliciesAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.SslPoliciesAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.SslPoliciesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0fSslPoliciesList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.SslPolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"?\n(SslPoliciesListAvailableFeaturesResponse\x12\x13\n\x08\x66\x65\x61tures\x18\xbd\xc8\xb3u \x03(\t\"\x9b\x01\n\x15SslPoliciesScopedList\x12;\n\x0cssl_policies\x18\xa3\xe4\x8d\x64 \x03(\x0b\x32\".google.cloud.compute.v1.SslPolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd9\x05\n\tSslPolicy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x0f\x63ustom_features\x18\xcb\xb2\xcb\x10 \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x10\x65nabled_features\x18\xfb\xc6\xd2\xdf\x01 \x03(\t\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x1f\n\x0fmin_tls_version\x18\xa7\xe6\xf1\x03 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07profile\x18\xa9\x93\xbal \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x37\n\x08warnings\x18\xd7\x88\xc1\xed\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Warnings\"^\n\rMinTlsVersion\x12\x1d\n\x19UNDEFINED_MIN_TLS_VERSION\x10\x00\x12\x0e\n\x07TLS_1_0\x10\xbe\xa4\xe5\x0f\x12\x0e\n\x07TLS_1_1\x10\xbf\xa4\xe5\x0f\x12\x0e\n\x07TLS_1_2\x10\xc0\xa4\xe5\x0f\"e\n\x07Profile\x12\x15\n\x11UNDEFINED_PROFILE\x10\x00\x12\x11\n\nCOMPATIBLE\x10\xd4\x8d\xc3U\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\r\n\x06MODERN\x10\x9f\xbe\xf9>\x12\x11\n\nRESTRICTED\x10\xdb\xe8\xdb|B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_min_tls_versionB\x07\n\x05_nameB\n\n\x08_profileB\t\n\x07_regionB\x0c\n\n_self_link\"@\n\x12SslPolicyReference\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_ssl_policy\"\xa0\x02\n StartAsyncReplicationDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12{\n.disks_start_async_replication_request_resource\x18\xda\x9e\xc0\xe0\x01 \x01(\x0b\x32:.google.cloud.compute.v1.DisksStartAsyncReplicationRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb8\x02\n&StartAsyncReplicationRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x88\x01\n5region_disks_start_async_replication_request_resource\x18\x85\xc8\x96\xe2\x01 \x01(\x0b\x32@.google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9b\x01\n\x14StartInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xce\x02\n)StartInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8d\x01\n8instance_group_managers_start_instances_request_resource\x18\xab\xa5\xbf| \x01(\x0b\x32\x43.google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe6\x02\n/StartInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9b\x01\n?region_instance_group_managers_start_instances_request_resource\x18\x96\x9b\xff\xec\x01 \x01(\x0b\x32I.google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb5\x02\n%StartWithEncryptionKeyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x86\x01\n4instances_start_with_encryption_key_request_resource\x18\xff\xfe\xcf\xd2\x01 \x01(\x0b\x32?.google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"|\n\x0eStatefulPolicy\x12V\n\x0fpreserved_state\x18\xaa\xe2\xa0\x01 \x01(\x0b\x32\x35.google.cloud.compute.v1.StatefulPolicyPreservedStateH\x00\x88\x01\x01\x42\x12\n\x10_preserved_state\"\x8e\x05\n\x1cStatefulPolicyPreservedState\x12R\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32@.google.cloud.compute.v1.StatefulPolicyPreservedState.DisksEntry\x12\x61\n\rexternal_i_ps\x18\x8d\xd3\x80\xfe\x01 \x03(\x0b\x32\x46.google.cloud.compute.v1.StatefulPolicyPreservedState.ExternalIPsEntry\x12`\n\rinternal_i_ps\x18\xdb\x9b\xef\x66 \x03(\x0b\x32\x46.google.cloud.compute.v1.StatefulPolicyPreservedState.InternalIPsEntry\x1am\n\nDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x05value\x18\x02 \x01(\x0b\x32?.google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice:\x02\x38\x01\x1ar\n\x10\x45xternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp:\x02\x38\x01\x1ar\n\x10InternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp:\x02\x38\x01\"\xb4\x01\n&StatefulPolicyPreservedStateDiskDevice\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-B\x0e\n\x0c_auto_delete\"\xb3\x01\n%StatefulPolicyPreservedStateNetworkIp\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-B\x0e\n\x0c_auto_delete\"x\n\x06Status\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\x05H\x00\x88\x01\x01\x12)\n\x07\x64\x65tails\x18\xc2\xe4\xe3\xe6\x01 \x03(\x0b\x32\x14.google.protobuf.Any\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"\xa2\x01\n\x1fStopAsyncReplicationDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xac\x01\n%StopAsyncReplicationRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9a\x02\n$StopGroupAsyncReplicationDiskRequest\x12\x86\x01\n4disks_stop_group_async_replication_resource_resource\x18\x95\xf8\xaf\xa5\x01 \x01(\x0b\x32?.google.cloud.compute.v1.DisksStopGroupAsyncReplicationResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa4\x02\n*StopGroupAsyncReplicationRegionDiskRequest\x12\x86\x01\n4disks_stop_group_async_replication_resource_resource\x18\x95\xf8\xaf\xa5\x01 \x01(\x0b\x32?.google.cloud.compute.v1.DisksStopGroupAsyncReplicationResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd4\x01\n\x13StopInstanceRequest\x12\"\n\x11\x64iscard_local_ssd\x18\xcf\xe9\xad\x98\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x14\n\x12_discard_local_ssdB\r\n\x0b_request_id\"\xcb\x02\n(StopInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8b\x01\n7instance_group_managers_stop_instances_request_resource\x18\x8d\xa5\xf4\x11 \x01(\x0b\x32\x42.google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe3\x02\n.StopInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x99\x01\n>region_instance_group_managers_stop_instances_request_resource\x18\xc2\x9c\xf2\x80\x01 \x01(\x0b\x32H.google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x85\x0b\n\x0bStoragePool\x12*\n\x1a\x63\x61pacity_provisioning_type\x18\x87\x8a\xfdw \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x05\x88\x01\x01\x12\x44\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.StoragePool.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12.\n\x1dperformance_provisioning_type\x18\xfd\x9d\xb6\xdf\x01 \x01(\tH\x07\x88\x01\x01\x12-\n\x1cpool_provisioned_capacity_gb\x18\xd2\xcf\x97\xe4\x01 \x01(\x03H\x08\x88\x01\x01\x12%\n\x15pool_provisioned_iops\x18\x97\xc9\xb9\x35 \x01(\x03H\t\x88\x01\x01\x12+\n\x1bpool_provisioned_throughput\x18\x98\x8d\xd8P \x01(\x03H\n\x88\x01\x01\x12S\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x32.google.cloud.compute.v1.StoragePoolResourceStatusH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\r\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x0e\x88\x01\x01\x12J\n\x06status\x18\xf2\x9f\xb7V \x01(\x0b\x32\x32.google.cloud.compute.v1.StoragePoolResourceStatusH\x0f\x88\x01\x01\x12\"\n\x11storage_pool_type\x18\xb9\x81\xb0\x88\x01 \x01(\tH\x10\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x11\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x18\x43\x61pacityProvisioningType\x12(\n$UNDEFINED_CAPACITY_PROVISIONING_TYPE\x10\x00\"J\n\x1bPerformanceProvisioningType\x12+\n\'UNDEFINED_PERFORMANCE_PROVISIONING_TYPE\x10\x00\"^\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x1d\n\x1b_capacity_provisioning_typeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB \n\x1e_performance_provisioning_typeB\x1f\n\x1d_pool_provisioned_capacity_gbB\x18\n\x16_pool_provisioned_iopsB\x1e\n\x1c_pool_provisioned_throughputB\x12\n\x10_resource_statusB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x08\n\x06_stateB\t\n\x07_statusB\x14\n\x12_storage_pool_typeB\x07\n\x05_zone\"\xe1\x03\n\x19StoragePoolAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.StoragePoolAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.StoragePoolsScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe0\x04\n\x0fStoragePoolDisk\x12\x1d\n\x12\x61ttached_instances\x18\xa3\xf3\x8e\x1f \x03(\t\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x12 \n\x10provisioned_iops\x18\xd4\xbd\x87Y \x01(\x03H\x03\x88\x01\x01\x12\'\n\x16provisioned_throughput\x18\x95\xbe\x88\xfb\x01 \x01(\x03H\x04\x88\x01\x01\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x05\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\nused_bytes\x18\xe9\x9a\xban \x01(\x03H\x08\x88\x01\x01\"\x88\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x11\n\tRESTORING\x10\xab\xa7\xe2\xc0\x01\x12\x13\n\x0bUNAVAILABLE\x10\xb0\xd8\xa5\xc5\x01\x42\x15\n\x13_creation_timestampB\x07\n\x05_diskB\x07\n\x05_nameB\x13\n\x11_provisioned_iopsB\x19\n\x17_provisioned_throughputB\n\n\x08_size_gbB\t\n\x07_statusB\x07\n\x05_typeB\r\n\x0b_used_bytes\"\xdf\x02\n\x0fStoragePoolList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x36\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32$.google.cloud.compute.v1.StoragePool\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe8\x02\n\x14StoragePoolListDisks\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.StoragePoolDisk\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xed\x05\n\x19StoragePoolResourceStatus\x12\x1a\n\ndisk_count\x18\xed\xaf\x9dW \x01(\x03H\x00\x88\x01\x01\x12&\n\x15last_resize_timestamp\x18\xd4\xfb\xe7\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x36\n&max_total_provisioned_disk_capacity_gb\x18\xdf\xde\x88O \x01(\x03H\x02\x88\x01\x01\x12)\n\x18pool_used_capacity_bytes\x18\xc5\xe9\xb0\xf3\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1e\n\x0epool_used_iops\x18\x88\xc9\xbc/ \x01(\x03H\x04\x88\x01\x01\x12$\n\x14pool_used_throughput\x18\xc9\x9b\xa5\x62 \x01(\x03H\x05\x88\x01\x01\x12\'\n\x17pool_user_written_bytes\x18\xd2\xed\x96m \x01(\x03H\x06\x88\x01\x01\x12\x33\n\"total_provisioned_disk_capacity_gb\x18\xa4\x8d\xb3\xf8\x01 \x01(\x03H\x07\x88\x01\x01\x12+\n\x1btotal_provisioned_disk_iops\x18\x85\xdc\xd2\x0f \x01(\x03H\x08\x88\x01\x01\x12\x32\n!total_provisioned_disk_throughput\x18\x86\x8b\xbc\xd5\x01 \x01(\x03H\t\x88\x01\x01\x42\r\n\x0b_disk_countB\x18\n\x16_last_resize_timestampB)\n\'_max_total_provisioned_disk_capacity_gbB\x1b\n\x19_pool_used_capacity_bytesB\x11\n\x0f_pool_used_iopsB\x17\n\x15_pool_used_throughputB\x1a\n\x18_pool_user_written_bytesB%\n#_total_provisioned_disk_capacity_gbB\x1e\n\x1c_total_provisioned_disk_iopsB$\n\"_total_provisioned_disk_throughput\"\xe7\x07\n\x0fStoragePoolType\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x30\n max_pool_provisioned_capacity_gb\x18\xcd\xf1\xecV \x01(\x03H\x05\x88\x01\x01\x12*\n\x19max_pool_provisioned_iops\x18\xfc\xcf\xd9\xf5\x01 \x01(\x03H\x06\x88\x01\x01\x12/\n\x1fmax_pool_provisioned_throughput\x18\xbd\xd4\x94m \x01(\x03H\x07\x88\x01\x01\x12\x30\n min_pool_provisioned_capacity_gb\x18\x9f\x8d\x8b[ \x01(\x03H\x08\x88\x01\x01\x12*\n\x19min_pool_provisioned_iops\x18\xea\xc4\xcb\xc6\x01 \x01(\x03H\t\x88\x01\x01\x12\x30\n\x1fmin_pool_provisioned_throughput\x18\xab\xb4\xae\xaf\x01 \x01(\x03H\n\x88\x01\x01\x12\x1c\n\x0bmin_size_gb\x18\xec\xc1\xdb\xb7\x01 \x01(\x03H\x0b\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x14supported_disk_types\x18\x88\x8f\xe7G \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0f\x88\x01\x01\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB#\n!_max_pool_provisioned_capacity_gbB\x1c\n\x1a_max_pool_provisioned_iopsB\"\n _max_pool_provisioned_throughputB#\n!_min_pool_provisioned_capacity_gbB\x1c\n\x1a_min_pool_provisioned_iopsB\"\n _min_pool_provisioned_throughputB\x0e\n\x0c_min_size_gbB\x07\n\x05_nameB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x07\n\x05_zone\"\xb5\x03\n\x1dStoragePoolTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.StoragePoolTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.StoragePoolTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x02\n\x13StoragePoolTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.StoragePoolType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x01\n\x1aStoragePoolTypesScopedList\x12H\n\x12storage_pool_types\x18\xda\xad\xd0\x83\x01 \x03(\x0b\x32(.google.cloud.compute.v1.StoragePoolType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xa0\x01\n\x16StoragePoolsScopedList\x12?\n\rstorage_pools\x18\x93\x92\xc0\xd0\x01 \x03(\x0b\x32$.google.cloud.compute.v1.StoragePool\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xae\x13\n\nSubnetwork\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12 \n\x10\x65nable_flow_logs\x18\xe4\xc4\xa1H \x01(\x08H\x02\x88\x01\x01\x12$\n\x14\x65xternal_ipv6_prefix\x18\xf6\x92\xb6\x42 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12 \n\x0fgateway_address\x18\xf9\x89\xa4\xdb\x01 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12%\n\x14internal_ipv6_prefix\x18\xe8\xa2\xb4\xf1\x01 \x01(\tH\x07\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x08\x88\x01\x01\x12\x1d\n\rip_collection\x18\xb6\x91\xa8T \x01(\tH\t\x88\x01\x01\x12!\n\x10ipv6_access_type\x18\xdd\xf5\xd1\xf0\x01 \x01(\tH\n\x88\x01\x01\x12 \n\x0fipv6_cidr_range\x18\x8a\x9c\x9f\x82\x01 \x01(\tH\x0b\x88\x01\x01\x12\"\n\x11ipv6_gce_endpoint\x18\xe3\xca\xe2\x98\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\r\x88\x01\x01\x12I\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32,.google.cloud.compute.v1.SubnetworkLogConfigH\x0e\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0f\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x10\x88\x01\x01\x12\x41\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32).google.cloud.compute.v1.SubnetworkParamsH\x11\x88\x01\x01\x12)\n\x18private_ip_google_access\x18\xce\xe8\xfd\xc8\x01 \x01(\x08H\x12\x88\x01\x01\x12*\n\x1aprivate_ipv6_google_access\x18\x8e\xcc\x82\x17 \x01(\tH\x13\x88\x01\x01\x12\x18\n\x07purpose\x18\x9e\xfa\xef\x96\x01 \x01(\tH\x14\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x15\x88\x01\x01\x12(\n\x17reserved_internal_range\x18\xb2\x9e\xbf\x88\x01 \x01(\tH\x16\x88\x01\x01\x12\x14\n\x04role\x18\xf6\x80\xd6\x01 \x01(\tH\x17\x88\x01\x01\x12Q\n\x13secondary_ip_ranges\x18\xe3\xff\x94\x41 \x03(\x0b\x32\x31.google.cloud.compute.v1.SubnetworkSecondaryRange\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x18\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x19\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x1a\x88\x01\x01\x12/\n$system_reserved_external_ipv6_ranges\x18\xe1\x88\x93\x1f \x03(\t\x12\x30\n$system_reserved_internal_ipv6_ranges\x18\xd3\x98\x91\xce\x01 \x03(\t\"y\n\x0eIpv6AccessType\x12\x1e\n\x1aUNDEFINED_IPV6_ACCESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12$\n\x1cUNSPECIFIED_IPV6_ACCESS_TYPE\x10\xa5\xf6\xa4\x95\x01\"T\n\x0fIpv6GceEndpoint\x12\x1f\n\x1bUNDEFINED_IPV6_GCE_ENDPOINT\x10\x00\x12\x10\n\tVM_AND_FR\x10\xdc\x8d\xf9\x13\x12\x0e\n\x07VM_ONLY\x10\xb4\xc0\xf3p\"\xbe\x01\n\x17PrivateIpv6GoogleAccess\x12(\n$UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS\x10\x00\x12\x1d\n\x15\x44ISABLE_GOOGLE_ACCESS\x10\xf3\xa9\x84\xd7\x01\x12-\n%ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE\x10\xba\xca\x89\xcc\x01\x12+\n#ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE\x10\xd7\xfa\xb6\x89\x01\"\xf8\x01\n\x07Purpose\x12\x15\n\x11UNDEFINED_PURPOSE\x10\x00\x12\x1b\n\x14GLOBAL_MANAGED_PROXY\x10\xf2\xcb\xe0p\x12#\n\x1cINTERNAL_HTTPS_LOAD_BALANCER\x10\xd9\xb6\xcev\x12\x16\n\x0ePEER_MIGRATION\x10\x91\xaa\xc7\xea\x01\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\x13\n\x0bPRIVATE_NAT\x10\xa5\xc8\xae\xaf\x01\x12\x17\n\x10PRIVATE_RFC_1918\x10\xdb\xfe\xc5y\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x1d\n\x16REGIONAL_MANAGED_PROXY\x10\xee\xb6\xfdH\":\n\x04Role\x12\x12\n\x0eUNDEFINED_ROLE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x06\x42\x41\x43KUP\x10\xc2\xd3\xcd\xa2\x01\"{\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\x12\x1e\n\x16UNSPECIFIED_STACK_TYPE\x10\xd9\xd1\x91\x8e\x01\"<\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\x08\x44RAINING\x10\xea\xd5\x8c\xe5\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x13\n\x11_enable_flow_logsB\x17\n\x15_external_ipv6_prefixB\x0e\n\x0c_fingerprintB\x12\n\x10_gateway_addressB\x05\n\x03_idB\x17\n\x15_internal_ipv6_prefixB\x10\n\x0e_ip_cidr_rangeB\x10\n\x0e_ip_collectionB\x13\n\x11_ipv6_access_typeB\x12\n\x10_ipv6_cidr_rangeB\x14\n\x12_ipv6_gce_endpointB\x07\n\x05_kindB\r\n\x0b_log_configB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_paramsB\x1b\n\x19_private_ip_google_accessB\x1d\n\x1b_private_ipv6_google_accessB\n\n\x08_purposeB\t\n\x07_regionB\x1a\n\x18_reserved_internal_rangeB\x07\n\x05_roleB\x0c\n\n_self_linkB\r\n\x0b_stack_typeB\x08\n\x06_state\"\xbf\x03\n\x18SubnetworkAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.SubnetworkAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.SubnetworksScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0eSubnetworkList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Subnetwork\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xdd\x04\n\x13SubnetworkLogConfig\x12$\n\x14\x61ggregation_interval\x18\x82\x9b\xb4S \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x66ilter_expr\x18\xdc\xa4\xb8W \x01(\tH\x02\x88\x01\x01\x12\x1e\n\rflow_sampling\x18\xd8\xe7\xe5\xfc\x01 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x08metadata\x18\xaf\xf6\xb5) \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0fmetadata_fields\x18\xc9\xbb\xbb\xb4\x01 \x03(\t\"\xc8\x01\n\x13\x41ggregationInterval\x12\"\n\x1eUNDEFINED_AGGREGATION_INTERVAL\x10\x00\x12\x17\n\x0fINTERVAL_10_MIN\x10\xcc\xd1\xa5\xe8\x01\x12\x17\n\x0fINTERVAL_15_MIN\x10\xd1\xbc\xbf\xea\x01\x12\x15\n\x0eINTERVAL_1_MIN\x10\xaa\xd2\xf6 \x12\x16\n\x0fINTERVAL_30_SEC\x10\x89\xe0\xcc\x03\x12\x15\n\x0eINTERVAL_5_MIN\x10\xae\x8e\xd8\"\x12\x15\n\x0eINTERVAL_5_SEC\x10\xad\xba\xd8\"\"u\n\x08Metadata\x12\x16\n\x12UNDEFINED_METADATA\x10\x00\x12\x16\n\x0f\x43USTOM_METADATA\x10\xbd\xd8\xe3\x1d\x12\x1c\n\x14\x45XCLUDE_ALL_METADATA\x10\x92\xbd\xc1\x9f\x01\x12\x1b\n\x14INCLUDE_ALL_METADATA\x10\x84\xcd\xbfNB\x17\n\x15_aggregation_intervalB\t\n\x07_enableB\x0e\n\x0c_filter_exprB\x10\n\x0e_flow_samplingB\x0b\n\t_metadata\"\xb5\x01\n\x10SubnetworkParams\x12\x65\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x42.google.cloud.compute.v1.SubnetworkParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbd\x01\n\x18SubnetworkSecondaryRange\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nrange_name\x18\xcd\xf0\xb4\x9e\x01 \x01(\tH\x01\x88\x01\x01\x12(\n\x17reserved_internal_range\x18\xb2\x9e\xbf\x88\x01 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ip_cidr_rangeB\r\n\x0b_range_nameB\x1a\n\x18_reserved_internal_range\"V\n#SubnetworksExpandIpCidrRangeRequest\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_ip_cidr_range\"\x9c\x01\n\x15SubnetworksScopedList\x12<\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\x0b\x32#.google.cloud.compute.v1.Subnetwork\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8d\x01\n\x18SubnetworksScopedWarning\x12\x1b\n\nscope_name\x18\x96\x93\xe3\xa4\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x01\x88\x01\x01\x42\r\n\x0b_scope_nameB\n\n\x08_warning\"t\n*SubnetworksSetPrivateIpGoogleAccessRequest\x12)\n\x18private_ip_google_access\x18\xce\xe8\xfd\xc8\x01 \x01(\x08H\x00\x88\x01\x01\x42\x1b\n\x19_private_ip_google_access\"\x7f\n\nSubsetting\x12\x16\n\x06policy\x18\xb2\xca\xb6+ \x01(\tH\x00\x88\x01\x01\"N\n\x06Policy\x12\x14\n\x10UNDEFINED_POLICY\x10\x00\x12!\n\x1a\x43ONSISTENT_HASH_SUBSETTING\x10\xb4\x98\xfc\x33\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x42\t\n\x07_policy\"\xd7\x01\n\x16SuspendInstanceRequest\x12\"\n\x11\x64iscard_local_ssd\x18\xcf\xe9\xad\x98\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x14\n\x12_discard_local_ssdB\r\n\x0b_request_id\"\xd4\x02\n+SuspendInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x91\x01\n:instance_group_managers_suspend_instances_request_resource\x18\xd1\x8d\xa1\x16 \x01(\x0b\x32\x45.google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xeb\x02\n1SuspendInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9e\x01\nAregion_instance_group_managers_suspend_instances_request_resource\x18\xfc\xe5\x94\x66 \x01(\x0b\x32K.google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x89\x01\n SwitchToCustomModeNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x03\n\x0eTCPHealthCheck\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x00\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12port_specification\x18\xc5\xeb\xcc\x18 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07request\x18\x8f\xe5\xbb\n \x01(\tH\x04\x88\x01\x01\x12\x18\n\x08response\x18\xc1\xa8\xdc] \x01(\tH\x05\x88\x01\x01\"~\n\x11PortSpecification\x12 \n\x1cUNDEFINED_PORT_SPECIFICATION\x10\x00\x12\x15\n\x0eUSE_FIXED_PORT\x10\xe4\x88\xdbZ\x12\x16\n\x0eUSE_NAMED_PORT\x10\xbf\xcf\xc7\xa6\x01\x12\x18\n\x10USE_SERVING_PORT\x10\xcc\xd1\xf5\xac\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x07\n\x05_portB\x0c\n\n_port_nameB\x15\n\x13_port_specificationB\x0f\n\r_proxy_headerB\n\n\x08_requestB\x0b\n\t_response\"E\n\x04Tags\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05items\x18\xc0\xcf\xf7/ \x03(\tB\x0e\n\x0c_fingerprint\"\xca\x03\n\x0fTargetGrpcProxy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x07\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\x08\x88\x01\x01\x12&\n\x16validate_for_proxyless\x18\xa8\xe3\xc6\x30 \x01(\x08H\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\n\n\x08_url_mapB\x19\n\x17_validate_for_proxyless\"\xaf\x02\n\x13TargetGrpcProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.TargetGrpcProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xae\x01\n\x1bTargetHttpProxiesScopedList\x12H\n\x13target_http_proxies\x18\xc3\xd5\xa8M \x03(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xeb\x03\n\x0fTargetHttpProxy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12,\n\x1bhttp_keep_alive_timeout_sec\x18\xde\xce\xa6\xd5\x01 \x01(\x05H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1b\n\nproxy_bind\x18\xee\xce\xb1\x88\x01 \x01(\x08H\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\n\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x1e\n\x1c_http_keep_alive_timeout_secB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_proxy_bindB\t\n\x07_regionB\x0c\n\n_self_linkB\n\n\x08_url_map\"\x88\x03\n\x1dTargetHttpProxyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.TargetHttpProxyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x1a\x62\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.TargetHttpProxiesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_link\"\xaf\x02\n\x13TargetHttpProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x1cTargetHttpsProxiesScopedList\x12K\n\x14target_https_proxies\x18\x8a\xfc\xe7\xae\x01 \x03(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"a\n*TargetHttpsProxiesSetCertificateMapRequest\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_certificate_map\"\xb6\x01\n(TargetHttpsProxiesSetQuicOverrideRequest\x12\x1e\n\rquic_override\x18\xad\xa1\xdb\xd9\x01 \x01(\tH\x00\x88\x01\x01\"X\n\x0cQuicOverride\x12\x1b\n\x17UNDEFINED_QUIC_OVERRIDE\x10\x00\x12\x0e\n\x07\x44ISABLE\x10\xc8\xdd\xa6s\x12\x0e\n\x06\x45NABLE\x10\x83\xb3\xa0\xd1\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x42\x10\n\x0e_quic_override\"K\n+TargetHttpsProxiesSetSslCertificatesRequest\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\"\x9d\x08\n\x10TargetHttpsProxy\x12$\n\x14\x61uthorization_policy\x18\xb8\xef\x97\x10 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12,\n\x1bhttp_keep_alive_timeout_sec\x18\xde\xce\xa6\xd5\x01 \x01(\x05H\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x1b\n\nproxy_bind\x18\xee\xce\xb1\x88\x01 \x01(\x08H\t\x88\x01\x01\x12\x1e\n\rquic_override\x18\xad\xa1\xdb\xd9\x01 \x01(\tH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\"\n\x11server_tls_policy\x18\xf2\xde\x87\x8d\x01 \x01(\tH\r\x88\x01\x01\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\x0etls_early_data\x18\xca\xe1\x91\x1d \x01(\tH\x0f\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\x10\x88\x01\x01\"X\n\x0cQuicOverride\x12\x1b\n\x17UNDEFINED_QUIC_OVERRIDE\x10\x00\x12\x0e\n\x07\x44ISABLE\x10\xc8\xdd\xa6s\x12\x0e\n\x06\x45NABLE\x10\x83\xb3\xa0\xd1\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\"x\n\x0cTlsEarlyData\x12\x1c\n\x18UNDEFINED_TLS_EARLY_DATA\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x12\n\nPERMISSIVE\x10\x9f\xe5\xbe\xf0\x01\x12\x0e\n\x06STRICT\x10\xc9\xa5\xa1\x93\x01\x12\x14\n\x0cUNRESTRICTED\x10\xb4\xa7\x85\xda\x01\x42\x17\n\x15_authorization_policyB\x12\n\x10_certificate_mapB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x1e\n\x1c_http_keep_alive_timeout_secB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_proxy_bindB\x10\n\x0e_quic_overrideB\t\n\x07_regionB\x0c\n\n_self_linkB\x14\n\x12_server_tls_policyB\r\n\x0b_ssl_policyB\x11\n\x0f_tls_early_dataB\n\n\x08_url_map\"\xd2\x03\n\x1eTargetHttpsProxyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.TargetHttpsProxyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x63\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.google.cloud.compute.v1.TargetHttpsProxiesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb1\x02\n\x14TargetHttpsProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfc\x03\n\x0eTargetInstance\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\nnat_policy\x18\x90\xc4\x8a\xf3\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\n\x88\x01\x01\"4\n\tNatPolicy\x12\x18\n\x14UNDEFINED_NAT_POLICY\x10\x00\x12\r\n\x06NO_NAT\x10\x83\xbb\xfeLB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x0b\n\t_instanceB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_nat_policyB\n\n\x08_networkB\x12\n\x10_security_policyB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xcb\x03\n\x1cTargetInstanceAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.TargetInstanceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a`\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.TargetInstancesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x02\n\x12TargetInstanceList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.TargetInstance\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa9\x01\n\x19TargetInstancesScopedList\x12\x45\n\x10target_instances\x18\xd0\xd2\xad\xbb\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.TargetInstance\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xa5\x06\n\nTargetPool\x12\x1b\n\x0b\x62\x61\x63kup_pool\x18\xf9\xc8\xf0\x15 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x0e\x66\x61ilover_ratio\x18\xfe\x94\xb4\x65 \x01(\x02H\x03\x88\x01\x01\x12\x19\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12!\n\x10session_affinity\x18\xb1\xc1\x99\xdd\x01 \x01(\tH\n\x88\x01\x01\"\x8b\x02\n\x0fSessionAffinity\x12\x1e\n\x1aUNDEFINED_SESSION_AFFINITY\x10\x00\x12\x11\n\tCLIENT_IP\x10\x9b\xdc\xe9\xa4\x01\x12\x1f\n\x18\x43LIENT_IP_NO_DESTINATION\x10\x94\x9a\xcd\x32\x12\x1b\n\x14\x43LIENT_IP_PORT_PROTO\x10\xae\xf2\xdci\x12\x16\n\x0f\x43LIENT_IP_PROTO\x10\xa4\xc5\x89\x0c\x12\x18\n\x10GENERATED_COOKIE\x10\xb4\xce\xca\xb0\x01\x12\x13\n\x0cHEADER_FIELD\x10\xa8\x89\xdc_\x12\x13\n\x0bHTTP_COOKIE\x10\xfb\xa3\x83\xec\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x1e\n\x16STRONG_COOKIE_AFFINITY\x10\xfb\xdd\x93\xd1\x01\x42\x0e\n\x0c_backup_poolB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x11\n\x0f_failover_ratioB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_security_policyB\x0c\n\n_self_linkB\x13\n\x11_session_affinity\"\xbf\x03\n\x18TargetPoolAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.TargetPoolAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.TargetPoolsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"{\n\x18TargetPoolInstanceHealth\x12@\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x03(\x0b\x32%.google.cloud.compute.v1.HealthStatus\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_kind\"\xa5\x02\n\x0eTargetPoolList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.TargetPool\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"l\n TargetPoolsAddHealthCheckRequest\x12H\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\x0b\x32-.google.cloud.compute.v1.HealthCheckReference\"a\n\x1dTargetPoolsAddInstanceRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"o\n#TargetPoolsRemoveHealthCheckRequest\x12H\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\x0b\x32-.google.cloud.compute.v1.HealthCheckReference\"d\n TargetPoolsRemoveInstanceRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"\x9d\x01\n\x15TargetPoolsScopedList\x12=\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\x0b\x32#.google.cloud.compute.v1.TargetPool\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"4\n\x0fTargetReference\x12\x16\n\x06target\x18\x91\xe3\xf9[ \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"P\n(TargetSslProxiesSetBackendServiceRequest\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_service\"_\n(TargetSslProxiesSetCertificateMapRequest\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_certificate_map\"\xa0\x01\n%TargetSslProxiesSetProxyHeaderRequest\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x00\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x0f\n\r_proxy_header\"I\n)TargetSslProxiesSetSslCertificatesRequest\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\"\x98\x04\n\x0eTargetSslProxy\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tH\t\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x12\n\x10_certificate_mapB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0f\n\r_proxy_headerB\x0c\n\n_self_linkB\n\n\x08_serviceB\r\n\x0b_ssl_policy\"\xad\x02\n\x12TargetSslProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.TargetSslProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x01\n\x1aTargetTcpProxiesScopedList\x12\x46\n\x12target_tcp_proxies\x18\x80\xd7\xfa| \x03(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"P\n(TargetTcpProxiesSetBackendServiceRequest\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_service\"\xa0\x01\n%TargetTcpProxiesSetProxyHeaderRequest\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x00\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x0f\n\r_proxy_header\"\xe8\x03\n\x0eTargetTcpProxy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\nproxy_bind\x18\xee\xce\xb1\x88\x01 \x01(\x08H\x05\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\t\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_proxy_bindB\x0f\n\r_proxy_headerB\t\n\x07_regionB\x0c\n\n_self_linkB\n\n\x08_service\"\xcc\x03\n\x1cTargetTcpProxyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.TargetTcpProxyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.TargetTcpProxiesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x02\n\x12TargetTcpProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xae\x05\n\x10TargetVpnGateway\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x10\x66orwarding_rules\x18\xb5\x9a\xcc\x96\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x04\x88\x01\x01\x12I\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x35.google.cloud.compute.v1.TargetVpnGateway.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\t\x88\x01\x01\x12\x12\n\x07tunnels\x18\x8b\xfa\xed\x31 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"`\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_status\"\xd1\x03\n\x1eTargetVpnGatewayAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.TargetVpnGatewayAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x62\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.TargetVpnGatewaysScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb1\x02\n\x14TargetVpnGatewayList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.TargetVpnGateway\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb0\x01\n\x1bTargetVpnGatewaysScopedList\x12J\n\x13target_vpn_gateways\x18\x88\x93\xca\xbf\x01 \x03(\x0b\x32).google.cloud.compute.v1.TargetVpnGateway\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x93\x04\n\x0bTestFailure\x12\"\n\x11\x61\x63tual_output_url\x18\x82\xd9\xf1\x88\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x1d\x61\x63tual_redirect_response_code\x18\xd9\x83\xbc\x14 \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x0e\x61\x63tual_service\x18\x84\xd2\xfe\xd1\x01 \x01(\tH\x02\x88\x01\x01\x12$\n\x13\x65xpected_output_url\x18\x98\xa2\xf7\xce\x01 \x01(\tH\x03\x88\x01\x01\x12/\n\x1f\x65xpected_redirect_response_code\x18\xef\xea\x80\t \x01(\x05H\x04\x88\x01\x01\x12 \n\x10\x65xpected_service\x18\xae\xf8\xf1? \x01(\tH\x05\x88\x01\x01\x12=\n\x07headers\x18\x86\xdf\x9d{ \x03(\x0b\x32).google.cloud.compute.v1.UrlMapTestHeader\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x07\x88\x01\x01\x42\x14\n\x12_actual_output_urlB \n\x1e_actual_redirect_response_codeB\x11\n\x0f_actual_serviceB\x16\n\x14_expected_output_urlB\"\n _expected_redirect_response_codeB\x13\n\x11_expected_serviceB\x07\n\x05_hostB\x07\n\x05_path\"\xc0\x01\n&TestIamPermissionsBackendBucketRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xc1\x01\n\'TestIamPermissionsBackendServiceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xcd\x01\n\x1dTestIamPermissionsDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xc5\x01\n+TestIamPermissionsExternalVpnGatewayRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xa8\x01\n\'TestIamPermissionsFirewallPolicyRequest\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xb8\x01\n\x1eTestIamPermissionsImageRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd1\x01\n!TestIamPermissionsInstanceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xc3\x01\n)TestIamPermissionsInstanceTemplateRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd8\x01\n(TestIamPermissionsInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xce\x01\n4TestIamPermissionsInterconnectAttachmentGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xc4\x01\n*TestIamPermissionsInterconnectGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xbe\x01\n$TestIamPermissionsLicenseCodeRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xba\x01\n TestIamPermissionsLicenseRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xbf\x01\n%TestIamPermissionsMachineImageRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdc\x01\n*TestIamPermissionsNetworkAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdd\x01\n-TestIamPermissionsNetworkEndpointGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xc8\x01\n.TestIamPermissionsNetworkFirewallPolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd2\x01\n\"TestIamPermissionsNodeGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd7\x01\n%TestIamPermissionsNodeTemplateRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xda\x01\n(TestIamPermissionsPacketMirroringRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdf\x01\n-TestIamPermissionsRegionBackendServiceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsRegionDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xe0\x01\n.TestIamPermissionsRegionInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xe6\x01\n4TestIamPermissionsRegionNetworkFirewallPolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd4\x01\n$TestIamPermissionsReservationRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd9\x01\n\'TestIamPermissionsResourcePolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdc\x01\n*TestIamPermissionsServiceAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xbb\x01\n!TestIamPermissionsSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd4\x01\n$TestIamPermissionsStoragePoolRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsSubnetworkRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsVpnGatewayRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"0\n\x16TestPermissionsRequest\x12\x16\n\x0bpermissions\x18\x84\xe9\xcb\x1c \x03(\t\"1\n\x17TestPermissionsResponse\x12\x16\n\x0bpermissions\x18\x84\xe9\xcb\x1c \x03(\t\"D\n\x07Uint128\x12\x14\n\x04high\x18\xa2\xbb\xc3\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x03low\x18\xd4\xc6\x06 \x01(\x04H\x01\x88\x01\x01\x42\x07\n\x05_highB\x06\n\x04_low\"\xce\x08\n\x13UpcomingMaintenance\x12\x1e\n\x0e\x63\x61n_reschedule\x18\x99\xa3\xe2- \x01(\x08H\x00\x88\x01\x01\x12(\n\x18latest_window_start_time\x18\x81\xbb\x86= \x01(\tH\x01\x88\x01\x01\x12\'\n\x17maintenance_on_shutdown\x18\x8a\xc3\x96n \x01(\x08H\x02\x88\x01\x01\x12\x1e\n\x13maintenance_reasons\x18\x83\x9b\xf2\x42 \x03(\t\x12\"\n\x12maintenance_status\x18\x9e\x9d\xf7& \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x04\x88\x01\x01\x12 \n\x0fwindow_end_time\x18\xa0\xae\xce\x81\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x11window_start_time\x18\xb9\xb0\xc9\xe1\x01 \x01(\tH\x06\x88\x01\x01\"\xb8\x03\n\x12MaintenanceReasons\x12!\n\x1dUNDEFINED_MAINTENANCE_REASONS\x10\x00\x12\x13\n\x0c\x46\x41ILURE_DISK\x10\xd2\xa6\x8b\x04\x12\x13\n\x0b\x46\x41ILURE_GPU\x10\xb7\xf8\x8c\xdf\x01\x12\x1e\n\x17\x46\x41ILURE_GPU_TEMPERATURE\x10\xcc\xb2\xf1\x0b\x12\x16\n\x0f\x46\x41ILURE_GPU_XID\x10\xeb\x96\xe3\x18\x12\x15\n\rFAILURE_INFRA\x10\x9b\xc5\x80\x81\x01\x12\x19\n\x11\x46\x41ILURE_INTERFACE\x10\x84\xf1\xff\xb9\x01\x12\x16\n\x0e\x46\x41ILURE_MEMORY\x10\xf6\xca\xef\xd1\x01\x12\x16\n\x0f\x46\x41ILURE_NETWORK\x10\xb9\x80\xb5\x14\x12\x16\n\x0e\x46\x41ILURE_NVLINK\x10\xb7\x84\xff\xe6\x01\x12\'\n FAILURE_REDUNDANT_HARDWARE_FAULT\x10\xd2\x8f\xe4\x0e\x12!\n\x19INFRASTRUCTURE_RELOCATION\x10\x84\x9e\xcb\xab\x01\x12!\n\x1aMAINTENANCE_REASON_UNKNOWN\x10\xfb\xc7\x8e\x18\x12\x1d\n\x16PLANNED_NETWORK_UPDATE\x10\x95\xf8\xcd@\x12\x15\n\x0ePLANNED_UPDATE\x10\xc4\xb7\x8fM\"g\n\x11MaintenanceStatus\x12 \n\x1cUNDEFINED_MAINTENANCE_STATUS\x10\x00\x12\x0f\n\x07ONGOING\x10\xdb\xa6\xcf\xe1\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\"j\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\x08MULTIPLE\x10\x90\xac\xfa\xac\x01\x12\x11\n\tSCHEDULED\x10\x8d\xa1\x8f\xe4\x01\x12\x14\n\x0cUNKNOWN_TYPE\x10\xaf\xa4\xfe\xe9\x01\x12\x13\n\x0bUNSCHEDULED\x10\x94\xc4\xce\xd6\x01\x42\x11\n\x0f_can_rescheduleB\x1b\n\x19_latest_window_start_timeB\x1a\n\x18_maintenance_on_shutdownB\x15\n\x13_maintenance_statusB\x07\n\x05_typeB\x12\n\x10_window_end_timeB\x14\n\x12_window_start_time\"\x9c\x02\n!UpdateAccessConfigInstanceRequest\x12N\n\x16\x61\x63\x63\x65ss_config_resource\x18\x90\xff\xf6\xb8\x01 \x01(\x0b\x32%.google.cloud.compute.v1.AccessConfigB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xfa\x01\n\x17UpdateAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\xdc\x01\n\x1aUpdateBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12P\n\x17\x62\x61\x63kend_bucket_resource\x18\x98\xce\xc7\xb5\x01 \x01(\x0b\x32&.google.cloud.compute.v1.BackendBucketB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe1\x01\n\x1bUpdateBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa1\x02\n\x11UpdateDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xfb\x01\n\"UpdateDisplayDeviceInstanceRequest\x12P\n\x17\x64isplay_device_resource\x18\xda\x84\x91\x8a\x01 \x01(\x0b\x32&.google.cloud.compute.v1.DisplayDeviceB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xc6\x01\n\x15UpdateFirewallRequest\x12\x19\n\x08\x66irewall\x18\x80\xfa\xd5\xf3\x01 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x11\x66irewall_resource\x18\xed\xb0\xe0\x13 \x01(\x0b\x32!.google.cloud.compute.v1.FirewallB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd4\x01\n\x18UpdateHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe5\x03\n\x15UpdateInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x11instance_resource\x18\xf8\xf0\xfe\x66 \x01(\x0b\x32!.google.cloud.compute.v1.InstanceB\x03\xe0\x41\x02\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zone\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\x42\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_actionB\r\n\x0b_request_id\"\xf0\x01\n\x14UpdateLicenseRequest\x12\x17\n\x07license\x18\xc1\x88\xc2O \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x10license_resource\x18\xcc\xd4\xea\xd0\x01 \x01(\x0b\x32 .google.cloud.compute.v1.LicenseB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xa8\x02\n%UpdateNetworkInterfaceInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12V\n\x1anetwork_interface_resource\x18\x85\x94\xae\x9b\x01 \x01(\x0b\x32).google.cloud.compute.v1.NetworkInterfaceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf5\x01\n\x1bUpdatePeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12o\n(networks_update_peering_request_resource\x18\xd9\xaa\x82k \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworksUpdatePeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe6\x02\n3UpdatePerInstanceConfigsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x9b\x01\n@instance_group_managers_update_per_instance_configs_req_resource\x18\xbe\xc1\xb6\x43 \x01(\x0b\x32I.google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReqB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf2\x02\n9UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\nAregion_instance_group_manager_update_instance_config_req_resource\x18\xa7\xae\xba* \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReqB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x84\x02\n\x1dUpdateRegionAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\x88\x02\n!UpdateRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc4\x02\n\x1dUpdateRegionCommitmentRequest\x12\x1b\n\ncommitment\x18\x95\x96\xf3\xe5\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13\x63ommitment_resource\x18\xf8\xa3\xbbt \x01(\x0b\x32#.google.cloud.compute.v1.CommitmentB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xab\x02\n\x17UpdateRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xfb\x01\n\x1eUpdateRegionHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe7\x01\n\x19UpdateRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbe\x02\n\x18UpdateReservationRequest\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12K\n\x14reservation_resource\x18\xa1\xee\xf4\x87\x01 \x01(\x0b\x32$.google.cloud.compute.v1.ReservationB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xf4\x01\n\x1eUpdateRoutePolicyRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x15route_policy_resource\x18\x85\xbd\xb5\x37 \x01(\x0b\x32$.google.cloud.compute.v1.RoutePolicyB\x03\xe0\x41\x02\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xde\x01\n\x13UpdateRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x97\x02\n+UpdateShieldedInstanceConfigInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x63\n!shielded_instance_config_resource\x18\xd8\x96\xdd\x81\x01 \x01(\x0b\x32/.google.cloud.compute.v1.ShieldedInstanceConfigB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x9f\x02\n\x18UpdateStoragePoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15storage_pool_resource\x18\x8d\xbc\xf9J \x01(\x0b\x32$.google.cloud.compute.v1.StoragePoolB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xc0\x01\n\x13UpdateUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf2\x07\n\x06UrlMap\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12h\n$default_custom_error_response_policy\x18\xa9\x8b\xe0& \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x01\x88\x01\x01\x12O\n\x14\x64\x65\x66\x61ult_route_action\x18\xaa\xb4\xd7\xb4\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x02\x88\x01\x01\x12 \n\x0f\x64\x65\x66\x61ult_service\x18\xb7\xe5\xc5\xb0\x01 \x01(\tH\x03\x88\x01\x01\x12R\n\x14\x64\x65\x66\x61ult_url_redirect\x18\xea\xab\xb6\xab\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x06\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x07\x88\x01\x01\x12\x39\n\nhost_rules\x18\xa0\x87\xd7\x94\x01 \x03(\x0b\x32!.google.cloud.compute.v1.HostRule\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12?\n\rpath_matchers\x18\xdb\x88\xc5\x81\x01 \x03(\x0b\x32$.google.cloud.compute.v1.PathMatcher\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x35\n\x05tests\x18\xa1\x9c\xc9\x34 \x03(\x0b\x32#.google.cloud.compute.v1.UrlMapTestB\x15\n\x13_creation_timestampB\'\n%_default_custom_error_response_policyB\x17\n\x15_default_route_actionB\x12\n\x10_default_serviceB\x17\n\x15_default_url_redirectB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x10\n\x0e_header_actionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_link\"\x9d\x02\n\nUrlMapList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x31\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1f.google.cloud.compute.v1.UrlMap\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"7\n\x0fUrlMapReference\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_url_map\"\xf0\x02\n\nUrlMapTest\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12$\n\x13\x65xpected_output_url\x18\x98\xa2\xf7\xce\x01 \x01(\tH\x01\x88\x01\x01\x12/\n\x1f\x65xpected_redirect_response_code\x18\xef\xea\x80\t \x01(\x05H\x02\x88\x01\x01\x12=\n\x07headers\x18\x86\xdf\x9d{ \x03(\x0b\x32).google.cloud.compute.v1.UrlMapTestHeader\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x05\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x16\n\x14_expected_output_urlB\"\n _expected_redirect_response_codeB\x07\n\x05_hostB\x07\n\x05_pathB\n\n\x08_service\"R\n\x10UrlMapTestHeader\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xd2\x01\n\x16UrlMapValidationResult\x12\x17\n\x0bload_errors\x18\xe4\xf1\xf1\x93\x01 \x03(\t\x12\x1e\n\x0eload_succeeded\x18\xc8\xb4\x98= \x01(\x08H\x00\x88\x01\x01\x12?\n\rtest_failures\x18\xb6\xe2\x9f\xf1\x01 \x03(\x0b\x32$.google.cloud.compute.v1.TestFailure\x12\x1b\n\x0btest_passed\x18\xbd\x81\xf2[ \x01(\x08H\x01\x88\x01\x01\x42\x11\n\x0f_load_succeededB\x0e\n\x0c_test_passed\"\xb5\x03\n\x15UrlMapsAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12K\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x39.google.cloud.compute.v1.UrlMapsAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aX\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.google.cloud.compute.v1.UrlMapsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x90\x01\n\x11UrlMapsScopedList\x12\x34\n\x08url_maps\x18\xe7\x8e\xa4\x31 \x03(\x0b\x32\x1f.google.cloud.compute.v1.UrlMap\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x98\x02\n\x16UrlMapsValidateRequest\x12!\n\x16load_balancing_schemes\x18\xaf\x85\x81\x03 \x03(\t\x12\x39\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapH\x00\x88\x01\x01\"\x92\x01\n\x14LoadBalancingSchemes\x12$\n UNDEFINED_LOAD_BALANCING_SCHEMES\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x18\n\x10\x45XTERNAL_MANAGED\x10\x8b\xb6\x92\xf4\x01\x12)\n!LOAD_BALANCING_SCHEME_UNSPECIFIED\x10\xbc\xbb\x87\xfb\x01\x42\x0b\n\t_resource\"m\n\x17UrlMapsValidateResponse\x12G\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32/.google.cloud.compute.v1.UrlMapValidationResultH\x00\x88\x01\x01\x42\t\n\x07_result\"\xba\x01\n\nUrlRewrite\x12\x1c\n\x0chost_rewrite\x18\xf5\xcb\x9aL \x01(\tH\x00\x88\x01\x01\x12#\n\x13path_prefix_rewrite\x18\xb9\xe8\xd1\x13 \x01(\tH\x01\x88\x01\x01\x12&\n\x15path_template_rewrite\x18\xa1\xef\xf2\xc9\x01 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_host_rewriteB\x16\n\x14_path_prefix_rewriteB\x18\n\x16_path_template_rewrite\"\xfe\x07\n\x10UsableSubnetwork\x12$\n\x14\x65xternal_ipv6_prefix\x18\xf6\x92\xb6\x42 \x01(\tH\x00\x88\x01\x01\x12%\n\x14internal_ipv6_prefix\x18\xe8\xa2\xb4\xf1\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x02\x88\x01\x01\x12!\n\x10ipv6_access_type\x18\xdd\xf5\xd1\xf0\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x04\x88\x01\x01\x12\x18\n\x07purpose\x18\x9e\xfa\xef\x96\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04role\x18\xf6\x80\xd6\x01 \x01(\tH\x06\x88\x01\x01\x12W\n\x13secondary_ip_ranges\x18\xe3\xff\x94\x41 \x03(\x0b\x32\x37.google.cloud.compute.v1.UsableSubnetworkSecondaryRange\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x07\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x08\x88\x01\x01\"S\n\x0eIpv6AccessType\x12\x1e\n\x1aUNDEFINED_IPV6_ACCESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\"\xf8\x01\n\x07Purpose\x12\x15\n\x11UNDEFINED_PURPOSE\x10\x00\x12\x1b\n\x14GLOBAL_MANAGED_PROXY\x10\xf2\xcb\xe0p\x12#\n\x1cINTERNAL_HTTPS_LOAD_BALANCER\x10\xd9\xb6\xcev\x12\x16\n\x0ePEER_MIGRATION\x10\x91\xaa\xc7\xea\x01\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\x13\n\x0bPRIVATE_NAT\x10\xa5\xc8\xae\xaf\x01\x12\x17\n\x10PRIVATE_RFC_1918\x10\xdb\xfe\xc5y\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x1d\n\x16REGIONAL_MANAGED_PROXY\x10\xee\xb6\xfdH\":\n\x04Role\x12\x12\n\x0eUNDEFINED_ROLE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x06\x42\x41\x43KUP\x10\xc2\xd3\xcd\xa2\x01\"[\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%B\x17\n\x15_external_ipv6_prefixB\x17\n\x15_internal_ipv6_prefixB\x10\n\x0e_ip_cidr_rangeB\x13\n\x11_ipv6_access_typeB\n\n\x08_networkB\n\n\x08_purposeB\x07\n\x05_roleB\r\n\x0b_stack_typeB\r\n\x0b_subnetwork\"}\n\x1eUsableSubnetworkSecondaryRange\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nrange_name\x18\xcd\xf0\xb4\x9e\x01 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_ip_cidr_rangeB\r\n\x0b_range_name\"\xa4\x03\n\x1fUsableSubnetworksAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.UsableSubnetwork\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12M\n\x0fscoped_warnings\x18\xa6\x96\xf8\x66 \x03(\x0b\x32\x31.google.cloud.compute.v1.SubnetworksScopedWarning\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x7f\n\x13UsageExportLocation\x12\x1c\n\x0b\x62ucket_name\x18\xc0\x97\x9e\x87\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12report_name_prefix\x18\xbb\xb0\xd7\x98\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_bucket_nameB\x15\n\x13_report_name_prefix\"\xda\x01\n\x1bValidateRegionUrlMapRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12p\n)region_url_maps_validate_request_resource\x18\x9a\xcc\x80\x1b \x01(\x0b\x32\x35.google.cloud.compute.v1.RegionUrlMapsValidateRequestB\x03\xe0\x41\x02\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\"\xb0\x01\n\x15ValidateUrlMapRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"url_maps_validate_request_resource\x18\xef\xd1\xe4\xbc\x01 \x01(\x0b\x32/.google.cloud.compute.v1.UrlMapsValidateRequestB\x03\xe0\x41\x02\"\xaf\x01\n\x15VmEndpointNatMappings\x12\x1d\n\rinstance_name\x18\xf5\xe7\xd8l \x01(\tH\x00\x88\x01\x01\x12\x65\n\x16interface_nat_mappings\x18\x89\x80\x95z \x03(\x0b\x32\x42.google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsB\x10\n\x0e_instance_name\"\xe2\x03\n)VmEndpointNatMappingsInterfaceNatMappings\x12$\n\x18\x64rain_nat_ip_port_ranges\x18\xc1\xe3\xc7\xbc\x01 \x03(\t\x12\x1e\n\x12nat_ip_port_ranges\x18\x9a\xb0\xcc\xfd\x01 \x03(\t\x12*\n\x19num_total_drain_nat_ports\x18\xf9\xa5\xff\x9f\x01 \x01(\x05H\x00\x88\x01\x01\x12$\n\x13num_total_nat_ports\x18\x80\xdb\x80\x8f\x01 \x01(\x05H\x01\x88\x01\x01\x12l\n\rrule_mappings\x18\xc8\xee\xea\xe7\x01 \x03(\x0b\x32Q.google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings\x12&\n\x15source_alias_ip_range\x18\xd8\xa3\xfc\xd1\x01 \x01(\tH\x02\x88\x01\x01\x12!\n\x11source_virtual_ip\x18\xff\xa2\xb9G \x01(\tH\x03\x88\x01\x01\x42\x1c\n\x1a_num_total_drain_nat_portsB\x16\n\x14_num_total_nat_portsB\x18\n\x16_source_alias_ip_rangeB\x14\n\x12_source_virtual_ip\"\xb6\x02\n8VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings\x12$\n\x18\x64rain_nat_ip_port_ranges\x18\xc1\xe3\xc7\xbc\x01 \x03(\t\x12\x1e\n\x12nat_ip_port_ranges\x18\x9a\xb0\xcc\xfd\x01 \x03(\t\x12*\n\x19num_total_drain_nat_ports\x18\xf9\xa5\xff\x9f\x01 \x01(\x05H\x00\x88\x01\x01\x12$\n\x13num_total_nat_ports\x18\x80\xdb\x80\x8f\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0brule_number\x18\xec\xdb\x9a\xff\x01 \x01(\x05H\x02\x88\x01\x01\x42\x1c\n\x1a_num_total_drain_nat_portsB\x16\n\x14_num_total_nat_portsB\x0e\n\x0c_rule_number\"\xbc\x02\n\x19VmEndpointNatMappingsList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x41\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32..google.cloud.compute.v1.VmEndpointNatMappings\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd2\x06\n\nVpnGateway\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12gateway_ip_version\x18\x9b\xed\x83\x1f \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x05\x88\x01\x01\x12\x43\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32/.google.cloud.compute.v1.VpnGateway.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\n\x88\x01\x01\x12Q\n\x0evpn_interfaces\x18\x85\xcd\xe5+ \x03(\x0b\x32\x36.google.cloud.compute.v1.VpnGatewayVpnGatewayInterface\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"N\n\x10GatewayIpVersion\x12 \n\x1cUNDEFINED_GATEWAY_IP_VERSION\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\"[\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x15\n\x13_gateway_ip_versionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\r\n\x0b_stack_type\"\xbf\x03\n\x18VpnGatewayAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.VpnGatewayAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.VpnGatewaysScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0eVpnGatewayList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.VpnGateway\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"g\n\x10VpnGatewayStatus\x12S\n\x0fvpn_connections\x18\x8a\xed\xbe\xd1\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.VpnGatewayStatusVpnConnection\"\xd1\x02\n0VpnGatewayStatusHighAvailabilityRequirementState\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12unsatisfied_reason\x18\x8a\xf7\x9d\x1a \x01(\tH\x01\x88\x01\x01\"f\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12!\n\x19\x43ONNECTION_REDUNDANCY_MET\x10\x9b\xca\xf5\xf0\x01\x12%\n\x1d\x43ONNECTION_REDUNDANCY_NOT_MET\x10\x8f\xd4\x89\xf4\x01\"Y\n\x11UnsatisfiedReason\x12 \n\x1cUNDEFINED_UNSATISFIED_REASON\x10\x00\x12\"\n\x1bINCOMPLETE_TUNNELS_COVERAGE\x10\xfd\xf6\xd4\x1a\x42\x08\n\x06_stateB\x15\n\x13_unsatisfied_reason\"\xcb\x01\n\x16VpnGatewayStatusTunnel\x12\'\n\x17local_gateway_interface\x18\xaa\x9a\xdaK \x01(\rH\x00\x88\x01\x01\x12&\n\x16peer_gateway_interface\x18\xe1\xde\x9c\x66 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ntunnel_url\x18\x98\xa2\xd4% \x01(\tH\x02\x88\x01\x01\x42\x1a\n\x18_local_gateway_interfaceB\x19\n\x17_peer_gateway_interfaceB\r\n\x0b_tunnel_url\"\xca\x02\n\x1dVpnGatewayStatusVpnConnection\x12&\n\x15peer_external_gateway\x18\x8d\xee\xc7\xb7\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x10peer_gcp_gateway\x18\xbc\xe9\xb3\x86\x01 \x01(\tH\x01\x88\x01\x01\x12`\n\x05state\x18\x91\x89\xab\x34 \x01(\x0b\x32I.google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementStateH\x02\x88\x01\x01\x12\x43\n\x07tunnels\x18\x8b\xfa\xed\x31 \x03(\x0b\x32/.google.cloud.compute.v1.VpnGatewayStatusTunnelB\x18\n\x16_peer_external_gatewayB\x13\n\x11_peer_gcp_gatewayB\x08\n\x06_state\"\xda\x01\n\x1dVpnGatewayVpnGatewayInterface\x12\x10\n\x02id\x18\x9b\x1a \x01(\rH\x00\x88\x01\x01\x12(\n\x17interconnect_attachment\x18\xf4\x8a\xf7\x92\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x03\x88\x01\x01\x42\x05\n\x03_idB\x1a\n\x18_interconnect_attachmentB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_address\"l\n\x1cVpnGatewaysGetStatusResponse\x12\x41\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32).google.cloud.compute.v1.VpnGatewayStatusH\x00\x88\x01\x01\x42\t\n\x07_result\"\x9c\x01\n\x15VpnGatewaysScopedList\x12<\n\x0cvpn_gateways\x18\x9a\xfb\xca{ \x03(\x0b\x32#.google.cloud.compute.v1.VpnGateway\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x9b\x0c\n\tVpnTunnel\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12 \n\x0f\x64\x65tailed_status\x18\xe1\xa4\x83\x9f\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0bike_version\x18\x9c\xd0\x90h \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x06\x88\x01\x01\x12\x42\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32..google.cloud.compute.v1.VpnTunnel.LabelsEntry\x12\"\n\x16local_traffic_selector\x18\xb5\xac\xa7\x97\x01 \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12&\n\x15peer_external_gateway\x18\x8d\xee\xc7\xb7\x01 \x01(\tH\x08\x88\x01\x01\x12\x30\n\x1fpeer_external_gateway_interface\x18\x87\xe5\xf2\xd7\x01 \x01(\x05H\t\x88\x01\x01\x12!\n\x10peer_gcp_gateway\x18\xbc\xe9\xb3\x86\x01 \x01(\tH\n\x88\x01\x01\x12\x18\n\x07peer_ip\x18\xa4\xda\xdf\xb6\x01 \x01(\tH\x0b\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0c\x88\x01\x01\x12#\n\x17remote_traffic_selector\x18\xba\xdd\x90\xab\x01 \x03(\t\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tH\r\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\rshared_secret\x18\xca\xa7\x8f\xb6\x01 \x01(\tH\x0f\x88\x01\x01\x12#\n\x12shared_secret_hash\x18\xe3\xe8\x99\xbe\x01 \x01(\tH\x10\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x11\x88\x01\x01\x12#\n\x12target_vpn_gateway\x18\xcb\x80\xf6\xfd\x01 \x01(\tH\x12\x88\x01\x01\x12\x1c\n\x0bvpn_gateway\x18\xf9\x83\xf6\xc1\x01 \x01(\tH\x13\x88\x01\x01\x12%\n\x15vpn_gateway_interface\x18\xf3\x8c\xe2- \x01(\x05H\x14\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd3\x02\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x1c\n\x14\x41LLOCATING_RESOURCES\x10\xc0\xc9\x83\x99\x01\x12\x1a\n\x13\x41UTHORIZATION_ERROR\x10\x82\x9d\x9f\x0b\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x12\n\x0b\x45STABLISHED\x10\xf8\x8e\xaf*\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x16\n\x0f\x46IRST_HANDSHAKE\x10\xe8\xd9\xa1[\x12\x1b\n\x13NEGOTIATION_FAILURE\x10\xec\xc5\xe8\xab\x01\x12\x14\n\rNETWORK_ERROR\x10\xf7\xc0\xbb\\\x12\x1a\n\x13NO_INCOMING_PACKETS\x10\xf0\x98\x9b\x39\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x1e\n\x17WAITING_FOR_FULL_CONFIG\x10\xca\xc4\xed\x13\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x12\n\x10_detailed_statusB\x05\n\x03_idB\x0e\n\x0c_ike_versionB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x18\n\x16_peer_external_gatewayB\"\n _peer_external_gateway_interfaceB\x13\n\x11_peer_gcp_gatewayB\n\n\x08_peer_ipB\t\n\x07_regionB\t\n\x07_routerB\x0c\n\n_self_linkB\x10\n\x0e_shared_secretB\x15\n\x13_shared_secret_hashB\t\n\x07_statusB\x15\n\x13_target_vpn_gatewayB\x0e\n\x0c_vpn_gatewayB\x18\n\x16_vpn_gateway_interface\"\xbc\x03\n\x17VpnTunnelAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12M\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32;.google.cloud.compute.v1.VpnTunnelAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a[\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x05value\x18\x02 \x01(\x0b\x32-.google.cloud.compute.v1.VpnTunnelsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa3\x02\n\rVpnTunnelList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.VpnTunnel\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x99\x01\n\x14VpnTunnelsScopedList\x12:\n\x0bvpn_tunnels\x18\xc0\xf1\xfaM \x03(\x0b\x32\".google.cloud.compute.v1.VpnTunnel\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8c\x01\n\x10WafExpressionSet\x12\x12\n\x07\x61liases\x18\xfe\x9d\xf5K \x03(\t\x12K\n\x0b\x65xpressions\x18\xdb\x81\xdbS \x03(\x0b\x32\x33.google.cloud.compute.v1.WafExpressionSetExpression\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"b\n\x1aWafExpressionSetExpression\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bsensitivity\x18\x9f\xbd\x90\r \x01(\x05H\x01\x88\x01\x01\x42\x05\n\x03_idB\x0e\n\x0c_sensitivity\"P\n\x1aWaitGlobalOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\"h\n\x1aWaitRegionOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\"d\n\x18WaitZoneOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xfd\x08\n\x07Warning\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Data\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\"\xfc\x07\n\x04\x43ode\x12\x12\n\x0eUNDEFINED_CODE\x10\x00\x12\x15\n\x0e\x43LEANUP_FAILED\x10\xd8\x8c\xd6G\x12 \n\x18\x44\x45PRECATED_RESOURCE_USED\x10\xc2\xdf\xeb\xba\x01\x12\x1c\n\x14\x44\x45PRECATED_TYPE_USED\x10\x96\xa4\x9e\xa5\x01\x12(\n DISK_SIZE_LARGER_THAN_IMAGE_SIZE\x10\x97\x81\x95\xb0\x01\x12\x1e\n\x16\x45XPERIMENTAL_TYPE_USED\x10\x8b\x8e\xc1\xd7\x01\x12\x1b\n\x14\x45XTERNAL_API_WARNING\x10\xc3\xbf\xdaS\x12\x1d\n\x15\x46IELD_VALUE_OVERRIDEN\x10\xaf\xb6\x99\x9d\x01\x12#\n\x1bINJECTED_KERNELS_DEPRECATED\x10\x8b\xd9\x82\xc7\x01\x12\x34\n,INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB\x10\xce\x9b\xbc\xbf\x01\x12 \n\x18LARGE_DEPLOYMENT_WARNING\x10\xa6\xe7\xc8\xe5\x01\x12!\n\x1aLIST_OVERHEAD_QUOTA_EXCEED\x10\xc5\xb0\xda\x16\x12\x1f\n\x17MISSING_TYPE_DEPENDENCY\x10\xf7\xf8\xa2\xa4\x01\x12%\n\x1dNEXT_HOP_ADDRESS_NOT_ASSIGNED\x10\x87\xa5\xfa\x9a\x01\x12\"\n\x1aNEXT_HOP_CANNOT_IP_FORWARD\x10\xe7\xea\xe7\xb6\x01\x12.\n\'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE\x10\x92\xe8\xfc\x45\x12#\n\x1bNEXT_HOP_INSTANCE_NOT_FOUND\x10\xce\xcc\xaf\xdd\x01\x12\'\n NEXT_HOP_INSTANCE_NOT_ON_NETWORK\x10\xc2\xe8\x9dt\x12\x1c\n\x14NEXT_HOP_NOT_RUNNING\x10\xb1\xcf\xf0\xc6\x01\x12\x19\n\x12NOT_CRITICAL_ERROR\x10\xd4\xa8\xb7\x32\x12\x19\n\x12NO_RESULTS_ON_PAGE\x10\x88\xa6\xa9\x0e\x12\x16\n\x0fPARTIAL_SUCCESS\x10\x85\xae\x87\x13\x12\x1e\n\x16QUOTA_INFO_UNAVAILABLE\x10\xa6\xd2\x8c\x91\x01\x12\x1d\n\x16REQUIRED_TOS_AGREEMENT\x10\x83\xce\xe4\x01\x12\x31\n)RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING\x10\xc1\xf4\xed\xec\x01\x12\x1b\n\x14RESOURCE_NOT_DELETED\x10\xbc\xb7\xb2P\x12!\n\x19SCHEMA_VALIDATION_IGNORED\x10\xca\xd4\x9f\x83\x01\x12(\n!SINGLE_INSTANCE_PROPERTY_TEMPLATE\x10\xd1\x89\xf8\x7f\x12\x1d\n\x15UNDECLARED_PROPERTIES\x10\x9f\x86\x9b\xba\x01\x12\x12\n\x0bUNREACHABLE\x10\xb4\xbd\xad\x06\x42\x07\n\x05_codeB\n\n\x08_message\"\xfe\x08\n\x08Warnings\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Data\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\"\xfc\x07\n\x04\x43ode\x12\x12\n\x0eUNDEFINED_CODE\x10\x00\x12\x15\n\x0e\x43LEANUP_FAILED\x10\xd8\x8c\xd6G\x12 \n\x18\x44\x45PRECATED_RESOURCE_USED\x10\xc2\xdf\xeb\xba\x01\x12\x1c\n\x14\x44\x45PRECATED_TYPE_USED\x10\x96\xa4\x9e\xa5\x01\x12(\n DISK_SIZE_LARGER_THAN_IMAGE_SIZE\x10\x97\x81\x95\xb0\x01\x12\x1e\n\x16\x45XPERIMENTAL_TYPE_USED\x10\x8b\x8e\xc1\xd7\x01\x12\x1b\n\x14\x45XTERNAL_API_WARNING\x10\xc3\xbf\xdaS\x12\x1d\n\x15\x46IELD_VALUE_OVERRIDEN\x10\xaf\xb6\x99\x9d\x01\x12#\n\x1bINJECTED_KERNELS_DEPRECATED\x10\x8b\xd9\x82\xc7\x01\x12\x34\n,INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB\x10\xce\x9b\xbc\xbf\x01\x12 \n\x18LARGE_DEPLOYMENT_WARNING\x10\xa6\xe7\xc8\xe5\x01\x12!\n\x1aLIST_OVERHEAD_QUOTA_EXCEED\x10\xc5\xb0\xda\x16\x12\x1f\n\x17MISSING_TYPE_DEPENDENCY\x10\xf7\xf8\xa2\xa4\x01\x12%\n\x1dNEXT_HOP_ADDRESS_NOT_ASSIGNED\x10\x87\xa5\xfa\x9a\x01\x12\"\n\x1aNEXT_HOP_CANNOT_IP_FORWARD\x10\xe7\xea\xe7\xb6\x01\x12.\n\'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE\x10\x92\xe8\xfc\x45\x12#\n\x1bNEXT_HOP_INSTANCE_NOT_FOUND\x10\xce\xcc\xaf\xdd\x01\x12\'\n NEXT_HOP_INSTANCE_NOT_ON_NETWORK\x10\xc2\xe8\x9dt\x12\x1c\n\x14NEXT_HOP_NOT_RUNNING\x10\xb1\xcf\xf0\xc6\x01\x12\x19\n\x12NOT_CRITICAL_ERROR\x10\xd4\xa8\xb7\x32\x12\x19\n\x12NO_RESULTS_ON_PAGE\x10\x88\xa6\xa9\x0e\x12\x16\n\x0fPARTIAL_SUCCESS\x10\x85\xae\x87\x13\x12\x1e\n\x16QUOTA_INFO_UNAVAILABLE\x10\xa6\xd2\x8c\x91\x01\x12\x1d\n\x16REQUIRED_TOS_AGREEMENT\x10\x83\xce\xe4\x01\x12\x31\n)RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING\x10\xc1\xf4\xed\xec\x01\x12\x1b\n\x14RESOURCE_NOT_DELETED\x10\xbc\xb7\xb2P\x12!\n\x19SCHEMA_VALIDATION_IGNORED\x10\xca\xd4\x9f\x83\x01\x12(\n!SINGLE_INSTANCE_PROPERTY_TEMPLATE\x10\xd1\x89\xf8\x7f\x12\x1d\n\x15UNDECLARED_PROPERTIES\x10\x9f\x86\x9b\xba\x01\x12\x12\n\x0bUNREACHABLE\x10\xb4\xbd\xad\x06\x42\x07\n\x05_codeB\n\n\x08_message\"\xcf\x01\n\x16WeightedBackendService\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x00\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x01\x88\x01\x01\x12\x17\n\x06weight\x18\xf8\x84\xc5\x86\x01 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_backend_serviceB\x10\n\x0e_header_actionB\t\n\x07_weight\"\xa0\x01\n&WithdrawPublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x01\n%WithdrawPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9f\x02\n\x0bXpnHostList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.Project\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9a\x01\n\rXpnResourceId\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x01\x88\x01\x01\"Q\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x0f\n\x07PROJECT\x10\xf9\xad\xef\xc2\x01\x12$\n\x1dXPN_RESOURCE_TYPE_UNSPECIFIED\x10\xfa\xad\xa5HB\x05\n\x03_idB\x07\n\x05_type\"\x97\x04\n\x04Zone\x12\"\n\x17\x61vailable_cpu_platforms\x18\x93\xf3\xd9S \x03(\t\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0csupports_pzs\x18\xee\xf6\x85( \x01(\x08H\t\x88\x01\x01\"4\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_statusB\x0f\n\r_supports_pzs\"\x99\x02\n\x08ZoneList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12/\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1d.google.cloud.compute.v1.Zone\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xcd\x01\n\x14ZoneSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12M\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x39.google.cloud.compute.v1.ZoneSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"\xb1\x01\n\x14ZoneSetPolicyRequest\x12\x36\n\x08\x62indings\x18\x8e\xc5\xa4\xc0\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Binding\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06policy\x18\xb2\xca\xb6+ \x01(\x0b\x32\x1f.google.cloud.compute.v1.PolicyH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_policy2\xb3\x06\n\x10\x41\x63\x63\x65leratorTypes\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListAcceleratorTypesRequest\x1a\x36.google.cloud.compute.v1.AcceleratorTypeAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/acceleratorTypes\x12\xdc\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetAcceleratorTypeRequest\x1a(.google.cloud.compute.v1.AcceleratorType\"w\xda\x41\x1dproject,zone,accelerator_type\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/zones/{zone}/acceleratorTypes/{accelerator_type}\x12\xbf\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListAcceleratorTypesRequest\x1a,.google.cloud.compute.v1.AcceleratorTypeList\"S\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02>\x12project,zone,disk,disks_add_resource_policies_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02|\"L/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies:,disks_add_resource_policies_request_resource\x12\xb5\x01\n\x0e\x41ggregatedList\x12\x33.google.cloud.compute.v1.AggregatedListDisksRequest\x1a+.google.cloud.compute.v1.DiskAggregatedList\"A\xda\x41\x07project\x82\xd3\xe4\x93\x02\x31\x12//compute/v1/projects/{project}/aggregated/disks\x12\x8e\x02\n\nBulkInsert\x12..google.cloud.compute.v1.BulkInsertDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x01\xda\x41/project,zone,bulk_insert_disk_resource_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x62\".google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest\x1a\x41.google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse\"I\xda\x41\x00\x82\xd3\xe4\x93\x02@\x12>/compute/v1/locations/global/firewallPolicies/listAssociations\x12\xe8\x01\n\x04Move\x12\x32.google.cloud.compute.v1.MoveFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x19\x66irewall_policy,parent_id\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02\x46\"D/compute/v1/locations/global/firewallPolicies/{firewall_policy}/move\x12\x8e\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x01\xda\x41(firewall_policy,firewall_policy_resource\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02[2?/compute/v1/locations/global/firewallPolicies/{firewall_policy}:\x18\x66irewall_policy_resource\x12\xaa\x02\n\tPatchRule\x12\x37.google.cloud.compute.v1.PatchRuleFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xbf\x01\xda\x41-firewall_policy,firewall_policy_rule_resource\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02j\"I/compute/v1/locations/global/firewallPolicies/{firewall_policy}/patchRule:\x1d\x66irewall_policy_rule_resource\x12\x85\x02\n\x11RemoveAssociation\x12?.google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x01\xda\x41\x0f\x66irewall_policy\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02S\"Q/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeAssociation\x12\xf0\x01\n\nRemoveRule\x12\x38.google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x83\x01\xda\x41\x0f\x66irewall_policy\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02L\"J/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeRule\x12\xa7\x02\n\x0cSetIamPolicy\x12:.google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb9\x01\xda\x41\x38resource,global_organization_set_policy_request_resource\x82\xd3\xe4\x93\x02x\"E/compute/v1/locations/global/firewallPolicies/{resource}/setIamPolicy:/global_organization_set_policy_request_resource\x12\xae\x02\n\x12TestIamPermissions\x12@.google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xa3\x01\xda\x41*resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02p\"K/compute/v1/locations/global/firewallPolicies/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xcf\n\n\tFirewalls\x12\xc6\x01\n\x06\x44\x65lete\x12..google.cloud.compute.v1.DeleteFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"h\xda\x41\x10project,firewall\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02<*:/compute/v1/projects/{project}/global/firewalls/{firewall}\x12\xac\x01\n\x03Get\x12+.google.cloud.compute.v1.GetFirewallRequest\x1a!.google.cloud.compute.v1.Firewall\"U\xda\x41\x10project,firewall\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/global/firewalls/{firewall}\x12\xd7\x01\n\x06Insert\x12..google.cloud.compute.v1.InsertFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"y\xda\x41\x19project,firewall_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x44\"//compute/v1/projects/{project}/global/firewalls:\x11\x66irewall_resource\x12\x9f\x01\n\x04List\x12-.google.cloud.compute.v1.ListFirewallsRequest\x1a%.google.cloud.compute.v1.FirewallList\"A\xda\x41\x07project\x82\xd3\xe4\x93\x02\x31\x12//compute/v1/projects/{project}/global/firewalls\x12\xea\x01\n\x05Patch\x12-.google.cloud.compute.v1.PatchFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\"project,firewall,firewall_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02O2:/compute/v1/projects/{project}/global/firewalls/{firewall}:\x11\x66irewall_resource\x12\xec\x01\n\x06Update\x12..google.cloud.compute.v1.UpdateFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\"project,firewall,firewall_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02O\x1a:/compute/v1/projects/{project}/global/firewalls/{firewall}:\x11\x66irewall_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x99\x11\n\x0f\x46orwardingRules\x12\xd3\x01\n\x0e\x41ggregatedList\x12=.google.cloud.compute.v1.AggregatedListForwardingRulesRequest\x1a\x35.google.cloud.compute.v1.ForwardingRuleAggregatedList\"K\xda\x41\x07project\x82\xd3\xe4\x93\x02;\x12\x39/compute/v1/projects/{project}/aggregated/forwardingRules\x12\xf2\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\x1eproject,region,forwarding_rule\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S*Q/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\x12\xdd\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetForwardingRuleRequest\x1a\'.google.cloud.compute.v1.ForwardingRule\"z\xda\x41\x1eproject,region,forwarding_rule\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\x12\x83\x02\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x01\xda\x41\'project,region,forwarding_rule_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02[\"?/compute/v1/projects/{project}/regions/{region}/forwardingRules:\x18\x66orwarding_rule_resource\x12\xc2\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListForwardingRulesRequest\x1a+.google.cloud.compute.v1.ForwardingRuleList\"X\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/regions/{region}/forwardingRules\x12\xa3\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x37project,region,forwarding_rule,forwarding_rule_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02m2Q/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}:\x18\x66orwarding_rule_resource\x12\xbb\x02\n\tSetLabels\x12\x37.google.cloud.compute.v1.SetLabelsForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xd0\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02z\"T/compute/v1/projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels:\"region_set_labels_request_resource\x12\xb7\x02\n\tSetTarget\x12\x37.google.cloud.compute.v1.SetTargetForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xcc\x01\xda\x41\x38project,region,forwarding_rule,target_reference_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02x\"[/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}/setTarget:\x19target_reference_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc9\x0b\n\x0fGlobalAddresses\x12\xc9\x01\n\x06\x44\x65lete\x12\x33.google.cloud.compute.v1.DeleteGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"f\xda\x41\x0fproject,address\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02;*9/compute/v1/projects/{project}/global/addresses/{address}\x12\xae\x01\n\x03Get\x12\x30.google.cloud.compute.v1.GetGlobalAddressRequest\x1a .google.cloud.compute.v1.Address\"S\xda\x41\x0fproject,address\x82\xd3\xe4\x93\x02;\x12\x39/compute/v1/projects/{project}/global/addresses/{address}\x12\xda\x01\n\x06Insert\x12\x33.google.cloud.compute.v1.InsertGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"w\xda\x41\x18project,address_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x43\"//compute/v1/projects/{project}/global/addresses:\x10\x61\x64\x64ress_resource\x12\xa4\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListGlobalAddressesRequest\x1a$.google.cloud.compute.v1.AddressList\"A\xda\x41\x07project\x82\xd3\xe4\x93\x02\x31\x12//compute/v1/projects/{project}/global/addresses\x12\x9a\x02\n\x04Move\x12\x31.google.cloud.compute.v1.MoveGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"\xba\x01\xda\x41\x36project,address,global_addresses_move_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02h\">/compute/v1/projects/{project}/global/addresses/{address}/move:&global_addresses_move_request_resource\x12\xa3\x02\n\tSetLabels\x12\x36.google.cloud.compute.v1.SetLabelsGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"\xb9\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02j\"D/compute/v1/projects/{project}/global/addresses/{resource}/setLabels:\"global_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xfb\x0e\n\x15GlobalForwardingRules\x12\xe6\x01\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"|\xda\x41\x17project,forwarding_rule\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02I*G/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}\x12\xd2\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetGlobalForwardingRuleRequest\x1a\'.google.cloud.compute.v1.ForwardingRule\"i\xda\x41\x17project,forwarding_rule\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}\x12\xf8\x01\n\x06Insert\x12:.google.cloud.compute.v1.InsertGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41 project,forwarding_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Q\"5/compute/v1/projects/{project}/global/forwardingRules:\x18\x66orwarding_rule_resource\x12\xb7\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListGlobalForwardingRulesRequest\x1a+.google.cloud.compute.v1.ForwardingRuleList\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/global/forwardingRules\x12\x98\x02\n\x05Patch\x12\x39.google.cloud.compute.v1.PatchGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xaf\x01\xda\x41\x30project,forwarding_rule,forwarding_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x63\x32G/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}:\x18\x66orwarding_rule_resource\x12\xb0\x02\n\tSetLabels\x12=.google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xbf\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02p\"J/compute/v1/projects/{project}/global/forwardingRules/{resource}/setLabels:\"global_set_labels_request_resource\x12\xac\x02\n\tSetTarget\x12=.google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xbb\x01\xda\x41\x31project,forwarding_rule,target_reference_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02n\"Q/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}/setTarget:\x19target_reference_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xac\x12\n\x1bGlobalNetworkEndpointGroups\x12\xbc\x03\n\x16\x41ttachNetworkEndpoints\x12P.google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x02\xda\x41_project,network_endpoint_group,global_network_endpoint_groups_attach_endpoints_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\xaf\x01\"k/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints:@global_network_endpoint_groups_attach_endpoints_request_resource\x12\x81\x02\n\x06\x44\x65lete\x12@.google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\x1eproject,network_endpoint_group\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02V*T/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}\x12\xbc\x03\n\x16\x44\x65tachNetworkEndpoints\x12P.google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x02\xda\x41_project,network_endpoint_group,global_network_endpoint_groups_detach_endpoints_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\xaf\x01\"k/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints:@global_network_endpoint_groups_detach_endpoints_request_resource\x12\xf2\x01\n\x03Get\x12=.google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest\x1a-.google.cloud.compute.v1.NetworkEndpointGroup\"}\xda\x41\x1eproject,network_endpoint_group\x82\xd3\xe4\x93\x02V\x12T/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}\x12\x92\x02\n\x06Insert\x12@.google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41\'project,network_endpoint_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02^\";/compute/v1/projects/{project}/global/networkEndpointGroups:\x1fnetwork_endpoint_group_resource\x12\xc9\x01\n\x04List\x12?.google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest\x1a\x31.google.cloud.compute.v1.NetworkEndpointGroupList\"M\xda\x41\x07project\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/global/networkEndpointGroups\x12\xc0\x02\n\x14ListNetworkEndpoints\x12O.google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest\x1a\x42.google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints\"\x92\x01\xda\x41\x1eproject,network_endpoint_group\x82\xd3\xe4\x93\x02k\"i/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd0\x08\n\x10GlobalOperations\x12\xca\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListGlobalOperationsRequest\x1a\x30.google.cloud.compute.v1.OperationAggregatedList\"F\xda\x41\x07project\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/aggregated/operations\x12\xd1\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeleteGlobalOperationRequest\x1a\x36.google.cloud.compute.v1.DeleteGlobalOperationResponse\"X\xda\x41\x11project,operation\x82\xd3\xe4\x93\x02>*\x12.google.cloud.compute.v1.GetGlobalOrganizationOperationRequest\x1a\".google.cloud.compute.v1.Operation\"J\xda\x41\toperation\x90N\x01\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/locations/global/operations/{operation}\x12\xa4\x01\n\x04List\x12@.google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest\x1a&.google.cloud.compute.v1.OperationList\"2\xda\x41\x00\x82\xd3\xe4\x93\x02)\x12\'/compute/v1/locations/global/operations\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd1\x0b\n\x1dGlobalPublicDelegatedPrefixes\x12\x87\x02\n\x06\x44\x65lete\x12\x42.google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\x94\x01\xda\x41\x1fproject,public_delegated_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Y*W/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}\x12\xfa\x01\n\x03Get\x12?.google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest\x1a..google.cloud.compute.v1.PublicDelegatedPrefix\"\x81\x01\xda\x41\x1fproject,public_delegated_prefix\x82\xd3\xe4\x93\x02Y\x12W/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}\x12\x98\x02\n\x06Insert\x12\x42.google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41(project,public_delegated_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x61\"=/compute/v1/projects/{project}/global/publicDelegatedPrefixes: public_delegated_prefix_resource\x12\xce\x01\n\x04List\x12\x41.google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest\x1a\x32.google.cloud.compute.v1.PublicDelegatedPrefixList\"O\xda\x41\x07project\x82\xd3\xe4\x93\x02?\x12=/compute/v1/projects/{project}/global/publicDelegatedPrefixes\x12\xc8\x02\n\x05Patch\x12\x41.google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xd7\x01\xda\x41@project,public_delegated_prefix,public_delegated_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02{2W/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}: public_delegated_prefix_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\r\n\x0cHealthChecks\x12\xcb\x01\n\x0e\x41ggregatedList\x12:.google.cloud.compute.v1.AggregatedListHealthChecksRequest\x1a\x33.google.cloud.compute.v1.HealthChecksAggregatedList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/aggregated/healthChecks\x12\xd4\x01\n\x06\x44\x65lete\x12\x31.google.cloud.compute.v1.DeleteHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"s\xda\x41\x14project,health_check\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x43*A/compute/v1/projects/{project}/global/healthChecks/{health_check}\x12\xbd\x01\n\x03Get\x12..google.cloud.compute.v1.GetHealthCheckRequest\x1a$.google.cloud.compute.v1.HealthCheck\"`\xda\x41\x14project,health_check\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/global/healthChecks/{health_check}\x12\xe6\x01\n\x06Insert\x12\x31.google.cloud.compute.v1.InsertHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x1dproject,health_check_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K\"2/compute/v1/projects/{project}/global/healthChecks:\x15health_check_resource\x12\xa8\x01\n\x04List\x12\x30.google.cloud.compute.v1.ListHealthChecksRequest\x1a(.google.cloud.compute.v1.HealthCheckList\"D\xda\x41\x07project\x82\xd3\xe4\x93\x02\x34\x12\x32/compute/v1/projects/{project}/global/healthChecks\x12\x80\x02\n\x05Patch\x12\x30.google.cloud.compute.v1.PatchHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41*project,health_check,health_check_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Z2A/compute/v1/projects/{project}/global/healthChecks/{health_check}:\x15health_check_resource\x12\x82\x02\n\x06Update\x12\x31.google.cloud.compute.v1.UpdateHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41*project,health_check,health_check_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Z\x1a\x41/compute/v1/projects/{project}/global/healthChecks/{health_check}:\x15health_check_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x84\x03\n\x10ImageFamilyViews\x12\xc8\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetImageFamilyViewRequest\x1a(.google.cloud.compute.v1.ImageFamilyView\"c\xda\x41\x13project,zone,family\x82\xd3\xe4\x93\x02G\x12\x45/compute/v1/projects/{project}/zones/{zone}/imageFamilyViews/{family}\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xfc\x13\n\x06Images\x12\xba\x01\n\x06\x44\x65lete\x12+.google.cloud.compute.v1.DeleteImageRequest\x1a\".google.cloud.compute.v1.Operation\"_\xda\x41\rproject,image\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x36*4/compute/v1/projects/{project}/global/images/{image}\x12\x84\x02\n\tDeprecate\x12..google.cloud.compute.v1.DeprecateImageRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x01\xda\x41)project,image,deprecation_status_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02]\">/compute/v1/projects/{project}/global/images/{image}/deprecate:\x1b\x64\x65precation_status_resource\x12\x9d\x01\n\x03Get\x12(.google.cloud.compute.v1.GetImageRequest\x1a\x1e.google.cloud.compute.v1.Image\"L\xda\x41\rproject,image\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/global/images/{image}\x12\xba\x01\n\rGetFromFamily\x12\x32.google.cloud.compute.v1.GetFromFamilyImageRequest\x1a\x1e.google.cloud.compute.v1.Image\"U\xda\x41\x0eproject,family\x82\xd3\xe4\x93\x02>\x12\",/compute/v1/projects/{project}/global/images:\x0eimage_resource\x12\x96\x01\n\x04List\x12*.google.cloud.compute.v1.ListImagesRequest\x1a\".google.cloud.compute.v1.ImageList\">\xda\x41\x07project\x82\xd3\xe4\x93\x02.\x12,/compute/v1/projects/{project}/global/images\x12\xd7\x01\n\x05Patch\x12*.google.cloud.compute.v1.PatchImageRequest\x1a\".google.cloud.compute.v1.Operation\"~\xda\x41\x1cproject,image,image_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x46\x32\x34/compute/v1/projects/{project}/global/images/{image}:\x0eimage_resource\x12\x8b\x02\n\x0cSetIamPolicy\x12\x31.google.cloud.compute.v1.SetIamPolicyImageRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xa6\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02j\"D/compute/v1/projects/{project}/global/images/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\x98\x02\n\tSetLabels\x12..google.cloud.compute.v1.SetLabelsImageRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02g\"A/compute/v1/projects/{project}/global/images/{resource}/setLabels:\"global_set_labels_request_resource\x12\xac\x02\n\x12TestIamPermissions\x12\x37.google.cloud.compute.v1.TestIamPermissionsImageRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xaa\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02o\"J/compute/v1/projects/{project}/global/images/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xa2\x0e\n\"InstanceGroupManagerResizeRequests\x12\xc9\x02\n\x06\x43\x61ncel\x12G.google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41\x32project,zone,instance_group_manager,resize_request\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x84\x01\"\x81\x01/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}/cancel\x12\xc0\x02\n\x06\x44\x65lete\x12G.google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest\x1a\".google.cloud.compute.v1.Operation\"\xc8\x01\xda\x41\x32project,zone,instance_group_manager,resize_request\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02|*z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}\x12\xc1\x02\n\x03Get\x12\x44.google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest\x1a:.google.cloud.compute.v1.InstanceGroupManagerResizeRequest\"\xb7\x01\xda\x41\x32project,zone,instance_group_manager,resize_request\x82\xd3\xe4\x93\x02|\x12z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}\x12\x80\x03\n\x06Insert\x12G.google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x02\xda\x41Rproject,zone,instance_group_manager,instance_group_manager_resize_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x9b\x01\"i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests:.instance_group_manager_resize_request_resource\x12\xb1\x02\n\x04List\x12\x46.google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest\x1aG.google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse\"\x97\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02k\x12i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd5\x45\n\x15InstanceGroupManagers\x12\xa1\x03\n\x10\x41\x62\x61ndonInstances\x12\x44.google.cloud.compute.v1.AbandonInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x02\xda\x41^project,zone,instance_group_manager,instance_group_managers_abandon_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa9\x01\"k/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/abandonInstances::instance_group_managers_abandon_instances_request_resource\x12\xe5\x01\n\x0e\x41ggregatedList\x12\x43.google.cloud.compute.v1.AggregatedListInstanceGroupManagersRequest\x1a;.google.cloud.compute.v1.InstanceGroupManagerAggregatedList\"Q\xda\x41\x07project\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/aggregated/instanceGroupManagers\x12\xae\x03\n\x17\x41pplyUpdatesToInstances\x12K.google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x02\xda\x41Zproject,zone,instance_group_manager,instance_group_managers_apply_updates_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xac\x01\"r/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/applyUpdatesToInstances:6instance_group_managers_apply_updates_request_resource\x12\x9c\x03\n\x0f\x43reateInstances\x12\x43.google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_create_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa7\x01\"j/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/createInstances:9instance_group_managers_create_instances_request_resource\x12\x84\x02\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x01\xda\x41#project,zone,instance_group_manager\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\\*Z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}\x12\x9c\x03\n\x0f\x44\x65leteInstances\x12\x43.google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_delete_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa7\x01\"j/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deleteInstances:9instance_group_managers_delete_instances_request_resource\x12\xc5\x03\n\x18\x44\x65letePerInstanceConfigs\x12L.google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x02\xda\x41\x64project,zone,instance_group_manager,instance_group_managers_delete_per_instance_configs_req_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb7\x01\"s/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deletePerInstanceConfigs:@instance_group_managers_delete_per_instance_configs_req_resource\x12\xf8\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetInstanceGroupManagerRequest\x1a-.google.cloud.compute.v1.InstanceGroupManager\"\x88\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}\x12\x95\x02\n\x06Insert\x12:.google.cloud.compute.v1.InsertInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xaa\x01\xda\x41,project,zone,instance_group_manager_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x64\"A/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers:\x1finstance_group_manager_resource\x12\xce\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListInstanceGroupManagersRequest\x1a\x31.google.cloud.compute.v1.InstanceGroupManagerList\"X\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers\x12\xa5\x02\n\nListErrors\x12?.google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest\x1a@.google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse\"\x93\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02g\x12\x65/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listErrors\x12\xcd\x02\n\x14ListManagedInstances\x12I.google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest\x1aJ.google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse\"\x9d\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02q\"o/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listManagedInstances\x12\xd1\x02\n\x16ListPerInstanceConfigs\x12K.google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest\x1aH.google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp\"\x9f\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02s\"q/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs\x12\xc3\x02\n\x05Patch\x12\x39.google.cloud.compute.v1.PatchInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xda\x01\xda\x41\x43project,zone,instance_group_manager,instance_group_manager_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02}2Z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}:\x1finstance_group_manager_resource\x12\xc0\x03\n\x17PatchPerInstanceConfigs\x12K.google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb3\x02\xda\x41\x63project,zone,instance_group_manager,instance_group_managers_patch_per_instance_configs_req_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb5\x01\"r/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/patchPerInstanceConfigs:?instance_group_managers_patch_per_instance_configs_req_resource\x12\xa6\x03\n\x11RecreateInstances\x12\x45.google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x02\xda\x41_project,zone,instance_group_manager,instance_group_managers_recreate_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xab\x01\"l/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/recreateInstances:;instance_group_managers_recreate_instances_request_resource\x12\x90\x02\n\x06Resize\x12:.google.cloud.compute.v1.ResizeInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41(project,zone,instance_group_manager,size\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x63\"a/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resize\x12\x9c\x03\n\x0fResumeInstances\x12\x43.google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_resume_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa7\x01\"j/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resumeInstances:9instance_group_managers_resume_instances_request_resource\x12\xb2\x03\n\x13SetInstanceTemplate\x12G.google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xad\x02\xda\x41\x62project,zone,instance_group_manager,instance_group_managers_set_instance_template_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb0\x01\"n/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setInstanceTemplate:>instance_group_managers_set_instance_template_request_resource\x12\x99\x03\n\x0eSetTargetPools\x12\x42.google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_set_target_pools_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa6\x01\"i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setTargetPools:9instance_group_managers_set_target_pools_request_resource\x12\x97\x03\n\x0eStartInstances\x12\x42.google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9c\x02\xda\x41\\project,zone,instance_group_manager,instance_group_managers_start_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa5\x01\"i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/startInstances:8instance_group_managers_start_instances_request_resource\x12\x92\x03\n\rStopInstances\x12\x41.google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x02\xda\x41[project,zone,instance_group_manager,instance_group_managers_stop_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa3\x01\"h/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/stopInstances:7instance_group_managers_stop_instances_request_resource\x12\xa1\x03\n\x10SuspendInstances\x12\x44.google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x02\xda\x41^project,zone,instance_group_manager,instance_group_managers_suspend_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa9\x01\"k/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/suspendInstances::instance_group_managers_suspend_instances_request_resource\x12\xc5\x03\n\x18UpdatePerInstanceConfigs\x12L.google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x02\xda\x41\x64project,zone,instance_group_manager,instance_group_managers_update_per_instance_configs_req_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb7\x01\"s/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs:@instance_group_managers_update_per_instance_configs_req_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x14\n\x0eInstanceGroups\x12\xdf\x02\n\x0c\x41\x64\x64Instances\x12\x39.google.cloud.compute.v1.AddInstancesInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xef\x01\xda\x41Jproject,zone,instance_group,instance_groups_add_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8a\x01\"X/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/addInstances:.instance_groups_add_instances_request_resource\x12\xd0\x01\n\x0e\x41ggregatedList\x12<.google.cloud.compute.v1.AggregatedListInstanceGroupsRequest\x1a\x34.google.cloud.compute.v1.InstanceGroupAggregatedList\"J\xda\x41\x07project\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/aggregated/instanceGroups\x12\xe6\x01\n\x06\x44\x65lete\x12\x33.google.cloud.compute.v1.DeleteInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x1bproject,zone,instance_group\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02M*K/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}\x12\xd2\x01\n\x03Get\x12\x30.google.cloud.compute.v1.GetInstanceGroupRequest\x1a&.google.cloud.compute.v1.InstanceGroup\"q\xda\x41\x1bproject,zone,instance_group\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}\x12\xf7\x01\n\x06Insert\x12\x33.google.cloud.compute.v1.InsertInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x93\x01\xda\x41$project,zone,instance_group_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\":/compute/v1/projects/{project}/zones/{zone}/instanceGroups:\x17instance_group_resource\x12\xb9\x01\n\x04List\x12\x32.google.cloud.compute.v1.ListInstanceGroupsRequest\x1a*.google.cloud.compute.v1.InstanceGroupList\"Q\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/zones/{zone}/instanceGroups\x12\xe6\x02\n\rListInstances\x12;.google.cloud.compute.v1.ListInstancesInstanceGroupsRequest\x1a\x34.google.cloud.compute.v1.InstanceGroupsListInstances\"\xe1\x01\xda\x41Kproject,zone,instance_group,instance_groups_list_instances_request_resource\x82\xd3\xe4\x93\x02\x8c\x01\"Y/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/listInstances:/instance_groups_list_instances_request_resource\x12\xee\x02\n\x0fRemoveInstances\x12<.google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xf8\x01\xda\x41Mproject,zone,instance_group,instance_groups_remove_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x90\x01\"[/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/removeInstances:1instance_groups_remove_instances_request_resource\x12\xe6\x02\n\rSetNamedPorts\x12:.google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xf4\x01\xda\x41Lproject,zone,instance_group,instance_groups_set_named_ports_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8d\x01\"Y/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/setNamedPorts:0instance_groups_set_named_ports_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xcb\x04\n\x17InstanceSettingsService\x12\xb9\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetInstanceSettingRequest\x1a).google.cloud.compute.v1.InstanceSettings\"S\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02>\x12project,zone,instance,network_interface,access_config_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02j\"P/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig:\x16\x61\x63\x63\x65ss_config_resource\x12\xe2\x02\n\x13\x41\x64\x64ResourcePolicies\x12;.google.cloud.compute.v1.AddResourcePoliciesInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41\x46project,zone,instance,instances_add_resource_policies_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x88\x01\"T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies:0instances_add_resource_policies_request_resource\x12\xc1\x01\n\x0e\x41ggregatedList\x12\x37.google.cloud.compute.v1.AggregatedListInstancesRequest\x1a/.google.cloud.compute.v1.InstanceAggregatedList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/aggregated/instances\x12\x92\x02\n\nAttachDisk\x12\x32.google.cloud.compute.v1.AttachDiskInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x01\xda\x41,project,zone,instance,attached_disk_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x65\"K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/attachDisk:\x16\x61ttached_disk_resource\x12\x9e\x02\n\nBulkInsert\x12\x32.google.cloud.compute.v1.BulkInsertInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xb7\x01\xda\x41\x33project,zone,bulk_insert_instance_resource_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02j\"@/compute/v1/projects/{project}/zones/{zone}/instances/bulkInsert:&bulk_insert_instance_resource_resource\x12\xcf\x01\n\x06\x44\x65lete\x12..google.cloud.compute.v1.DeleteInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"q\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x42*@/compute/v1/projects/{project}/zones/{zone}/instances/{instance}\x12\x9b\x02\n\x12\x44\x65leteAccessConfig\x12:.google.cloud.compute.v1.DeleteAccessConfigInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xa4\x01\xda\x41\x35project,zone,instance,access_config,network_interface\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig\x12\xef\x01\n\nDetachDisk\x12\x32.google.cloud.compute.v1.DetachDiskInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41!project,zone,instance,device_name\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02M\"K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/detachDisk\x12\xb7\x01\n\x03Get\x12+.google.cloud.compute.v1.GetInstanceRequest\x1a!.google.cloud.compute.v1.Instance\"`\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/zones/{zone}/instances/{instance}\x12\xa2\x02\n\x15GetEffectiveFirewalls\x12=.google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest\x1a?.google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse\"\x88\x01\xda\x41\'project,zone,instance,network_interface\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls\x12\xef\x01\n\x12GetGuestAttributes\x12:.google.cloud.compute.v1.GetGuestAttributesInstanceRequest\x1a(.google.cloud.compute.v1.GuestAttributes\"s\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes\x12\xd4\x01\n\x0cGetIamPolicy\x12\x34.google.cloud.compute.v1.GetIamPolicyInstanceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"m\xda\x41\x15project,zone,resource\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy\x12\xd8\x01\n\rGetScreenshot\x12\x35.google.cloud.compute.v1.GetScreenshotInstanceRequest\x1a#.google.cloud.compute.v1.Screenshot\"k\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/screenshot\x12\xea\x01\n\x13GetSerialPortOutput\x12;.google.cloud.compute.v1.GetSerialPortOutputInstanceRequest\x1a).google.cloud.compute.v1.SerialPortOutput\"k\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/serialPort\x12\x93\x02\n\x1bGetShieldedInstanceIdentity\x12\x43.google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest\x1a\x31.google.cloud.compute.v1.ShieldedInstanceIdentity\"|\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02^\x12\\/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity\x12\xe1\x01\n\x06Insert\x12..google.cloud.compute.v1.InsertInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x1eproject,zone,instance_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02J\"5/compute/v1/projects/{project}/zones/{zone}/instances:\x11instance_resource\x12\xaa\x01\n\x04List\x12-.google.cloud.compute.v1.ListInstancesRequest\x1a%.google.cloud.compute.v1.InstanceList\"L\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/zones/{zone}/instances\x12\xe3\x01\n\rListReferrers\x12\x36.google.cloud.compute.v1.ListReferrersInstancesRequest\x1a..google.cloud.compute.v1.InstanceListReferrers\"j\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02L\x12J/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/referrers\x12\xfb\x01\n\x12PerformMaintenance\x12:.google.cloud.compute.v1.PerformMaintenanceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/performMaintenance\x12\xf1\x02\n\x16RemoveResourcePolicies\x12>.google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xf2\x01\xda\x41Iproject,zone,instance,instances_remove_resource_policies_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8e\x01\"W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies:3instances_remove_resource_policies_request_resource\x12\xdf\x02\n\x12ReportHostAsFaulty\x12:.google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe8\x01\xda\x41\x46project,zone,instance,instances_report_host_as_faulty_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x87\x01\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty:0instances_report_host_as_faulty_request_resource\x12\xd3\x01\n\x05Reset\x12-.google.cloud.compute.v1.ResetInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"w\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02H\"F/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reset\x12\xd6\x01\n\x06Resume\x12..google.cloud.compute.v1.ResumeInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"x\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02I\"G/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/resume\x12\x96\x02\n\x17SendDiagnosticInterrupt\x12?.google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest\x1a@.google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse\"x\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02Z\"X/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt\x12\x84\x02\n\x15SetDeletionProtection\x12=.google.cloud.compute.v1.SetDeletionProtectionInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x15project,zone,resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02X\"V/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection\x12\x90\x02\n\x11SetDiskAutoDelete\x12\x39.google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9b\x01\xda\x41-project,zone,instance,auto_delete,device_name\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02T\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete\x12\x98\x02\n\x0cSetIamPolicy\x12\x34.google.cloud.compute.v1.SetIamPolicyInstanceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb0\x01\xda\x41\x36project,zone,resource,zone_set_policy_request_resource\x82\xd3\xe4\x93\x02q\"M/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy: zone_set_policy_request_resource\x12\xad\x02\n\tSetLabels\x12\x31.google.cloud.compute.v1.SetLabelsInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc8\x01\xda\x41;project,zone,instance,instances_set_labels_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02s\"J/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setLabels:%instances_set_labels_request_resource\x12\xe2\x02\n\x13SetMachineResources\x12;.google.cloud.compute.v1.SetMachineResourcesInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41\x46project,zone,instance,instances_set_machine_resources_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x88\x01\"T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineResources:0instances_set_machine_resources_request_resource\x12\xc8\x02\n\x0eSetMachineType\x12\x36.google.cloud.compute.v1.SetMachineTypeInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd9\x01\xda\x41\x41project,zone,instance,instances_set_machine_type_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02~\"O/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineType:+instances_set_machine_type_request_resource\x12\x8b\x02\n\x0bSetMetadata\x12\x33.google.cloud.compute.v1.SetMetadataInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x01\xda\x41\'project,zone,instance,metadata_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x61\"L/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMetadata:\x11metadata_resource\x12\xda\x02\n\x11SetMinCpuPlatform\x12\x39.google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe5\x01\xda\x41\x45project,zone,instance,instances_set_min_cpu_platform_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x85\x01\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform:/instances_set_min_cpu_platform_request_resource\x12\xa3\x02\n\x07SetName\x12/.google.cloud.compute.v1.SetNameInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc2\x01\xda\x41\x39project,zone,instance,instances_set_name_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02o\"H/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setName:#instances_set_name_request_resource\x12\x95\x02\n\rSetScheduling\x12\x35.google.cloud.compute.v1.SetSchedulingInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41)project,zone,instance,scheduling_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x65\"N/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setScheduling:\x13scheduling_resource\x12\xd8\x02\n\x11SetSecurityPolicy\x12\x39.google.cloud.compute.v1.SetSecurityPolicyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe3\x01\xda\x41\x44project,zone,instance,instances_set_security_policy_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x84\x01\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy:.instances_set_security_policy_request_resource\x12\xd8\x02\n\x11SetServiceAccount\x12\x39.google.cloud.compute.v1.SetServiceAccountInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe3\x01\xda\x41\x44project,zone,instance,instances_set_service_account_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x84\x01\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount:.instances_set_service_account_request_resource\x12\x85\x03\n\"SetShieldedInstanceIntegrityPolicy\x12J.google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xee\x01\xda\x41\x41project,zone,instance,shielded_instance_integrity_policy_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x92\x01\x32\x63/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy:+shielded_instance_integrity_policy_resource\x12\xf7\x01\n\x07SetTags\x12/.google.cloud.compute.v1.SetTagsInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41#project,zone,instance,tags_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Y\"H/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setTags:\rtags_resource\x12\x8d\x02\n\x18SimulateMaintenanceEvent\x12@.google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x01\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02[\"Y/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent\x12\xd3\x01\n\x05Start\x12-.google.cloud.compute.v1.StartInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"w\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02H\"F/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/start\x12\xf3\x02\n\x16StartWithEncryptionKey\x12>.google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xf4\x01\xda\x41Jproject,zone,instance,instances_start_with_encryption_key_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8f\x01\"W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey:4instances_start_with_encryption_key_request_resource\x12\xd0\x01\n\x04Stop\x12,.google.cloud.compute.v1.StopInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02G\"E/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/stop\x12\xd9\x01\n\x07Suspend\x12/.google.cloud.compute.v1.SuspendInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"y\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02J\"H/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/suspend\x12\xbd\x02\n\x12TestIamPermissions\x12:.google.cloud.compute.v1.TestIamPermissionsInstanceRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb8\x01\xda\x41\x37project,zone,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02x\"S/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xf5\x01\n\x06Update\x12..google.cloud.compute.v1.UpdateInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41\'project,zone,instance,instance_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\x1a@/compute/v1/projects/{project}/zones/{zone}/instances/{instance}:\x11instance_resource\x12\xbc\x02\n\x12UpdateAccessConfig\x12:.google.cloud.compute.v1.UpdateAccessConfigInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc5\x01\xda\x41>project,zone,instance,network_interface,access_config_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02m\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig:\x16\x61\x63\x63\x65ss_config_resource\x12\xaf\x02\n\x13UpdateDisplayDevice\x12;.google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41-project,zone,instance,display_device_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02o2T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice:\x17\x64isplay_device_resource\x12\xd0\x02\n\x16UpdateNetworkInterface\x12>.google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41\x42project,zone,instance,network_interface,network_interface_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02u2W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface:\x1anetwork_interface_resource\x12\xdf\x02\n\x1cUpdateShieldedInstanceConfig\x12\x44.google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd4\x01\xda\x41\x37project,zone,instance,shielded_instance_config_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x82\x01\x32]/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig:!shielded_instance_config_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\x13\n\x10InstantSnapshots\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListInstantSnapshotsRequest\x1a\x36.google.cloud.compute.v1.InstantSnapshotAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/instantSnapshots\x12\xee\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeleteInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41\x1dproject,zone,instant_snapshot\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Q*O/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}\x12\xdc\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetInstantSnapshotRequest\x1a(.google.cloud.compute.v1.InstantSnapshot\"w\xda\x41\x1dproject,zone,instant_snapshot\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}\x12\xe2\x01\n\x0cGetIamPolicy\x12;.google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest\x1a\x1f.google.cloud.compute.v1.Policy\"t\xda\x41\x15project,zone,resource\x82\xd3\xe4\x93\x02V\x12T/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy\x12\xff\x01\n\x06Insert\x12\x35.google.cloud.compute.v1.InsertInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x01\xda\x41&project,zone,instant_snapshot_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Y\"\x12.google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest\x1a\x34.google.cloud.compute.v1.InterconnectAttachmentGroup\"\x92\x01\xda\x41%project,interconnect_attachment_group\x82\xd3\xe4\x93\x02\x64\x12\x62/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{interconnect_attachment_group}\x12\xef\x01\n\x0cGetIamPolicy\x12G.google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"u\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy\x12\xe4\x02\n\x14GetOperationalStatus\x12O.google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest\x1aQ.google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse\"\xa7\x01\xda\x41%project,interconnect_attachment_group\x82\xd3\xe4\x93\x02y\x12w/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{interconnect_attachment_group}/getOperationalStatus\x12\xa8\x02\n\x06Insert\x12\x41.google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41.project,interconnect_attachment_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02l\"B/compute/v1/projects/{project}/global/interconnectAttachmentGroups:&interconnect_attachment_group_resource\x12\xe1\x01\n\x04List\x12@.google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest\x1a\x41.google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse\"T\xda\x41\x07project\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/global/interconnectAttachmentGroups\x12\xe5\x02\n\x05Patch\x12@.google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xf5\x01\xda\x41Lproject,interconnect_attachment_group,interconnect_attachment_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x8c\x01\x32\x62/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{interconnect_attachment_group}:&interconnect_attachment_group_resource\x12\xb8\x02\n\x0cSetIamPolicy\x12G.google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xbd\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02\x80\x01\"Z/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xd9\x02\n\x12TestIamPermissions\x12M.google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc1\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x85\x01\"`/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc2\x10\n\x17InterconnectAttachments\x12\xeb\x01\n\x0e\x41ggregatedList\x12\x45.google.cloud.compute.v1.AggregatedListInterconnectAttachmentsRequest\x1a=.google.cloud.compute.v1.InterconnectAttachmentAggregatedList\"S\xda\x41\x07project\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/aggregated/interconnectAttachments\x12\x92\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeleteInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41&project,region,interconnect_attachment\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x63*a/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}\x12\x86\x02\n\x03Get\x12\x39.google.cloud.compute.v1.GetInterconnectAttachmentRequest\x1a/.google.cloud.compute.v1.InterconnectAttachment\"\x92\x01\xda\x41&project,region,interconnect_attachment\x82\xd3\xe4\x93\x02\x63\x12\x61/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}\x12\xa3\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41/project,region,interconnect_attachment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02k\"G/compute/v1/projects/{project}/regions/{region}/interconnectAttachments: interconnect_attachment_resource\x12\xda\x01\n\x04List\x12;.google.cloud.compute.v1.ListInterconnectAttachmentsRequest\x1a\x33.google.cloud.compute.v1.InterconnectAttachmentList\"`\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/regions/{region}/interconnectAttachments\x12\xd4\x02\n\x05Patch\x12;.google.cloud.compute.v1.PatchInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41Gproject,region,interconnect_attachment,interconnect_attachment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x85\x01\x32\x61/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}: interconnect_attachment_resource\x12\xcc\x02\n\tSetLabels\x12?.google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xd9\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x82\x01\"\\/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb8\x16\n\x12InterconnectGroups\x12\xf3\x02\n\rCreateMembers\x12>.google.cloud.compute.v1.CreateMembersInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xfd\x01\xda\x41Nproject,interconnect_group,interconnect_groups_create_members_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x92\x01\"[/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}/createMembers:3interconnect_groups_create_members_request_resource\x12\xed\x01\n\x06\x44\x65lete\x12\x37.google.cloud.compute.v1.DeleteInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x85\x01\xda\x41\x1aproject,interconnect_group\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02O*M/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}\x12\xdb\x01\n\x03Get\x12\x34.google.cloud.compute.v1.GetInterconnectGroupRequest\x1a*.google.cloud.compute.v1.InterconnectGroup\"r\xda\x41\x1aproject,interconnect_group\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}\x12\xdb\x01\n\x0cGetIamPolicy\x12=.google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"k\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/global/interconnectGroups/{resource}/getIamPolicy\x12\xb0\x02\n\x14GetOperationalStatus\x12\x45.google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest\x1aG.google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse\"\x87\x01\xda\x41\x1aproject,interconnect_group\x82\xd3\xe4\x93\x02\x64\x12\x62/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}/getOperationalStatus\x12\xfe\x01\n\x06Insert\x12\x37.google.cloud.compute.v1.InsertInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41#project,interconnect_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02W\"8/compute/v1/projects/{project}/global/interconnectGroups:\x1binterconnect_group_resource\x12\xc3\x01\n\x04List\x12\x36.google.cloud.compute.v1.ListInterconnectGroupsRequest\x1a\x37.google.cloud.compute.v1.InterconnectGroupsListResponse\"J\xda\x41\x07project\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/global/interconnectGroups\x12\xa4\x02\n\x05Patch\x12\x36.google.cloud.compute.v1.PatchInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xbe\x01\xda\x41\x36project,interconnect_group,interconnect_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02l2M/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}:\x1binterconnect_group_resource\x12\xa3\x02\n\x0cSetIamPolicy\x12=.google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb2\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02v\"P/compute/v1/projects/{project}/global/interconnectGroups/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xc4\x02\n\x12TestIamPermissions\x12\x43.google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb6\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02{\"V/compute/v1/projects/{project}/global/interconnectGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf1\x04\n\x15InterconnectLocations\x12\xea\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetInterconnectLocationRequest\x1a-.google.cloud.compute.v1.InterconnectLocation\"{\xda\x41\x1dproject,interconnect_location\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/global/interconnectLocations/{interconnect_location}\x12\xc3\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListInterconnectLocationsRequest\x1a\x31.google.cloud.compute.v1.InterconnectLocationList\"M\xda\x41\x07project\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/global/interconnectLocations\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xaa\x05\n\x1bInterconnectRemoteLocations\x12\x8b\x02\n\x03Get\x12=.google.cloud.compute.v1.GetInterconnectRemoteLocationRequest\x1a\x33.google.cloud.compute.v1.InterconnectRemoteLocation\"\x8f\x01\xda\x41$project,interconnect_remote_location\x82\xd3\xe4\x93\x02\x62\x12`/compute/v1/projects/{project}/global/interconnectRemoteLocations/{interconnect_remote_location}\x12\xd5\x01\n\x04List\x12?.google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest\x1a\x37.google.cloud.compute.v1.InterconnectRemoteLocationList\"S\xda\x41\x07project\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/global/interconnectRemoteLocations\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xe8\x0f\n\rInterconnects\x12\xd6\x01\n\x06\x44\x65lete\x12\x32.google.cloud.compute.v1.DeleteInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"t\xda\x41\x14project,interconnect\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x44*B/compute/v1/projects/{project}/global/interconnects/{interconnect}\x12\xc0\x01\n\x03Get\x12/.google.cloud.compute.v1.GetInterconnectRequest\x1a%.google.cloud.compute.v1.Interconnect\"a\xda\x41\x14project,interconnect\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/global/interconnects/{interconnect}\x12\xfc\x01\n\x0eGetDiagnostics\x12:.google.cloud.compute.v1.GetDiagnosticsInterconnectRequest\x1a<.google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse\"p\xda\x41\x14project,interconnect\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/global/interconnects/{interconnect}/getDiagnostics\x12\x80\x02\n\x0fGetMacsecConfig\x12;.google.cloud.compute.v1.GetMacsecConfigInterconnectRequest\x1a=.google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse\"q\xda\x41\x14project,interconnect\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/global/interconnects/{interconnect}/getMacsecConfig\x12\xe8\x01\n\x06Insert\x12\x32.google.cloud.compute.v1.InsertInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"\x85\x01\xda\x41\x1dproject,interconnect_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02L\"3/compute/v1/projects/{project}/global/interconnects:\x15interconnect_resource\x12\xab\x01\n\x04List\x12\x31.google.cloud.compute.v1.ListInterconnectsRequest\x1a).google.cloud.compute.v1.InterconnectList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/global/interconnects\x12\x82\x02\n\x05Patch\x12\x31.google.cloud.compute.v1.PatchInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41*project,interconnect,interconnect_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02[2B/compute/v1/projects/{project}/global/interconnects/{interconnect}:\x15interconnect_resource\x12\xa6\x02\n\tSetLabels\x12\x35.google.cloud.compute.v1.SetLabelsInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"\xbd\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02n\"H/compute/v1/projects/{project}/global/interconnects/{resource}/setLabels:\"global_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb0\x05\n\x0cLicenseCodes\x12\xbd\x01\n\x03Get\x12..google.cloud.compute.v1.GetLicenseCodeRequest\x1a$.google.cloud.compute.v1.LicenseCode\"`\xda\x41\x14project,license_code\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/global/licenseCodes/{license_code}\x12\xb8\x02\n\x12TestIamPermissions\x12=.google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb0\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02u\"P/compute/v1/projects/{project}/global/licenseCodes/{resource}/testIamPermissions:!test_permissions_request_resource\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xe3\x0e\n\x08Licenses\x12\xc2\x01\n\x06\x44\x65lete\x12-.google.cloud.compute.v1.DeleteLicenseRequest\x1a\".google.cloud.compute.v1.Operation\"e\xda\x41\x0fproject,license\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02:*8/compute/v1/projects/{project}/global/licenses/{license}\x12\xa7\x01\n\x03Get\x12*.google.cloud.compute.v1.GetLicenseRequest\x1a .google.cloud.compute.v1.License\"R\xda\x41\x0fproject,license\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/global/licenses/{license}\x12\xc7\x01\n\x0cGetIamPolicy\x12\x33.google.cloud.compute.v1.GetIamPolicyLicenseRequest\x1a\x1f.google.cloud.compute.v1.Policy\"a\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02H\x12\x46/compute/v1/projects/{project}/global/licenses/{resource}/getIamPolicy\x12\xd3\x01\n\x06Insert\x12-.google.cloud.compute.v1.InsertLicenseRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x18project,license_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x42\"./compute/v1/projects/{project}/global/licenses:\x10license_resource\x12\xa5\x01\n\x04List\x12,.google.cloud.compute.v1.ListLicensesRequest\x1a-.google.cloud.compute.v1.LicensesListResponse\"@\xda\x41\x07project\x82\xd3\xe4\x93\x02\x30\x12./compute/v1/projects/{project}/global/licenses\x12\x8f\x02\n\x0cSetIamPolicy\x12\x33.google.cloud.compute.v1.SetIamPolicyLicenseRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xa8\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02l\"F/compute/v1/projects/{project}/global/licenses/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xb0\x02\n\x12TestIamPermissions\x12\x39.google.cloud.compute.v1.TestIamPermissionsLicenseRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xac\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02q\"L/compute/v1/projects/{project}/global/licenses/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xe6\x01\n\x06Update\x12-.google.cloud.compute.v1.UpdateLicenseRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41 project,license,license_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02L28/compute/v1/projects/{project}/global/licenses/{license}:\x10license_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x94\x10\n\rMachineImages\x12\xd8\x01\n\x06\x44\x65lete\x12\x32.google.cloud.compute.v1.DeleteMachineImageRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x15project,machine_image\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x45*C/compute/v1/projects/{project}/global/machineImages/{machine_image}\x12\xc2\x01\n\x03Get\x12/.google.cloud.compute.v1.GetMachineImageRequest\x1a%.google.cloud.compute.v1.MachineImage\"c\xda\x41\x15project,machine_image\x82\xd3\xe4\x93\x02\x45\x12\x43/compute/v1/projects/{project}/global/machineImages/{machine_image}\x12\xd1\x01\n\x0cGetIamPolicy\x12\x38.google.cloud.compute.v1.GetIamPolicyMachineImageRequest\x1a\x1f.google.cloud.compute.v1.Policy\"f\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/global/machineImages/{resource}/getIamPolicy\x12\xea\x01\n\x06Insert\x12\x32.google.cloud.compute.v1.InsertMachineImageRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x1eproject,machine_image_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"3/compute/v1/projects/{project}/global/machineImages:\x16machine_image_resource\x12\xab\x01\n\x04List\x12\x31.google.cloud.compute.v1.ListMachineImagesRequest\x1a).google.cloud.compute.v1.MachineImageList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/global/machineImages\x12\x99\x02\n\x0cSetIamPolicy\x12\x38.google.cloud.compute.v1.SetIamPolicyMachineImageRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xad\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02q\"K/compute/v1/projects/{project}/global/machineImages/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xa6\x02\n\tSetLabels\x12\x35.google.cloud.compute.v1.SetLabelsMachineImageRequest\x1a\".google.cloud.compute.v1.Operation\"\xbd\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02n\"H/compute/v1/projects/{project}/global/machineImages/{resource}/setLabels:\"global_set_labels_request_resource\x12\xba\x02\n\x12TestIamPermissions\x12>.google.cloud.compute.v1.TestIamPermissionsMachineImageRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb1\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02v\"Q/compute/v1/projects/{project}/global/machineImages/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\x06\n\x0cMachineTypes\x12\xca\x01\n\x0e\x41ggregatedList\x12:.google.cloud.compute.v1.AggregatedListMachineTypesRequest\x1a\x32.google.cloud.compute.v1.MachineTypeAggregatedList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/aggregated/machineTypes\x12\xc8\x01\n\x03Get\x12..google.cloud.compute.v1.GetMachineTypeRequest\x1a$.google.cloud.compute.v1.MachineType\"k\xda\x41\x19project,zone,machine_type\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/zones/{zone}/machineTypes/{machine_type}\x12\xb3\x01\n\x04List\x12\x30.google.cloud.compute.v1.ListMachineTypesRequest\x1a(.google.cloud.compute.v1.MachineTypeList\"O\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/zones/{zone}/machineTypes\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x13\n\x12NetworkAttachments\x12\xdc\x01\n\x0e\x41ggregatedList\x12@.google.cloud.compute.v1.AggregatedListNetworkAttachmentsRequest\x1a\x38.google.cloud.compute.v1.NetworkAttachmentAggregatedList\"N\xda\x41\x07project\x82\xd3\xe4\x93\x02>\x12.google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc4\x01\xda\x41\x35project,firewall_policy,firewall_policy_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02s\"R/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule:\x1d\x66irewall_policy_rule_resource\x12\x91\x02\n\x11RemoveAssociation\x12\x46.google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8f\x01\xda\x41\x17project,firewall_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\\\"Z/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation\x12\xa9\x02\n\x19RemovePacketMirroringRule\x12N.google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41\x17project,firewall_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\"b/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removePacketMirroringRule\x12\xfc\x01\n\nRemoveRule\x12?.google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41\x17project,firewall_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule\x12\xa5\x02\n\x0cSetIamPolicy\x12\x41.google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb0\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02t\"N/compute/v1/projects/{project}/global/firewallPolicies/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xc6\x02\n\x12TestIamPermissions\x12G.google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb4\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02y\"T/compute/v1/projects/{project}/global/firewallPolicies/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc4\x04\n\x0fNetworkProfiles\x12\xcc\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetNetworkProfileRequest\x1a\'.google.cloud.compute.v1.NetworkProfile\"i\xda\x41\x17project,network_profile\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/global/networkProfiles/{network_profile}\x12\xba\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListNetworkProfilesRequest\x1a\x34.google.cloud.compute.v1.NetworkProfilesListResponse\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/global/networkProfiles\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x92\x18\n\x08Networks\x12\xa3\x02\n\nAddPeering\x12\x31.google.cloud.compute.v1.AddPeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xbd\x01\xda\x41\x35project,network,networks_add_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02l\"C/compute/v1/projects/{project}/global/networks/{network}/addPeering:%networks_add_peering_request_resource\x12\xc2\x01\n\x06\x44\x65lete\x12-.google.cloud.compute.v1.DeleteNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"e\xda\x41\x0fproject,network\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02:*8/compute/v1/projects/{project}/global/networks/{network}\x12\xa7\x01\n\x03Get\x12*.google.cloud.compute.v1.GetNetworkRequest\x1a .google.cloud.compute.v1.Network\"R\xda\x41\x0fproject,network\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/global/networks/{network}\x12\xff\x01\n\x15GetEffectiveFirewalls\x12<.google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest\x1a>.google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse\"h\xda\x41\x0fproject,network\x82\xd3\xe4\x93\x02P\x12N/compute/v1/projects/{project}/global/networks/{network}/getEffectiveFirewalls\x12\xd3\x01\n\x06Insert\x12-.google.cloud.compute.v1.InsertNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x18project,network_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x42\"./compute/v1/projects/{project}/global/networks:\x10network_resource\x12\x9c\x01\n\x04List\x12,.google.cloud.compute.v1.ListNetworksRequest\x1a$.google.cloud.compute.v1.NetworkList\"@\xda\x41\x07project\x82\xd3\xe4\x93\x02\x30\x12./compute/v1/projects/{project}/global/networks\x12\xe9\x01\n\x11ListPeeringRoutes\x12\x39.google.cloud.compute.v1.ListPeeringRoutesNetworksRequest\x1a\x33.google.cloud.compute.v1.ExchangedPeeringRoutesList\"d\xda\x41\x0fproject,network\x82\xd3\xe4\x93\x02L\x12J/compute/v1/projects/{project}/global/networks/{network}/listPeeringRoutes\x12\xe4\x01\n\x05Patch\x12,.google.cloud.compute.v1.PatchNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41 project,network,network_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02L28/compute/v1/projects/{project}/global/networks/{network}:\x10network_resource\x12\xb2\x02\n\rRemovePeering\x12\x34.google.cloud.compute.v1.RemovePeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xc6\x01\xda\x41\x38project,network,networks_remove_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02r\"F/compute/v1/projects/{project}/global/networks/{network}/removePeering:(networks_remove_peering_request_resource\x12\xd8\x02\n\x14RequestRemovePeering\x12;.google.cloud.compute.v1.RequestRemovePeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xde\x01\xda\x41@project,network,networks_request_remove_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x81\x01\"M/compute/v1/projects/{project}/global/networks/{network}/requestRemovePeering:0networks_request_remove_peering_request_resource\x12\xed\x01\n\x12SwitchToCustomMode\x12\x39.google.cloud.compute.v1.SwitchToCustomModeNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"x\xda\x41\x0fproject,network\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"K/compute/v1/projects/{project}/global/networks/{network}/switchToCustomMode\x12\xb2\x02\n\rUpdatePeering\x12\x34.google.cloud.compute.v1.UpdatePeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xc6\x01\xda\x41\x38project,network,networks_update_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02r2F/compute/v1/projects/{project}/global/networks/{network}/updatePeering:(networks_update_peering_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xeb \n\nNodeGroups\x12\xb2\x02\n\x08\x41\x64\x64Nodes\x12\x31.google.cloud.compute.v1.AddNodesNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xce\x01\xda\x41>project,zone,node_group,node_groups_add_nodes_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02v\"L/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/addNodes:&node_groups_add_nodes_request_resource\x12\xc4\x01\n\x0e\x41ggregatedList\x12\x38.google.cloud.compute.v1.AggregatedListNodeGroupsRequest\x1a\x30.google.cloud.compute.v1.NodeGroupAggregatedList\"F\xda\x41\x07project\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/aggregated/nodeGroups\x12\xd5\x01\n\x06\x44\x65lete\x12/.google.cloud.compute.v1.DeleteNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x17project,zone,node_group\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x45*C/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}\x12\xc1\x02\n\x0b\x44\x65leteNodes\x12\x34.google.cloud.compute.v1.DeleteNodesNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xd7\x01\xda\x41\x41project,zone,node_group,node_groups_delete_nodes_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02|\"O/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/deleteNodes:)node_groups_delete_nodes_request_resource\x12\xbe\x01\n\x03Get\x12,.google.cloud.compute.v1.GetNodeGroupRequest\x1a\".google.cloud.compute.v1.NodeGroup\"e\xda\x41\x17project,zone,node_group\x82\xd3\xe4\x93\x02\x45\x12\x43/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}\x12\xd6\x01\n\x0cGetIamPolicy\x12\x35.google.cloud.compute.v1.GetIamPolicyNodeGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"n\xda\x41\x15project,zone,resource\x82\xd3\xe4\x93\x02P\x12N/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy\x12\xfa\x01\n\x06Insert\x12/.google.cloud.compute.v1.InsertNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x9a\x01\xda\x41\x33project,zone,initial_node_count,node_group_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02M\"6/compute/v1/projects/{project}/zones/{zone}/nodeGroups:\x13node_group_resource\x12\xad\x01\n\x04List\x12..google.cloud.compute.v1.ListNodeGroupsRequest\x1a&.google.cloud.compute.v1.NodeGroupList\"M\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/zones/{zone}/nodeGroups\x12\xdf\x01\n\tListNodes\x12\x33.google.cloud.compute.v1.ListNodesNodeGroupsRequest\x1a,.google.cloud.compute.v1.NodeGroupsListNodes\"o\xda\x41\x17project,zone,node_group\x82\xd3\xe4\x93\x02O\"M/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/listNodes\x12\xfd\x01\n\x05Patch\x12..google.cloud.compute.v1.PatchNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41+project,zone,node_group,node_group_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Z2C/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}:\x13node_group_resource\x12\xe5\x02\n\x12PerformMaintenance\x12;.google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xed\x01\xda\x41Hproject,zone,node_group,node_groups_perform_maintenance_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8a\x01\"V/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/performMaintenance:0node_groups_perform_maintenance_request_resource\x12\x9a\x02\n\x0cSetIamPolicy\x12\x35.google.cloud.compute.v1.SetIamPolicyNodeGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb1\x01\xda\x41\x36project,zone,resource,zone_set_policy_request_resource\x82\xd3\xe4\x93\x02r\"N/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy: zone_set_policy_request_resource\x12\xd8\x02\n\x0fSetNodeTemplate\x12\x38.google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xe6\x01\xda\x41\x46project,zone,node_group,node_groups_set_node_template_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x85\x01\"S/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/setNodeTemplate:.node_groups_set_node_template_request_resource\x12\x85\x03\n\x18SimulateMaintenanceEvent\x12\x41.google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x81\x02\xda\x41Oproject,zone,node_group,node_groups_simulate_maintenance_event_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x97\x01\"\\/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/simulateMaintenanceEvent:7node_groups_simulate_maintenance_event_request_resource\x12\xbf\x02\n\x12TestIamPermissions\x12;.google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb9\x01\xda\x41\x37project,zone,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02y\"T/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb4\x10\n\rNodeTemplates\x12\xcd\x01\n\x0e\x41ggregatedList\x12;.google.cloud.compute.v1.AggregatedListNodeTemplatesRequest\x1a\x33.google.cloud.compute.v1.NodeTemplateAggregatedList\"I\xda\x41\x07project\x82\xd3\xe4\x93\x02\x39\x12\x37/compute/v1/projects/{project}/aggregated/nodeTemplates\x12\xea\x01\n\x06\x44\x65lete\x12\x32.google.cloud.compute.v1.DeleteNodeTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x1cproject,region,node_template\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02O*M/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}\x12\xd3\x01\n\x03Get\x12/.google.cloud.compute.v1.GetNodeTemplateRequest\x1a%.google.cloud.compute.v1.NodeTemplate\"t\xda\x41\x1cproject,region,node_template\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}\x12\xe2\x01\n\x0cGetIamPolicy\x12\x38.google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest\x1a\x1f.google.cloud.compute.v1.Policy\"w\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02W\x12U/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy\x12\xfb\x01\n\x06Insert\x12\x32.google.cloud.compute.v1.InsertNodeTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\x98\x01\xda\x41%project,region,node_template_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02W\"=/compute/v1/projects/{project}/regions/{region}/nodeTemplates:\x16node_template_resource\x12\xbc\x01\n\x04List\x12\x31.google.cloud.compute.v1.ListNodeTemplatesRequest\x1a).google.cloud.compute.v1.NodeTemplateList\"V\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02?\x12=/compute/v1/projects/{project}/regions/{region}/nodeTemplates\x12\xaa\x02\n\x0cSetIamPolicy\x12\x38.google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xbe\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02{\"U/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xcc\x02\n\x12TestIamPermissions\x12>.google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc3\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x80\x01\"[/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xdf\x05\n\tNodeTypes\x12\xc1\x01\n\x0e\x41ggregatedList\x12\x37.google.cloud.compute.v1.AggregatedListNodeTypesRequest\x1a/.google.cloud.compute.v1.NodeTypeAggregatedList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/aggregated/nodeTypes\x12\xb9\x01\n\x03Get\x12+.google.cloud.compute.v1.GetNodeTypeRequest\x1a!.google.cloud.compute.v1.NodeType\"b\xda\x41\x16project,zone,node_type\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/zones/{zone}/nodeTypes/{node_type}\x12\xaa\x01\n\x04List\x12-.google.cloud.compute.v1.ListNodeTypesRequest\x1a%.google.cloud.compute.v1.NodeTypeList\"L\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/zones/{zone}/nodeTypes\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x90\x0f\n\x10PacketMirrorings\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListPacketMirroringsRequest\x1a\x36.google.cloud.compute.v1.PacketMirroringAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/packetMirrorings\x12\xf6\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeletePacketMirroringRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\x1fproject,region,packet_mirroring\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02U*S/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}\x12\xe2\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetPacketMirroringRequest\x1a(.google.cloud.compute.v1.PacketMirroring\"}\xda\x41\x1fproject,region,packet_mirroring\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}\x12\x87\x02\n\x06Insert\x12\x35.google.cloud.compute.v1.InsertPacketMirroringRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41(project,region,packet_mirroring_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02]\"@/compute/v1/projects/{project}/regions/{region}/packetMirrorings:\x19packet_mirroring_resource\x12\xc5\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListPacketMirroringsRequest\x1a,.google.cloud.compute.v1.PacketMirroringList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/packetMirrorings\x12\xa9\x02\n\x05Patch\x12\x34.google.cloud.compute.v1.PatchPacketMirroringRequest\x1a\".google.cloud.compute.v1.Operation\"\xc5\x01\xda\x41\x39project,region,packet_mirroring,packet_mirroring_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02p2S/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}:\x19packet_mirroring_resource\x12\xd2\x02\n\x12TestIamPermissions\x12\x41.google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc6\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x83\x01\"^/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xab\x1b\n\x08Projects\x12\xbf\x01\n\x0e\x44isableXpnHost\x12\x35.google.cloud.compute.v1.DisableXpnHostProjectRequest\x1a\".google.cloud.compute.v1.Operation\"R\xda\x41\x07project\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02/\"-/compute/v1/projects/{project}/disableXpnHost\x12\xab\x02\n\x12\x44isableXpnResource\x12\x39.google.cloud.compute.v1.DisableXpnResourceProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xb5\x01\xda\x41\x36project,projects_disable_xpn_resource_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x63\"1/compute/v1/projects/{project}/disableXpnResource:.projects_disable_xpn_resource_request_resource\x12\xbc\x01\n\rEnableXpnHost\x12\x34.google.cloud.compute.v1.EnableXpnHostProjectRequest\x1a\".google.cloud.compute.v1.Operation\"Q\xda\x41\x07project\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02.\",/compute/v1/projects/{project}/enableXpnHost\x12\xa6\x02\n\x11\x45nableXpnResource\x12\x38.google.cloud.compute.v1.EnableXpnResourceProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xb2\x01\xda\x41\x35project,projects_enable_xpn_resource_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x61\"0/compute/v1/projects/{project}/enableXpnResource:-projects_enable_xpn_resource_request_resource\x12\x85\x01\n\x03Get\x12*.google.cloud.compute.v1.GetProjectRequest\x1a .google.cloud.compute.v1.Project\"0\xda\x41\x07project\x82\xd3\xe4\x93\x02 \x12\x1e/compute/v1/projects/{project}\x12\x9e\x01\n\nGetXpnHost\x12\x31.google.cloud.compute.v1.GetXpnHostProjectRequest\x1a .google.cloud.compute.v1.Project\";\xda\x41\x07project\x82\xd3\xe4\x93\x02+\x12)/compute/v1/projects/{project}/getXpnHost\x12\xbe\x01\n\x0fGetXpnResources\x12\x37.google.cloud.compute.v1.GetXpnResourcesProjectsRequest\x1a\x30.google.cloud.compute.v1.ProjectsGetXpnResources\"@\xda\x41\x07project\x82\xd3\xe4\x93\x02\x30\x12./compute/v1/projects/{project}/getXpnResources\x12\xfd\x01\n\x0cListXpnHosts\x12\x34.google.cloud.compute.v1.ListXpnHostsProjectsRequest\x1a$.google.cloud.compute.v1.XpnHostList\"\x90\x01\xda\x41\x30project,projects_list_xpn_hosts_request_resource\x82\xd3\xe4\x93\x02W\"+/compute/v1/projects/{project}/listXpnHosts:(projects_list_xpn_hosts_request_resource\x12\xe5\x01\n\x08MoveDisk\x12/.google.cloud.compute.v1.MoveDiskProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x83\x01\xda\x41\"project,disk_move_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x45\"\'/compute/v1/projects/{project}/moveDisk:\x1a\x64isk_move_request_resource\x12\xf9\x01\n\x0cMoveInstance\x12\x33.google.cloud.compute.v1.MoveInstanceProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x8f\x01\xda\x41&project,instance_move_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"+/compute/v1/projects/{project}/moveInstance:\x1einstance_move_request_resource\x12\xa8\x02\n\x11SetCloudArmorTier\x12\x38.google.cloud.compute.v1.SetCloudArmorTierProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xb4\x01\xda\x41\x36project,projects_set_cloud_armor_tier_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x62\"0/compute/v1/projects/{project}/setCloudArmorTier:.projects_set_cloud_armor_tier_request_resource\x12\x86\x02\n\x19SetCommonInstanceMetadata\x12@.google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x19project,metadata_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"8/compute/v1/projects/{project}/setCommonInstanceMetadata:\x11metadata_resource\x12\xbc\x02\n\x15SetDefaultNetworkTier\x12<.google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41:project,projects_set_default_network_tier_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02j\"4/compute/v1/projects/{project}/setDefaultNetworkTier:2projects_set_default_network_tier_request_resource\x12\x91\x02\n\x14SetUsageExportBucket\x12;.google.cloud.compute.v1.SetUsageExportBucketProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41&project,usage_export_location_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U\"3/compute/v1/projects/{project}/setUsageExportBucket:\x1eusage_export_location_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xee\x0f\n\x18PublicAdvertisedPrefixes\x12\x92\x02\n\x08\x41nnounce\x12?.google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41 project,public_advertised_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\"b/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}/announce\x12\x85\x02\n\x06\x44\x65lete\x12=.google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41 project,public_advertised_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02[*Y/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}\x12\xf9\x01\n\x03Get\x12:.google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest\x1a/.google.cloud.compute.v1.PublicAdvertisedPrefix\"\x84\x01\xda\x41 project,public_advertised_prefix\x82\xd3\xe4\x93\x02[\x12Y/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}\x12\x96\x02\n\x06Insert\x12=.google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41)project,public_advertised_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x63\">/compute/v1/projects/{project}/global/publicAdvertisedPrefixes:!public_advertised_prefix_resource\x12\xcb\x01\n\x04List\x12<.google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest\x1a\x33.google.cloud.compute.v1.PublicAdvertisedPrefixList\"P\xda\x41\x07project\x82\xd3\xe4\x93\x02@\x12>/compute/v1/projects/{project}/global/publicAdvertisedPrefixes\x12\xc8\x02\n\x05Patch\x12<.google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xdc\x01\xda\x41\x42project,public_advertised_prefix,public_advertised_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02~2Y/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}:!public_advertised_prefix_resource\x12\x92\x02\n\x08Withdraw\x12?.google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41 project,public_advertised_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\"b/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}/withdraw\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb4\x12\n\x17PublicDelegatedPrefixes\x12\xea\x01\n\x0e\x41ggregatedList\x12\x45.google.cloud.compute.v1.AggregatedListPublicDelegatedPrefixesRequest\x1a<.google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList\"S\xda\x41\x07project\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/aggregated/publicDelegatedPrefixes\x12\x9f\x02\n\x08\x41nnounce\x12>.google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xae\x01\xda\x41&project,region,public_delegated_prefix\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02l\"j/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}/announce\x12\x92\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41&project,region,public_delegated_prefix\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x63*a/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}\x12\x85\x02\n\x03Get\x12\x39.google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest\x1a..google.cloud.compute.v1.PublicDelegatedPrefix\"\x92\x01\xda\x41&project,region,public_delegated_prefix\x82\xd3\xe4\x93\x02\x63\x12\x61/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}\x12\xa3\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41/project,region,public_delegated_prefix_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02k\"G/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes: public_delegated_prefix_resource\x12\xd9\x01\n\x04List\x12;.google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest\x1a\x32.google.cloud.compute.v1.PublicDelegatedPrefixList\"`\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes\x12\xd4\x02\n\x05Patch\x12;.google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41Gproject,region,public_delegated_prefix,public_delegated_prefix_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x85\x01\x32\x61/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}: public_delegated_prefix_resource\x12\x9f\x02\n\x08Withdraw\x12>.google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xae\x01\xda\x41&project,region,public_delegated_prefix\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02l\"j/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}/withdraw\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x0b\n\x11RegionAutoscalers\x12\xe5\x01\n\x06\x44\x65lete\x12\x36.google.cloud.compute.v1.DeleteRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x19project,region,autoscaler\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02J*H/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}\x12\xcd\x01\n\x03Get\x12\x33.google.cloud.compute.v1.GetRegionAutoscalerRequest\x1a#.google.cloud.compute.v1.Autoscaler\"l\xda\x41\x19project,region,autoscaler\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}\x12\xf7\x01\n\x06Insert\x12\x36.google.cloud.compute.v1.InsertRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,autoscaler_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\";/compute/v1/projects/{project}/regions/{region}/autoscalers:\x13\x61utoscaler_resource\x12\xc2\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListRegionAutoscalersRequest\x1a-.google.cloud.compute.v1.RegionAutoscalerList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/autoscalers\x12\xf5\x01\n\x05Patch\x12\x35.google.cloud.compute.v1.PatchRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,autoscaler_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R2;/compute/v1/projects/{project}/regions/{region}/autoscalers:\x13\x61utoscaler_resource\x12\xf7\x01\n\x06Update\x12\x36.google.cloud.compute.v1.UpdateRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,autoscaler_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\x1a;/compute/v1/projects/{project}/regions/{region}/autoscalers:\x13\x61utoscaler_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xbd\x1b\n\x15RegionBackendServices\x12\xf8\x01\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\x1eproject,region,backend_service\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S*Q/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}\x12\xe3\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetRegionBackendServiceRequest\x1a\'.google.cloud.compute.v1.BackendService\"z\xda\x41\x1eproject,region,backend_service\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}\x12\xcb\x02\n\tGetHealth\x12=.google.cloud.compute.v1.GetHealthRegionBackendServiceRequest\x1a\x32.google.cloud.compute.v1.BackendServiceGroupHealth\"\xca\x01\xda\x41@project,region,backend_service,resource_group_reference_resource\x82\xd3\xe4\x93\x02\x80\x01\"[/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}/getHealth:!resource_group_reference_resource\x12\xec\x01\n\x0cGetIamPolicy\x12@.google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"y\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Y\x12W/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy\x12\x89\x02\n\x06Insert\x12:.google.cloud.compute.v1.InsertRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x01\xda\x41\'project,region,backend_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02[\"?/compute/v1/projects/{project}/regions/{region}/backendServices:\x18\x62\x61\x63kend_service_resource\x12\xc8\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListRegionBackendServicesRequest\x1a+.google.cloud.compute.v1.BackendServiceList\"X\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/regions/{region}/backendServices\x12\xe5\x01\n\nListUsable\x12?.google.cloud.compute.v1.ListUsableRegionBackendServicesRequest\x1a\x31.google.cloud.compute.v1.BackendServiceListUsable\"c\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02L\x12J/compute/v1/projects/{project}/regions/{region}/backendServices/listUsable\x12\xa9\x02\n\x05Patch\x12\x39.google.cloud.compute.v1.PatchRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x37project,region,backend_service,backend_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02m2Q/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}:\x18\x62\x61\x63kend_service_resource\x12\xb4\x02\n\x0cSetIamPolicy\x12@.google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xc0\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02}\"W/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xe8\x02\n\x11SetSecurityPolicy\x12\x45.google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe7\x01\xda\x41\x41project,region,backend_service,security_policy_reference_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x89\x01\"c/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}/setSecurityPolicy:\"security_policy_reference_resource\x12\xd6\x02\n\x12TestIamPermissions\x12\x46.google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc5\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x82\x01\"]/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xab\x02\n\x06Update\x12:.google.cloud.compute.v1.UpdateRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x37project,region,backend_service,backend_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02m\x1aQ/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}:\x18\x62\x61\x63kend_service_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf2\t\n\x11RegionCommitments\x12\xcd\x01\n\x0e\x41ggregatedList\x12?.google.cloud.compute.v1.AggregatedListRegionCommitmentsRequest\x1a\x31.google.cloud.compute.v1.CommitmentAggregatedList\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/aggregated/commitments\x12\xcd\x01\n\x03Get\x12\x33.google.cloud.compute.v1.GetRegionCommitmentRequest\x1a#.google.cloud.compute.v1.Commitment\"l\xda\x41\x19project,region,commitment\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}\x12\xf7\x01\n\x06Insert\x12\x36.google.cloud.compute.v1.InsertRegionCommitmentRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,commitment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\";/compute/v1/projects/{project}/regions/{region}/commitments:\x13\x63ommitment_resource\x12\xbc\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListRegionCommitmentsRequest\x1a\'.google.cloud.compute.v1.CommitmentList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/commitments\x12\x8f\x02\n\x06Update\x12\x36.google.cloud.compute.v1.UpdateRegionCommitmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41-project,region,commitment,commitment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_2H/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}:\x13\x63ommitment_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xbf\x04\n\x0fRegionDiskTypes\x12\xc5\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetRegionDiskTypeRequest\x1a!.google.cloud.compute.v1.DiskType\"h\xda\x41\x18project,region,disk_type\x82\xd3\xe4\x93\x02G\x12\x45/compute/v1/projects/{project}/regions/{region}/diskTypes/{disk_type}\x12\xbc\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListRegionDiskTypesRequest\x1a+.google.cloud.compute.v1.RegionDiskTypeList\"R\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02;\x12\x39/compute/v1/projects/{project}/regions/{region}/diskTypes\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x8f&\n\x0bRegionDisks\x12\xe6\x02\n\x13\x41\x64\x64ResourcePolicies\x12=.google.cloud.compute.v1.AddResourcePoliciesRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xeb\x01\xda\x41Gproject,region,disk,region_disks_add_resource_policies_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x87\x01\"P/compute/v1/projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies:3region_disks_add_resource_policies_request_resource\x12\x9c\x02\n\nBulkInsert\x12\x34.google.cloud.compute.v1.BulkInsertRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xb3\x01\xda\x41\x31project,region,bulk_insert_disk_resource_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x66\"@/compute/v1/projects/{project}/regions/{region}/disks/bulkInsert:\"bulk_insert_disk_resource_resource\x12\x92\x02\n\x0e\x43reateSnapshot\x12\x38.google.cloud.compute.v1.CreateSnapshotRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41%project,region,disk,snapshot_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02`\"K/compute/v1/projects/{project}/regions/{region}/disks/{disk}/createSnapshot:\x11snapshot_resource\x12\xcd\x01\n\x06\x44\x65lete\x12\x30.google.cloud.compute.v1.DeleteRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"m\xda\x41\x13project,region,disk\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02>*\x12.google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x13project,region,disk\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S\"Q/compute/v1/projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication\x12\xee\x02\n\x19StopGroupAsyncReplication\x12\x43.google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xe7\x01\xda\x41\x43project,region,disks_stop_group_async_replication_resource_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x87\x01\"O/compute/v1/projects/{project}/regions/{region}/disks/stopGroupAsyncReplication:4disks_stop_group_async_replication_resource_resource\x12\xc1\x02\n\x12TestIamPermissions\x12<.google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xba\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02x\"S/compute/v1/projects/{project}/regions/{region}/disks/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xeb\x01\n\x06Update\x12\x30.google.cloud.compute.v1.UpdateRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x01\xda\x41!project,region,disk,disk_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02M2.google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9b\x01\xda\x41#project,region,health_check_service\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\\*Z/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}\x12\xfa\x01\n\x03Get\x12;.google.cloud.compute.v1.GetRegionHealthCheckServiceRequest\x1a+.google.cloud.compute.v1.HealthCheckService\"\x88\x01\xda\x41#project,region,health_check_service\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}\x12\x9b\x02\n\x06Insert\x12>.google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xac\x01\xda\x41,project,region,health_check_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x64\"C/compute/v1/projects/{project}/regions/{region}/healthCheckServices:\x1dhealth_check_service_resource\x12\xd5\x01\n\x04List\x12=.google.cloud.compute.v1.ListRegionHealthCheckServicesRequest\x1a\x30.google.cloud.compute.v1.HealthCheckServicesList\"\\\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x45\x12\x43/compute/v1/projects/{project}/regions/{region}/healthCheckServices\x12\xc5\x02\n\x05Patch\x12=.google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd8\x01\xda\x41\x41project,region,health_check_service,health_check_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02{2Z/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}:\x1dhealth_check_service_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc6\x0c\n\x12RegionHealthChecks\x12\xec\x01\n\x06\x44\x65lete\x12\x37.google.cloud.compute.v1.DeleteRegionHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x1bproject,region,health_check\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02M*K/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}\x12\xd4\x01\n\x03Get\x12\x34.google.cloud.compute.v1.GetRegionHealthCheckRequest\x1a$.google.cloud.compute.v1.HealthCheck\"q\xda\x41\x1bproject,region,health_check\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}\x12\xfd\x01\n\x06Insert\x12\x37.google.cloud.compute.v1.InsertRegionHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\x95\x01\xda\x41$project,region,health_check_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02U\"\x12region_instance_group_managers_stop_instances_request_resource\x12\xbd\x03\n\x10SuspendInstances\x12J.google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb8\x02\xda\x41gproject,region,instance_group_manager,region_instance_group_managers_suspend_instances_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xb4\x01\"o/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/suspendInstances:Aregion_instance_group_managers_suspend_instances_request_resource\x12\xd5\x03\n\x18UpdatePerInstanceConfigs\x12R.google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x02\xda\x41gproject,region,instance_group_manager,region_instance_group_manager_update_instance_config_req_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xbc\x01\"w/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs:Aregion_instance_group_manager_update_instance_config_req_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc7\n\n\x14RegionInstanceGroups\x12\xde\x01\n\x03Get\x12\x36.google.cloud.compute.v1.GetRegionInstanceGroupRequest\x1a&.google.cloud.compute.v1.InstanceGroup\"w\xda\x41\x1dproject,region,instance_group\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}\x12\xcb\x01\n\x04List\x12\x38.google.cloud.compute.v1.ListRegionInstanceGroupsRequest\x1a\x30.google.cloud.compute.v1.RegionInstanceGroupList\"W\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02@\x12>/compute/v1/projects/{project}/regions/{region}/instanceGroups\x12\x86\x03\n\rListInstances\x12\x41.google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest\x1a:.google.cloud.compute.v1.RegionInstanceGroupsListInstances\"\xf5\x01\xda\x41Tproject,region,instance_group,region_instance_groups_list_instances_request_resource\x82\xd3\xe4\x93\x02\x97\x01\"]/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/listInstances:6region_instance_groups_list_instances_request_resource\x12\x82\x03\n\rSetNamedPorts\x12@.google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x02\xda\x41Uproject,region,instance_group,region_instance_groups_set_named_ports_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x98\x01\"]/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/setNamedPorts:7region_instance_groups_set_named_ports_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xe6\x08\n\x17RegionInstanceTemplates\x12\x80\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\x93\x01\xda\x41 project,region,instance_template\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02W*U/compute/v1/projects/{project}/regions/{region}/instanceTemplates/{instance_template}\x12\xee\x01\n\x03Get\x12\x39.google.cloud.compute.v1.GetRegionInstanceTemplateRequest\x1a).google.cloud.compute.v1.InstanceTemplate\"\x80\x01\xda\x41 project,region,instance_template\x82\xd3\xe4\x93\x02W\x12U/compute/v1/projects/{project}/regions/{region}/instanceTemplates/{instance_template}\x12\x91\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertRegionInstanceTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\xa4\x01\xda\x41)project,region,instance_template_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_\"A/compute/v1/projects/{project}/regions/{region}/instanceTemplates:\x1ainstance_template_resource\x12\xce\x01\n\x04List\x12;.google.cloud.compute.v1.ListRegionInstanceTemplatesRequest\x1a-.google.cloud.compute.v1.InstanceTemplateList\"Z\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/regions/{region}/instanceTemplates\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb4\x03\n\x0fRegionInstances\x12\xac\x02\n\nBulkInsert\x12\x38.google.cloud.compute.v1.BulkInsertRegionInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xbf\x01\xda\x41\x35project,region,bulk_insert_instance_resource_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02n\"D/compute/v1/projects/{project}/regions/{region}/instances/bulkInsert:&bulk_insert_instance_resource_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9f\x12\n\x16RegionInstantSnapshots\x12\xfc\x01\n\x06\x44\x65lete\x12;.google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\x1fproject,region,instant_snapshot\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02U*S/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}\x12\xe8\x01\n\x03Get\x12\x38.google.cloud.compute.v1.GetRegionInstantSnapshotRequest\x1a(.google.cloud.compute.v1.InstantSnapshot\"}\xda\x41\x1fproject,region,instant_snapshot\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}\x12\xee\x01\n\x0cGetIamPolicy\x12\x41.google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest\x1a\x1f.google.cloud.compute.v1.Policy\"z\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Z\x12X/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy\x12\x8d\x02\n\x06Insert\x12;.google.cloud.compute.v1.InsertRegionInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41(project,region,instant_snapshot_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02]\"@/compute/v1/projects/{project}/regions/{region}/instantSnapshots:\x19instant_snapshot_resource\x12\xcb\x01\n\x04List\x12:.google.cloud.compute.v1.ListRegionInstantSnapshotsRequest\x1a,.google.cloud.compute.v1.InstantSnapshotList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/instantSnapshots\x12\xb6\x02\n\x0cSetIamPolicy\x12\x41.google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xc1\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02~\"X/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xc3\x02\n\tSetLabels\x12>.google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02{\"U/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels:\"region_set_labels_request_resource\x12\xd8\x02\n\x12TestIamPermissions\x12G.google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc6\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x83\x01\"^/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xa4\x13\n\x1bRegionNetworkEndpointGroups\x12\xcd\x03\n\x16\x41ttachNetworkEndpoints\x12P.google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xbc\x02\xda\x41\x66project,region,network_endpoint_group,region_network_endpoint_groups_attach_endpoints_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xb9\x01\"u/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints:@region_network_endpoint_groups_attach_endpoints_request_resource\x12\x92\x02\n\x06\x44\x65lete\x12@.google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41%project,region,network_endpoint_group\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02`*^/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}\x12\xcd\x03\n\x16\x44\x65tachNetworkEndpoints\x12P.google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xbc\x02\xda\x41\x66project,region,network_endpoint_group,region_network_endpoint_groups_detach_endpoints_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xb9\x01\"u/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints:@region_network_endpoint_groups_detach_endpoints_request_resource\x12\x84\x02\n\x03Get\x12=.google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest\x1a-.google.cloud.compute.v1.NetworkEndpointGroup\"\x8e\x01\xda\x41%project,region,network_endpoint_group\x82\xd3\xe4\x93\x02`\x12^/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}\x12\xa3\x02\n\x06Insert\x12@.google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xb2\x01\xda\x41.project,region,network_endpoint_group_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02h\"E/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups:\x1fnetwork_endpoint_group_resource\x12\xda\x01\n\x04List\x12?.google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest\x1a\x31.google.cloud.compute.v1.NetworkEndpointGroupList\"^\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02G\x12\x45/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups\x12\xd1\x02\n\x14ListNetworkEndpoints\x12O.google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest\x1a\x42.google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints\"\xa3\x01\xda\x41%project,region,network_endpoint_group\x82\xd3\xe4\x93\x02u\"s/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf2\'\n\x1dRegionNetworkFirewallPolicies\x12\xeb\x02\n\x0e\x41\x64\x64\x41ssociation\x12I.google.cloud.compute.v1.AddAssociationRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41\x43project,region,firewall_policy,firewall_policy_association_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x89\x01\"a/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/addAssociation:$firewall_policy_association_resource\x12\xc7\x02\n\x07\x41\x64\x64Rule\x12\x42.google.cloud.compute.v1.AddRuleRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd3\x01\xda\x41.google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest\x1a\'.google.cloud.compute.v1.FirewallPolicy\"{\xda\x41\x1eproject,region,firewall_policy\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}\x12\x9c\x02\n\x0eGetAssociation\x12I.google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest\x1a\x32.google.cloud.compute.v1.FirewallPolicyAssociation\"\x8a\x01\xda\x41\x1eproject,region,firewall_policy\x82\xd3\xe4\x93\x02\x63\x12\x61/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getAssociation\x12\xb7\x02\n\x15GetEffectiveFirewalls\x12P.google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest\x1aS.google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse\"w\xda\x41\x16project,region,network\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls\x12\xf4\x01\n\x0cGetIamPolicy\x12G.google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"z\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Z\x12X/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy\x12\x80\x02\n\x07GetRule\x12\x42.google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest\x1a+.google.cloud.compute.v1.FirewallPolicyRule\"\x83\x01\xda\x41\x1eproject,region,firewall_policy\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getRule\x12\x91\x02\n\x06Insert\x12\x41.google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41\'project,region,firewall_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\\\"@/compute/v1/projects/{project}/regions/{region}/firewallPolicies:\x18\x66irewall_policy_resource\x12\xd1\x01\n\x04List\x12\x41.google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest\x1a+.google.cloud.compute.v1.FirewallPolicyList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/firewallPolicies\x12\xb1\x02\n\x05Patch\x12@.google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc1\x01\xda\x41\x37project,region,firewall_policy,firewall_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02n2R/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}:\x18\x66irewall_policy_resource\x12\xcd\x02\n\tPatchRule\x12\x44.google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd5\x01\xda\x41.google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x01\xda\x41\x1eproject,region,security_policy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_\"]/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}/removeRule\x12\xc2\x02\n\tSetLabels\x12=.google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02{\"U/compute/v1/projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc3\x08\n\x15RegionSslCertificates\x12\xf8\x01\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteRegionSslCertificateRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\x1eproject,region,ssl_certificate\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S*Q/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}\x12\xe3\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetRegionSslCertificateRequest\x1a\'.google.cloud.compute.v1.SslCertificate\"z\xda\x41\x1eproject,region,ssl_certificate\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}\x12\x89\x02\n\x06Insert\x12:.google.cloud.compute.v1.InsertRegionSslCertificateRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x01\xda\x41\'project,region,ssl_certificate_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02[\"?/compute/v1/projects/{project}/regions/{region}/sslCertificates:\x18ssl_certificate_resource\x12\xc8\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListRegionSslCertificatesRequest\x1a+.google.cloud.compute.v1.SslCertificateList\"X\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/regions/{region}/sslCertificates\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x95\x0c\n\x11RegionSslPolicies\x12\xe4\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeleteRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x19project,region,ssl_policy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02J*H/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}\x12\xcb\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.SslPolicy\"l\xda\x41\x19project,region,ssl_policy\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}\x12\xf6\x01\n\x06Insert\x12\x35.google.cloud.compute.v1.InsertRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,ssl_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\";/compute/v1/projects/{project}/regions/{region}/sslPolicies:\x13ssl_policy_resource\x12\xbd\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListRegionSslPoliciesRequest\x1a(.google.cloud.compute.v1.SslPoliciesList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/sslPolicies\x12\x8e\x02\n\x15ListAvailableFeatures\x12\x46.google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest\x1a\x41.google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse\"j\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures\x12\x8c\x02\n\x05Patch\x12\x34.google.cloud.compute.v1.PatchRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41-project,region,ssl_policy,ssl_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_2H/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}:\x13ssl_policy_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xaa\x0b\n\x17RegionTargetHttpProxies\x12\xff\x01\n\x06\x44\x65lete\x12;.google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x93\x01\xda\x41 project,region,target_http_proxy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02W*U/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}\x12\xec\x01\n\x03Get\x12\x38.google.cloud.compute.v1.GetRegionTargetHttpProxyRequest\x1a(.google.cloud.compute.v1.TargetHttpProxy\"\x80\x01\xda\x41 project,region,target_http_proxy\x82\xd3\xe4\x93\x02W\x12U/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}\x12\x90\x02\n\x06Insert\x12;.google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xa4\x01\xda\x41)project,region,target_http_proxy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_\"A/compute/v1/projects/{project}/regions/{region}/targetHttpProxies:\x1atarget_http_proxy_resource\x12\xcd\x01\n\x04List\x12;.google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest\x1a,.google.cloud.compute.v1.TargetHttpProxyList\"Z\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/regions/{region}/targetHttpProxies\x12\xc6\x02\n\tSetUrlMap\x12>.google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd4\x01\xda\x41;project,region,target_http_proxy,url_map_reference_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02}\"_/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}/setUrlMap:\x1aurl_map_reference_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb3\x11\n\x18RegionTargetHttpsProxies\x12\x83\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41!project,region,target_https_proxy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02Y*W/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}\x12\xf1\x01\n\x03Get\x12\x39.google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest\x1a).google.cloud.compute.v1.TargetHttpsProxy\"\x83\x01\xda\x41!project,region,target_https_proxy\x82\xd3\xe4\x93\x02Y\x12W/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}\x12\x94\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xa7\x01\xda\x41*project,region,target_https_proxy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x61\"B/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies:\x1btarget_https_proxy_resource\x12\xd0\x01\n\x04List\x12<.google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest\x1a-.google.cloud.compute.v1.TargetHttpsProxyList\"[\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies\x12\xba\x02\n\x05Patch\x12;.google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xcf\x01\xda\x41=project,region,target_https_proxy,target_https_proxy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02v2W/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}:\x1btarget_https_proxy_resource\x12\xb4\x03\n\x12SetSslCertificates\x12H.google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xaf\x02\xda\x41\x63project,region,target_https_proxy,region_target_https_proxies_set_ssl_certificates_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xaf\x01\"j/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}/setSslCertificates:Aregion_target_https_proxies_set_ssl_certificates_request_resource\x12\xca\x02\n\tSetUrlMap\x12?.google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd7\x01\xda\x41.google.cloud.compute.v1.AggregatedListResourcePoliciesRequest\x1a\x35.google.cloud.compute.v1.ResourcePolicyAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/resourcePolicies\x12\xf3\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteResourcePolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8e\x01\xda\x41\x1eproject,region,resource_policy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02T*R/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}\x12\xde\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetResourcePolicyRequest\x1a\'.google.cloud.compute.v1.ResourcePolicy\"{\xda\x41\x1eproject,region,resource_policy\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}\x12\xe7\x01\n\x0cGetIamPolicy\x12:.google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"z\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Z\x12X/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy\x12\x84\x02\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertResourcePolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41\'project,region,resource_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\\\"@/compute/v1/projects/{project}/regions/{region}/resourcePolicies:\x18resource_policy_resource\x12\xc4\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListResourcePoliciesRequest\x1a+.google.cloud.compute.v1.ResourcePolicyList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/resourcePolicies\x12\xa4\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchResourcePolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc1\x01\xda\x41\x37project,region,resource_policy,resource_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02n2R/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}:\x18resource_policy_resource\x12\xaf\x02\n\x0cSetIamPolicy\x12:.google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xc1\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02~\"X/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xd1\x02\n\x12TestIamPermissions\x12@.google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc6\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x83\x01\"^/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x8e \n\x07Routers\x12\xbb\x01\n\x0e\x41ggregatedList\x12\x35.google.cloud.compute.v1.AggregatedListRoutersRequest\x1a-.google.cloud.compute.v1.RouterAggregatedList\"C\xda\x41\x07project\x82\xd3\xe4\x93\x02\x33\x12\x31/compute/v1/projects/{project}/aggregated/routers\x12\xcf\x01\n\x06\x44\x65lete\x12,.google.cloud.compute.v1.DeleteRouterRequest\x1a\".google.cloud.compute.v1.Operation\"s\xda\x41\x15project,region,router\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x42*@/compute/v1/projects/{project}/regions/{region}/routers/{router}\x12\xf8\x01\n\x11\x44\x65leteRoutePolicy\x12\x37.google.cloud.compute.v1.DeleteRoutePolicyRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x85\x01\xda\x41\x15project,region,router\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02T\"R/compute/v1/projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy\x12\xb3\x01\n\x03Get\x12).google.cloud.compute.v1.GetRouterRequest\x1a\x1f.google.cloud.compute.v1.Router\"`\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/routers/{router}\x12\xdd\x01\n\x0cGetNatIpInfo\x12\x32.google.cloud.compute.v1.GetNatIpInfoRouterRequest\x1a*.google.cloud.compute.v1.NatIpInfoResponse\"m\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatIpInfo\x12\xf5\x01\n\x11GetNatMappingInfo\x12\x38.google.cloud.compute.v1.GetNatMappingInfoRoutersRequest\x1a\x32.google.cloud.compute.v1.VmEndpointNatMappingsList\"r\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo\x12\xef\x01\n\x0eGetRoutePolicy\x12\x34.google.cloud.compute.v1.GetRoutePolicyRouterRequest\x1a\x36.google.cloud.compute.v1.RoutersGetRoutePolicyResponse\"o\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRoutePolicy\x12\xe9\x01\n\x0fGetRouterStatus\x12\x35.google.cloud.compute.v1.GetRouterStatusRouterRequest\x1a-.google.cloud.compute.v1.RouterStatusResponse\"p\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRouterStatus\x12\xe1\x01\n\x06Insert\x12,.google.cloud.compute.v1.InsertRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x1eproject,region,router_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02J\"7/compute/v1/projects/{project}/regions/{region}/routers:\x0frouter_resource\x12\xaa\x01\n\x04List\x12+.google.cloud.compute.v1.ListRoutersRequest\x1a#.google.cloud.compute.v1.RouterList\"P\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x39\x12\x37/compute/v1/projects/{project}/regions/{region}/routers\x12\xe4\x01\n\rListBgpRoutes\x12\x34.google.cloud.compute.v1.ListBgpRoutesRoutersRequest\x1a-.google.cloud.compute.v1.RoutersListBgpRoutes\"n\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02P\x12N/compute/v1/projects/{project}/regions/{region}/routers/{router}/listBgpRoutes\x12\xf4\x01\n\x11ListRoutePolicies\x12\x38.google.cloud.compute.v1.ListRoutePoliciesRoutersRequest\x1a\x31.google.cloud.compute.v1.RoutersListRoutePolicies\"r\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/routers/{router}/listRoutePolicies\x12\xef\x01\n\x05Patch\x12+.google.cloud.compute.v1.PatchRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x94\x01\xda\x41%project,region,router,router_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S2@/compute/v1/projects/{project}/regions/{region}/routers/{router}:\x0frouter_resource\x12\xa2\x02\n\x10PatchRoutePolicy\x12\x36.google.cloud.compute.v1.PatchRoutePolicyRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\xb1\x01\xda\x41+project,region,router,route_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02j\"Q/compute/v1/projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy:\x15route_policy_resource\x12\xf5\x01\n\x07Preview\x12-.google.cloud.compute.v1.PreviewRouterRequest\x1a/.google.cloud.compute.v1.RoutersPreviewResponse\"\x89\x01\xda\x41%project,region,router,router_resource\x82\xd3\xe4\x93\x02[\"H/compute/v1/projects/{project}/regions/{region}/routers/{router}/preview:\x0frouter_resource\x12\xf1\x01\n\x06Update\x12,.google.cloud.compute.v1.UpdateRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x94\x01\xda\x41%project,region,router,router_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S\x1a@/compute/v1/projects/{project}/regions/{region}/routers/{router}:\x0frouter_resource\x12\xa5\x02\n\x11UpdateRoutePolicy\x12\x37.google.cloud.compute.v1.UpdateRoutePolicyRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\xb2\x01\xda\x41+project,region,router,route_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02k\"R/compute/v1/projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy:\x15route_policy_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc0\x06\n\x06Routes\x12\xba\x01\n\x06\x44\x65lete\x12+.google.cloud.compute.v1.DeleteRouteRequest\x1a\".google.cloud.compute.v1.Operation\"_\xda\x41\rproject,route\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x36*4/compute/v1/projects/{project}/global/routes/{route}\x12\x9d\x01\n\x03Get\x12(.google.cloud.compute.v1.GetRouteRequest\x1a\x1e.google.cloud.compute.v1.Route\"L\xda\x41\rproject,route\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/global/routes/{route}\x12\xcb\x01\n\x06Insert\x12+.google.cloud.compute.v1.InsertRouteRequest\x1a\".google.cloud.compute.v1.Operation\"p\xda\x41\x16project,route_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02>\",/compute/v1/projects/{project}/global/routes:\x0eroute_resource\x12\x96\x01\n\x04List\x12*.google.cloud.compute.v1.ListRoutesRequest\x1a\".google.cloud.compute.v1.RouteList\">\xda\x41\x07project\x82\xd3\xe4\x93\x02.\x12,/compute/v1/projects/{project}/global/routes\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xef\x18\n\x10SecurityPolicies\x12\xa9\x02\n\x07\x41\x64\x64Rule\x12\x35.google.cloud.compute.v1.AddRuleSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc2\x01\xda\x41\x35project,security_policy,security_policy_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02q\"P/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/addRule:\x1dsecurity_policy_rule_resource\x12\xd7\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListSecurityPoliciesRequest\x1a\x37.google.cloud.compute.v1.SecurityPoliciesAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/securityPolicies\x12\xe1\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"}\xda\x41\x17project,security_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02J*H/compute/v1/projects/{project}/global/securityPolicies/{security_policy}\x12\xcd\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetSecurityPolicyRequest\x1a\'.google.cloud.compute.v1.SecurityPolicy\"j\xda\x41\x17project,security_policy\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/global/securityPolicies/{security_policy}\x12\xe1\x01\n\x07GetRule\x12\x35.google.cloud.compute.v1.GetRuleSecurityPolicyRequest\x1a+.google.cloud.compute.v1.SecurityPolicyRule\"r\xda\x41\x17project,security_policy\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/getRule\x12\xf3\x01\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8e\x01\xda\x41 project,security_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02R\"6/compute/v1/projects/{project}/global/securityPolicies:\x18security_policy_resource\x12\xb3\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListSecurityPoliciesRequest\x1a+.google.cloud.compute.v1.SecurityPolicyList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/global/securityPolicies\x12\xae\x02\n\x1fListPreconfiguredExpressionSets\x12O.google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest\x1aP.google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse\"h\xda\x41\x07project\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets\x12\x93\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xb0\x01\xda\x41\x30project,security_policy,security_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\x32H/compute/v1/projects/{project}/global/securityPolicies/{security_policy}:\x18security_policy_resource\x12\xaf\x02\n\tPatchRule\x12\x37.google.cloud.compute.v1.PatchRuleSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc4\x01\xda\x41\x35project,security_policy,security_policy_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02s\"R/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/patchRule:\x1dsecurity_policy_rule_resource\x12\xf5\x01\n\nRemoveRule\x12\x38.google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41\x17project,security_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/removeRule\x12\xab\x02\n\tSetLabels\x12\x37.google.cloud.compute.v1.SetLabelsSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02q\"K/compute/v1/projects/{project}/global/securityPolicies/{resource}/setLabels:\"global_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x13\n\x12ServiceAttachments\x12\xdc\x01\n\x0e\x41ggregatedList\x12@.google.cloud.compute.v1.AggregatedListServiceAttachmentsRequest\x1a\x38.google.cloud.compute.v1.ServiceAttachmentAggregatedList\"N\xda\x41\x07project\x82\xd3\xe4\x93\x02>\x12/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}\x12\xb4\x01\n\x03Get\x12,.google.cloud.compute.v1.GetSslPolicyRequest\x1a\".google.cloud.compute.v1.SslPolicy\"[\xda\x41\x12project,ssl_policy\x82\xd3\xe4\x93\x02@\x12>/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}\x12\xde\x01\n\x06Insert\x12/.google.cloud.compute.v1.InsertSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x1bproject,ssl_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02H\"1/compute/v1/projects/{project}/global/sslPolicies:\x13ssl_policy_resource\x12\xa6\x01\n\x04List\x12/.google.cloud.compute.v1.ListSslPoliciesRequest\x1a(.google.cloud.compute.v1.SslPoliciesList\"C\xda\x41\x07project\x82\xd3\xe4\x93\x02\x33\x12\x31/compute/v1/projects/{project}/global/sslPolicies\x12\xf7\x01\n\x15ListAvailableFeatures\x12@.google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest\x1a\x41.google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse\"Y\xda\x41\x07project\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/global/sslPolicies/listAvailableFeatures\x12\xf5\x01\n\x05Patch\x12..google.cloud.compute.v1.PatchSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41&project,ssl_policy,ssl_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U2>/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}:\x13ssl_policy_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb5\x06\n\x10StoragePoolTypes\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListStoragePoolTypesRequest\x1a\x36.google.cloud.compute.v1.StoragePoolTypeAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/storagePoolTypes\x12\xde\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetStoragePoolTypeRequest\x1a(.google.cloud.compute.v1.StoragePoolType\"y\xda\x41\x1eproject,zone,storage_pool_type\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/zones/{zone}/storagePoolTypes/{storage_pool_type}\x12\xbf\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListStoragePoolTypesRequest\x1a,.google.cloud.compute.v1.StoragePoolTypeList\"S\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02>\x12\x12.google.cloud.compute.v1.AggregatedListTargetTcpProxiesRequest\x1a\x35.google.cloud.compute.v1.TargetTcpProxyAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/targetTcpProxies\x12\xe3\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x18project,target_tcp_proxy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K*I/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}\x12\xcf\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetTargetTcpProxyRequest\x1a\'.google.cloud.compute.v1.TargetTcpProxy\"l\xda\x41\x18project,target_tcp_proxy\x82\xd3\xe4\x93\x02K\x12I/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}\x12\xf5\x01\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41!project,target_tcp_proxy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02S\"6/compute/v1/projects/{project}/global/targetTcpProxies:\x19target_tcp_proxy_resource\x12\xb3\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListTargetTcpProxiesRequest\x1a+.google.cloud.compute.v1.TargetTcpProxyList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/global/targetTcpProxies\x12\xfe\x02\n\x11SetBackendService\x12?.google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x83\x02\xda\x41Pproject,target_tcp_proxy,target_tcp_proxies_set_backend_service_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x96\x01\"[/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setBackendService:7target_tcp_proxies_set_backend_service_request_resource\x12\xef\x02\n\x0eSetProxyHeader\x12<.google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xfa\x01\xda\x41Mproject,target_tcp_proxy,target_tcp_proxies_set_proxy_header_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x90\x01\"X/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setProxyHeader:4target_tcp_proxies_set_proxy_header_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xec\x0c\n\x11TargetVpnGateways\x12\xd9\x01\n\x0e\x41ggregatedList\x12?.google.cloud.compute.v1.AggregatedListTargetVpnGatewaysRequest\x1a\x37.google.cloud.compute.v1.TargetVpnGatewayAggregatedList\"M\xda\x41\x07project\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/aggregated/targetVpnGateways\x12\xfc\x01\n\x06\x44\x65lete\x12\x36.google.cloud.compute.v1.DeleteTargetVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\x95\x01\xda\x41!project,region,target_vpn_gateway\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02X*V/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}\x12\xea\x01\n\x03Get\x12\x33.google.cloud.compute.v1.GetTargetVpnGatewayRequest\x1a).google.cloud.compute.v1.TargetVpnGateway\"\x82\x01\xda\x41!project,region,target_vpn_gateway\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}\x12\x8d\x02\n\x06Insert\x12\x36.google.cloud.compute.v1.InsertTargetVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\xa6\x01\xda\x41*project,region,target_vpn_gateway_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02`\"A/compute/v1/projects/{project}/regions/{region}/targetVpnGateways:\x1btarget_vpn_gateway_resource\x12\xc8\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListTargetVpnGatewaysRequest\x1a-.google.cloud.compute.v1.TargetVpnGatewayList\"Z\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/regions/{region}/targetVpnGateways\x12\xbf\x02\n\tSetLabels\x12\x39.google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\xd2\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02|\"V/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9e\x10\n\x07UrlMaps\x12\xbc\x01\n\x0e\x41ggregatedList\x12\x35.google.cloud.compute.v1.AggregatedListUrlMapsRequest\x1a..google.cloud.compute.v1.UrlMapsAggregatedList\"C\xda\x41\x07project\x82\xd3\xe4\x93\x02\x33\x12\x31/compute/v1/projects/{project}/aggregated/urlMaps\x12\xc0\x01\n\x06\x44\x65lete\x12,.google.cloud.compute.v1.DeleteUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"d\xda\x41\x0fproject,url_map\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x39*7/compute/v1/projects/{project}/global/urlMaps/{url_map}\x12\xa4\x01\n\x03Get\x12).google.cloud.compute.v1.GetUrlMapRequest\x1a\x1f.google.cloud.compute.v1.UrlMap\"Q\xda\x41\x0fproject,url_map\x82\xd3\xe4\x93\x02\x39\x12\x37/compute/v1/projects/{project}/global/urlMaps/{url_map}\x12\xd1\x01\n\x06Insert\x12,.google.cloud.compute.v1.InsertUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"u\xda\x41\x18project,url_map_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x41\"-/compute/v1/projects/{project}/global/urlMaps:\x10url_map_resource\x12\xa6\x02\n\x0fInvalidateCache\x12\x35.google.cloud.compute.v1.InvalidateCacheUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"\xb7\x01\xda\x41\x30project,url_map,cache_invalidation_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02k\"G/compute/v1/projects/{project}/global/urlMaps/{url_map}/invalidateCache: cache_invalidation_rule_resource\x12\x99\x01\n\x04List\x12+.google.cloud.compute.v1.ListUrlMapsRequest\x1a#.google.cloud.compute.v1.UrlMapList\"?\xda\x41\x07project\x82\xd3\xe4\x93\x02/\x12-/compute/v1/projects/{project}/global/urlMaps\x12\xe2\x01\n\x05Patch\x12+.google.cloud.compute.v1.PatchUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41 project,url_map,url_map_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K27/compute/v1/projects/{project}/global/urlMaps/{url_map}:\x10url_map_resource\x12\xe4\x01\n\x06Update\x12,.google.cloud.compute.v1.UpdateUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41 project,url_map,url_map_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K\x1a\x37/compute/v1/projects/{project}/global/urlMaps/{url_map}:\x10url_map_resource\x12\x90\x02\n\x08Validate\x12..google.cloud.compute.v1.ValidateUrlMapRequest\x1a\x30.google.cloud.compute.v1.UrlMapsValidateResponse\"\xa1\x01\xda\x41\x32project,url_map,url_maps_validate_request_resource\x82\xd3\xe4\x93\x02\x66\"@/compute/v1/projects/{project}/global/urlMaps/{url_map}/validate:\"url_maps_validate_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9f\x10\n\x0bVpnGateways\x12\xc7\x01\n\x0e\x41ggregatedList\x12\x39.google.cloud.compute.v1.AggregatedListVpnGatewaysRequest\x1a\x31.google.cloud.compute.v1.VpnGatewayAggregatedList\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/aggregated/vpnGateways\x12\xe2\x01\n\x06\x44\x65lete\x12\x30.google.cloud.compute.v1.DeleteVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\x81\x01\xda\x41\x1aproject,region,vpn_gateway\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02K*I/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}\x12\xc9\x01\n\x03Get\x12-.google.cloud.compute.v1.GetVpnGatewayRequest\x1a#.google.cloud.compute.v1.VpnGateway\"n\xda\x41\x1aproject,region,vpn_gateway\x82\xd3\xe4\x93\x02K\x12I/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}\x12\xf1\x01\n\tGetStatus\x12\x33.google.cloud.compute.v1.GetStatusVpnGatewayRequest\x1a\x35.google.cloud.compute.v1.VpnGatewaysGetStatusResponse\"x\xda\x41\x1aproject,region,vpn_gateway\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}/getStatus\x12\xf3\x01\n\x06Insert\x12\x30.google.cloud.compute.v1.InsertVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\x92\x01\xda\x41#project,region,vpn_gateway_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S\";/compute/v1/projects/{project}/regions/{region}/vpnGateways:\x14vpn_gateway_resource\x12\xb6\x01\n\x04List\x12/.google.cloud.compute.v1.ListVpnGatewaysRequest\x1a\'.google.cloud.compute.v1.VpnGatewayList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/vpnGateways\x12\xb3\x02\n\tSetLabels\x12\x33.google.cloud.compute.v1.SetLabelsVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\xcc\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02v\"P/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels:\"region_set_labels_request_resource\x12\xc7\x02\n\x12TestIamPermissions\x12<.google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc0\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02~\"Y/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xca\x0b\n\nVpnTunnels\x12\xc4\x01\n\x0e\x41ggregatedList\x12\x38.google.cloud.compute.v1.AggregatedListVpnTunnelsRequest\x1a\x30.google.cloud.compute.v1.VpnTunnelAggregatedList\"F\xda\x41\x07project\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/aggregated/vpnTunnels\x12\xdd\x01\n\x06\x44\x65lete\x12/.google.cloud.compute.v1.DeleteVpnTunnelRequest\x1a\".google.cloud.compute.v1.Operation\"~\xda\x41\x19project,region,vpn_tunnel\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02I*G/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}\x12\xc4\x01\n\x03Get\x12,.google.cloud.compute.v1.GetVpnTunnelRequest\x1a\".google.cloud.compute.v1.VpnTunnel\"k\xda\x41\x19project,region,vpn_tunnel\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}\x12\xef\x01\n\x06Insert\x12/.google.cloud.compute.v1.InsertVpnTunnelRequest\x1a\".google.cloud.compute.v1.Operation\"\x8f\x01\xda\x41\"project,region,vpn_tunnel_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02Q\":/compute/v1/projects/{project}/regions/{region}/vpnTunnels:\x13vpn_tunnel_resource\x12\xb3\x01\n\x04List\x12..google.cloud.compute.v1.ListVpnTunnelsRequest\x1a&.google.cloud.compute.v1.VpnTunnelList\"S\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/regions/{region}/vpnTunnels\x12\xb1\x02\n\tSetLabels\x12\x32.google.cloud.compute.v1.SetLabelsVpnTunnelRequest\x1a\".google.cloud.compute.v1.Operation\"\xcb\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02u\"O/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xa3\x07\n\x0eZoneOperations\x12\xd8\x01\n\x06\x44\x65lete\x12\x33.google.cloud.compute.v1.DeleteZoneOperationRequest\x1a\x34.google.cloud.compute.v1.DeleteZoneOperationResponse\"c\xda\x41\x16project,zone,operation\x82\xd3\xe4\x93\x02\x44*B/compute/v1/projects/{project}/zones/{zone}/operations/{operation}\x12\xc3\x01\n\x03Get\x12\x30.google.cloud.compute.v1.GetZoneOperationRequest\x1a\".google.cloud.compute.v1.Operation\"f\xda\x41\x16project,zone,operation\x90N\x01\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/zones/{zone}/operations/{operation}\x12\xb1\x01\n\x04List\x12\x32.google.cloud.compute.v1.ListZoneOperationsRequest\x1a&.google.cloud.compute.v1.OperationList\"M\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/zones/{zone}/operations\x12\xc7\x01\n\x04Wait\x12\x31.google.cloud.compute.v1.WaitZoneOperationRequest\x1a\".google.cloud.compute.v1.Operation\"h\xda\x41\x16project,zone,operation\x82\xd3\xe4\x93\x02I\"G/compute/v1/projects/{project}/zones/{zone}/operations/{operation}/wait\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd1\x03\n\x05Zones\x12\x91\x01\n\x03Get\x12\'.google.cloud.compute.v1.GetZoneRequest\x1a\x1d.google.cloud.compute.v1.Zone\"B\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02-\x12+/compute/v1/projects/{project}/zones/{zone}\x12\x8c\x01\n\x04List\x12).google.cloud.compute.v1.ListZonesRequest\x1a!.google.cloud.compute.v1.ZoneList\"6\xda\x41\x07project\x82\xd3\xe4\x93\x02&\x12$/compute/v1/projects/{project}/zones\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platformB\xa7\x01\n\x1b\x63om.google.cloud.compute.v1P\x01Z5cloud.google.com/go/compute/apiv1/computepb;computepb\xaa\x02\x17Google.Cloud.Compute.V1\xca\x02\x17Google\\Cloud\\Compute\\V1\xea\x02\x1aGoogle::Cloud::Compute::V1b\x06proto3" +descriptor_data = "\n%google/cloud/compute/v1/compute.proto\x12\x17google.cloud.compute.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a&google/cloud/extended_operations.proto\x1a\x19google/protobuf/any.proto\"\xda\x01\n\x0e\x41WSV4Signature\x12\x1b\n\naccess_key\x18\x84\xe2\xcc\xdf\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\raccess_key_id\x18\xb6\xe4\xd9\x8b\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x61\x63\x63\x65ss_key_version\x18\x9d\xe1\xa2& \x01(\tH\x02\x88\x01\x01\x12\x1d\n\rorigin_region\x18\xad\xfc\xc0~ \x01(\tH\x03\x88\x01\x01\x42\r\n\x0b_access_keyB\x10\n\x0e_access_key_idB\x15\n\x13_access_key_versionB\x10\n\x0e_origin_region\"\xd5\x02\n+AbandonInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x92\x01\n:instance_group_managers_abandon_instances_request_resource\x18\xf8\xf9\x83\x99\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.InstanceGroupManagersAbandonInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xec\x02\n1AbandonInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9f\x01\nAregion_instance_group_managers_abandon_instances_request_resource\x18\xa3\xd2\xf7\xe8\x01 \x01(\x0b\x32K.google.cloud.compute.v1.RegionInstanceGroupManagersAbandonInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x84\x01\n\x11\x41\x63\x63\x65leratorConfig\x12\"\n\x11\x61\x63\x63\x65lerator_count\x18\xbb\xb4\xdf\xf0\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x10\x61\x63\x63\x65lerator_type\x18\x8e\xe1\xe8\x41 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_accelerator_countB\x13\n\x11_accelerator_type\"\xbd\x03\n\x0f\x41\x63\x63\x65leratorType\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12*\n\x1amaximum_cards_per_instance\x18\xd2\xfa\xe5} \x01(\x05H\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x08\x88\x01\x01\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x1d\n\x1b_maximum_cards_per_instanceB\x07\n\x05_nameB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xce\x03\n\x1d\x41\x63\x63\x65leratorTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.AcceleratorTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.AcceleratorTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x02\n\x13\x41\x63\x63\x65leratorTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.AcceleratorType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xac\x01\n\x1a\x41\x63\x63\x65leratorTypesScopedList\x12G\n\x11\x61\x63\x63\x65lerator_types\x18\xa5\xc3\xaf\xf8\x01 \x03(\x0b\x32(.google.cloud.compute.v1.AcceleratorType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x98\x01\n\x0c\x41\x63\x63\x65lerators\x12(\n\x17guest_accelerator_count\x18\x94\xd7\xb8\xe4\x01 \x01(\x05H\x00\x88\x01\x01\x12\'\n\x16guest_accelerator_type\x18\x95\xa0\xdf\x8b\x01 \x01(\tH\x01\x88\x01\x01\x42\x1a\n\x18_guest_accelerator_countB\x19\n\x17_guest_accelerator_type\"\xc6\x05\n\x0c\x41\x63\x63\x65ssConfig\x12\x1e\n\rexternal_ipv6\x18\xdb\xd3\x81\xfe\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x1b\x65xternal_ipv6_prefix_length\x18\xcf\xfb\xfc\xca\x01 \x01(\x05H\x01\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07nat_i_p\x18\xfc\xeb\x8b\x38 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0cnetwork_tier\x18\xd3\xba\xdb\xf6\x01 \x01(\tH\x05\x88\x01\x01\x12\'\n\x16public_ptr_domain_name\x18\xff\xd6\xfb\x96\x01 \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x07\x88\x01\x01\x12\x1f\n\x0eset_public_ptr\x18\x95\xc0\xe6\xf9\x01 \x01(\x08H\x08\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\t\x88\x01\x01\"\x8f\x01\n\x0bNetworkTier\x12\x1a\n\x16UNDEFINED_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"E\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\x0b\x44IRECT_IPV6\x10\x9d\xb1\x8c\x02\x12\x15\n\x0eONE_TO_ONE_NAT\x10\xdd\xba\x8c(B\x10\n\x0e_external_ipv6B\x1e\n\x1c_external_ipv6_prefix_lengthB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_nat_i_pB\x0f\n\r_network_tierB\x19\n\x17_public_ptr_domain_nameB\x12\n\x10_security_policyB\x11\n\x0f_set_public_ptrB\x07\n\x05_type\"\x99\x02\n\x1e\x41\x64\x64\x41\x63\x63\x65ssConfigInstanceRequest\x12N\n\x16\x61\x63\x63\x65ss_config_resource\x18\x90\xff\xf6\xb8\x01 \x01(\x0b\x32%.google.cloud.compute.v1.AccessConfigB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xab\x02\n#AddAssociationFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12h\n$firewall_policy_association_resource\x18\xba\xb8\xe1{ \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociationB\x03\xe0\x41\x02\x12,\n\x1creplace_existing_association\x18\xf8\xb0\xf5\x63 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x1f\n\x1d_replace_existing_associationB\r\n\x0b_request_id\"\xd5\x02\n*AddAssociationNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12h\n$firewall_policy_association_resource\x18\xba\xb8\xe1{ \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociationB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12,\n\x1creplace_existing_association\x18\xf8\xb0\xf5\x63 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x1f\n\x1d_replace_existing_associationB\r\n\x0b_request_id\"\xfc\x02\n0AddAssociationRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12h\n$firewall_policy_association_resource\x18\xba\xb8\xe1{ \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociationB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12,\n\x1creplace_existing_association\x18\xf8\xb0\xf5\x63 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x1f\n\x1d_replace_existing_associationB\r\n\x0b_request_id\"\xa9\x02\n\x1f\x41\x64\x64HealthCheckTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12z\n.target_pools_add_health_check_request_resource\x18\xa4\xba\xc5\x80\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.TargetPoolsAddHealthCheckRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9f\x02\n\x1c\x41\x64\x64InstanceTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12s\n*target_pools_add_instance_request_resource\x18\xf4\xd3\xbb\xcc\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.TargetPoolsAddInstanceRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xaa\x02\n AddInstancesInstanceGroupRequest\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12{\n.instance_groups_add_instances_request_resource\x18\xde\xba\xac\xd8\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstanceGroupsAddInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x81\x02\n\"AddNetworkInterfaceInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12V\n\x1anetwork_interface_resource\x18\x85\x94\xae\x9b\x01 \x01(\x0b\x32).google.cloud.compute.v1.NetworkInterfaceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x8e\x02\n\x18\x41\x64\x64NodesNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12j\n&node_groups_add_nodes_request_resource\x18\xb8\xd6\xcb> \x01(\x0b\x32\x32.google.cloud.compute.v1.NodeGroupsAddNodesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xdf\x02\n2AddPacketMirroringRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\x0cmax_priority\x18\x9f\xac\x97\x9d\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0cmin_priority\x18\xf1\x81\xb4\x7f \x01(\x05H\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_max_priorityB\x0f\n\r_min_priorityB\r\n\x0b_request_id\"\xed\x01\n\x18\x41\x64\x64PeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12j\n%networks_add_peering_request_resource\x18\xb5\x8d\xb3\xb9\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.NetworksAddPeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9a\x02\n\x1e\x41\x64\x64ResourcePoliciesDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12w\n,disks_add_resource_policies_request_resource\x18\xa3\xf8\xde\xec\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.DisksAddResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xaa\x02\n\"AddResourcePoliciesInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x7f\n0instances_add_resource_policies_request_resource\x18\x9b\xd6\xab\xe9\x01 \x01(\x0b\x32<.google.cloud.compute.v1.InstancesAddResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb2\x02\n$AddResourcePoliciesRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x84\x01\n3region_disks_add_resource_policies_request_resource\x18\x8e\xff\xc1\x87\x01 \x01(\x0b\x32>.google.cloud.compute.v1.RegionDisksAddResourcePoliciesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc7\x01\n\x1c\x41\x64\x64RuleFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd0\x02\n#AddRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\x0cmax_priority\x18\x9f\xac\x97\x9d\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0cmin_priority\x18\xf1\x81\xb4\x7f \x01(\x05H\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_max_priorityB\x0f\n\r_min_priorityB\r\n\x0b_request_id\"\xf7\x02\n)AddRuleRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\x0cmax_priority\x18\x9f\xac\x97\x9d\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0cmin_priority\x18\xf1\x81\xb4\x7f \x01(\x05H\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_max_priorityB\x0f\n\r_min_priorityB\r\n\x0b_request_id\"\x97\x02\n\"AddRuleRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x00\x88\x01\x01\x42\x10\n\x0e_validate_only\"\xf0\x01\n\x1c\x41\x64\x64RuleSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x00\x88\x01\x01\x42\x10\n\x0e_validate_only\"\xe4\x01\n#AddSignedUrlKeyBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12O\n\x17signed_url_key_resource\x18\x81\xa3\x9b\xda\x01 \x01(\x0b\x32%.google.cloud.compute.v1.SignedUrlKeyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe7\x01\n$AddSignedUrlKeyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12O\n\x17signed_url_key_resource\x18\x81\xa3\x9b\xda\x01 \x01(\x0b\x32%.google.cloud.compute.v1.SignedUrlKeyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe6\x0c\n\x07\x41\x64\x64ress\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0c\x61\x64\x64ress_type\x18\xa5\x89\x84~ \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x1b\n\nip_version\x18\xc0\xf3\xd2\x8c\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x12ipv6_endpoint_type\x18\xcc\xfe\xbe. \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x08\x88\x01\x01\x12@\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32,.google.cloud.compute.v1.Address.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\n\x88\x01\x01\x12\x1d\n\x0cnetwork_tier\x18\xd3\xba\xdb\xf6\x01 \x01(\tH\x0b\x88\x01\x01\x12\x1e\n\rprefix_length\x18\xb3\xba\xa3\xd8\x01 \x01(\x05H\x0c\x88\x01\x01\x12\x18\n\x07purpose\x18\x9e\xfa\xef\x96\x01 \x01(\tH\r\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0e\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0f\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x10\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x11\x88\x01\x01\x12\x10\n\x05users\x18\x88\x9c\x9a\x35 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"e\n\x0b\x41\x64\x64ressType\x12\x1a\n\x16UNDEFINED_ADDRESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12\x17\n\x10UNSPECIFIED_TYPE\x10\xe2\xee\xdb\x19\"[\n\tIpVersion\x12\x18\n\x14UNDEFINED_IP_VERSION\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\x12\x1a\n\x13UNSPECIFIED_VERSION\x10\x90\xcf\xb5\n\"K\n\x10Ipv6EndpointType\x12 \n\x1cUNDEFINED_IPV6_ENDPOINT_TYPE\x10\x00\x12\x0c\n\x05NETLB\x10\xb3\x97\xaf#\x12\x07\n\x02VM\x10\xb7\x15\"\x8f\x01\n\x0bNetworkTier\x12\x1a\n\x16UNDEFINED_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"\xe2\x01\n\x07Purpose\x12\x15\n\x11UNDEFINED_PURPOSE\x10\x00\x12\x14\n\x0c\x44NS_RESOLVER\x10\xfc\xdc\x83\xe3\x01\x12\x13\n\x0cGCE_ENDPOINT\x10\xab\xc4\xf5m\x12\x1a\n\x12IPSEC_INTERCONNECT\x10\x83\xd2\xaa\xa2\x01\x12\x0f\n\x08NAT_AUTO\x10\xad\xb4\x85N\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x12\n\nSERVERLESS\x10\xdc\xc6\xfd\x80\x01\x12\x1f\n\x17SHARED_LOADBALANCER_VIP\x10\xd4\xd3\xb3\x8c\x01\x12\x13\n\x0bVPC_PEERING\x10\xaa\xf3\x8e\xbf\x01\"R\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\r\n\x06IN_USE\x10\xcd\xce\xa5\x08\x12\x10\n\x08RESERVED\x10\xa8\xf6\x8d\xce\x01\x12\x11\n\tRESERVING\x10\xd9\xf4\xaf\xf5\x01\x42\n\n\x08_addressB\x0f\n\r_address_typeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\r\n\x0b_ip_versionB\x15\n\x13_ipv6_endpoint_typeB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\n\n\x08_networkB\x0f\n\r_network_tierB\x10\n\x0e_prefix_lengthB\n\n\x08_purposeB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_statusB\r\n\x0b_subnetwork\"\xb7\x03\n\x15\x41\x64\x64ressAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12K\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x39.google.cloud.compute.v1.AddressAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.AddressesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9f\x02\n\x0b\x41\x64\x64ressList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.Address\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x95\x01\n\x13\x41\x64\x64ressesScopedList\x12\x37\n\taddresses\x18\xa2\xf7\x81\xa1\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Address\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xcd\x04\n\x17\x41\x64vancedMachineFeatures\x12,\n\x1c\x65nable_nested_virtualization\x18\x85\xcb\xf7\x07 \x01(\x08H\x00\x88\x01\x01\x12\'\n\x16\x65nable_uefi_networking\x18\xa4\xb1\xbf\x9f\x01 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1bperformance_monitoring_unit\x18\x8c\xc2\xb9\xfe\x01 \x01(\tH\x02\x88\x01\x01\x12!\n\x10threads_per_core\x18\xd7\xda\x91\xa8\x01 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\nturbo_mode\x18\xa4\x8e\xba\xce\x01 \x01(\tH\x04\x88\x01\x01\x12\"\n\x12visible_core_count\x18\xdc\xf4\x8f\\ \x01(\x05H\x05\x88\x01\x01\"\xb1\x01\n\x19PerformanceMonitoringUnit\x12)\n%UNDEFINED_PERFORMANCE_MONITORING_UNIT\x10\x00\x12\x14\n\rARCHITECTURAL\x10\xdd\xb1\xfbI\x12\x10\n\x08\x45NHANCED\x10\xf6\x86\xb2\xe3\x01\x12/\n\'PERFORMANCE_MONITORING_UNIT_UNSPECIFIED\x10\xc4\xf8\xd4\xcc\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\x1f\n\x1d_enable_nested_virtualizationB\x19\n\x17_enable_uefi_networkingB\x1e\n\x1c_performance_monitoring_unitB\x13\n\x11_threads_per_coreB\r\n\x0b_turbo_modeB\x15\n\x13_visible_core_count\"\xa7\x03\n%AggregatedListAcceleratorTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListAddressesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListAutoscalersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListDiskTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x9c\x03\n\x1a\x41ggregatedListDisksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListForwardingRulesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListGlobalOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListHealthChecksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xac\x03\n*AggregatedListInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa5\x03\n#AggregatedListInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListInstanceTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListInstantSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xae\x03\n,AggregatedListInterconnectAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListMachineTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa9\x03\n\'AggregatedListNetworkAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xb2\x03\n0AggregatedListNetworkEdgeSecurityServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xac\x03\n*AggregatedListNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xae\x03\n,AggregatedListNetworkFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa1\x03\n\x1f\x41ggregatedListNodeGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa4\x03\n\"AggregatedListNodeTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa0\x03\n\x1e\x41ggregatedListNodeTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListPacketMirroringsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xae\x03\n,AggregatedListPublicDelegatedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListRegionCommitmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListReservationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListResourcePoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x9e\x03\n\x1c\x41ggregatedListRoutersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa9\x03\n\'AggregatedListServiceAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListSslCertificatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListStoragePoolTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa3\x03\n!AggregatedListStoragePoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListSubnetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListTargetHttpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa9\x03\n\'AggregatedListTargetHttpsProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa6\x03\n$AggregatedListTargetInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListTargetPoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa7\x03\n%AggregatedListTargetTcpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa8\x03\n&AggregatedListTargetVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x9e\x03\n\x1c\x41ggregatedListUrlMapsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa2\x03\n AggregatedListVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\xa1\x03\n\x1f\x41ggregatedListVpnTunnelsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12include_all_scopes\x18\xf4\xe1\xcc\xba\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x12\'\n\x16service_project_number\x18\xf9\xab\x85\x97\x01 \x01(\x03H\x06\x88\x01\x01\x42\t\n\x07_filterB\x15\n\x13_include_all_scopesB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x19\n\x17_service_project_number\"\x81\x01\n\x0c\x41liasIpRange\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x12&\n\x15subnetwork_range_name\x18\xbe\xb2\x81\xb9\x01 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_ip_cidr_rangeB\x18\n\x16_subnetwork_range_name\"\x92\x06\n\x1e\x41llocationAggregateReservation\x12i\n\x10in_use_resources\x18\xd3\xf7\x83\xc3\x01 \x03(\x0b\x32K.google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo\x12j\n\x12reserved_resources\x18\xce\xe3\xd5\x65 \x03(\x0b\x32K.google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfo\x12\x19\n\tvm_family\x18\xec\xbb\xce; \x01(\tH\x00\x88\x01\x01\x12\x1e\n\rworkload_type\x18\x82\xfe\xb0\x82\x01 \x01(\tH\x01\x88\x01\x01\"\xdd\x02\n\x08VmFamily\x12\x17\n\x13UNDEFINED_VM_FAMILY\x10\x00\x12%\n\x1eVM_FAMILY_CLOUD_TPU_DEVICE_CT3\x10\xfc\x8d\xb7\x14\x12+\n$VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L\x10\xe3\x82\xc1\x33\x12/\n(VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP\x10\xf3\xd6\xf5\x08\x12/\n\'VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E\x10\x95\xc9\x9c\xbe\x01\x12*\n\"VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P\x10\xb8\xd1\xda\xf6\x01\x12*\n\"VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P\x10\xd7\xd1\xda\xf6\x01\x12*\n\"VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P\x10\xf6\xd1\xda\xf6\x01\"^\n\x0cWorkloadType\x12\x1b\n\x17UNDEFINED_WORKLOAD_TYPE\x10\x00\x12\x0c\n\x05\x42\x41TCH\x10\x9a\xbe\x83\x1e\x12\x0e\n\x07SERVING\x10\xec\xa7\xbd\x08\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0c\n\n_vm_familyB\x10\n\x0e_workload_type\"\xba\x01\n2AllocationAggregateReservationReservedResourceInfo\x12t\n\x0b\x61\x63\x63\x65lerator\x18\xeb\xc4\xab\xca\x01 \x01(\x0b\x32V.google.cloud.compute.v1.AllocationAggregateReservationReservedResourceInfoAcceleratorH\x00\x88\x01\x01\x42\x0e\n\x0c_accelerator\"\xb0\x01\n=AllocationAggregateReservationReservedResourceInfoAccelerator\x12\"\n\x11\x61\x63\x63\x65lerator_count\x18\xbb\xb4\xdf\xf0\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x10\x61\x63\x63\x65lerator_type\x18\x8e\xe1\xe8\x41 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_accelerator_countB\x13\n\x11_accelerator_type\"\xe8\x01\n\"AllocationReservationSharingPolicy\x12#\n\x12service_share_type\x18\xe4\x8e\xab\xf5\x01 \x01(\tH\x00\x88\x01\x01\"\x85\x01\n\x10ServiceShareType\x12 \n\x1cUNDEFINED_SERVICE_SHARE_TYPE\x10\x00\x12\x11\n\tALLOW_ALL\x10\xeb\xb6\xe0\xe2\x01\x12\x14\n\x0c\x44ISALLOW_ALL\x10\xbd\xdd\xba\x84\x01\x12&\n\x1eSERVICE_SHARE_TYPE_UNSPECIFIED\x10\xfc\xa5\x88\x85\x01\x42\x15\n\x13_service_share_type\"\xcb\x03\n\x18\x41llocationResourceStatus\x12X\n\x0bhealth_info\x18\xb1\xe9\x98p \x01(\x0b\x32;.google.cloud.compute.v1.AllocationResourceStatusHealthInfoH\x00\x88\x01\x01\x12\'\n\x17reservation_block_count\x18\xea\xd5\x95M \x01(\x05H\x01\x88\x01\x01\x12W\n\x17reservation_maintenance\x18\xa0\x86\xb5\xa2\x01 \x01(\x0b\x32-.google.cloud.compute.v1.GroupMaintenanceInfoH\x02\x88\x01\x01\x12o\n\x17specific_sku_allocation\x18\xef\xff\xc8] \x01(\x0b\x32\x46.google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocationH\x03\x88\x01\x01\x42\x0e\n\x0c_health_infoB\x1a\n\x18_reservation_block_countB\x1a\n\x18_reservation_maintenanceB\x1a\n\x18_specific_sku_allocation\"\xc6\x02\n\"AllocationResourceStatusHealthInfo\x12%\n\x14\x64\x65graded_block_count\x18\xcc\x8e\x91\xf5\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x01(\tH\x01\x88\x01\x01\x12#\n\x13healthy_block_count\x18\xbb\xfe\xd0j \x01(\x05H\x02\x88\x01\x01\"q\n\x0cHealthStatus\x12\x1b\n\x17UNDEFINED_HEALTH_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12!\n\x19HEALTH_STATUS_UNSPECIFIED\x10\x8d\x82\xfa\xe5\x01\x42\x17\n\x15_degraded_block_countB\x10\n\x0e_health_statusB\x16\n\x14_healthy_block_count\"\xa5\x02\n-AllocationResourceStatusSpecificSKUAllocation\x12+\n\x1bsource_instance_template_id\x18\xfa\xef\x82\x35 \x01(\tH\x00\x88\x01\x01\x12r\n\x0cutilizations\x18\x91\xad\xf6\xbf\x01 \x03(\x0b\x32X.google.cloud.compute.v1.AllocationResourceStatusSpecificSKUAllocation.UtilizationsEntry\x1a\x33\n\x11UtilizationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x42\x1e\n\x1c_source_instance_template_id\"\xe2\x01\nFAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1a\n\tinterface\x18\xb9\xda\xd5\xef\x01 \x01(\tH\x01\x88\x01\x01\">\n\tInterface\x12\x17\n\x13UNDEFINED_INTERFACE\x10\x00\x12\x0b\n\x04NVME\x10\xe0\x82\x93\x01\x12\x0b\n\x04SCSI\x10\xa6\x81\x9b\x01\x42\x0f\n\r_disk_size_gbB\x0c\n\n_interface\"\x97\x03\n9AllocationSpecificSKUAllocationReservedInstanceProperties\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12v\n\nlocal_ssds\x18\xc3\x8e\xd3m \x03(\x0b\x32_.google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x01\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_location_hintB\x0f\n\r_machine_typeB\x13\n\x11_min_cpu_platform\"\xfe\x02\n AllocationSpecificSKUReservation\x12\x1e\n\rassured_count\x18\xcd\xf8\x8a\x86\x01 \x01(\x03H\x00\x88\x01\x01\x12\x15\n\x05\x63ount\x18\x8f\xa2\x9d- \x01(\x03H\x01\x88\x01\x01\x12\x1d\n\x0cin_use_count\x18\xbd\xab\xa6\xeb\x01 \x01(\x03H\x02\x88\x01\x01\x12w\n\x13instance_properties\x18\x9d\x9e\xd8\x66 \x01(\x0b\x32R.google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstancePropertiesH\x03\x88\x01\x01\x12)\n\x18source_instance_template\x18\xc0\xc3\xc1\x9e\x01 \x01(\tH\x04\x88\x01\x01\x42\x10\n\x0e_assured_countB\x08\n\x06_countB\x0f\n\r_in_use_countB\x16\n\x14_instance_propertiesB\x1b\n\x19_source_instance_template\"K\n\x07\x41llowed\x12\x1d\n\x0cI_p_protocol\x18\xbd\xf6\xde\xe8\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05ports\x18\x92\xf0\xf9\x32 \x03(\tB\x0f\n\r_I_p_protocol\"\xa0\x01\n&AnnouncePublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x01\n%AnnouncePublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x02\n2ApplyUpdatesToInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x89\x01\n6instance_group_managers_apply_updates_request_resource\x18\xd3\xf6\xce{ \x01(\x0b\x32\x41.google.cloud.compute.v1.InstanceGroupManagersApplyUpdatesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zone\"\xbf\x02\n8ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x96\x01\n=region_instance_group_managers_apply_updates_request_resource\x18\xfe\xe9\xad$ \x01(\x0b\x32G.google.cloud.compute.v1.RegionInstanceGroupManagersApplyUpdatesRequestB\x03\xe0\x41\x02\"\x9e\x02\n\x19\x41ttachDiskInstanceRequest\x12M\n\x16\x61ttached_disk_resource\x18\x95\x92\x9a+ \x01(\x0b\x32%.google.cloud.compute.v1.AttachedDiskB\x03\xe0\x41\x02\x12\x1c\n\x0c\x66orce_attach\x18\x99\xa4\x89\x44 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x0f\n\r_force_attachB\r\n\x0b_request_id\"\xcf\x02\n7AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x12\x9c\x01\n@global_network_endpoint_groups_attach_endpoints_request_resource\x18\xeb\xa1\xd1\x0e \x01(\x0b\x32J.google.cloud.compute.v1.GlobalNetworkEndpointGroupsAttachEndpointsRequestB\x03\xe0\x41\x02\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x02\n1AttachNetworkEndpointsNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8e\x01\n9network_endpoint_groups_attach_endpoints_request_resource\x18\x87\xb5 \x01(\x0b\x32\x44.google.cloud.compute.v1.NetworkEndpointGroupsAttachEndpointsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf1\x02\n7AttachNetworkEndpointsRegionNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_network_endpoint_groups_attach_endpoints_request_resource\x18\xfc\xf9\xdd\x9f\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionNetworkEndpointGroupsAttachEndpointsRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xdc\n\n\x0c\x41ttachedDisk\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x14\n\x04\x62oot\x18\xf2\xf5\xb8\x01 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tH\x03\x88\x01\x01\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x04\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x05\x88\x01\x01\x12\x1c\n\x0c\x66orce_attach\x18\x99\xa4\x89\x44 \x01(\x08H\x06\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x15\n\x05index\x18\xd2\xd1\xec/ \x01(\x05H\x07\x88\x01\x01\x12X\n\x11initialize_params\x18\x95\x92\xb8\x08 \x01(\x0b\x32\x35.google.cloud.compute.v1.AttachedDiskInitializeParamsH\x08\x88\x01\x01\x12\x1a\n\tinterface\x18\xb9\xda\xd5\xef\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x0b\x88\x01\x01\x12\x1c\n\x0bsaved_state\x18\xd9\xa9\xa1\xc4\x01 \x01(\tH\x0c\x88\x01\x01\x12\\\n\x1fshielded_instance_initial_state\x18\x83\xc4\xdc[ \x01(\x0b\x32+.google.cloud.compute.v1.InitialStateConfigH\r\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x0e\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x0f\x88\x01\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\">\n\tInterface\x12\x17\n\x13UNDEFINED_INTERFACE\x10\x00\x12\x0b\n\x04NVME\x10\xe0\x82\x93\x01\x12\x0b\n\x04SCSI\x10\xa6\x81\x9b\x01\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x10\n\tREAD_ONLY\x10\xb5\x99\xec+\x12\x11\n\nREAD_WRITE\x10\xd6\x97\xe4R\"_\n\nSavedState\x12\x19\n\x15UNDEFINED_SAVED_STATE\x10\x00\x12$\n\x1c\x44ISK_SAVED_STATE_UNSPECIFIED\x10\xcf\xbf\xca\xba\x01\x12\x10\n\tPRESERVED\x10\xf8\xd6\x98y\"?\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\nPERSISTENT\x10\x97\xf5\xd5\xdb\x01\x12\x0f\n\x07SCRATCH\x10\xda\xfd\xf0\xec\x01\x42\x0f\n\r_architectureB\x0e\n\x0c_auto_deleteB\x07\n\x05_bootB\x0e\n\x0c_device_nameB\x16\n\x14_disk_encryption_keyB\x0f\n\r_disk_size_gbB\x0f\n\r_force_attachB\x08\n\x06_indexB\x14\n\x12_initialize_paramsB\x0c\n\n_interfaceB\x07\n\x05_kindB\x07\n\x05_modeB\x0e\n\x0c_saved_stateB\"\n _shielded_instance_initial_stateB\t\n\x07_sourceB\x07\n\x05_type\"\x8f\x0c\n\x1c\x41ttachedDiskInitializeParams\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tdisk_name\x18\xed\xbf\xa0, \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x03\x88\x01\x01\x12\x19\n\tdisk_type\x18\x9c\xe9\xac, \x01(\tH\x04\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x05\x88\x01\x01\x12U\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x41.google.cloud.compute.v1.AttachedDiskInitializeParams.LabelsEntry\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12 \n\x10on_update_action\x18\x8c\xd8\xc4` \x01(\tH\x06\x88\x01\x01\x12 \n\x10provisioned_iops\x18\xd4\xbd\x87Y \x01(\x03H\x07\x88\x01\x01\x12\'\n\x16provisioned_throughput\x18\x95\xbe\x88\xfb\x01 \x01(\x03H\x08\x88\x01\x01\x12\x18\n\rreplica_zones\x18\x80\xb8\x8c\x17 \x03(\t\x12q\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32N.google.cloud.compute.v1.AttachedDiskInitializeParams.ResourceManagerTagsEntry\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\t\x88\x01\x01\x12\\\n\x1bsource_image_encryption_key\x18\xab\x91\xf5\xb5\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\n\x88\x01\x01\x12\x1f\n\x0fsource_snapshot\x18\xe8\x9a\x8e< \x01(\tH\x0b\x88\x01\x01\x12_\n\x1esource_snapshot_encryption_key\x18\xda\x8e\xe7\x90\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x0c\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tH\r\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"\x8a\x01\n\x0eOnUpdateAction\x12\x1e\n\x1aUNDEFINED_ON_UPDATE_ACTION\x10\x00\x12\x15\n\rRECREATE_DISK\x10\xed\x9d\xf6\xeb\x01\x12\'\n\x1fRECREATE_DISK_IF_SOURCE_CHANGED\x10\x80\x8a\xea\xbd\x01\x12\x18\n\x11USE_EXISTING_DISK\x10\xf9\xe5\xf9nB\x0f\n\r_architectureB\x0e\n\x0c_descriptionB\x0c\n\n_disk_nameB\x0f\n\r_disk_size_gbB\x0c\n\n_disk_typeB\x1e\n\x1c_enable_confidential_computeB\x13\n\x11_on_update_actionB\x13\n\x11_provisioned_iopsB\x19\n\x17_provisioned_throughputB\x0f\n\r_source_imageB\x1e\n\x1c_source_image_encryption_keyB\x12\n\x10_source_snapshotB!\n\x1f_source_snapshot_encryption_keyB\x0f\n\r_storage_pool\"\x98\x01\n\x0b\x41uditConfig\x12\x46\n\x11\x61udit_log_configs\x18\x92\xea\xf2\xe8\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.AuditLogConfig\x12\x1b\n\x10\x65xempted_members\x18\x98\xdd\xf5n \x03(\t\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_service\"\x94\x02\n\x0e\x41uditLogConfig\x12\x1b\n\x10\x65xempted_members\x18\x98\xdd\xf5n \x03(\t\x12\'\n\x17ignore_child_exemptions\x18\x9a\x8f\xb9! \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x08log_type\x18\xd5\x9e\x9c\xc0\x01 \x01(\tH\x01\x88\x01\x01\"x\n\x07LogType\x12\x16\n\x12UNDEFINED_LOG_TYPE\x10\x00\x12\x11\n\nADMIN_READ\x10\xa6\xc9\xbe=\x12\x11\n\tDATA_READ\x10\x8b\xba\xc5\x91\x01\x12\x12\n\nDATA_WRITE\x10\xea\x85\x9b\xa2\x01\x12\x1b\n\x14LOG_TYPE_UNSPECIFIED\x10\xcd\xca\xd7IB\x1a\n\x18_ignore_child_exemptionsB\x0b\n\t_log_type\"\x9d\x07\n\nAutoscaler\x12N\n\x12\x61utoscaling_policy\x18\xd9\xe0\xeai \x01(\x0b\x32*.google.cloud.compute.v1.AutoscalingPolicyH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12 \n\x10recommended_size\x18\xe5\xf6\xfdz \x01(\x05H\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x63\n\x17scaling_schedule_status\x18\xe2\xab\x97\xde\x01 \x03(\x0b\x32>.google.cloud.compute.v1.Autoscaler.ScalingScheduleStatusEntry\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\t\x88\x01\x01\x12L\n\x0estatus_details\x18\xf5\xad\xa1\xad\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.AutoscalerStatusDetails\x12\x16\n\x06target\x18\x91\xe3\xf9[ \x01(\tH\n\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0b\x88\x01\x01\x1al\n\x1aScalingScheduleStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.ScalingScheduleStatus:\x02\x38\x01\"^\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0c\n\x05\x45RROR\x10\xe8\xb3\xcb\x1f\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x42\x15\n\x13_autoscaling_policyB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x13\n\x11_recommended_sizeB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_statusB\t\n\x07_targetB\x07\n\x05_zone\"\xbf\x03\n\x18\x41utoscalerAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.AutoscalerAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.AutoscalersScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0e\x41utoscalerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Autoscaler\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xcb\x06\n\x17\x41utoscalerStatusDetails\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x01\x88\x01\x01\"\xea\x05\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1f\n\x17\x41LL_INSTANCES_UNHEALTHY\x10\xe5\x90\x8d\xc1\x01\x12%\n\x1e\x42\x41\x43KEND_SERVICE_DOES_NOT_EXIST\x10\x9a\x9a\xa3[\x12 \n\x1a\x43\x41PPED_AT_MAX_NUM_REPLICAS\x10\xd9\xd3\x1f\x12,\n$CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE\x10\xb3\xb4\xee\x9c\x01\x12\x1c\n\x15\x43USTOM_METRIC_INVALID\x10\xd6\xb9\xbd\x61\x12\x15\n\x0eMIN_EQUALS_MAX\x10\xf1\x99\xac\x01\x12(\n!MISSING_CUSTOM_METRIC_DATA_POINTS\x10\xde\xa9\x9f-\x12*\n\"MISSING_LOAD_BALANCING_DATA_POINTS\x10\xd2\xa8\x8f\xf3\x01\x12\x0f\n\x08MODE_OFF\x10\xb3\x91\xa4N\x12\x1a\n\x13MODE_ONLY_SCALE_OUT\x10\xe2\xb7\xea\x01\x12\x13\n\x0cMODE_ONLY_UP\x10\xf2\xda\x92\x30\x12$\n\x1dMORE_THAN_ONE_BACKEND_SERVICE\x10\xdd\xcb\xb8H\x12\"\n\x1aNOT_ENOUGH_QUOTA_AVAILABLE\x10\xbf\xaf\x9b\xc0\x01\x12 \n\x18REGION_RESOURCE_STOCKOUT\x10\xfe\xc9\x88\xfc\x01\x12$\n\x1dSCALING_TARGET_DOES_NOT_EXIST\x10\x9b\x93\xbd:\x12\x36\n/SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX\x10\xc2\xeb\xfa\r\x12\x34\n,SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN\x10\xb5\xc6\xf5\xbd\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\x12\x39\n1UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION\x10\xd1\x96\xe1\x9d\x01\x12\x1d\n\x16ZONE_RESOURCE_STOCKOUT\x10\xb6\xcf\x9d\x64\x42\n\n\x08_messageB\x07\n\x05_type\"\x9c\x01\n\x15\x41utoscalersScopedList\x12<\n\x0b\x61utoscalers\x18\xfc\xb8\x8c\xde\x01 \x03(\x0b\x32#.google.cloud.compute.v1.Autoscaler\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe9\x07\n\x11\x41utoscalingPolicy\x12$\n\x14\x63ool_down_period_sec\x18\x9a\x87\xad\x33 \x01(\x05H\x00\x88\x01\x01\x12Z\n\x0f\x63pu_utilization\x18\x8b\xa4\xe3\xb5\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.AutoscalingPolicyCpuUtilizationH\x01\x88\x01\x01\x12h\n\x1a\x63ustom_metric_utilizations\x18\xf2\xfd\xf6> \x03(\x0b\x32\x41.google.cloud.compute.v1.AutoscalingPolicyCustomMetricUtilization\x12o\n\x1aload_balancing_utilization\x18\xe3\xd1\xf5\xcc\x01 \x01(\x0b\x32\x42.google.cloud.compute.v1.AutoscalingPolicyLoadBalancingUtilizationH\x02\x88\x01\x01\x12 \n\x10max_num_replicas\x18\xcf\x94\xdc\x1d \x01(\x05H\x03\x88\x01\x01\x12!\n\x10min_num_replicas\x18\xa1\xf8\xa1\xff\x01 \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x05\x88\x01\x01\x12[\n\x10scale_in_control\x18\xd8\xbc\xce\xfb\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.AutoscalingPolicyScaleInControlH\x06\x88\x01\x01\x12_\n\x11scaling_schedules\x18\x84\xf4\xbc\xa9\x01 \x03(\x0b\x32@.google.cloud.compute.v1.AutoscalingPolicy.ScalingSchedulesEntry\x1ar\n\x15ScalingSchedulesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0b\x32\x39.google.cloud.compute.v1.AutoscalingPolicyScalingSchedule:\x02\x38\x01\"V\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\t\n\x03OFF\x10\xcf\xe2\x04\x12\x07\n\x02ON\x10\xdf\x13\x12\x15\n\x0eONLY_SCALE_OUT\x10\xc6\xf3\xe8H\x12\x0f\n\x07ONLY_UP\x10\x8e\xd0\xfc\xe3\x01\x42\x17\n\x15_cool_down_period_secB\x12\n\x10_cpu_utilizationB\x1d\n\x1b_load_balancing_utilizationB\x13\n\x11_max_num_replicasB\x13\n\x11_min_num_replicasB\x07\n\x05_modeB\x13\n\x11_scale_in_control\"\xf6\x01\n\x1f\x41utoscalingPolicyCpuUtilization\x12\"\n\x11predictive_method\x18\xc1\x97\x89\xba\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12utilization_target\x18\xce\xec\xf9\x66 \x01(\x01H\x01\x88\x01\x01\"^\n\x10PredictiveMethod\x12\x1f\n\x1bUNDEFINED_PREDICTIVE_METHOD\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x1c\n\x15OPTIMIZE_AVAILABILITY\x10\xfd\xe6\xc5\x05\x42\x14\n\x12_predictive_methodB\x15\n\x13_utilization_target\"\xbf\x03\n(AutoscalingPolicyCustomMetricUtilization\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06metric\x18\xb0\xeb\x97\xfe\x01 \x01(\tH\x01\x88\x01\x01\x12+\n\x1asingle_instance_assignment\x18\xc0\xcc\xd8\xf0\x01 \x01(\x01H\x02\x88\x01\x01\x12\"\n\x12utilization_target\x18\xce\xec\xf9\x66 \x01(\x01H\x03\x88\x01\x01\x12(\n\x17utilization_target_type\x18\x8b\xa5\x9a\xa2\x01 \x01(\tH\x04\x88\x01\x01\"~\n\x15UtilizationTargetType\x12%\n!UNDEFINED_UTILIZATION_TARGET_TYPE\x10\x00\x12\x17\n\x10\x44\x45LTA_PER_MINUTE\x10\x9d\xbd\xd8)\x12\x17\n\x10\x44\x45LTA_PER_SECOND\x10\xfd\xf9\xd6y\x12\x0c\n\x05GAUGE\x10\xd9\xb1\x9d B\t\n\x07_filterB\t\n\x07_metricB\x1d\n\x1b_single_instance_assignmentB\x15\n\x13_utilization_targetB\x1a\n\x18_utilization_target_type\"f\n)AutoscalingPolicyLoadBalancingUtilization\x12\"\n\x12utilization_target\x18\xce\xec\xf9\x66 \x01(\x01H\x00\x88\x01\x01\x42\x15\n\x13_utilization_target\"\xc2\x01\n\x1f\x41utoscalingPolicyScaleInControl\x12O\n\x16max_scaled_in_replicas\x18\xeb\xd5\x95V \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x00\x88\x01\x01\x12\x1f\n\x0ftime_window_sec\x18\xb4\x80\xae\x11 \x01(\x05H\x01\x88\x01\x01\x42\x19\n\x17_max_scaled_in_replicasB\x12\n\x10_time_window_sec\"\xba\x02\n AutoscalingPolicyScalingSchedule\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1c\n\x0c\x64uration_sec\x18\xa6\x9e\xa1\x65 \x01(\x05H\x02\x88\x01\x01\x12&\n\x15min_required_replicas\x18\xae\x9d\xa5\xae\x01 \x01(\x05H\x03\x88\x01\x01\x12\x19\n\x08schedule\x18\x97\xa5\x9a\xb3\x01 \x01(\tH\x04\x88\x01\x01\x12\x19\n\ttime_zone\x18\xde\x83\xc9\x11 \x01(\tH\x05\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_disabledB\x0f\n\r_duration_secB\x18\n\x16_min_required_replicasB\x0b\n\t_scheduleB\x0c\n\n_time_zone\"\xf6\x07\n\x07\x42\x61\x63kend\x12\x1f\n\x0e\x62\x61lancing_mode\x18\x89\xcb\x96\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x0f\x63\x61pacity_scaler\x18\x8d\xc7\xd4\x96\x01 \x01(\x02H\x01\x88\x01\x01\x12H\n\x0e\x63ustom_metrics\x18\xf5\xe3\xe3\xcc\x01 \x03(\x0b\x32,.google.cloud.compute.v1.BackendCustomMetric\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08\x66\x61ilover\x18\xf2\xa9\x9d\x42 \x01(\x08H\x03\x88\x01\x01\x12\x15\n\x05group\x18\xff\xec\x83/ \x01(\tH\x04\x88\x01\x01\x12\x1f\n\x0fmax_connections\x18\xfa\xd5\xe1\x34 \x01(\x05H\x05\x88\x01\x01\x12,\n\x1cmax_connections_per_endpoint\x18\x9c\xe7\xb6g \x01(\x05H\x06\x88\x01\x01\x12,\n\x1cmax_connections_per_instance\x18\x9c\xd5\xf4\x31 \x01(\x05H\x07\x88\x01\x01\x12\x19\n\x08max_rate\x18\xdb\xbd\xc8\xc2\x01 \x01(\x05H\x08\x88\x01\x01\x12%\n\x15max_rate_per_endpoint\x18\xdb\xaa\xf4= \x01(\x02H\t\x88\x01\x01\x12%\n\x15max_rate_per_instance\x18\xdb\x98\xb2\x08 \x01(\x02H\n\x88\x01\x01\x12\x1f\n\x0fmax_utilization\x18\xc7\xf7\xd4\x46 \x01(\x02H\x0b\x88\x01\x01\x12\x1a\n\npreference\x18\xdb\xf9\xf2G \x01(\tH\x0c\x88\x01\x01\"y\n\rBalancingMode\x12\x1c\n\x18UNDEFINED_BALANCING_MODE\x10\x00\x12\x11\n\nCONNECTION\x10\xde\xd5\xb9u\x12\x16\n\x0e\x43USTOM_METRICS\x10\xd5\xe3\x8d\x9e\x01\x12\x0b\n\x04RATE\x10\xe0\x89\x99\x01\x12\x12\n\x0bUTILIZATION\x10\x82\x84\xefJ\"i\n\nPreference\x12\x18\n\x14UNDEFINED_PREFERENCE\x10\x00\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\x12\x1e\n\x16PREFERENCE_UNSPECIFIED\x10\xb3\xeb\xce\xec\x01\x12\x11\n\tPREFERRED\x10\xe1\xb8\xdc\xc7\x01\x42\x11\n\x0f_balancing_modeB\x12\n\x10_capacity_scalerB\x0e\n\x0c_descriptionB\x0b\n\t_failoverB\x08\n\x06_groupB\x12\n\x10_max_connectionsB\x1f\n\x1d_max_connections_per_endpointB\x1f\n\x1d_max_connections_per_instanceB\x0b\n\t_max_rateB\x18\n\x16_max_rate_per_endpointB\x18\n\x16_max_rate_per_instanceB\x12\n\x10_max_utilizationB\r\n\x0b_preference\"\xcc\x07\n\rBackendBucket\x12\x1c\n\x0b\x62ucket_name\x18\xc0\x97\x9e\x87\x01 \x01(\tH\x00\x88\x01\x01\x12K\n\ncdn_policy\x18\x84\x8b\x84\x66 \x01(\x0b\x32/.google.cloud.compute.v1.BackendBucketCdnPolicyH\x01\x88\x01\x01\x12 \n\x10\x63ompression_mode\x18\xdc\x91\xc6- \x01(\tH\x02\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12#\n\x17\x63ustom_response_headers\x18\x96\xc1\xe5\xb8\x01 \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12$\n\x14\x65\x64ge_security_policy\x18\x8f\xd9\xc8\x13 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\nenable_cdn\x18\xf1\xb6\xf5\x86\x01 \x01(\x08H\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12&\n\x15load_balancing_scheme\x18\xc4\x8c\xc2\xad\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12\x44\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32,.google.cloud.compute.v1.BackendBucketParamsH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x41\n\x07used_by\x18\x99\xa0\xd2\xb9\x01 \x03(\x0b\x32,.google.cloud.compute.v1.BackendBucketUsedBy\"U\n\x0f\x43ompressionMode\x12\x1e\n\x1aUNDEFINED_COMPRESSION_MODE\x10\x00\x12\x10\n\tAUTOMATIC\x10\x8b\x84\xe9N\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\"S\n\x13LoadBalancingScheme\x12#\n\x1fUNDEFINED_LOAD_BALANCING_SCHEME\x10\x00\x12\x17\n\x10INTERNAL_MANAGED\x10\xfd\xd7\xe7\x11\x42\x0e\n\x0c_bucket_nameB\r\n\x0b_cdn_policyB\x13\n\x11_compression_modeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x17\n\x15_edge_security_policyB\r\n\x0b_enable_cdnB\x05\n\x03_idB\x07\n\x05_kindB\x18\n\x16_load_balancing_schemeB\x07\n\x05_nameB\t\n\x07_paramsB\x0c\n\n_self_link\"\xca\x07\n\x16\x42\x61\x63kendBucketCdnPolicy\x12v\n\x1f\x62ypass_cache_on_request_headers\x18\xca\xbd\xeb\xe7\x01 \x03(\x0b\x32I.google.cloud.compute.v1.BackendBucketCdnPolicyBypassCacheOnRequestHeader\x12_\n\x10\x63\x61\x63he_key_policy\x18\xef\xd7\xf8K \x01(\x0b\x32=.google.cloud.compute.v1.BackendBucketCdnPolicyCacheKeyPolicyH\x00\x88\x01\x01\x12\x1a\n\ncache_mode\x18\xc0\xc8\xe2\r \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nclient_ttl\x18\xf8\x8e\xec\r \x01(\x05H\x02\x88\x01\x01\x12\x1b\n\x0b\x64\x65\x66\x61ult_ttl\x18\xee\xfd\xe6/ \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x07max_ttl\x18\x91\x89\xd5\x92\x01 \x01(\x05H\x04\x88\x01\x01\x12!\n\x10negative_caching\x18\xb5\xc3\xa2\xa0\x01 \x01(\x08H\x05\x88\x01\x01\x12h\n\x17negative_caching_policy\x18\xfc\xb5\x8aJ \x03(\x0b\x32\x44.google.cloud.compute.v1.BackendBucketCdnPolicyNegativeCachingPolicy\x12#\n\x12request_coalescing\x18\xd4\x84\x88\xfe\x01 \x01(\x08H\x06\x88\x01\x01\x12!\n\x11serve_while_stale\x18\xdb\xf7\xedp \x01(\x05H\x07\x88\x01\x01\x12-\n\x1csigned_url_cache_max_age_sec\x18\xc6\xa8\xb9\x80\x01 \x01(\x03H\x08\x88\x01\x01\x12 \n\x14signed_url_key_names\x18\xb5\xed\xa7\xb1\x01 \x03(\t\"\x8f\x01\n\tCacheMode\x12\x18\n\x14UNDEFINED_CACHE_MODE\x10\x00\x12\x18\n\x10\x43\x41\x43HE_ALL_STATIC\x10\xe9\x97\xa5\xa9\x01\x12\x17\n\x0f\x46ORCE_CACHE_ALL\x10\xb0\xdd\xe0\xe7\x01\x12\x1a\n\x12INVALID_CACHE_MODE\x10\xc8\xb7\xe8\xb5\x01\x12\x19\n\x12USE_ORIGIN_HEADERS\x10\xa5\x92\xb4\x1a\x42\x13\n\x11_cache_key_policyB\r\n\x0b_cache_modeB\r\n\x0b_client_ttlB\x0e\n\x0c_default_ttlB\n\n\x08_max_ttlB\x13\n\x11_negative_cachingB\x15\n\x13_request_coalescingB\x14\n\x12_serve_while_staleB\x1f\n\x1d_signed_url_cache_max_age_sec\"_\n0BackendBucketCdnPolicyBypassCacheOnRequestHeader\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_header_name\"j\n$BackendBucketCdnPolicyCacheKeyPolicy\x12\x1f\n\x14include_http_headers\x18\x86\xfa\x97\x01 \x03(\t\x12!\n\x16query_string_whitelist\x18\xb0\xd8\x81\x19 \x03(\t\"h\n+BackendBucketCdnPolicyNegativeCachingPolicy\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x03ttl\x18\xec\x83\x07 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_codeB\x06\n\x04_ttl\"\xab\x02\n\x11\x42\x61\x63kendBucketList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x38\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32&.google.cloud.compute.v1.BackendBucket\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbb\x01\n\x13\x42\x61\x63kendBucketParams\x12h\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x45.google.cloud.compute.v1.BackendBucketParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\">\n\x13\x42\x61\x63kendBucketUsedBy\x12\x19\n\treference\x18\xcb\xfe\xec\x46 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_reference\"\x8f\x01\n\x13\x42\x61\x63kendCustomMetric\x12\x18\n\x07\x64ry_run\x18\xf7\xc3\xb6\x9a\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x0fmax_utilization\x18\xc7\xf7\xd4\x46 \x01(\x02H\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_dry_runB\x12\n\x10_max_utilizationB\x07\n\x05_name\"\xf2%\n\x0e\x42\x61\x63kendService\x12(\n\x17\x61\x66\x66inity_cookie_ttl_sec\x18\x9a\xe9\xb6\xb0\x01 \x01(\x05H\x00\x88\x01\x01\x12\x36\n\x08\x62\x61\x63kends\x18\xdf\x98\xcb\xf3\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Backend\x12L\n\ncdn_policy\x18\x84\x8b\x84\x66 \x01(\x0b\x32\x30.google.cloud.compute.v1.BackendServiceCdnPolicyH\x01\x88\x01\x01\x12K\n\x10\x63ircuit_breakers\x18\x9d\xc7\xf4\xc8\x01 \x01(\x0b\x32(.google.cloud.compute.v1.CircuitBreakersH\x02\x88\x01\x01\x12 \n\x10\x63ompression_mode\x18\xdc\x91\xc6- \x01(\tH\x03\x88\x01\x01\x12Q\n\x13\x63onnection_draining\x18\xab\x8e\xef\xdb\x01 \x01(\x0b\x32+.google.cloud.compute.v1.ConnectionDrainingH\x04\x88\x01\x01\x12k\n\x1a\x63onnection_tracking_policy\x18\xd9\xe0\xd4\x44 \x01(\x0b\x32?.google.cloud.compute.v1.BackendServiceConnectionTrackingPolicyH\x05\x88\x01\x01\x12[\n\x0f\x63onsistent_hash\x18\x9b\xa5\x37 \x01(\x0b\x32;.google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsH\x06\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x07\x88\x01\x01\x12O\n\x0e\x63ustom_metrics\x18\xf5\xe3\xe3\xcc\x01 \x03(\x0b\x32\x33.google.cloud.compute.v1.BackendServiceCustomMetric\x12!\n\x16\x63ustom_request_headers\x18\x88\xd2\xab\r \x03(\t\x12#\n\x17\x63ustom_response_headers\x18\x96\xc1\xe5\xb8\x01 \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x08\x88\x01\x01\x12$\n\x14\x65\x64ge_security_policy\x18\x8f\xd9\xc8\x13 \x01(\tH\t\x88\x01\x01\x12\x1c\n\x0c\x65nable_c_d_n\x18\xbb\xc7\xc7w \x01(\x08H\n\x88\x01\x01\x12\x30\n external_managed_migration_state\x18\xcc\x8f\xf6\x1f \x01(\tH\x0b\x88\x01\x01\x12>\n-external_managed_migration_testing_percentage\x18\xce\x81\xef\xf1\x01 \x01(\x02H\x0c\x88\x01\x01\x12V\n\x0f\x66\x61ilover_policy\x18\x9f\xf2\xb0\x32 \x01(\x0b\x32\x35.google.cloud.compute.v1.BackendServiceFailoverPolicyH\r\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x0e\x88\x01\x01\x12K\n\tha_policy\x18\xb8\xf6\xf2\xf7\x01 \x01(\x0b\x32/.google.cloud.compute.v1.BackendServiceHAPolicyH\x0f\x88\x01\x01\x12\x19\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\t\x12>\n\x03iap\x18\xd8\xac\x06 \x01(\x0b\x32*.google.cloud.compute.v1.BackendServiceIAPH\x10\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x11\x88\x01\x01\x12+\n\x1bip_address_selection_policy\x18\xc8\xb0\x80% \x01(\tH\x12\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x13\x88\x01\x01\x12&\n\x15load_balancing_scheme\x18\xc4\x8c\xc2\xad\x01 \x01(\tH\x14\x88\x01\x01\x12i\n\x14locality_lb_policies\x18\x9d\xf2\x9c\x43 \x03(\x0b\x32H.google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfig\x12\"\n\x12locality_lb_policy\x18\xbf\xf8\xd5> \x01(\tH\x15\x88\x01\x01\x12M\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.BackendServiceLogConfigH\x16\x88\x01\x01\x12\x46\n\x13max_stream_duration\x18\x98\xa5\xa5\x1d \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x17\x88\x01\x01\x12L\n\tmetadatas\x18\xa4\xd6\x87\x04 \x03(\x0b\x32\x36.google.cloud.compute.v1.BackendService.MetadatasEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x18\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x19\x88\x01\x01\x12M\n\x11outlier_detection\x18\xbe\xcc\x8c\xa9\x01 \x01(\x0b\x32).google.cloud.compute.v1.OutlierDetectionH\x1a\x88\x01\x01\x12\x45\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32-.google.cloud.compute.v1.BackendServiceParamsH\x1b\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x1c\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x1d\x88\x01\x01\x12\x18\n\x08protocol\x18\x98\x9d\xaa( \x01(\tH\x1e\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x1f\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH \x88\x01\x01\x12M\n\x11security_settings\x18\xc2\xbc\x9e\xe4\x01 \x01(\x0b\x32).google.cloud.compute.v1.SecuritySettingsH!\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\"\x88\x01\x01\x12\x1b\n\x10service_bindings\x18\xd8\x91\xd9? \x03(\t\x12!\n\x11service_lb_policy\x18\x91\x8e\x9d- \x01(\tH#\x88\x01\x01\x12!\n\x10session_affinity\x18\xb1\xc1\x99\xdd\x01 \x01(\tH$\x88\x01\x01\x12\x61\n\x1estrong_session_affinity_cookie\x18\x8a\xa8\xcaq \x01(\x0b\x32\x31.google.cloud.compute.v1.BackendServiceHttpCookieH%\x88\x01\x01\x12@\n\nsubsetting\x18\x90\x90\xdb\xd6\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SubsettingH&\x88\x01\x01\x12\x1b\n\x0btimeout_sec\x18\xf3\xc0\x92& \x01(\x05H\'\x88\x01\x01\x12P\n\x0ctls_settings\x18\xe7\xad\x80\' \x01(\x0b\x32\x32.google.cloud.compute.v1.BackendServiceTlsSettingsH(\x88\x01\x01\x12\x42\n\x07used_by\x18\x99\xa0\xd2\xb9\x01 \x03(\x0b\x32-.google.cloud.compute.v1.BackendServiceUsedBy\x1a\x30\n\x0eMetadatasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"U\n\x0f\x43ompressionMode\x12\x1e\n\x1aUNDEFINED_COMPRESSION_MODE\x10\x00\x12\x10\n\tAUTOMATIC\x10\x8b\x84\xe9N\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\"\x95\x01\n\x1d\x45xternalManagedMigrationState\x12.\n*UNDEFINED_EXTERNAL_MANAGED_MIGRATION_STATE\x10\x00\x12\x0f\n\x07PREPARE\x10\xe7\xb1\xc6\xbe\x01\x12\x17\n\x10TEST_ALL_TRAFFIC\x10\xf2\xa1\x82&\x12\x1a\n\x12TEST_BY_PERCENTAGE\x10\x95\x8d\xfc\xf4\x01\"\xae\x01\n\x18IpAddressSelectionPolicy\x12)\n%UNDEFINED_IP_ADDRESS_SELECTION_POLICY\x10\x00\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\x12.\n\'IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED\x10\xe0\x8b\xa2\x11\x12\x13\n\x0bPREFER_IPV6\x10\xd6\x85\xeb\xc2\x01\"\xd5\x01\n\x13LoadBalancingScheme\x12#\n\x1fUNDEFINED_LOAD_BALANCING_SCHEME\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x18\n\x10\x45XTERNAL_MANAGED\x10\x8b\xb6\x92\xf4\x01\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12\x17\n\x10INTERNAL_MANAGED\x10\xfd\xd7\xe7\x11\x12\x1c\n\x15INTERNAL_SELF_MANAGED\x10\xce\x97\xd1p\x12%\n\x1dINVALID_LOAD_BALANCING_SCHEME\x10\xfc\x93\xa6\x83\x01\"\x9c\x02\n\x10LocalityLbPolicy\x12 \n\x1cUNDEFINED_LOCALITY_LB_POLICY\x10\x00\x12\x19\n\x11INVALID_LB_POLICY\x10\xb3\xe7\x95\x9a\x01\x12\x14\n\rLEAST_REQUEST\x10\xf9\xc4\x9c\x16\x12\r\n\x06MAGLEV\x10\xea\x97\xea\x38\x12\x1b\n\x14ORIGINAL_DESTINATION\x10\x80\xfd\xa5O\x12\r\n\x06RANDOM\x10\xc3\xb1\x97}\x12\x11\n\tRING_HASH\x10\xbd\xdb\xaf\xce\x01\x12\x12\n\x0bROUND_ROBIN\x10\xf9\x86\xb1I\x12\x1e\n\x17WEIGHTED_GCP_RENDEZVOUS\x10\x88\xc0\xab\'\x12\x16\n\x0fWEIGHTED_MAGLEV\x10\x92\xe0\xc7y\x12\x1b\n\x14WEIGHTED_ROUND_ROBIN\x10\xd1\xf0\xd4\x02\"\x99\x01\n\x08Protocol\x12\x16\n\x12UNDEFINED_PROTOCOL\x10\x00\x12\x0b\n\x04GRPC\x10\x9e\x88\x86\x01\x12\t\n\x03H2C\x10\x99\xa9\x04\x12\x0b\n\x04HTTP\x10\x88\x81\x88\x01\x12\x0c\n\x05HTTP2\x10\xaa\xa1\xf8 \x12\x0c\n\x05HTTPS\x10\xcb\xa1\xf8 \x12\t\n\x03SSL\x10\xec\x83\x05\x12\t\n\x03TCP\x10\xc1\x87\x05\x12\t\n\x03UDP\x10\xa1\x8f\x05\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\"\x8b\x02\n\x0fSessionAffinity\x12\x1e\n\x1aUNDEFINED_SESSION_AFFINITY\x10\x00\x12\x11\n\tCLIENT_IP\x10\x9b\xdc\xe9\xa4\x01\x12\x1f\n\x18\x43LIENT_IP_NO_DESTINATION\x10\x94\x9a\xcd\x32\x12\x1b\n\x14\x43LIENT_IP_PORT_PROTO\x10\xae\xf2\xdci\x12\x16\n\x0f\x43LIENT_IP_PROTO\x10\xa4\xc5\x89\x0c\x12\x18\n\x10GENERATED_COOKIE\x10\xb4\xce\xca\xb0\x01\x12\x13\n\x0cHEADER_FIELD\x10\xa8\x89\xdc_\x12\x13\n\x0bHTTP_COOKIE\x10\xfb\xa3\x83\xec\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x1e\n\x16STRONG_COOKIE_AFFINITY\x10\xfb\xdd\x93\xd1\x01\x42\x1a\n\x18_affinity_cookie_ttl_secB\r\n\x0b_cdn_policyB\x13\n\x11_circuit_breakersB\x13\n\x11_compression_modeB\x16\n\x14_connection_drainingB\x1d\n\x1b_connection_tracking_policyB\x12\n\x10_consistent_hashB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x17\n\x15_edge_security_policyB\x0f\n\r_enable_c_d_nB#\n!_external_managed_migration_stateB0\n._external_managed_migration_testing_percentageB\x12\n\x10_failover_policyB\x0e\n\x0c_fingerprintB\x0c\n\n_ha_policyB\x06\n\x04_iapB\x05\n\x03_idB\x1e\n\x1c_ip_address_selection_policyB\x07\n\x05_kindB\x18\n\x16_load_balancing_schemeB\x15\n\x13_locality_lb_policyB\r\n\x0b_log_configB\x16\n\x14_max_stream_durationB\x07\n\x05_nameB\n\n\x08_networkB\x14\n\x12_outlier_detectionB\t\n\x07_paramsB\x07\n\x05_portB\x0c\n\n_port_nameB\x0b\n\t_protocolB\t\n\x07_regionB\x12\n\x10_security_policyB\x14\n\x12_security_settingsB\x0c\n\n_self_linkB\x14\n\x12_service_lb_policyB\x13\n\x11_session_affinityB!\n\x1f_strong_session_affinity_cookieB\r\n\x0b_subsettingB\x0e\n\x0c_timeout_secB\x0f\n\r_tls_settings\"\xcb\x03\n\x1c\x42\x61\x63kendServiceAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.BackendServiceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a`\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.BackendServicesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb7\x07\n\x17\x42\x61\x63kendServiceCdnPolicy\x12w\n\x1f\x62ypass_cache_on_request_headers\x18\xca\xbd\xeb\xe7\x01 \x03(\x0b\x32J.google.cloud.compute.v1.BackendServiceCdnPolicyBypassCacheOnRequestHeader\x12I\n\x10\x63\x61\x63he_key_policy\x18\xef\xd7\xf8K \x01(\x0b\x32\'.google.cloud.compute.v1.CacheKeyPolicyH\x00\x88\x01\x01\x12\x1a\n\ncache_mode\x18\xc0\xc8\xe2\r \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nclient_ttl\x18\xf8\x8e\xec\r \x01(\x05H\x02\x88\x01\x01\x12\x1b\n\x0b\x64\x65\x66\x61ult_ttl\x18\xee\xfd\xe6/ \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x07max_ttl\x18\x91\x89\xd5\x92\x01 \x01(\x05H\x04\x88\x01\x01\x12!\n\x10negative_caching\x18\xb5\xc3\xa2\xa0\x01 \x01(\x08H\x05\x88\x01\x01\x12i\n\x17negative_caching_policy\x18\xfc\xb5\x8aJ \x03(\x0b\x32\x45.google.cloud.compute.v1.BackendServiceCdnPolicyNegativeCachingPolicy\x12#\n\x12request_coalescing\x18\xd4\x84\x88\xfe\x01 \x01(\x08H\x06\x88\x01\x01\x12!\n\x11serve_while_stale\x18\xdb\xf7\xedp \x01(\x05H\x07\x88\x01\x01\x12-\n\x1csigned_url_cache_max_age_sec\x18\xc6\xa8\xb9\x80\x01 \x01(\x03H\x08\x88\x01\x01\x12 \n\x14signed_url_key_names\x18\xb5\xed\xa7\xb1\x01 \x03(\t\"\x8f\x01\n\tCacheMode\x12\x18\n\x14UNDEFINED_CACHE_MODE\x10\x00\x12\x18\n\x10\x43\x41\x43HE_ALL_STATIC\x10\xe9\x97\xa5\xa9\x01\x12\x17\n\x0f\x46ORCE_CACHE_ALL\x10\xb0\xdd\xe0\xe7\x01\x12\x1a\n\x12INVALID_CACHE_MODE\x10\xc8\xb7\xe8\xb5\x01\x12\x19\n\x12USE_ORIGIN_HEADERS\x10\xa5\x92\xb4\x1a\x42\x13\n\x11_cache_key_policyB\r\n\x0b_cache_modeB\r\n\x0b_client_ttlB\x0e\n\x0c_default_ttlB\n\n\x08_max_ttlB\x13\n\x11_negative_cachingB\x15\n\x13_request_coalescingB\x14\n\x12_serve_while_staleB\x1f\n\x1d_signed_url_cache_max_age_sec\"`\n1BackendServiceCdnPolicyBypassCacheOnRequestHeader\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_header_name\"i\n,BackendServiceCdnPolicyNegativeCachingPolicy\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x03ttl\x18\xec\x83\x07 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_codeB\x06\n\x04_ttl\"\xeb\x04\n&BackendServiceConnectionTrackingPolicy\x12<\n,connection_persistence_on_unhealthy_backends\x18\xf9\x91\xd8H \x01(\tH\x00\x88\x01\x01\x12&\n\x16\x65nable_strong_affinity\x18\x94\xe6\xd9\x0b \x01(\x08H\x01\x88\x01\x01\x12 \n\x10idle_timeout_sec\x18\x88\xc1\xf4\x0b \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\rtracking_mode\x18\xab\xdc\xf5< \x01(\tH\x03\x88\x01\x01\"\xb0\x01\n(ConnectionPersistenceOnUnhealthyBackends\x12:\n6UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS\x10\x00\x12\x15\n\x0e\x41LWAYS_PERSIST\x10\x84\xe7\xa7\x12\x12\x1b\n\x14\x44\x45\x46\x41ULT_FOR_PROTOCOL\x10\xcc\xa5\xa2\x45\x12\x14\n\rNEVER_PERSIST\x10\xe1\xa5\x8e\x42\"t\n\x0cTrackingMode\x12\x1b\n\x17UNDEFINED_TRACKING_MODE\x10\x00\x12\x1c\n\x15INVALID_TRACKING_MODE\x10\xc3\x83\xbd\x17\x12\x15\n\x0ePER_CONNECTION\x10\xe0\xf6\xcd(\x12\x12\n\x0bPER_SESSION\x10\xb4\xba\xeaVB/\n-_connection_persistence_on_unhealthy_backendsB\x19\n\x17_enable_strong_affinityB\x13\n\x11_idle_timeout_secB\x10\n\x0e_tracking_mode\"a\n\x1a\x42\x61\x63kendServiceCustomMetric\x12\x18\n\x07\x64ry_run\x18\xf7\xc3\xb6\x9a\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_dry_runB\x07\n\x05_name\"\xf9\x01\n\x1c\x42\x61\x63kendServiceFailoverPolicy\x12\x34\n$disable_connection_drain_on_failover\x18\xe1\xcc\xedV \x01(\x08H\x00\x88\x01\x01\x12)\n\x19\x64rop_traffic_if_unhealthy\x18\x94\xcd\xc5\x35 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x0e\x66\x61ilover_ratio\x18\xfe\x94\xb4\x65 \x01(\x02H\x02\x88\x01\x01\x42\'\n%_disable_connection_drain_on_failoverB\x1c\n\x1a_drop_traffic_if_unhealthyB\x11\n\x0f_failover_ratio\"\x8d\x02\n\x19\x42\x61\x63kendServiceGroupHealth\x12[\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32\x43.google.cloud.compute.v1.BackendServiceGroupHealth.AnnotationsEntry\x12@\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x03(\x0b\x32%.google.cloud.compute.v1.HealthStatus\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_kind\"\xf2\x01\n\x16\x42\x61\x63kendServiceHAPolicy\x12\x1d\n\rfast_i_p_move\x18\xd9\xbe\x94j \x01(\tH\x00\x88\x01\x01\x12N\n\x06leader\x18\x89\x8a\xa1\xf0\x01 \x01(\x0b\x32\x35.google.cloud.compute.v1.BackendServiceHAPolicyLeaderH\x01\x88\x01\x01\"L\n\nFastIPMove\x12\x1b\n\x17UNDEFINED_FAST_I_P_MOVE\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x07GARP_RA\x10\xb6\x86\xbb\xfb\x01\x42\x10\n\x0e_fast_i_p_moveB\t\n\x07_leader\"\xcd\x01\n\x1c\x42\x61\x63kendServiceHAPolicyLeader\x12\x1e\n\rbackend_group\x18\x94\xc2\xa4\xda\x01 \x01(\tH\x00\x88\x01\x01\x12\x66\n\x10network_endpoint\x18\x86\x91\x8a\x1b \x01(\x0b\x32\x44.google.cloud.compute.v1.BackendServiceHAPolicyLeaderNetworkEndpointH\x01\x88\x01\x01\x42\x10\n\x0e_backend_groupB\x13\n\x11_network_endpoint\"T\n+BackendServiceHAPolicyLeaderNetworkEndpoint\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_instance\"\x97\x01\n\x18\x42\x61\x63kendServiceHttpCookie\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x03ttl\x18\xec\x83\x07 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x06\n\x04_ttl\"\xfb\x01\n\x11\x42\x61\x63kendServiceIAP\x12\x16\n\x07\x65nabled\x18\xc1\x96> \x01(\x08H\x00\x88\x01\x01\x12!\n\x10oauth2_client_id\x18\xcb\x8e\xde\x95\x01 \x01(\tH\x01\x88\x01\x01\x12$\n\x14oauth2_client_secret\x18\xe0\xe1\xa8\x18 \x01(\tH\x02\x88\x01\x01\x12+\n\x1boauth2_client_secret_sha256\x18\xe6\x8c\xeb\x35 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_enabledB\x13\n\x11_oauth2_client_idB\x17\n\x15_oauth2_client_secretB\x1e\n\x1c_oauth2_client_secret_sha256\"\xad\x02\n\x12\x42\x61\x63kendServiceList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.BackendService\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n\x18\x42\x61\x63kendServiceListUsable\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.BackendService\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x02\n/BackendServiceLocalityLoadBalancingPolicyConfig\x12s\n\rcustom_policy\x18\xc0\x8b\xa6\x02 \x01(\x0b\x32T.google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicyH\x00\x88\x01\x01\x12\x66\n\x06policy\x18\xb2\xca\xb6+ \x01(\x0b\x32N.google.cloud.compute.v1.BackendServiceLocalityLoadBalancingPolicyConfigPolicyH\x01\x88\x01\x01\x42\x10\n\x0e_custom_policyB\t\n\x07_policy\"{\n;BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy\x12\x14\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_dataB\x07\n\x05_name\"\xdb\x02\n5BackendServiceLocalityLoadBalancingPolicyConfigPolicy\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\"\x82\x02\n\x04Name\x12\x12\n\x0eUNDEFINED_NAME\x10\x00\x12\x19\n\x11INVALID_LB_POLICY\x10\xb3\xe7\x95\x9a\x01\x12\x14\n\rLEAST_REQUEST\x10\xf9\xc4\x9c\x16\x12\r\n\x06MAGLEV\x10\xea\x97\xea\x38\x12\x1b\n\x14ORIGINAL_DESTINATION\x10\x80\xfd\xa5O\x12\r\n\x06RANDOM\x10\xc3\xb1\x97}\x12\x11\n\tRING_HASH\x10\xbd\xdb\xaf\xce\x01\x12\x12\n\x0bROUND_ROBIN\x10\xf9\x86\xb1I\x12\x1e\n\x17WEIGHTED_GCP_RENDEZVOUS\x10\x88\xc0\xab\'\x12\x16\n\x0fWEIGHTED_MAGLEV\x10\x92\xe0\xc7y\x12\x1b\n\x14WEIGHTED_ROUND_ROBIN\x10\xd1\xf0\xd4\x02\x42\x07\n\x05_name\"\xb0\x02\n\x17\x42\x61\x63kendServiceLogConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0foptional_fields\x18\xf8\xc8\x86\xfc\x01 \x03(\t\x12\x1d\n\roptional_mode\x18\xa2\x86\xaf= \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0bsample_rate\x18\xd5\x94\x86I \x01(\x02H\x02\x88\x01\x01\"v\n\x0cOptionalMode\x12\x1b\n\x17UNDEFINED_OPTIONAL_MODE\x10\x00\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\x1b\n\x14\x45XCLUDE_ALL_OPTIONAL\x10\xc3\xdd\xb4P\x12\x1c\n\x14INCLUDE_ALL_OPTIONAL\x10\xb5\xed\xb2\xff\x01\x42\t\n\x07_enableB\x10\n\x0e_optional_modeB\x0e\n\x0c_sample_rate\"\xbd\x01\n\x14\x42\x61\x63kendServiceParams\x12i\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x46.google.cloud.compute.v1.BackendServiceParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"O\n\x17\x42\x61\x63kendServiceReference\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_backend_service\"\xda\x01\n\x19\x42\x61\x63kendServiceTlsSettings\x12&\n\x15\x61uthentication_config\x18\xe9\xcd\xc9\xc2\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03sni\x18\xee\xfa\x06 \x01(\tH\x01\x88\x01\x01\x12_\n\x11subject_alt_names\x18\xdf\xb3\xaf\x9d\x01 \x03(\x0b\x32@.google.cloud.compute.v1.BackendServiceTlsSettingsSubjectAltNameB\x18\n\x16_authentication_configB\x06\n\x04_sni\"\x9f\x01\n\'BackendServiceTlsSettingsSubjectAltName\x12\x19\n\x08\x64ns_name\x18\xe1\xff\xb9\xc4\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x1buniform_resource_identifier\x18\xef\x9c\xa9\xea\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_dns_nameB\x1e\n\x1c_uniform_resource_identifier\"?\n\x14\x42\x61\x63kendServiceUsedBy\x12\x19\n\treference\x18\xcb\xfe\xec\x46 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_reference\"\xa9\x01\n\x19\x42\x61\x63kendServicesScopedList\x12\x45\n\x10\x62\x61\x63kend_services\x18\xa9\xc3\xa1\xb9\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.BackendService\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe7\t\n\tBfdPacket\x12&\n\x16\x61uthentication_present\x18\xf4\x93\xc4\x32 \x01(\x08H\x00\x88\x01\x01\x12)\n\x19\x63ontrol_plane_independent\x18\xb5\xaf\xde\x1d \x01(\x08H\x01\x88\x01\x01\x12\x17\n\x06\x64\x65mand\x18\xcb\xd4\x9b\x83\x01 \x01(\x08H\x02\x88\x01\x01\x12\x1a\n\ndiagnostic\x18\xa7\xb7\xf3\x1d \x01(\tH\x03\x88\x01\x01\x12\x15\n\x05\x66inal\x18\xf6\x82\xbb. \x01(\x08H\x04\x88\x01\x01\x12\x17\n\x06length\x18\xe6\xf5\xb8\xf0\x01 \x01(\rH\x05\x88\x01\x01\x12\'\n\x17min_echo_rx_interval_ms\x18\xd4\xf5\xb1. \x01(\rH\x06\x88\x01\x01\x12#\n\x12min_rx_interval_ms\x18\xf4\xd0\xfb\xdc\x01 \x01(\rH\x07\x88\x01\x01\x12#\n\x12min_tx_interval_ms\x18\xb2\xf7\xe9\xfa\x01 \x01(\rH\x08\x88\x01\x01\x12\x1a\n\nmultiplier\x18\xc1\xfb\x9d[ \x01(\rH\t\x88\x01\x01\x12\x1a\n\nmultipoint\x18\xf7\xb7\xa3[ \x01(\x08H\n\x88\x01\x01\x12 \n\x10my_discriminator\x18\xc9\x92\xc7$ \x01(\rH\x0b\x88\x01\x01\x12\x14\n\x04poll\x18\xbf\xaf\xd2\x01 \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\r\x88\x01\x01\x12\x18\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\rH\x0e\x88\x01\x01\x12#\n\x12your_discriminator\x18\x90\xe7\xef\xf5\x01 \x01(\rH\x0f\x88\x01\x01\"\xde\x02\n\nDiagnostic\x12\x18\n\x14UNDEFINED_DIAGNOSTIC\x10\x00\x12\x1c\n\x15\x41\x44MINISTRATIVELY_DOWN\x10\xa6\x8e\x83:\x12\x1d\n\x16\x43ONCATENATED_PATH_DOWN\x10\x8c\xa9\xbe\x0c\x12%\n\x1e\x43ONTROL_DETECTION_TIME_EXPIRED\x10\xef\xf8\xcc@\x12\x1d\n\x16\x44IAGNOSTIC_UNSPECIFIED\x10\xff\x84\x80\x1c\x12\x1b\n\x14\x45\x43HO_FUNCTION_FAILED\x10\xea\xd8\x9di\x12\x1d\n\x16\x46ORWARDING_PLANE_RESET\x10\xaa\xae\xb3\t\x12&\n\x1eNEIGHBOR_SIGNALED_SESSION_DOWN\x10\xb6\xfe\xb8\xb2\x01\x12\x14\n\rNO_DIAGNOSTIC\x10\xe5\xc1\x8cj\x12\x11\n\tPATH_DOWN\x10\xfc\x90\xc9\x8a\x01\x12&\n\x1eREVERSE_CONCATENATED_PATH_DOWN\x10\xa9\xb5\xc8\xe4\x01\"m\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x11\n\nADMIN_DOWN\x10\xb2\xdf\xa5=\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x0b\n\x04INIT\x10\x90\xba\x89\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\x19\n\x17_authentication_presentB\x1c\n\x1a_control_plane_independentB\t\n\x07_demandB\r\n\x0b_diagnosticB\x08\n\x06_finalB\t\n\x07_lengthB\x1a\n\x18_min_echo_rx_interval_msB\x15\n\x13_min_rx_interval_msB\x15\n\x13_min_tx_interval_msB\r\n\x0b_multiplierB\r\n\x0b_multipointB\x13\n\x11_my_discriminatorB\x07\n\x05_pollB\x08\n\x06_stateB\n\n\x08_versionB\x15\n\x13_your_discriminator\"\xec\n\n\tBfdStatus\x12/\n\x1f\x62\x66\x64_session_initialization_mode\x18\x9a\x9f\x83h \x01(\tH\x00\x88\x01\x01\x12/\n\x1e\x63onfig_update_timestamp_micros\x18\xb1\x80\x81\xda\x01 \x01(\x03H\x01\x88\x01\x01\x12U\n\x15\x63ontrol_packet_counts\x18\xf9\xd2\x9b? \x01(\x0b\x32..google.cloud.compute.v1.BfdStatusPacketCountsH\x02\x88\x01\x01\x12N\n\x18\x63ontrol_packet_intervals\x18\xf9\xe7\xe6\xee\x01 \x03(\x0b\x32(.google.cloud.compute.v1.PacketIntervals\x12!\n\x10local_diagnostic\x18\xfb\xa1\x90\xdd\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0blocal_state\x18\xbd\x95\x92G \x01(\tH\x04\x88\x01\x01\x12\x37\n\'negotiated_local_control_tx_interval_ms\x18\x94\xd1\xb0\n \x01(\rH\x05\x88\x01\x01\x12>\n\trx_packet\x18\xa1\x81\xeb\xf0\x01 \x01(\x0b\x32\".google.cloud.compute.v1.BfdPacketH\x06\x88\x01\x01\x12=\n\ttx_packet\x18\xa3\xbd\x8e\x35 \x01(\x0b\x32\".google.cloud.compute.v1.BfdPacketH\x07\x88\x01\x01\x12\x19\n\tuptime_ms\x18\xdd\xda\xe5; \x01(\x03H\x08\x88\x01\x01\"\x80\x01\n\x1c\x42\x66\x64SessionInitializationMode\x12-\n)UNDEFINED_BFD_SESSION_INITIALIZATION_MODE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x07PASSIVE\x10\x87\xf6\xd7\xdc\x01\"\xe9\x02\n\x0fLocalDiagnostic\x12\x1e\n\x1aUNDEFINED_LOCAL_DIAGNOSTIC\x10\x00\x12\x1c\n\x15\x41\x44MINISTRATIVELY_DOWN\x10\xa6\x8e\x83:\x12\x1d\n\x16\x43ONCATENATED_PATH_DOWN\x10\x8c\xa9\xbe\x0c\x12%\n\x1e\x43ONTROL_DETECTION_TIME_EXPIRED\x10\xef\xf8\xcc@\x12\x1d\n\x16\x44IAGNOSTIC_UNSPECIFIED\x10\xff\x84\x80\x1c\x12\x1b\n\x14\x45\x43HO_FUNCTION_FAILED\x10\xea\xd8\x9di\x12\x1d\n\x16\x46ORWARDING_PLANE_RESET\x10\xaa\xae\xb3\t\x12&\n\x1eNEIGHBOR_SIGNALED_SESSION_DOWN\x10\xb6\xfe\xb8\xb2\x01\x12\x14\n\rNO_DIAGNOSTIC\x10\xe5\xc1\x8cj\x12\x11\n\tPATH_DOWN\x10\xfc\x90\xc9\x8a\x01\x12&\n\x1eREVERSE_CONCATENATED_PATH_DOWN\x10\xa9\xb5\xc8\xe4\x01\"x\n\nLocalState\x12\x19\n\x15UNDEFINED_LOCAL_STATE\x10\x00\x12\x11\n\nADMIN_DOWN\x10\xb2\xdf\xa5=\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x0b\n\x04INIT\x10\x90\xba\x89\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\"\n _bfd_session_initialization_modeB!\n\x1f_config_update_timestamp_microsB\x18\n\x16_control_packet_countsB\x13\n\x11_local_diagnosticB\x0e\n\x0c_local_stateB*\n(_negotiated_local_control_tx_interval_msB\x0c\n\n_rx_packetB\x0c\n\n_tx_packetB\x0c\n\n_uptime_ms\"\xcd\x01\n\x15\x42\x66\x64StatusPacketCounts\x12\x16\n\x06num_rx\x18\x9f\xa3\xe3\x12 \x01(\rH\x00\x88\x01\x01\x12 \n\x0fnum_rx_rejected\x18\x9e\xae\xff\x85\x01 \x01(\rH\x01\x88\x01\x01\x12\"\n\x11num_rx_successful\x18\xba\x8a\x91\xd9\x01 \x01(\rH\x02\x88\x01\x01\x12\x16\n\x06num_tx\x18\xdd\xa3\xe3\x12 \x01(\rH\x03\x88\x01\x01\x42\t\n\x07_num_rxB\x12\n\x10_num_rx_rejectedB\x14\n\x12_num_rx_successfulB\t\n\x07_num_tx\"\x81\x03\n\x08\x42gpRoute\x12<\n\x08\x61s_paths\x18\xa1\xc5\xcc\x41 \x03(\x0b\x32\'.google.cloud.compute.v1.BgpRouteAsPath\x12\x16\n\x0b\x63ommunities\x18\xc7\xd4\xe2Y \x03(\t\x12\x61\n\x0b\x64\x65stination\x18\x8e\x88\x99V \x01(\x0b\x32\x44.google.cloud.compute.v1.BgpRouteNetworkLayerReachabilityInformationH\x00\x88\x01\x01\x12\x12\n\x03med\x18\xcc\xcb\x06 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x06origin\x18\xa6\xde\x86\x1f \x01(\tH\x02\x88\x01\x01\"m\n\x06Origin\x12\x14\n\x10UNDEFINED_ORIGIN\x10\x00\x12\x16\n\x0e\x42GP_ORIGIN_EGP\x10\xe9\xce\xd6\xb4\x01\x12\x16\n\x0e\x42GP_ORIGIN_IGP\x10\xed\xec\xd6\xb4\x01\x12\x1d\n\x15\x42GP_ORIGIN_INCOMPLETE\x10\x83\x93\xf7\xd7\x01\x42\x0e\n\x0c_destinationB\x06\n\x04_medB\t\n\x07_origin\"\x95\x01\n\x0e\x42gpRouteAsPath\x12\x0f\n\x04\x61sns\x18\xf7\xaa\xb7\x01 \x03(\x05\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x00\x88\x01\x01\"S\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1d\n\x15\x41S_PATH_TYPE_SEQUENCE\x10\xb9\xf3\x84\xad\x01\x12\x18\n\x10\x41S_PATH_TYPE_SET\x10\xca\xa6\xa4\x90\x01\x42\x07\n\x05_type\"v\n+BgpRouteNetworkLayerReachabilityInformation\x12\x18\n\x07path_id\x18\xf5\xbe\xcd\x86\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\x06prefix\x18\x92\xe5\xd2, \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_path_idB\t\n\x07_prefix\"\xb1\x01\n\x07\x42inding\x12\x1b\n\nbinding_id\x18\x95\xf2\xa9\xd2\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\tcondition\x18\x9b\xda\xa5\x65 \x01(\x0b\x32\x1d.google.cloud.compute.v1.ExprH\x01\x88\x01\x01\x12\x13\n\x07members\x18\x99\x92\xbb\xc4\x01 \x03(\t\x12\x14\n\x04role\x18\xf6\x80\xd6\x01 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_binding_idB\x0c\n\n_conditionB\x07\n\x05_role\"\xe8\x01\n\x15\x42ulkInsertDiskRequest\x12\x64\n\"bulk_insert_disk_resource_resource\x18\xd6\xf9\x97\x8a\x01 \x01(\x0b\x32/.google.cloud.compute.v1.BulkInsertDiskResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"m\n\x16\x42ulkInsertDiskResource\x12/\n\x1fsource_consistency_group_policy\x18\xdd\xa2\xad\t \x01(\tH\x00\x88\x01\x01\x42\"\n _source_consistency_group_policy\"\xf3\x01\n\x19\x42ulkInsertInstanceRequest\x12k\n&bulk_insert_instance_resource_resource\x18\xce\xc2\xe0\x13 \x01(\x0b\x32\x33.google.cloud.compute.v1.BulkInsertInstanceResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x05\n\x1a\x42ulkInsertInstanceResource\x12\x15\n\x05\x63ount\x18\x8f\xa2\x9d- \x01(\x03H\x00\x88\x01\x01\x12P\n\x13instance_properties\x18\x9d\x9e\xd8\x66 \x01(\x0b\x32+.google.cloud.compute.v1.InstancePropertiesH\x01\x88\x01\x01\x12I\n\x0flocation_policy\x18\xfc\xb9\x87\xde\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.LocationPolicyH\x02\x88\x01\x01\x12\x1a\n\tmin_count\x18\xe2\xa9\xbf\xf9\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1d\n\x0cname_pattern\x18\xdc\xa3\xa9\xc5\x01 \x01(\tH\x04\x88\x01\x01\x12r\n\x17per_instance_properties\x18\xfb\xb9\xde\x33 \x03(\x0b\x32N.google.cloud.compute.v1.BulkInsertInstanceResource.PerInstancePropertiesEntry\x12)\n\x18source_instance_template\x18\xc0\xc3\xc1\x9e\x01 \x01(\tH\x05\x88\x01\x01\x1a\x86\x01\n\x1aPerInstancePropertiesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12W\n\x05value\x18\x02 \x01(\x0b\x32H.google.cloud.compute.v1.BulkInsertInstanceResourcePerInstanceProperties:\x02\x38\x01\x42\x08\n\x06_countB\x16\n\x14_instance_propertiesB\x12\n\x10_location_policyB\x0c\n\n_min_countB\x0f\n\r_name_patternB\x1b\n\x19_source_instance_template\"w\n/BulkInsertInstanceResourcePerInstanceProperties\x12\x18\n\x08hostname\x18\xb3\xb8\x85q \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_hostnameB\x07\n\x05_name\"\x9c\x03\n\x19\x42ulkInsertOperationStatus\x12!\n\x10\x63reated_vm_count\x18\xfe\xa9\xa2\xbd\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x10\x64\x65leted_vm_count\x18\xed\xd5\xca\x81\x01 \x01(\x05H\x01\x88\x01\x01\x12)\n\x19\x66\x61iled_to_create_vm_count\x18\xe8\xbd\xeb\x1b \x01(\x05H\x02\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\x12 \n\x0ftarget_vm_count\x18\xf5\xa0\x92\xfe\x01 \x01(\x05H\x04\x88\x01\x01\"m\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x0b\n\x04\x44ONE\x10\x82\xb7\x80\x01\x12\x13\n\x0cROLLING_BACK\x10\xc1\x9d\xd9{\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\x13\n\x11_created_vm_countB\x13\n\x11_deleted_vm_countB\x1c\n\x1a_failed_to_create_vm_countB\t\n\x07_statusB\x12\n\x10_target_vm_count\"\xf2\x01\n\x1b\x42ulkInsertRegionDiskRequest\x12\x64\n\"bulk_insert_disk_resource_resource\x18\xd6\xf9\x97\x8a\x01 \x01(\x0b\x32/.google.cloud.compute.v1.BulkInsertDiskResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xfd\x01\n\x1f\x42ulkInsertRegionInstanceRequest\x12k\n&bulk_insert_instance_resource_resource\x18\xce\xc2\xe0\x13 \x01(\x0b\x32\x33.google.cloud.compute.v1.BulkInsertInstanceResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x97\x02\n\x18\x42ulkSetLabelsDiskRequest\x12i\n%bulk_zone_set_labels_request_resource\x18\x9b\xa5\xac\xfd\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.BulkZoneSetLabelsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0b\n\t_resource\"\xcd\x01\n\x14\x42ulkSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12M\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x39.google.cloud.compute.v1.BulkSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"^\n\x18\x42ulkZoneSetLabelsRequest\x12\x42\n\x08requests\x18\xc4\xbf\xbd\x44 \x03(\x0b\x32-.google.cloud.compute.v1.BulkSetLabelsRequest\"l\n\x15\x43\x61\x63heInvalidationRule\x12\x15\n\ncache_tags\x18\xb6\xbd\xee\r \x03(\t\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_hostB\x07\n\x05_path\"\xc2\x02\n\x0e\x43\x61\x63heKeyPolicy\x12\x1d\n\x0cinclude_host\x18\xdf\x85\x94\xe8\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x14include_http_headers\x18\x86\xfa\x97\x01 \x03(\t\x12 \n\x15include_named_cookies\x18\xb2\xb0\xd1) \x03(\t\x12!\n\x10include_protocol\x18\xcf\xd0\xdc\x90\x01 \x01(\x08H\x01\x88\x01\x01\x12%\n\x14include_query_string\x18\x9f\xf3\x84\xe2\x01 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x16query_string_blacklist\x18\x86\xaa\xa1\xa9\x01 \x03(\t\x12!\n\x16query_string_whitelist\x18\xb0\xd8\x81\x19 \x03(\tB\x0f\n\r_include_hostB\x13\n\x11_include_protocolB\x17\n\x15_include_query_string\"\xe3\x01\n.CancelInstanceGroupManagerResizeRequestRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0eresize_request\x18\x84\x84\xb9g \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb0\x02\n\x0f\x43ircuitBreakers\x12\x1f\n\x0fmax_connections\x18\xfa\xd5\xe1\x34 \x01(\x05H\x00\x88\x01\x01\x12%\n\x14max_pending_requests\x18\xe7\xa5\x8a\xb3\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0cmax_requests\x18\xbf\xf8\xb2\r \x01(\x05H\x02\x88\x01\x01\x12,\n\x1bmax_requests_per_connection\x18\xc0\x96\xb8\xac\x01 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\x0bmax_retries\x18\xeb\xa2\xbe\x1a \x01(\x05H\x04\x88\x01\x01\x42\x12\n\x10_max_connectionsB\x17\n\x15_max_pending_requestsB\x0f\n\r_max_requestsB\x1e\n\x1c_max_requests_per_connectionB\x0e\n\x0c_max_retries\"\xb1\x01\n\x1f\x43loneRulesFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12&\n\x16source_firewall_policy\x18\xad\xda\xf6\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x19\n\x17_source_firewall_policy\"\xdb\x01\n&CloneRulesNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12&\n\x16source_firewall_policy\x18\xad\xda\xf6\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x19\n\x17_source_firewall_policy\"\x82\x02\n,CloneRulesRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12&\n\x16source_firewall_policy\x18\xad\xda\xf6\x0b \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x19\n\x17_source_firewall_policy\"\xe8\x12\n\nCommitment\x12\x1b\n\nauto_renew\x18\xfd\x97\xa4\xec\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08\x63\x61tegory\x18\xfe\xf9\x8a\x18 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12$\n\x14\x63ustom_end_timestamp\x18\xe4\xb4\xd6V \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12\x1e\n\rend_timestamp\x18\xb2\xad\x9a\xdf\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x15\x65xisting_reservations\x18\xdb\x88\x8c\xeb\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12U\n\x10license_resource\x18\xcc\xd4\xea\xd0\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.LicenseResourceCommitmentH\x08\x88\x01\x01\x12#\n\x18merge_source_commitments\x18\xc1\xaa\xd8Y \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04plan\x18\xa9\x96\xd2\x01 \x01(\tH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12>\n\x0creservations\x18\xa7\xec\xcc\xbe\x01 \x03(\x0b\x32$.google.cloud.compute.v1.Reservation\x12R\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x31.google.cloud.compute.v1.CommitmentResourceStatusH\x0c\x88\x01\x01\x12\x41\n\tresources\x18\xa5\xfc\xb2N \x03(\x0b\x32+.google.cloud.compute.v1.ResourceCommitment\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12(\n\x17split_source_commitment\x18\xd4\xb7\xfd\xbf\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x0fstart_timestamp\x18\xf9\xaa\xf1\' \x01(\tH\x0f\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x10\x88\x01\x01\x12\x1f\n\x0estatus_message\x18\xba\xc9\xe9\x8d\x01 \x01(\tH\x11\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x12\x88\x01\x01\"b\n\x08\x43\x61tegory\x12\x16\n\x12UNDEFINED_CATEGORY\x10\x00\x12\x1c\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\xd6\xba\xe6\xf2\x01\x12\x0f\n\x07LICENSE\x10\xa1\xa0\xf0\xa5\x01\x12\x0f\n\x07MACHINE\x10\xa7\xa0\xf3\xdf\x01\"Y\n\x04Plan\x12\x12\n\x0eUNDEFINED_PLAN\x10\x00\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x17\n\x10THIRTY_SIX_MONTH\x10\x86\xb5\xfd~\x12\x13\n\x0cTWELVE_MONTH\x10\xba\x9a\xc4R\"z\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\tCANCELLED\x10\xb1\xf2\x80\x14\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x0f\n\x07\x45XPIRED\x10\x85\xe6\x88\xe6\x01\x12\x15\n\x0eNOT_YET_ACTIVE\x10\xe9\xe2\xe9\t\"\x9e\x07\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1d\n\x15\x41\x43\x43\x45LERATOR_OPTIMIZED\x10\x93\xd0\xf5\x85\x01\x12\x1f\n\x18\x41\x43\x43\x45LERATOR_OPTIMIZED_A3\x10\xbe\xcf\xceK\x12$\n\x1d\x41\x43\x43\x45LERATOR_OPTIMIZED_A3_MEGA\x10\xd3\x88\xd1J\x12%\n\x1e\x41\x43\x43\x45LERATOR_OPTIMIZED_A3_ULTRA\x10\xcb\xc7\xa1\r\x12\x1f\n\x18\x41\x43\x43\x45LERATOR_OPTIMIZED_A4\x10\xbf\xcf\xceK\x12\x18\n\x11\x43OMPUTE_OPTIMIZED\x10\xdf\xed\xc0K\x12\x1d\n\x15\x43OMPUTE_OPTIMIZED_C2D\x10\xf5\xc0\xdf\xb6\x01\x12\x1c\n\x14\x43OMPUTE_OPTIMIZED_C3\x10\xb0\xab\x8b\xcc\x01\x12\x1d\n\x15\x43OMPUTE_OPTIMIZED_C3D\x10\x94\xc1\xdf\xb6\x01\x12\x1c\n\x14\x43OMPUTE_OPTIMIZED_H3\x10\xcb\xac\x8b\xcc\x01\x12\x1d\n\x15\x43OMPUTE_OPTIMIZED_H4D\x10\xf8\xe6\xdf\xb6\x01\x12\x17\n\x0fGENERAL_PURPOSE\x10\x87\xf9\xf9\x8e\x01\x12\x1a\n\x12GENERAL_PURPOSE_C4\x10\x89\x9e\xfb\x8f\x01\x12\x1a\n\x13GENERAL_PURPOSE_C4A\x10\xd8\xa4\xecn\x12\x1a\n\x13GENERAL_PURPOSE_C4D\x10\xdb\xa4\xecn\x12\x1a\n\x12GENERAL_PURPOSE_E2\x10\xc5\x9e\xfb\x8f\x01\x12\x1a\n\x12GENERAL_PURPOSE_N2\x10\xdc\xa0\xfb\x8f\x01\x12\x1a\n\x13GENERAL_PURPOSE_N2D\x10\xe8\xf6\xecn\x12\x1a\n\x12GENERAL_PURPOSE_N4\x10\xde\xa0\xfb\x8f\x01\x12\x1a\n\x13GENERAL_PURPOSE_T2D\x10\xee\xa3\xedn\x12\x19\n\x12GRAPHICS_OPTIMIZED\x10\xd3\xf8\xd4 \x12\x18\n\x10MEMORY_OPTIMIZED\x10\xc9\xee\xac\x86\x01\x12\x1b\n\x13MEMORY_OPTIMIZED_M3\x10\xbc\x8c\xe0\x83\x01\x12\x1b\n\x13MEMORY_OPTIMIZED_M4\x10\xbd\x8c\xe0\x83\x01\x12\x1e\n\x17MEMORY_OPTIMIZED_M4_6TB\x10\xa2\xc8\xb2\x64\x12\x1f\n\x18MEMORY_OPTIMIZED_X4_16TB\x10\xe0\xef\xa6W\x12\x1f\n\x18MEMORY_OPTIMIZED_X4_24TB\x10\xbd\xc9\xa8W\x12\x1f\n\x18MEMORY_OPTIMIZED_X4_32TB\x10\x9a\xa3\xaaW\x12\x1c\n\x14STORAGE_OPTIMIZED_Z3\x10\xb5\xd9\x87\x97\x01\x12\x18\n\x10TYPE_UNSPECIFIED\x10\x92\xfb\xdb\xd0\x01\x42\r\n\x0b_auto_renewB\x0b\n\t_categoryB\x15\n\x13_creation_timestampB\x17\n\x15_custom_end_timestampB\x0e\n\x0c_descriptionB\x10\n\x0e_end_timestampB\x05\n\x03_idB\x07\n\x05_kindB\x13\n\x11_license_resourceB\x07\n\x05_nameB\x07\n\x05_planB\t\n\x07_regionB\x12\n\x10_resource_statusB\x0c\n\n_self_linkB\x1a\n\x18_split_source_commitmentB\x12\n\x10_start_timestampB\t\n\x07_statusB\x11\n\x0f_status_messageB\x07\n\x05_type\"\xbf\x03\n\x18\x43ommitmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.CommitmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.CommitmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0e\x43ommitmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Commitment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"|\n\x18\x43ommitmentResourceStatus\x12\x36\n%custom_term_eligibility_end_timestamp\x18\xfb\xab\xc7\xad\x01 \x01(\tH\x00\x88\x01\x01\x42(\n&_custom_term_eligibility_end_timestamp\"\x9c\x01\n\x15\x43ommitmentsScopedList\x12<\n\x0b\x63ommitments\x18\xfe\xaf\xf2\xd6\x01 \x03(\x0b\x32#.google.cloud.compute.v1.Commitment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd0\x02\n\x1a\x43onfidentialInstanceConfig\x12*\n\x1a\x63onfidential_instance_type\x18\xad\x8c\xde\x14 \x01(\tH\x00\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x01\x88\x01\x01\"\x99\x01\n\x18\x43onfidentialInstanceType\x12(\n$UNDEFINED_CONFIDENTIAL_INSTANCE_TYPE\x10\x00\x12-\n&CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED\x10\x85\xb0\xec\x36\x12\t\n\x03SEV\x10\xc4\x80\x05\x12\x0e\n\x07SEV_SNP\x10\xda\xdd\xaf\n\x12\t\n\x03TDX\x10\xe8\x87\x05\x42\x1d\n\x1b_confidential_instance_typeB\x1e\n\x1c_enable_confidential_compute\"S\n\x12\x43onnectionDraining\x12$\n\x14\x64raining_timeout_sec\x18\x9e\xd5\xack \x01(\x05H\x00\x88\x01\x01\x42\x17\n\x15_draining_timeout_sec\"\x88\x02\n\"ConsistentHashLoadBalancerSettings\x12\x62\n\x0bhttp_cookie\x18\xfb\xab\x97\x03 \x01(\x0b\x32\x45.google.cloud.compute.v1.ConsistentHashLoadBalancerSettingsHttpCookieH\x00\x88\x01\x01\x12 \n\x10http_header_name\x18\xc6\xf7\xfao \x01(\tH\x01\x88\x01\x01\x12!\n\x11minimum_ring_size\x18\xbf\xbb\xe1o \x01(\x03H\x02\x88\x01\x01\x42\x0e\n\x0c_http_cookieB\x13\n\x11_http_header_nameB\x14\n\x12_minimum_ring_size\"\xab\x01\n,ConsistentHashLoadBalancerSettingsHttpCookie\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x03ttl\x18\xec\x83\x07 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x02\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_pathB\x06\n\x04_ttl\"\x9e\x02\n\nCorsPolicy\x12\"\n\x11\x61llow_credentials\x18\x86\xfe\xbd\xe5\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\rallow_headers\x18\x90\xc1\xc5\x15 \x03(\t\x12\x18\n\rallow_methods\x18\xbc\xf9\xf8\x61 \x03(\t\x12\x1f\n\x14\x61llow_origin_regexes\x18\xd2\x8d\xda\x66 \x03(\t\x12\x18\n\rallow_origins\x18\x97\xce\xf8\\ \x03(\t\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0e\x65xpose_headers\x18\x8b\xcc\x88v \x03(\t\x12\x18\n\x07max_age\x18\xa4\xf7\xd3\x92\x01 \x01(\x05H\x02\x88\x01\x01\x42\x14\n\x12_allow_credentialsB\x0b\n\t_disabledB\n\n\x08_max_age\"\xd1\x02\n*CreateInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_create_instances_request_resource\x18\x93\xfa\xda\x0b \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagersCreateInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n0CreateInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_instance_group_managers_create_instances_request_resource\x18\x88\xbf\x98\xab\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagersCreateInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf7\x01\n%CreateMembersInterconnectGroupRequest\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tB\x03\xe0\x41\x02\x12\x85\x01\n3interconnect_groups_create_members_request_resource\x18\xed\xfc\x8b\xa6\x01 \x01(\x0b\x32?.google.cloud.compute.v1.InterconnectGroupsCreateMembersRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\"\x91\x02\n\x19\x43reateSnapshotDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x45\n\x11snapshot_resource\x18\xa9\xb8\xc1\xe5\x01 \x01(\x0b\x32!.google.cloud.compute.v1.SnapshotB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x0e\n\x0c_guest_flushB\r\n\x0b_request_id\"\xed\x01\n\x1f\x43reateSnapshotRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x45\n\x11snapshot_resource\x18\xa9\xb8\xc1\xe5\x01 \x01(\x0b\x32!.google.cloud.compute.v1.SnapshotB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb8\x01\n\x19\x43ustomErrorResponsePolicy\x12j\n\x14\x65rror_response_rules\x18\x90\xad\xfc\x06 \x03(\x0b\x32I.google.cloud.compute.v1.CustomErrorResponsePolicyCustomErrorResponseRule\x12\x1d\n\rerror_service\x18\xfe\xee\xa6N \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_error_service\"\xb6\x01\n0CustomErrorResponsePolicyCustomErrorResponseRule\x12\x1f\n\x14match_response_codes\x18\xe2\x88\x87\x32 \x03(\t\x12\'\n\x16override_response_code\x18\xf8\xd7\xf0\xfc\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x01\x88\x01\x01\x42\x19\n\x17_override_response_codeB\x07\n\x05_path\"\x8f\x02\n\x15\x43ustomerEncryptionKey\x12\x1d\n\x0ckms_key_name\x18\x99\xeb\xfb\xe6\x01 \x01(\tH\x00\x88\x01\x01\x12\'\n\x17kms_key_service_account\x18\xd5\xc5\x90\x64 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x07raw_key\x18\xc8\xe3\x98\xd6\x01 \x01(\tH\x02\x88\x01\x01\x12\"\n\x11rsa_encrypted_key\x18\xa5\xc3\xfc\x9f\x01 \x01(\tH\x03\x88\x01\x01\x12\x16\n\x06sha256\x18\xa7\xec\x8eQ \x01(\tH\x04\x88\x01\x01\x42\x0f\n\r_kms_key_nameB\x1a\n\x18_kms_key_service_accountB\n\n\x08_raw_keyB\x14\n\x12_rsa_encrypted_keyB\t\n\x07_sha256\"\xb5\x01\n\"CustomerEncryptionKeyProtectedDisk\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x00\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_disk_encryption_keyB\t\n\x07_source\"C\n\x04\x44\x61ta\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x08\n\x06_value\"\xeb\x01\n!DeleteAccessConfigInstanceRequest\x12\x1d\n\raccess_config\x18\xfd\xe4\xde\" \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x9f\x01\n\x14\x44\x65leteAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa1\x01\n\x17\x44\x65leteAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x8a\x01\n\x1a\x44\x65leteBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8d\x01\n\x1b\x44\x65leteBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x94\x01\n\x11\x44\x65leteDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x95\x01\n\x1f\x44\x65leteExternalVpnGatewayRequest\x12$\n\x14\x65xternal_vpn_gateway\x18\x85\xd7\xb3\x34 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"j\n\x1b\x44\x65leteFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x80\x01\n\x15\x44\x65leteFirewallRequest\x12\x19\n\x08\x66irewall\x18\x80\xfa\xd5\xf3\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xae\x01\n\x1b\x44\x65leteForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x84\x01\n\x1a\x44\x65leteGlobalAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x93\x01\n!DeleteGlobalForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa0\x01\n\'DeleteGlobalNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"R\n\x1c\x44\x65leteGlobalOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\"\x1f\n\x1d\x44\x65leteGlobalOperationResponse\"o\n(DeleteGlobalOrganizationOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_parent_id\"+\n)DeleteGlobalOrganizationOperationResponse\"\xa2\x01\n)DeleteGlobalPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x87\x01\n\x18\x44\x65leteHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"y\n\x12\x44\x65leteImageRequest\x12\x15\n\x05image\x18\xdb\xd2\xea/ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb6\x01\n!DeleteInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe3\x01\n.DeleteInstanceGroupManagerResizeRequestRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0eresize_request\x18\x84\x84\xb9g \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa7\x01\n\x1a\x44\x65leteInstanceGroupRequest\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x9c\x01\n\x15\x44\x65leteInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x91\x01\n\x1d\x44\x65leteInstanceTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd1\x02\n*DeleteInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_delete_instances_request_resource\x18\x84\xc6\xadO \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagersDeleteInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n0DeleteInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_instance_group_managers_delete_instances_request_resource\x18\xf9\x8a\xeb\xee\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagersDeleteInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xac\x01\n\x1c\x44\x65leteInstantSnapshotRequest\x12!\n\x10instant_snapshot\x18\xe2\xdc\xdf\xba\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa7\x01\n(DeleteInterconnectAttachmentGroupRequest\x12-\n\x1dinterconnect_attachment_group\x18\xf4\xef\x98$ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbe\x01\n#DeleteInterconnectAttachmentRequest\x12(\n\x17interconnect_attachment\x18\xf4\x8a\xf7\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x93\x01\n\x1e\x44\x65leteInterconnectGroupRequest\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x87\x01\n\x19\x44\x65leteInterconnectRequest\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"}\n\x14\x44\x65leteLicenseRequest\x12\x17\n\x07license\x18\xc1\x88\xc2O \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x88\x01\n\x19\x44\x65leteMachineImageRequest\x12\x1d\n\rmachine_image\x18\xe3\xfe\xfe \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb3\x01\n\x1e\x44\x65leteNetworkAttachmentRequest\x12\"\n\x12network_attachment\x18\xd4\x97\x8fk \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc7\x01\n\'DeleteNetworkEdgeSecurityServiceRequest\x12-\n\x1dnetwork_edge_security_service\x18\xa7\x9f\xefJ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb7\x01\n!DeleteNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x94\x01\n\"DeleteNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd5\x01\n%DeleteNetworkInterfaceInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16network_interface_name\x18\x82\xa8\xeb\xb5\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"}\n\x14\x44\x65leteNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa0\x01\n\x16\x44\x65leteNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xaa\x01\n\x19\x44\x65leteNodeTemplateRequest\x12\x1e\n\rnode_template\x18\x97\xe4\x8b\x9a\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x97\x02\n\x1b\x44\x65leteNodesNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12p\n)node_groups_delete_nodes_request_resource\x18\x92\xd7\xb3W \x01(\x0b\x32\x35.google.cloud.compute.v1.NodeGroupsDeleteNodesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xaf\x01\n\x1c\x44\x65letePacketMirroringRequest\x12 \n\x10packet_mirroring\x18\xcc\xb9\xd1\n \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbc\x02\n3DeletePerInstanceConfigsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x9c\x01\n@instance_group_managers_delete_per_instance_configs_req_resource\x18\xa0\xea\xe8\xac\x01 \x01(\x0b\x32I.google.cloud.compute.v1.InstanceGroupManagersDeletePerInstanceConfigsReqB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zone\"\xc6\x02\n9DeletePerInstanceConfigsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9c\x01\nAregion_instance_group_manager_delete_instance_config_req_resource\x18\x85\x9b- \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagerDeleteInstanceConfigReqB\x03\xe0\x41\x02\"\x9e\x01\n$DeletePublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n#DeletePublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xab\x01\n\x1d\x44\x65leteRegionAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb4\x01\n!DeleteRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9e\x01\n\x17\x44\x65leteRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xae\x01\n\x1e\x44\x65leteRegionHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n%DeleteRegionHealthCheckServiceRequest\x12%\n\x14health_check_service\x18\xdb\x9b\xdd\xc2\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc0\x01\n\'DeleteRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb8\x01\n#DeleteRegionInstanceTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb6\x01\n\"DeleteRegionInstantSnapshotRequest\x12!\n\x10instant_snapshot\x18\xe2\xdc\xdf\xba\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc1\x01\n\'DeleteRegionNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbb\x01\n(DeleteRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc0\x01\n\'DeleteRegionNotificationEndpointRequest\x12&\n\x15notification_endpoint\x18\xe9\xbc\xd6\xb3\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"j\n\x1c\x44\x65leteRegionOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\"\x1f\n\x1d\x44\x65leteRegionOperationResponse\"\xb3\x01\n!DeleteRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb3\x01\n!DeleteRegionSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fssl_certificate\x18\xe4\xd7\x92\x16 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xaa\x01\n\x1c\x44\x65leteRegionSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb6\x01\n\"DeleteRegionTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb8\x01\n#DeleteRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb5\x01\n!DeleteRegionTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa4\x01\n\x19\x44\x65leteRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa2\x01\n\x18\x44\x65leteReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xad\x01\n\x1b\x44\x65leteResourcePolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fresource_policy\x18\x83\xa5\xf7K \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xca\x01\n\x1e\x44\x65leteRoutePolicyRouterRequest\x12\x16\n\x06policy\x18\xb2\xca\xb6+ \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_policyB\r\n\x0b_request_id\"y\n\x12\x44\x65leteRouteRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05route\x18\xc9\xe4\xea\x33 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9c\x01\n\x13\x44\x65leteRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8c\x01\n\x1b\x44\x65leteSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb4\x01\n\x1e\x44\x65leteServiceAttachmentRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12#\n\x12service_attachment\x18\xed\xa9\xd0\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb1\x01\n&DeleteSignedUrlKeyBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08key_name\x18\xeb\xf0\xee\xee\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb4\x01\n\'DeleteSignedUrlKeyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08key_name\x18\xeb\xf0\xee\xee\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x80\x01\n\x15\x44\x65leteSnapshotRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x08snapshot\x18\xc4\xab\xeb\x87\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8c\x01\n\x1b\x44\x65leteSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fssl_certificate\x18\xe4\xd7\x92\x16 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x83\x01\n\x16\x44\x65leteSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa4\x01\n\x18\x44\x65leteStoragePoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x01\n\x17\x44\x65leteSubnetworkRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8f\x01\n\x1c\x44\x65leteTargetGrpcProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_grpc_proxy\x18\xfb\xb4\xb2\x02 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8f\x01\n\x1c\x44\x65leteTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x91\x01\n\x1d\x44\x65leteTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xaa\x01\n\x1b\x44\x65leteTargetInstanceRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12 \n\x0ftarget_instance\x18\x83\x8f\x96\x8a\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x01\n\x17\x44\x65leteTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8e\x01\n\x1b\x44\x65leteTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8e\x01\n\x1b\x44\x65leteTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb3\x01\n\x1d\x44\x65leteTargetVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12#\n\x12target_vpn_gateway\x18\xcb\x80\xf6\xfd\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"}\n\x13\x44\x65leteUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa6\x01\n\x17\x44\x65leteVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bvpn_gateway\x18\xf9\x83\xf6\xc1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa3\x01\n\x16\x44\x65leteVpnTunnelRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nvpn_tunnel\x18\x93\x94\xca\x44 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"f\n\x1a\x44\x65leteZoneOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\x1d\n\x1b\x44\x65leteZoneOperationResponse\"J\n\x06\x44\x65nied\x12\x1d\n\x0cI_p_protocol\x18\xbd\xf6\xde\xe8\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05ports\x18\x92\xf0\xf9\x32 \x03(\tB\x0f\n\r_I_p_protocol\"\xd6\x01\n\x15\x44\x65precateImageRequest\x12X\n\x1b\x64\x65precation_status_resource\x18\xf0\x89\xe5\x9e\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusB\x03\xe0\x41\x02\x12\x15\n\x05image\x18\xdb\xd2\xea/ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x02\n\x11\x44\x65precationStatus\x12\x18\n\x07\x64\x65leted\x18\x99\xe0\xa8\xe3\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x08obsolete\x18\x99\x8b\xc5\xaa\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0breplacement\x18\x92\x9c\xbd\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x04\x88\x01\x01\"a\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x07\x44\x45LETED\x10\xf9\xf7\xd6\x39\x12\x12\n\nDEPRECATED\x10\xb3\xa3\xf9\xdc\x01\x12\x0f\n\x08OBSOLETE\x10\x99\xeb\xdc\x1f\x42\n\n\x08_deletedB\r\n\x0b_deprecatedB\x0b\n\t_obsoleteB\x0e\n\x0c_replacementB\x08\n\x06_state\"\xbd\x01\n\x19\x44\x65tachDiskInstanceRequest\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcf\x02\n7DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x12\x9c\x01\n@global_network_endpoint_groups_detach_endpoints_request_resource\x18\xdd\x8d\x9f\x04 \x01(\x0b\x32J.google.cloud.compute.v1.GlobalNetworkEndpointGroupsDetachEndpointsRequestB\x03\xe0\x41\x02\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xda\x02\n1DetachNetworkEndpointsNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x90\x01\n9network_endpoint_groups_detach_endpoints_request_resource\x18\xf9\xa0\xee\xf5\x01 \x01(\x0b\x32\x44.google.cloud.compute.v1.NetworkEndpointGroupsDetachEndpointsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf1\x02\n7DetachNetworkEndpointsRegionNetworkEndpointGroupRequest\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_network_endpoint_groups_detach_endpoints_request_resource\x18\xee\xe5\xab\x95\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionNetworkEndpointGroupsDetachEndpointsRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"l\n\x1c\x44isableXpnHostProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xec\x01\n DisableXpnResourceProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12z\n.projects_disable_xpn_resource_request_resource\x18\xaa\xd4\xdc\x63 \x01(\x0b\x32:.google.cloud.compute.v1.ProjectsDisableXpnResourceRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xcf\x1a\n\x04\x44isk\x12\x1b\n\x0b\x61\x63\x63\x65ss_mode\x18\x9e\xf7\xcf\x13 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x01\x88\x01\x01\x12Q\n\x12\x61sync_primary_disk\x18\x9d\xf5\x89V \x01(\x0b\x32-.google.cloud.compute.v1.DiskAsyncReplicationH\x02\x88\x01\x01\x12Y\n\x15\x61sync_secondary_disks\x18\xa8\xe8\xfd\x99\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.Disk.AsyncSecondaryDisksEntry\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x05\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x06\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\t\x88\x01\x01\x12=\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32).google.cloud.compute.v1.Disk.LabelsEntry\x12%\n\x15last_attach_timestamp\x18\xa5\x9c\x8d\x14 \x01(\tH\n\x88\x01\x01\x12%\n\x15last_detach_timestamp\x18\xf3\xdb\xf6\x1a \x01(\tH\x0b\x88\x01\x01\x12\x18\n\rlicense_codes\x18\xa8\x85\xd8\x15 \x03(\x03\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\r\x88\x01\x01\x12\x18\n\x07options\x18\x9e\x8d\x9a\xac\x01 \x01(\tH\x0e\x88\x01\x01\x12;\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32#.google.cloud.compute.v1.DiskParamsH\x0f\x88\x01\x01\x12*\n\x19physical_block_size_bytes\x18\x87\xa0\xa3\xc8\x01 \x01(\x03H\x10\x88\x01\x01\x12 \n\x10provisioned_iops\x18\xd4\xbd\x87Y \x01(\x03H\x11\x88\x01\x01\x12\'\n\x16provisioned_throughput\x18\x95\xbe\x88\xfb\x01 \x01(\x03H\x12\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x13\x88\x01\x01\x12\x18\n\rreplica_zones\x18\x80\xb8\x8c\x17 \x03(\t\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12L\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32+.google.cloud.compute.v1.DiskResourceStatusH\x14\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x15\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x16\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x17\x88\x01\x01\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x18\x88\x01\x01\x12/\n\x1fsource_consistency_group_policy\x18\xdd\xa2\xad\t \x01(\tH\x19\x88\x01\x01\x12\x32\n\"source_consistency_group_policy_id\x18\xbd\x8e\xcb\x7f \x01(\tH\x1a\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x1b\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x1c\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x1d\x88\x01\x01\x12\\\n\x1bsource_image_encryption_key\x18\xab\x91\xf5\xb5\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x1e\x88\x01\x01\x12\x1f\n\x0fsource_image_id\x18\xa3\xfc\xb0\x1a \x01(\tH\x1f\x88\x01\x01\x12\'\n\x17source_instant_snapshot\x18\x86\x84\xc3h \x01(\tH \x88\x01\x01\x12+\n\x1asource_instant_snapshot_id\x18\xf4\xd3\x90\x89\x01 \x01(\tH!\x88\x01\x01\x12\x1f\n\x0fsource_snapshot\x18\xe8\x9a\x8e< \x01(\tH\"\x88\x01\x01\x12_\n\x1esource_snapshot_encryption_key\x18\xda\x8e\xe7\x90\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH#\x88\x01\x01\x12\"\n\x12source_snapshot_id\x18\xd2\x96\x98/ \x01(\tH$\x88\x01\x01\x12%\n\x15source_storage_object\x18\xa7\xb4\x90o \x01(\tH%\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH&\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tH\'\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH(\x88\x01\x01\x12\x10\n\x05users\x18\x88\x9c\x9a\x35 \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH)\x88\x01\x01\x1am\n\x18\x41syncSecondaryDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.compute.v1.DiskAsyncReplicationList:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"q\n\nAccessMode\x12\x19\n\x15UNDEFINED_ACCESS_MODE\x10\x00\x12\x15\n\x0eREAD_ONLY_MANY\x10\xa9\xa7\xa1\x1e\x12\x17\n\x0fREAD_WRITE_MANY\x10\xa8\xc2\x86\xe9\x01\x12\x18\n\x11READ_WRITE_SINGLE\x10\xd1\x99\xae/\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"\x88\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x11\n\tRESTORING\x10\xab\xa7\xe2\xc0\x01\x12\x13\n\x0bUNAVAILABLE\x10\xb0\xd8\xa5\xc5\x01\x42\x0e\n\x0c_access_modeB\x0f\n\r_architectureB\x15\n\x13_async_primary_diskB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x16\n\x14_disk_encryption_keyB\x1e\n\x1c_enable_confidential_computeB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x18\n\x16_last_attach_timestampB\x18\n\x16_last_detach_timestampB\x10\n\x0e_location_hintB\x07\n\x05_nameB\n\n\x08_optionsB\t\n\x07_paramsB\x1c\n\x1a_physical_block_size_bytesB\x13\n\x11_provisioned_iopsB\x19\n\x17_provisioned_throughputB\t\n\x07_regionB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\n\n\x08_size_gbB\"\n _source_consistency_group_policyB%\n#_source_consistency_group_policy_idB\x0e\n\x0c_source_diskB\x11\n\x0f_source_disk_idB\x0f\n\r_source_imageB\x1e\n\x1c_source_image_encryption_keyB\x12\n\x10_source_image_idB\x1a\n\x18_source_instant_snapshotB\x1d\n\x1b_source_instant_snapshot_idB\x12\n\x10_source_snapshotB!\n\x1f_source_snapshot_encryption_keyB\x15\n\x13_source_snapshot_idB\x18\n\x16_source_storage_objectB\t\n\x07_statusB\x0f\n\r_storage_poolB\x07\n\x05_typeB\x07\n\x05_zone\"\xad\x03\n\x12\x44iskAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12H\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x36.google.cloud.compute.v1.DiskAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aV\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.google.cloud.compute.v1.DisksScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xed\x01\n\x14\x44iskAsyncReplication\x12\'\n\x18\x63onsistency_group_policy\x18\xb9\xc3y \x01(\tH\x00\x88\x01\x01\x12+\n\x1b\x63onsistency_group_policy_id\x18\xe1\x92\xbe| \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tH\x02\x88\x01\x01\x12\x17\n\x07\x64isk_id\x18\xfd\xc5\x8a\x1d \x01(\tH\x03\x88\x01\x01\x42\x1b\n\x19_consistency_group_policyB\x1e\n\x1c_consistency_group_policy_idB\x07\n\x05_diskB\n\n\x08_disk_id\"\x8c\x01\n\x18\x44iskAsyncReplicationList\x12U\n\x16\x61sync_replication_disk\x18\x93\xcb\xc3n \x01(\x0b\x32-.google.cloud.compute.v1.DiskAsyncReplicationH\x00\x88\x01\x01\x42\x19\n\x17_async_replication_disk\"\xa4\x03\n\x17\x44iskInstantiationConfig\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0c\x63ustom_image\x18\x8d\xfe\xe5W \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tH\x02\x88\x01\x01\x12!\n\x10instantiate_from\x18\xdf\x9f\xca\xbb\x01 \x01(\tH\x03\x88\x01\x01\"\xc6\x01\n\x0fInstantiateFrom\x12\x1e\n\x1aUNDEFINED_INSTANTIATE_FROM\x10\x00\x12\x18\n\x10\x41TTACH_READ_ONLY\x10\xbb\xae\xfe\xf4\x01\x12\x0c\n\x05\x42LANK\x10\xb4\xb2\x96\x1e\x12\x13\n\x0c\x43USTOM_IMAGE\x10\xed\xf5\xcd]\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\x12\x15\n\x0e\x44O_NOT_INCLUDE\x10\xc8\x82\xd9\x31\x12\x13\n\x0cSOURCE_IMAGE\x10\x97\xe0\xee\x1d\x12\x1a\n\x13SOURCE_IMAGE_FAMILY\x10\x8c\xc9\xd2$B\x0e\n\x0c_auto_deleteB\x0f\n\r_custom_imageB\x0e\n\x0c_device_nameB\x13\n\x11_instantiate_from\"\x99\x02\n\x08\x44iskList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12/\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1d.google.cloud.compute.v1.Disk\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"u\n\x0f\x44iskMoveRequest\x12 \n\x10\x64\x65stination_zone\x18\xbd\xe2\xef> \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_disk\x18\x8b\xcf\xe2\x1d \x01(\tH\x01\x88\x01\x01\x42\x13\n\x11_destination_zoneB\x0e\n\x0c_target_disk\"\xa9\x01\n\nDiskParams\x12_\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32<.google.cloud.compute.v1.DiskParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfa\x02\n\x12\x44iskResourceStatus\x12\x65\n\x12\x61sync_primary_disk\x18\x9d\xf5\x89V \x01(\x0b\x32\x41.google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatusH\x00\x88\x01\x01\x12g\n\x15\x61sync_secondary_disks\x18\xa8\xe8\xfd\x99\x01 \x03(\x0b\x32\x44.google.cloud.compute.v1.DiskResourceStatus.AsyncSecondaryDisksEntry\x1a}\n\x18\x41syncSecondaryDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12P\n\x05value\x18\x02 \x01(\x0b\x32\x41.google.cloud.compute.v1.DiskResourceStatusAsyncReplicationStatus:\x02\x38\x01\x42\x15\n\x13_async_primary_disk\"\xda\x01\n(DiskResourceStatusAsyncReplicationStatus\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x00\x88\x01\x01\"\x8c\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x07\x43REATED\x10\xc8\x95\xe8@\x12\x10\n\x08STARTING\x10\xc0\xa0\x8b\xe9\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x42\x08\n\x06_state\"\x84\x04\n\x08\x44iskType\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12%\n\x14\x64\x65\x66\x61ult_disk_size_gb\x18\xf5\xa4\x85\x81\x01 \x01(\x03H\x01\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12 \n\x0fvalid_disk_size\x18\xe0\x89\xc5\xeb\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\n\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x17\n\x15_default_disk_size_gbB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_linkB\x12\n\x10_valid_disk_sizeB\x07\n\x05_zone\"\xb9\x03\n\x16\x44iskTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.DiskTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.DiskTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa1\x02\n\x0c\x44iskTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.DiskType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x96\x01\n\x13\x44iskTypesScopedList\x12\x38\n\ndisk_types\x18\xd7\xbe\xed^ \x03(\x0b\x32!.google.cloud.compute.v1.DiskType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"?\n\x1f\x44isksAddResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"B\n\"DisksRemoveResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\":\n\x12\x44isksResizeRequest\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_size_gb\"\x89\x01\n\x0f\x44isksScopedList\x12/\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32\x1d.google.cloud.compute.v1.Disk\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"b\n!DisksStartAsyncReplicationRequest\x12$\n\x14\x61sync_secondary_disk\x18\xab\x83\xe3> \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_async_secondary_disk\"]\n&DisksStopGroupAsyncReplicationResource\x12\x1f\n\x0fresource_policy\x18\x83\xa5\xf7K \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_resource_policy\"B\n\rDisplayDevice\x12\x1e\n\x0e\x65nable_display\x18\x86\xe4\xe6\x06 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_enable_display\"\x81\x02\n\x12\x44istributionPolicy\x12\x1d\n\x0ctarget_shape\x18\xf3\xe6\xbb\xa1\x01 \x01(\tH\x00\x88\x01\x01\x12N\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\x0b\x32<.google.cloud.compute.v1.DistributionPolicyZoneConfiguration\"k\n\x0bTargetShape\x12\x1a\n\x16UNDEFINED_TARGET_SHAPE\x10\x00\x12\t\n\x03\x41NY\x10\xcc\xfb\x03\x12\x16\n\x0f\x41NY_SINGLE_ZONE\x10\xd0\xa6\x91\x1d\x12\x10\n\x08\x42\x41LANCED\x10\x88\xba\xad\xdf\x01\x12\x0b\n\x04\x45VEN\x10\x9a\xd2\x82\x01\x42\x0f\n\r_target_shape\"D\n#DistributionPolicyZoneConfiguration\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_zone\"Q\n\x08\x44uration\x12\x15\n\x05nanos\x18\xbf\xb8\xef\x31 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x07seconds\x18\xff\x94\xb5\xab\x01 \x01(\x03H\x01\x88\x01\x01\x42\x08\n\x06_nanosB\n\n\x08_seconds\"k\n\x1b\x45nableXpnHostProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xea\x01\n\x1f\x45nableXpnResourceProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12y\n-projects_enable_xpn_resource_request_resource\x18\xaf\xd0\x9b\xc9\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.ProjectsEnableXpnResourceRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"<\n\x05\x45rror\x12\x33\n\x06\x65rrors\x18\xeb\xde\xd5\x96\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Errors\"\xd7\x02\n\x0c\x45rrorDetails\x12>\n\nerror_info\x18\x85\xa1\x85\x0c \x01(\x0b\x32\".google.cloud.compute.v1.ErrorInfoH\x00\x88\x01\x01\x12\x33\n\x04help\x18\xc1\x9e\xc3\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.HelpH\x01\x88\x01\x01\x12M\n\x11localized_message\x18\xc3\xfe\xf2\xc0\x01 \x01(\x0b\x32).google.cloud.compute.v1.LocalizedMessageH\x02\x88\x01\x01\x12\x46\n\nquota_info\x18\x95\xd4\xe4, \x01(\x0b\x32*.google.cloud.compute.v1.QuotaExceededInfoH\x03\x88\x01\x01\x42\r\n\x0b_error_infoB\x07\n\x05_helpB\x14\n\x12_localized_messageB\r\n\x0b_quota_info\"\xcd\x01\n\tErrorInfo\x12\x17\n\x06\x64omain\x18\xc4\xa9\xcf\x87\x01 \x01(\tH\x00\x88\x01\x01\x12G\n\tmetadatas\x18\xa4\xd6\x87\x04 \x03(\x0b\x32\x31.google.cloud.compute.v1.ErrorInfo.MetadatasEntry\x12\x16\n\x06reason\x18\xc4\xa4\x96\x42 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x0eMetadatasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07_domainB\t\n\x07_reason\"\xb7\x01\n\x06\x45rrors\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\rerror_details\x18\x8b\xc6\xfb\x82\x01 \x03(\x0b\x32%.google.cloud.compute.v1.ErrorDetails\x12\x19\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_codeB\x0b\n\t_locationB\n\n\x08_message\"\xdd\x02\n\x15\x45xchangedPeeringRoute\x12\x1b\n\ndest_range\x18\xe0\xb2\xea\xb5\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08imported\x18\x84\xd6\xcc\x36 \x01(\x08H\x01\x88\x01\x01\x12\x1f\n\x0fnext_hop_region\x18\xf6\xc0\xb9: \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x04\x88\x01\x01\"u\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x1d\n\x15\x44YNAMIC_PEERING_ROUTE\x10\xaa\x80\x82\xe0\x01\x12\x1c\n\x14STATIC_PEERING_ROUTE\x10\xb9\xc0\xde\xe1\x01\x12\x1c\n\x14SUBNET_PEERING_ROUTE\x10\xe8\x8d\x8d\xde\x01\x42\r\n\x0b_dest_rangeB\x0b\n\t_importedB\x12\n\x10_next_hop_regionB\x0b\n\t_priorityB\x07\n\x05_type\"\xbc\x02\n\x1a\x45xchangedPeeringRoutesList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12@\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32..google.cloud.compute.v1.ExchangedPeeringRoute\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n\"ExpandIpCidrRangeSubnetworkRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12\x80\x01\n1subnetworks_expand_ip_cidr_range_request_resource\x18\xde\xd0\xba\xe3\x01 \x01(\x0b\x32<.google.cloud.compute.v1.SubnetworksExpandIpCidrRangeRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa9\x01\n\x04\x45xpr\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nexpression\x18\x98\xa5\xee\xa7\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x05title\x18\xd8\xc4\xd0\x34 \x01(\tH\x03\x88\x01\x01\x42\x0e\n\x0c_descriptionB\r\n\x0b_expressionB\x0b\n\t_locationB\x08\n\x06_title\"\xc8\x05\n\x12\x45xternalVpnGateway\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12K\n\ninterfaces\x18\xda\xf4\xe0\x05 \x03(\x0b\x32\x34.google.cloud.compute.v1.ExternalVpnGatewayInterface\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x04\x88\x01\x01\x12K\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.ExternalVpnGateway.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12 \n\x0fredundancy_type\x18\x9c\xce\xb7\x81\x01 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8f\x01\n\x0eRedundancyType\x12\x1d\n\x19UNDEFINED_REDUNDANCY_TYPE\x10\x00\x12\x1b\n\x13\x46OUR_IPS_REDUNDANCY\x10\xe9\xd2\xff\xf7\x01\x12%\n\x1eSINGLE_IP_INTERNALLY_REDUNDANT\x10\xf9\xc1\xed?\x12\x1a\n\x12TWO_IPS_REDUNDANCY\x10\xa3\xf7\x82\xaf\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x12\n\x10_redundancy_typeB\x0c\n\n_self_link\"\x92\x01\n\x1b\x45xternalVpnGatewayInterface\x12\x10\n\x02id\x18\x9b\x1a \x01(\rH\x00\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x02\x88\x01\x01\x42\x05\n\x03_idB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_address\"\xd4\x02\n\x16\x45xternalVpnGatewayList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12=\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32+.google.cloud.compute.v1.ExternalVpnGateway\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x11\x46ileContentBuffer\x12\x18\n\x07\x63ontent\x18\xf9\xe8\xdc\xc5\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tfile_type\x18\x9d\xc0\xad\x8c\x01 \x01(\tH\x01\x88\x01\x01\"M\n\x08\x46ileType\x12\x17\n\x13UNDEFINED_FILE_TYPE\x10\x00\x12\t\n\x03\x42IN\x10\xe7\x81\x04\x12\x10\n\tUNDEFINED\x10\xb0\xe2\xdd\x41\x12\x0b\n\x04X509\x10\xa6\x9b\xa3\x01\x42\n\n\x08_contentB\x0c\n\n_file_type\"\x9c\x07\n\x08\x46irewall\x12\x34\n\x07\x61llowed\x18\xa8\x83\xb8M \x03(\x0b\x32 .google.cloud.compute.v1.Allowed\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x33\n\x06\x64\x65nied\x18\x9b\xf7\x9d\x83\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Denied\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x12\x64\x65stination_ranges\x18\xa7\xb8\xe2\x91\x01 \x03(\t\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12G\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32*.google.cloud.compute.v1.FirewallLogConfigH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x08\x88\x01\x01\x12?\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallParamsH\t\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\n\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12\x18\n\rsource_ranges\x18\xfa\xfe\xb4_ \x03(\t\x12\"\n\x17source_service_accounts\x18\xd4\xeb\x8e\x32 \x03(\t\x12\x17\n\x0bsource_tags\x18\xbd\xbb\xd1\xd7\x01 \x03(\t\x12#\n\x17target_service_accounts\x18\x9e\x8e\x9c\xda\x01 \x03(\t\x12\x16\n\x0btarget_tags\x18\x87\x9c\xff\x1d \x03(\t\"E\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\x0e\n\x06\x45GRESS\x10\xf5\xf6\xb4\xce\x01\x12\x0f\n\x07INGRESS\x10\x95\xfd\xbe\xf6\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0c\n\n_directionB\x0b\n\t_disabledB\x05\n\x03_idB\x07\n\x05_kindB\r\n\x0b_log_configB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_paramsB\x0b\n\t_priorityB\x0c\n\n_self_link\"\xa1\x02\n\x0c\x46irewallList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\x01\n\x11\x46irewallLogConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08metadata\x18\xaf\xf6\xb5) \x01(\tH\x01\x88\x01\x01\"]\n\x08Metadata\x12\x16\n\x12UNDEFINED_METADATA\x10\x00\x12\x1c\n\x14\x45XCLUDE_ALL_METADATA\x10\x92\xbd\xc1\x9f\x01\x12\x1b\n\x14INCLUDE_ALL_METADATA\x10\x84\xcd\xbfNB\t\n\x07_enableB\x0b\n\t_metadata\"\xb1\x01\n\x0e\x46irewallParams\x12\x63\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32@.google.cloud.compute.v1.FirewallParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x97\x01\n(FirewallPoliciesListAssociationsResponse\x12L\n\x0c\x61ssociations\x18\x92\xe8\xca\xf2\x01 \x03(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_kind\"\xab\x01\n\x1a\x46irewallPoliciesScopedList\x12\x46\n\x11\x66irewall_policies\x18\xaf\x8b\x95\xbb\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x97\x06\n\x0e\x46irewallPolicy\x12L\n\x0c\x61ssociations\x18\x92\xe8\xca\xf2\x01 \x03(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyAssociation\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12O\n\x16packet_mirroring_rules\x18\xc4\xff\xc0\xfd\x01 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x16\n\x06parent\x18\xaa\x91\xac% \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12!\n\x10rule_tuple_count\x18\x95\xc2\x96\xb9\x01 \x01(\x05H\t\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0b\x88\x01\x01\x12\x1b\n\nshort_name\x18\xee\xb8\xd0\xea\x01 \x01(\tH\x0c\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0f\n\r_display_nameB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_parentB\t\n\x07_regionB\x13\n\x11_rule_tuple_countB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\r\n\x0b_short_name\"\x8a\x02\n\x19\x46irewallPolicyAssociation\x12!\n\x11\x61ttachment_target\x18\xad\xb0\xe8S \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x12\x66irewall_policy_id\x18\xc9\xbd\xaa\xaa\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nshort_name\x18\xee\xb8\xd0\xea\x01 \x01(\tH\x04\x88\x01\x01\x42\x14\n\x12_attachment_targetB\x0f\n\r_display_nameB\x15\n\x13_firewall_policy_idB\x07\n\x05_nameB\r\n\x0b_short_name\"\x83\x02\n\x12\x46irewallPolicyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\xb7\x06\n\x12\x46irewallPolicyRule\x12\x16\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08\x64isabled\x18\xfc\xf4\x98\x81\x01 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x0e\x65nable_logging\x18\xa3\xc9\xed\x8c\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12I\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\x0b\x32\x32.google.cloud.compute.v1.FirewallPolicyRuleMatcherH\x06\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x07\x88\x01\x01\x12\x19\n\trule_name\x18\xee\xb3\xae\x1a \x01(\tH\x08\x88\x01\x01\x12!\n\x10rule_tuple_count\x18\x95\xc2\x96\xb9\x01 \x01(\x05H\t\x88\x01\x01\x12&\n\x16security_profile_group\x18\xaa\xb3\xf3\x62 \x01(\tH\n\x88\x01\x01\x12\x1c\n\x10target_resources\x18\xf7\xd1\xf0\xfb\x01 \x03(\t\x12T\n\x12target_secure_tags\x18\xb3\xc4\x9c\xdf\x01 \x03(\x0b\x32\x34.google.cloud.compute.v1.FirewallPolicyRuleSecureTag\x12#\n\x17target_service_accounts\x18\x9e\x8e\x9c\xda\x01 \x03(\t\x12\x1b\n\x0btls_inspect\x18\xd0\xbd\xda\x14 \x01(\x08H\x0b\x88\x01\x01\"E\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\x0e\n\x06\x45GRESS\x10\xf5\xf6\xb4\xce\x01\x12\x0f\n\x07INGRESS\x10\x95\xfd\xbe\xf6\x01\x42\t\n\x07_actionB\x0e\n\x0c_descriptionB\x0c\n\n_directionB\x0b\n\t_disabledB\x11\n\x0f_enable_loggingB\x07\n\x05_kindB\x08\n\x06_matchB\x0b\n\t_priorityB\x0c\n\n_rule_nameB\x13\n\x11_rule_tuple_countB\x19\n\x17_security_profile_groupB\x0e\n\x0c_tls_inspect\"\xe9\x05\n\x19\x46irewallPolicyRuleMatcher\x12\x1f\n\x13\x64\x65st_address_groups\x18\xbc\xef\xc2\xdf\x01 \x03(\t\x12\x16\n\ndest_fqdns\x18\xa1\xc1\xe2\xb0\x01 \x03(\t\x12\x1a\n\x0e\x64\x65st_ip_ranges\x18\x91\xd7\xee\xa0\x01 \x03(\t\x12\"\n\x11\x64\x65st_network_type\x18\xa8\xba\xb7\xc3\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x11\x64\x65st_region_codes\x18\x98\xab\xf9^ \x03(\t\x12$\n\x19\x64\x65st_threat_intelligences\x18\xac\xf3\x95\x39 \x03(\t\x12Z\n\x0elayer4_configs\x18\xb5\xdc\x8e\xb2\x01 \x03(\x0b\x32>.google.cloud.compute.v1.FirewallPolicyRuleMatcherLayer4Config\x12\x1e\n\x12src_address_groups\x18\xba\x98\x8d\xd0\x01 \x03(\t\x12\x15\n\tsrc_fqdns\x18\xe3\xcc\xed\xcf\x01 \x03(\t\x12\x19\n\rsrc_ip_ranges\x18\xd3\x80\x87\xce\x01 \x03(\t\x12!\n\x10src_network_type\x18\xa6\xf2\xdd\x93\x01 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x0csrc_networks\x18\x80\x80\xebu \x03(\t\x12\x1b\n\x10src_region_codes\x18\x96\xe3\x9f/ \x03(\t\x12Q\n\x0fsrc_secure_tags\x18\x86\x94\xce\xf2\x01 \x03(\x0b\x32\x34.google.cloud.compute.v1.FirewallPolicyRuleSecureTag\x12$\n\x18src_threat_intelligences\x18\xaa\xef\xa8\x9a\x01 \x03(\t\"2\n\x0f\x44\x65stNetworkType\x12\x1f\n\x1bUNDEFINED_DEST_NETWORK_TYPE\x10\x00\"0\n\x0eSrcNetworkType\x12\x1e\n\x1aUNDEFINED_SRC_NETWORK_TYPE\x10\x00\x42\x14\n\x12_dest_network_typeB\x13\n\x11_src_network_type\"g\n%FirewallPolicyRuleMatcherLayer4Config\x12\x1c\n\x0bip_protocol\x18\xb0\x9d\xfa\xe2\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05ports\x18\x92\xf0\xf9\x32 \x03(\tB\x0e\n\x0c_ip_protocol\"\xa2\x01\n\x1b\x46irewallPolicyRuleSecureTag\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x01\x88\x01\x01\"C\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\tEFFECTIVE\x10\x87\xf3\xb8t\x12\x13\n\x0bINEFFECTIVE\x10\x82\xd4\x96\x91\x01\x42\x07\n\x05_nameB\x08\n\x06_state\"\x83\x01\n\x0e\x46ixedOrPercent\x12\x1b\n\ncalculated\x18\xbe\xd3\x8d\xe1\x01 \x01(\x05H\x00\x88\x01\x01\x12\x15\n\x05\x66ixed\x18\xf4\xce\xbb. \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x07percent\x18\xc5\xc8\xa1\xbc\x01 \x01(\x05H\x02\x88\x01\x01\x42\r\n\x0b_calculatedB\x08\n\x06_fixedB\n\n\x08_percent\"\x8f\x18\n\x0e\x46orwardingRule\x12\x1b\n\x0bI_p_address\x18\xaf\x8d\xbf\x14 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cI_p_protocol\x18\xbd\xf6\xde\xe8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\tall_ports\x18\xf4\xaf\xa3\xd4\x01 \x01(\x08H\x02\x88\x01\x01\x12$\n\x13\x61llow_global_access\x18\x8a\xc6\x91\xee\x01 \x01(\x08H\x03\x88\x01\x01\x12\'\n\x17\x61llow_psc_global_access\x18\xcb\x85\xd1} \x01(\x08H\x04\x88\x01\x01\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x05\x88\x01\x01\x12%\n\x14\x62\x61se_forwarding_rule\x18\x90\xdb\xa3\xfa\x01 \x01(\tH\x06\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x07\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x08\x88\x01\x01\x12?\n/external_managed_backend_bucket_migration_state\x18\xaa\xa4\xb4\x33 \x01(\tH\t\x88\x01\x01\x12L\n.google.cloud.compute.v1.HealthChecksAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.HealthChecksScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa0\x01\n\x16HealthChecksScopedList\x12?\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\x0b\x32$.google.cloud.compute.v1.HealthCheck\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xf2\x06\n\x0cHealthStatus\x12N\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32\x36.google.cloud.compute.v1.HealthStatus.AnnotationsEntry\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x66orwarding_rule_ip\x18\x88\xac\x91R \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0chealth_state\x18\xee\xe9\xbf\x9a\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11ipv6_health_state\x18\xc6\x80\xe0Z \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x07\x88\x01\x01\x12\x17\n\x06weight\x18\xf8\x84\xc5\x86\x01 \x01(\tH\x08\x88\x01\x01\x12\x1d\n\x0cweight_error\x18\x81\xfb\x92\xf9\x01 \x01(\tH\t\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"M\n\x0bHealthState\x12\x1a\n\x16UNDEFINED_HEALTH_STATE\x10\x00\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12\x11\n\tUNHEALTHY\x10\xc4\xb9\xad\xdc\x01\"2\n\x0fIpv6HealthState\x12\x1f\n\x1bUNDEFINED_IPV6_HEALTH_STATE\x10\x00\"\x8a\x01\n\x0bWeightError\x12\x1a\n\x16UNDEFINED_WEIGHT_ERROR\x10\x00\x12\x16\n\x0eINVALID_WEIGHT\x10\xe0\x8b\xfb\xb6\x01\x12\x16\n\x0eMISSING_WEIGHT\x10\x91\x97\x8f\xb7\x01\x12\x1a\n\x12UNAVAILABLE_WEIGHT\x10\xe7\xe2\xc6\xd1\x01\x12\x13\n\x0bWEIGHT_NONE\x10\x9f\xe9\xc9\xef\x01\x42\x12\n\x10_forwarding_ruleB\x15\n\x13_forwarding_rule_ipB\x0f\n\r_health_stateB\x0b\n\t_instanceB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_addressB\x14\n\x12_ipv6_health_stateB\x07\n\x05_portB\t\n\x07_weightB\x0f\n\r_weight_error\"\xd4\x05\n\x1eHealthStatusForNetworkEndpoint\x12R\n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.BackendServiceReferenceH\x00\x88\x01\x01\x12R\n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.ForwardingRuleReferenceH\x01\x88\x01\x01\x12L\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\x0b\x32-.google.cloud.compute.v1.HealthCheckReferenceH\x02\x88\x01\x01\x12[\n\x14health_check_service\x18\xdb\x9b\xdd\xc2\x01 \x01(\x0b\x32\x34.google.cloud.compute.v1.HealthCheckServiceReferenceH\x03\x88\x01\x01\x12\x1d\n\x0chealth_state\x18\xee\xe9\xbf\x9a\x01 \x01(\tH\x04\x88\x01\x01\x12!\n\x11ipv6_health_state\x18\xc6\x80\xe0Z \x01(\tH\x05\x88\x01\x01\"p\n\x0bHealthState\x12\x1a\n\x16UNDEFINED_HEALTH_STATE\x10\x00\x12\x10\n\x08\x44RAINING\x10\xea\xd5\x8c\xe5\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12\x11\n\tUNHEALTHY\x10\xc4\xb9\xad\xdc\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\"2\n\x0fIpv6HealthState\x12\x1f\n\x1bUNDEFINED_IPV6_HEALTH_STATE\x10\x00\x42\x12\n\x10_backend_serviceB\x12\n\x10_forwarding_ruleB\x0f\n\r_health_checkB\x17\n\x15_health_check_serviceB\x0f\n\r_health_stateB\x14\n\x12_ipv6_health_state\";\n\x04Help\x12\x33\n\x05links\x18\xb9\x9f\x8d\x31 \x03(\x0b\x32!.google.cloud.compute.v1.HelpLink\"T\n\x08HelpLink\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x06\n\x04_url\"z\n\x08HostRule\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05hosts\x18\xcb\xff\xb6/ \x03(\t\x12\x1d\n\x0cpath_matcher\x18\x98\xbe\x8a\xa1\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_path_matcher\"i\n\x0eHttpFaultAbort\x12\x1c\n\x0bhttp_status\x18\x89\xb7\xce\xdf\x01 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\npercentage\x18\x9a\xe5\xb7H \x01(\x01H\x01\x88\x01\x01\x42\x0e\n\x0c_http_statusB\r\n\x0b_percentage\"\x8c\x01\n\x0eHttpFaultDelay\x12?\n\x0b\x66ixed_delay\x18\xf8\xb9\x96\x97\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x00\x88\x01\x01\x12\x1a\n\npercentage\x18\x9a\xe5\xb7H \x01(\x01H\x01\x88\x01\x01\x42\x0e\n\x0c_fixed_delayB\r\n\x0b_percentage\"\xa8\x01\n\x12HttpFaultInjection\x12>\n\x05\x61\x62ort\x18\xb0\xc6\x94, \x01(\x0b\x32\'.google.cloud.compute.v1.HttpFaultAbortH\x00\x88\x01\x01\x12>\n\x05\x64\x65lay\x18\x83\xf3\xc2- \x01(\x0b\x32\'.google.cloud.compute.v1.HttpFaultDelayH\x01\x88\x01\x01\x42\x08\n\x06_abortB\x08\n\x06_delay\"\xfc\x01\n\x10HttpHeaderAction\x12L\n\x16request_headers_to_add\x18\xe6\xae\xb1\" \x03(\x0b\x32).google.cloud.compute.v1.HttpHeaderOption\x12$\n\x19request_headers_to_remove\x18\x9f\xcf\x93h \x03(\t\x12M\n\x17response_headers_to_add\x18\xf4\xb6\xa9\x0f \x03(\x0b\x32).google.cloud.compute.v1.HttpHeaderOption\x12%\n\x1aresponse_headers_to_remove\x18\xd1\x81\xfb# \x03(\t\"\xb0\x03\n\x0fHttpHeaderMatch\x12\x1c\n\x0b\x65xact_match\x18\x85\x99\x9c\xda\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0cinvert_match\x18\x9c\xc8\xfa\xee\x01 \x01(\x08H\x02\x88\x01\x01\x12\x1c\n\x0cprefix_match\x18\xd8\xf3\xfcz \x01(\tH\x03\x88\x01\x01\x12\x1d\n\rpresent_match\x18\xc1\xfa\x93 \x01(\x08H\x04\x88\x01\x01\x12\x45\n\x0brange_match\x18\xc3\xa8\xaf. \x01(\x0b\x32(.google.cloud.compute.v1.Int64RangeMatchH\x05\x88\x01\x01\x12\x1b\n\x0bregex_match\x18\xcd\xb7\x9a\x33 \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x0csuffix_match\x18\xd7\xe6\xae\xcb\x01 \x01(\tH\x07\x88\x01\x01\x42\x0e\n\x0c_exact_matchB\x0e\n\x0c_header_nameB\x0f\n\r_invert_matchB\x0f\n\r_prefix_matchB\x10\n\x0e_present_matchB\x0e\n\x0c_range_matchB\x0e\n\x0c_regex_matchB\x0f\n\r_suffix_match\"\x93\x01\n\x10HttpHeaderOption\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cheader_value\x18\xbf\xf2\xeb` \x01(\tH\x01\x88\x01\x01\x12\x17\n\x07replace\x18\xb4\xe5\xf2\t \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_header_nameB\x0f\n\r_header_valueB\n\n\x08_replace\"\xc4\x01\n\x17HttpQueryParameterMatch\x12\x1c\n\x0b\x65xact_match\x18\x85\x99\x9c\xda\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rpresent_match\x18\xc1\xfa\x93 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0bregex_match\x18\xcd\xb7\x9a\x33 \x01(\tH\x03\x88\x01\x01\x42\x0e\n\x0c_exact_matchB\x07\n\x05_nameB\x10\n\x0e_present_matchB\x0e\n\x0c_regex_match\"\x8c\x04\n\x12HttpRedirectAction\x12\x1d\n\rhost_redirect\x18\x93\xa1\x9c\x33 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0ehttps_redirect\x18\xb0\xf1\x97Q \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\rpath_redirect\x18\xb6\xbd\xee\x81\x01 \x01(\tH\x02\x88\x01\x01\x12 \n\x0fprefix_redirect\x18\xe9\xf5\xe0\xd4\x01 \x01(\tH\x03\x88\x01\x01\x12\'\n\x16redirect_response_code\x18\x88\xd8\x9e\xd0\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0bstrip_query\x18\xe1\x99\xf7\x18 \x01(\x08H\x05\x88\x01\x01\"\xb8\x01\n\x14RedirectResponseCode\x12$\n UNDEFINED_REDIRECT_RESPONSE_CODE\x10\x00\x12\x0c\n\x05\x46OUND\x10\xe2\xbe\xfe\x1f\x12!\n\x19MOVED_PERMANENTLY_DEFAULT\x10\xd1\x99\xb2\xb8\x01\x12\x1a\n\x12PERMANENT_REDIRECT\x10\xed\xe8\x93\xb6\x01\x12\x11\n\tSEE_OTHER\x10\xe4\xef\xaf\xd4\x01\x12\x1a\n\x12TEMPORARY_REDIRECT\x10\xaa\xe4\xb7\xe9\x01\x42\x10\n\x0e_host_redirectB\x11\n\x0f_https_redirectB\x10\n\x0e_path_redirectB\x12\n\x10_prefix_redirectB\x19\n\x17_redirect_response_codeB\x0e\n\x0c_strip_query\"\xb4\x01\n\x0fHttpRetryPolicy\x12\x1b\n\x0bnum_retries\x18\x8d\xab\x81x \x01(\rH\x00\x88\x01\x01\x12\x43\n\x0fper_try_timeout\x18\xbb\xad\xc4\x85\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x01\x88\x01\x01\x12\x1b\n\x10retry_conditions\x18\xaf\xe1\xde\r \x03(\tB\x0e\n\x0c_num_retriesB\x12\n\x10_per_try_timeout\"\xf1\x05\n\x0fHttpRouteAction\x12\x41\n\x0b\x63ors_policy\x18\x84\xcc\x9d\xbe\x01 \x01(\x0b\x32#.google.cloud.compute.v1.CorsPolicyH\x00\x88\x01\x01\x12T\n\x16\x66\x61ult_injection_policy\x18\x97\x94\xea\xc4\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpFaultInjectionH\x01\x88\x01\x01\x12\x46\n\x13max_stream_duration\x18\x98\xa5\xa5\x1d \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x02\x88\x01\x01\x12S\n\x15request_mirror_policy\x18\x82\xe0\xffh \x01(\x0b\x32,.google.cloud.compute.v1.RequestMirrorPolicyH\x03\x88\x01\x01\x12\x46\n\x0cretry_policy\x18\xa9\xe5\x8a\x1b \x01(\x0b\x32(.google.cloud.compute.v1.HttpRetryPolicyH\x04\x88\x01\x01\x12;\n\x07timeout\x18\xe1\x9a\xbd\x8d\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x05\x88\x01\x01\x12\x41\n\x0burl_rewrite\x18\xbc\xfd\xaa\x82\x01 \x01(\x0b\x32#.google.cloud.compute.v1.UrlRewriteH\x06\x88\x01\x01\x12V\n\x19weighted_backend_services\x18\xd1\xc7\xda\xa0\x01 \x03(\x0b\x32/.google.cloud.compute.v1.WeightedBackendServiceB\x0e\n\x0c_cors_policyB\x19\n\x17_fault_injection_policyB\x16\n\x14_max_stream_durationB\x18\n\x16_request_mirror_policyB\x0f\n\r_retry_policyB\n\n\x08_timeoutB\x0e\n\x0c_url_rewrite\"\xe8\x04\n\rHttpRouteRule\x12`\n\x1c\x63ustom_error_response_policy\x18\xeb\xf8\xda` \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x02\x88\x01\x01\x12\x44\n\x0bmatch_rules\x18\xfd\xbb\xb1\xb3\x01 \x03(\x0b\x32+.google.cloud.compute.v1.HttpRouteRuleMatch\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x03\x88\x01\x01\x12G\n\x0croute_action\x18\xec\xa9\xb9\xca\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x04\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x05\x88\x01\x01\x12J\n\x0curl_redirect\x18\xac\xa1\x98\xc1\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x06\x88\x01\x01\x42\x1f\n\x1d_custom_error_response_policyB\x0e\n\x0c_descriptionB\x10\n\x0e_header_actionB\x0b\n\t_priorityB\x0f\n\r_route_actionB\n\n\x08_serviceB\x0f\n\r_url_redirect\"\xf5\x03\n\x12HttpRouteRuleMatch\x12\x1f\n\x0f\x66ull_path_match\x18\xdb\x89\xaa\x66 \x01(\tH\x00\x88\x01\x01\x12\x44\n\x0eheader_matches\x18\x81\xeb\xc8\xac\x01 \x03(\x0b\x32(.google.cloud.compute.v1.HttpHeaderMatch\x12\x1c\n\x0bignore_case\x18\xfd\x92\xb4\xdd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x45\n\x10metadata_filters\x18\xeb\xcd\xcc\xdd\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.MetadataFilter\x12$\n\x13path_template_match\x18\x9a\xc2\xb3\x8b\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0cprefix_match\x18\xd8\xf3\xfcz \x01(\tH\x03\x88\x01\x01\x12U\n\x17query_parameter_matches\x18\xe6\x95\xbe\x88\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.HttpQueryParameterMatch\x12\x1b\n\x0bregex_match\x18\xcd\xb7\x9a\x33 \x01(\tH\x04\x88\x01\x01\x42\x12\n\x10_full_path_matchB\x0e\n\x0c_ignore_caseB\x16\n\x14_path_template_matchB\x0f\n\r_prefix_matchB\x0e\n\x0c_regex_match\"\xb9\x12\n\x05Image\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12\x61rchive_size_bytes\x18\xca\x8c\xdc\xb5\x01 \x01(\x03H\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x05\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x06\x88\x01\x01\x12\x17\n\x06\x66\x61mily\x18\xe4\xb6\xe1\x9c\x01 \x01(\tH\x07\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12U\n\x14image_encryption_key\x18\x87\xce\xfb\xb4\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0b\x88\x01\x01\x12>\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32*.google.cloud.compute.v1.Image.LabelsEntry\x12\x18\n\rlicense_codes\x18\xa8\x85\xd8\x15 \x03(\x03\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0c\x88\x01\x01\x12;\n\x08raw_disk\x18\xd4\xce\xf3\xef\x01 \x01(\x0b\x32 .google.cloud.compute.v1.RawDiskH\r\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x0e\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12\\\n\x1fshielded_instance_initial_state\x18\x83\xc4\xdc[ \x01(\x0b\x32+.google.cloud.compute.v1.InitialStateConfigH\x11\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x12\x88\x01\x01\x12[\n\x1asource_disk_encryption_key\x18\xe1\xa0\xb8\xfd\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x13\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x14\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x15\x88\x01\x01\x12\\\n\x1bsource_image_encryption_key\x18\xab\x91\xf5\xb5\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x16\x88\x01\x01\x12\x1f\n\x0fsource_image_id\x18\xa3\xfc\xb0\x1a \x01(\tH\x17\x88\x01\x01\x12\x1f\n\x0fsource_snapshot\x18\xe8\x9a\x8e< \x01(\tH\x18\x88\x01\x01\x12_\n\x1esource_snapshot_encryption_key\x18\xda\x8e\xe7\x90\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x19\x88\x01\x01\x12\"\n\x12source_snapshot_id\x18\xd2\x96\x98/ \x01(\tH\x1a\x88\x01\x01\x12\x1c\n\x0bsource_type\x18\xde\xf1\xd2\xd7\x01 \x01(\tH\x1b\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x1c\x88\x01\x01\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"2\n\nSourceType\x12\x19\n\x15UNDEFINED_SOURCE_TYPE\x10\x00\x12\t\n\x03RAW\x10\x88\xf8\x04\"^\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x0f\n\r_architectureB\x15\n\x13_archive_size_bytesB\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x0f\n\r_disk_size_gbB\x1e\n\x1c_enable_confidential_computeB\t\n\x07_familyB\x05\n\x03_idB\x17\n\x15_image_encryption_keyB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x0b\n\t_raw_diskB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\"\n _shielded_instance_initial_stateB\x0e\n\x0c_source_diskB\x1d\n\x1b_source_disk_encryption_keyB\x11\n\x0f_source_disk_idB\x0f\n\r_source_imageB\x1e\n\x1c_source_image_encryption_keyB\x12\n\x10_source_image_idB\x12\n\x10_source_snapshotB!\n\x1f_source_snapshot_encryption_keyB\x15\n\x13_source_snapshot_idB\x0e\n\x0c_source_typeB\t\n\x07_status\"R\n\x0fImageFamilyView\x12\x35\n\x05image\x18\xdb\xd2\xea/ \x01(\x0b\x32\x1e.google.cloud.compute.v1.ImageH\x00\x88\x01\x01\x42\x08\n\x06_image\"\x9b\x02\n\tImageList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x30\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1e.google.cloud.compute.v1.Image\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8e\x02\n\x12InitialStateConfig\x12\x39\n\x03\x64\x62s\x18\xb5\x87\x06 \x03(\x0b\x32*.google.cloud.compute.v1.FileContentBuffer\x12;\n\x04\x64\x62xs\x18\xf9\xe7\xbb\x01 \x03(\x0b\x32*.google.cloud.compute.v1.FileContentBuffer\x12;\n\x04keks\x18\xc2\xd8\xc8\x01 \x03(\x0b\x32*.google.cloud.compute.v1.FileContentBuffer\x12<\n\x02pk\x18\xfb\x1b \x01(\x0b\x32*.google.cloud.compute.v1.FileContentBufferH\x00\x88\x01\x01\x42\x05\n\x03_pk\"\xca\x01\n\x14InsertAddressRequest\x12\x43\n\x10\x61\x64\x64ress_resource\x18\xf9\x97\xde\xe6\x01 \x01(\x0b\x32 .google.cloud.compute.v1.AddressB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xce\x01\n\x17InsertAutoscalerRequest\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xbc\x01\n\x1aInsertBackendBucketRequest\x12P\n\x17\x62\x61\x63kend_bucket_resource\x18\x98\xce\xc7\xb5\x01 \x01(\x0b\x32&.google.cloud.compute.v1.BackendBucketB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x01\n\x1bInsertBackendServiceRequest\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xeb\x01\n\x11InsertDiskRequest\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0f\n\r_source_image\"\xcc\x01\n\x1fInsertExternalVpnGatewayRequest\x12[\n\x1d\x65xternal_vpn_gateway_resource\x18\x88\xdf\x90\xe8\x01 \x01(\x0b\x32+.google.cloud.compute.v1.ExternalVpnGatewayB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc4\x01\n\x1bInsertFirewallPolicyRequest\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12&\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tB\x0f\xe0\x41\x02\xf2G\tparent_id\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xab\x01\n\x15InsertFirewallRequest\x12\x44\n\x11\x66irewall_resource\x18\xed\xb0\xe0\x13 \x01(\x0b\x32!.google.cloud.compute.v1.FirewallB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe0\x01\n\x1bInsertForwardingRuleRequest\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xaf\x01\n\x1aInsertGlobalAddressRequest\x12\x43\n\x10\x61\x64\x64ress_resource\x18\xf9\x97\xde\xe6\x01 \x01(\x0b\x32 .google.cloud.compute.v1.AddressB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc5\x01\n!InsertGlobalForwardingRuleRequest\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n\'InsertGlobalNetworkEndpointGroupRequest\x12_\n\x1fnetwork_endpoint_group_resource\x18\xa7\xcd\xdb\xfa\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xdb\x01\n)InsertGlobalPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb5\x01\n\x18InsertHealthCheckRequest\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd2\x01\n\x12InsertImageRequest\x12\x1c\n\x0c\x66orce_create\x18\xd0\x89\xa4^ \x01(\x08H\x00\x88\x01\x01\x12?\n\x0eimage_resource\x18\xf2\xc4\xfe\xb0\x01 \x01(\x0b\x32\x1e.google.cloud.compute.v1.ImageB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_force_createB\r\n\x0b_request_id\"\xee\x01\n!InsertInstanceGroupManagerRequest\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xc0\x02\n.InsertInstanceGroupManagerResizeRequestRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12{\n.instance_group_manager_resize_request_resource\x18\xed\xbe\xb5\xdf\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstanceGroupManagerResizeRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd9\x01\n\x1aInsertInstanceGroupRequest\x12P\n\x17instance_group_resource\x18\xb8\xb5\xd5\x88\x01 \x01(\x0b\x32&.google.cloud.compute.v1.InstanceGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcf\x02\n\x15InsertInstanceRequest\x12\x44\n\x11instance_resource\x18\xf8\xf0\xfe\x66 \x01(\x0b\x32!.google.cloud.compute.v1.InstanceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12)\n\x18source_instance_template\x18\xc0\xc3\xc1\x9e\x01 \x01(\tH\x01\x88\x01\x01\x12$\n\x14source_machine_image\x18\xbf\xdc\xb0\n \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x1b\n\x19_source_instance_templateB\x17\n\x15_source_machine_image\"\xc4\x01\n\x1dInsertInstanceTemplateRequest\x12U\n\x1ainstance_template_resource\x18\x89\xea\x8b\x05 \x01(\x0b\x32).google.cloud.compute.v1.InstanceTemplateB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xdf\x01\n\x1cInsertInstantSnapshotRequest\x12T\n\x19instant_snapshot_resource\x18\xcb\xaa\x88\xb7\x01 \x01(\x0b\x32(.google.cloud.compute.v1.InstantSnapshotB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe6\x01\n(InsertInterconnectAttachmentGroupRequest\x12l\n&interconnect_attachment_group_resource\x18\xf9\xdf\xe1\x04 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectAttachmentGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x02\n#InsertInterconnectAttachmentRequest\x12\x61\n interconnect_attachment_resource\x18\xf9\xa4\xa0\x65 \x01(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xc7\x01\n\x1eInsertInterconnectGroupRequest\x12W\n\x1binterconnect_group_resource\x18\x9f\xf3\xe6( \x01(\x0b\x32*.google.cloud.compute.v1.InterconnectGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb8\x01\n\x19InsertInterconnectRequest\x12M\n\x15interconnect_resource\x18\x9f\xa1\xcc\xbd\x01 \x01(\x0b\x32%.google.cloud.compute.v1.InterconnectB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa9\x01\n\x14InsertLicenseRequest\x12\x43\n\x10license_resource\x18\xcc\xd4\xea\xd0\x01 \x01(\x0b\x32 .google.cloud.compute.v1.LicenseB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xee\x01\n\x19InsertMachineImageRequest\x12M\n\x16machine_image_resource\x18\xea\xaa\xfb\x1c \x01(\x0b\x32%.google.cloud.compute.v1.MachineImageB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12 \n\x0fsource_instance\x18\xb9\x98\xfd\xbc\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x12\n\x10_source_instance\"\xe8\x01\n\x1eInsertNetworkAttachmentRequest\x12W\n\x1bnetwork_attachment_resource\x18\x99\xf0\xcc\x64 \x01(\x0b\x32*.google.cloud.compute.v1.NetworkAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb7\x02\n\'InsertNetworkEdgeSecurityServiceRequest\x12l\n&network_edge_security_service_resource\x18\xa6\xa3\xdb\xe3\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.NetworkEdgeSecurityServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xef\x01\n!InsertNetworkEndpointGroupRequest\x12_\n\x1fnetwork_endpoint_group_resource\x18\xa7\xcd\xdb\xfa\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xc6\x01\n\"InsertNetworkFirewallPolicyRequest\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x01\n\x14InsertNetworkRequest\x12\x42\n\x10network_resource\x18\xff\xdd\x9c: \x01(\x0b\x32 .google.cloud.compute.v1.NetworkB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf1\x01\n\x16InsertNodeGroupRequest\x12\"\n\x12initial_node_count\x18\xed\xc8\xa7\" \x01(\x05\x42\x03\xe0\x41\x02\x12H\n\x13node_group_resource\x18\xab\xb3\xfa\xf0\x01 \x01(\x0b\x32\".google.cloud.compute.v1.NodeGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd9\x01\n\x19InsertNodeTemplateRequest\x12M\n\x16node_template_resource\x18\xb6\xda\xdd< \x01(\x0b\x32%.google.cloud.compute.v1.NodeTemplateB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe3\x01\n\x1cInsertPacketMirroringRequest\x12T\n\x19packet_mirroring_resource\x18\xa1\xfc\xa8\xeb\x01 \x01(\x0b\x32(.google.cloud.compute.v1.PacketMirroringB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n$InsertPublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x62\n!public_advertised_prefix_resource\x18\x8f\xd7\xb2o \x01(\x0b\x32/.google.cloud.compute.v1.PublicAdvertisedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf6\x01\n#InsertPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n\x1dInsertRegionAutoscalerRequest\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe6\x01\n!InsertRegionBackendServiceRequest\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x01\n\x1dInsertRegionCommitmentRequest\x12H\n\x13\x63ommitment_resource\x18\xf8\xa3\xbbt \x01(\x0b\x32#.google.cloud.compute.v1.CommitmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf5\x01\n\x17InsertRegionDiskRequest\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0csource_image\x18\xb7\xe8\x86\x18 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0f\n\r_source_image\"\xdc\x01\n\x1eInsertRegionHealthCheckRequest\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf3\x01\n%InsertRegionHealthCheckServiceRequest\x12[\n\x1dhealth_check_service_resource\x18\xf2\x9b\xd0\xe3\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HealthCheckServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf8\x01\n\'InsertRegionInstanceGroupManagerRequest\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xeb\x01\n#InsertRegionInstanceTemplateRequest\x12U\n\x1ainstance_template_resource\x18\x89\xea\x8b\x05 \x01(\x0b\x32).google.cloud.compute.v1.InstanceTemplateB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe9\x01\n\"InsertRegionInstantSnapshotRequest\x12T\n\x19instant_snapshot_resource\x18\xcb\xaa\x88\xb7\x01 \x01(\x0b\x32(.google.cloud.compute.v1.InstantSnapshotB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf9\x01\n\'InsertRegionNetworkEndpointGroupRequest\x12_\n\x1fnetwork_endpoint_group_resource\x18\xa7\xcd\xdb\xfa\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xed\x01\n(InsertRegionNetworkFirewallPolicyRequest\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf8\x01\n\'InsertRegionNotificationEndpointRequest\x12^\n\x1enotification_endpoint_resource\x18\xa4\xfa\xb1\xa1\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NotificationEndpointB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x96\x02\n!InsertRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xe5\x01\n!InsertRegionSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18ssl_certificate_resource\x18\x89\xd4\x95V \x01(\x0b\x32\'.google.cloud.compute.v1.SslCertificateB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd7\x01\n\x1cInsertRegionSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe9\x01\n\"InsertRegionTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x1atarget_http_proxy_resource\x18\xa8\xaf\xe3\x0b \x01(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xed\x01\n#InsertRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe6\x01\n!InsertRegionTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x19target_tcp_proxy_resource\x18\xcb\xf0\xc9\x45 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xcd\x01\n\x19InsertRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd2\x01\n\x18InsertReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x14reservation_resource\x18\xa1\xee\xf4\x87\x01 \x01(\x0b\x32$.google.cloud.compute.v1.ReservationB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xdf\x01\n\x1bInsertResourcePolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18resource_policy_resource\x18\xca\x8c\xd1$ \x01(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa2\x01\n\x12InsertRouteRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12>\n\x0eroute_resource\x18\xc4\x8a\xbfk \x01(\x0b\x32\x1e.google.cloud.compute.v1.RouteB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc6\x01\n\x13InsertRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xef\x01\n\x1bInsertSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x10\n\x0e_validate_only\"\xe9\x01\n\x1eInsertServiceAttachmentRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12X\n\x1bservice_attachment_resource\x18\xa0\xb6\xc4\xe1\x01 \x01(\x0b\x32*.google.cloud.compute.v1.ServiceAttachmentB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xac\x01\n\x15InsertSnapshotRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x45\n\x11snapshot_resource\x18\xa9\xb8\xc1\xe5\x01 \x01(\x0b\x32!.google.cloud.compute.v1.SnapshotB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbe\x01\n\x1bInsertSslCertificateRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Q\n\x18ssl_certificate_resource\x18\x89\xd4\x95V \x01(\x0b\x32\'.google.cloud.compute.v1.SslCertificateB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb0\x01\n\x16InsertSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd2\x01\n\x18InsertStoragePoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x15storage_pool_resource\x18\x8d\xbc\xf9J \x01(\x0b\x32$.google.cloud.compute.v1.StoragePoolB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd2\x01\n\x17InsertSubnetworkRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12H\n\x13subnetwork_resource\x18\xbf\xda\x91\x14 \x01(\x0b\x32#.google.cloud.compute.v1.SubnetworkB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc3\x01\n\x1cInsertTargetGrpcProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12U\n\x1atarget_grpc_proxy_resource\x18\xd2\xea\xeb\x9c\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetGrpcProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc2\x01\n\x1cInsertTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x1atarget_http_proxy_resource\x18\xa8\xaf\xe3\x0b \x01(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xc6\x01\n\x1dInsertTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xdc\x01\n\x1bInsertTargetInstanceRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x18target_instance_resource\x18\xca\xe2\xa0\xcd\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetInstanceB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd3\x01\n\x17InsertTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12I\n\x14target_pool_resource\x18\xa3\xdd\xa5\x30 \x01(\x0b\x32#.google.cloud.compute.v1.TargetPoolB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbf\x01\n\x1bInsertTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x19target_ssl_proxy_resource\x18\xc0\xfd\xdb\x43 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetSslProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbf\x01\n\x1bInsertTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12R\n\x19target_tcp_proxy_resource\x18\xcb\xf0\xc9\x45 \x01(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe5\x01\n\x1dInsertTargetVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12U\n\x1btarget_vpn_gateway_resource\x18\x82\xb3\x1e \x01(\x0b\x32).google.cloud.compute.v1.TargetVpnGatewayB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa6\x01\n\x13InsertUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd3\x01\n\x17InsertVpnGatewayRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12I\n\x14vpn_gateway_resource\x18\x94\xb7\x8eW \x01(\x0b\x32#.google.cloud.compute.v1.VpnGatewayB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd0\x01\n\x16InsertVpnTunnelRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12G\n\x13vpn_tunnel_resource\x18\xba\xa1\xb4) \x01(\x0b\x32\".google.cloud.compute.v1.VpnTunnelB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf7\x1d\n\x08Instance\x12\\\n\x19\x61\x64vanced_machine_features\x18\xb2\xe7\xaa\xc3\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.AdvancedMachineFeaturesH\x00\x88\x01\x01\x12\x1f\n\x0e\x63\x61n_ip_forward\x18\xfc\x86\x84\xdf\x01 \x01(\x08H\x01\x88\x01\x01\x12\x62\n\x1c\x63onfidential_instance_config\x18\xf5\x92\xfa\xe9\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.ConfidentialInstanceConfigH\x02\x88\x01\x01\x12\x1d\n\x0c\x63pu_platform\x18\xaa\xea\xd1\xc3\x01 \x01(\tH\x03\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x04\x88\x01\x01\x12$\n\x13\x64\x65letion_protection\x18\xea\xff\xb2\xda\x01 \x01(\x08H\x05\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x06\x88\x01\x01\x12\x37\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32%.google.cloud.compute.v1.AttachedDisk\x12\x46\n\x0e\x64isplay_device\x18\xf3\x88\xbc{ \x01(\x0b\x32&.google.cloud.compute.v1.DisplayDeviceH\x07\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x08\x88\x01\x01\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12\x18\n\x08hostname\x18\xb3\xb8\x85q \x01(\tH\t\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\n\x88\x01\x01\x12W\n\x17instance_encryption_key\x18\x8d\xc1\xef\x1e \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x0b\x88\x01\x01\x12*\n\x1akey_revocation_action_type\x18\xe2\xdc\xc0p \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\r\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0e\x88\x01\x01\x12\x41\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32-.google.cloud.compute.v1.Instance.LabelsEntry\x12%\n\x14last_start_timestamp\x18\xd0\xa3\xd1\xd3\x01 \x01(\tH\x0f\x88\x01\x01\x12$\n\x13last_stop_timestamp\x18\xe2\xdb\xec\xc4\x01 \x01(\tH\x10\x88\x01\x01\x12)\n\x18last_suspended_timestamp\x18\x89\xa9\xf1\xa9\x01 \x01(\tH\x11\x88\x01\x01\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x12\x88\x01\x01\x12;\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x13\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x14\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x15\x88\x01\x01\x12H\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\x0b\x32).google.cloud.compute.v1.NetworkInterface\x12^\n\x1anetwork_performance_config\x18\xe2\x97\xf8\xbd\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.NetworkPerformanceConfigH\x16\x88\x01\x01\x12?\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32\'.google.cloud.compute.v1.InstanceParamsH\x17\x88\x01\x01\x12*\n\x1aprivate_ipv6_google_access\x18\x8e\xcc\x82\x17 \x01(\tH\x18\x88\x01\x01\x12R\n\x14reservation_affinity\x18\xbb\xb8\xa2K \x01(\x0b\x32,.google.cloud.compute.v1.ReservationAffinityH\x19\x88\x01\x01\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12H\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\'.google.cloud.compute.v1.ResourceStatusH\x1a\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x1b\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x1c\x88\x01\x01\x12@\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingH\x1d\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x1e\x88\x01\x01\x12\x45\n\x10service_accounts\x18\xb0\xc4\xab\x84\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.ServiceAccount\x12Y\n\x18shielded_instance_config\x18\xb5\x8b\x91\x06 \x01(\x0b\x32/.google.cloud.compute.v1.ShieldedInstanceConfigH\x1f\x88\x01\x01\x12l\n\"shielded_instance_integrity_policy\x18\x97\xa2\x87N \x01(\x0b\x32\x38.google.cloud.compute.v1.ShieldedInstanceIntegrityPolicyH \x88\x01\x01\x12$\n\x14source_machine_image\x18\xbf\xdc\xb0\n \x01(\tH!\x88\x01\x01\x12\x63\n#source_machine_image_encryption_key\x18\xa3\xfb\xf9[ \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\"\x88\x01\x01\x12 \n\x10start_restricted\x18\xd8\xd0\xfd: \x01(\x08H#\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH$\x88\x01\x01\x12\x1f\n\x0estatus_message\x18\xba\xc9\xe9\x8d\x01 \x01(\tH%\x88\x01\x01\x12\x33\n\x04tags\x18\x99\xe8\xd8\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsH&\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\'\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x01\n\x17KeyRevocationActionType\x12(\n$UNDEFINED_KEY_REVOCATION_ACTION_TYPE\x10\x00\x12.\n&KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED\x10\xda\x91\xde\xde\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\"\xc0\x01\n\x17PrivateIpv6GoogleAccess\x12(\n$UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS\x10\x00\x12-\n%ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE\x10\xba\xca\x89\xcc\x01\x12+\n#ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE\x10\xd7\xfa\xb6\x89\x01\x12\x1f\n\x17INHERIT_FROM_SUBNETWORK\x10\xbf\xa8\xec\xfc\x01\"\xec\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x11\n\tREPAIRING\x10\x95\x82\x95\xc5\x01\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x12\x0f\n\x07STAGING\x10\x9b\xc8\xc6\xcd\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x10\n\tSUSPENDED\x10\xbb\xbb\xb6\x18\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x1c\n\x1a_advanced_machine_featuresB\x11\n\x0f_can_ip_forwardB\x1f\n\x1d_confidential_instance_configB\x0f\n\r_cpu_platformB\x15\n\x13_creation_timestampB\x16\n\x14_deletion_protectionB\x0e\n\x0c_descriptionB\x11\n\x0f_display_deviceB\x0e\n\x0c_fingerprintB\x0b\n\t_hostnameB\x05\n\x03_idB\x1a\n\x18_instance_encryption_keyB\x1d\n\x1b_key_revocation_action_typeB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x17\n\x15_last_start_timestampB\x16\n\x14_last_stop_timestampB\x1b\n\x19_last_suspended_timestampB\x0f\n\r_machine_typeB\x0b\n\t_metadataB\x13\n\x11_min_cpu_platformB\x07\n\x05_nameB\x1d\n\x1b_network_performance_configB\t\n\x07_paramsB\x1d\n\x1b_private_ipv6_google_accessB\x17\n\x15_reservation_affinityB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\r\n\x0b_schedulingB\x0c\n\n_self_linkB\x1b\n\x19_shielded_instance_configB%\n#_shielded_instance_integrity_policyB\x17\n\x15_source_machine_imageB&\n$_source_machine_image_encryption_keyB\x13\n\x11_start_restrictedB\t\n\x07_statusB\x11\n\x0f_status_messageB\x07\n\x05_tagsB\x07\n\x05_zone\"\xb9\x03\n\x16InstanceAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.InstanceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.InstancesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa9\x01\n\x17InstanceConsumptionData\x12R\n\x10\x63onsumption_info\x18\xd2\xe5\xe4\x45 \x01(\x0b\x32\x30.google.cloud.compute.v1.InstanceConsumptionInfoH\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x01\x88\x01\x01\x42\x13\n\x11_consumption_infoB\x0b\n\t_instance\"\xd0\x01\n\x17InstanceConsumptionInfo\x12\x1b\n\nguest_cpus\x18\xd2\xcb\xc8\xbb\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x0clocal_ssd_gb\x18\xca\x88\xff\x9c\x01 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\tmemory_mb\x18\x93\x93\xa8\x37 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\rmin_node_cpus\x18\xbb\xa4\xa2\x97\x01 \x01(\x05H\x03\x88\x01\x01\x42\r\n\x0b_guest_cpusB\x0f\n\r_local_ssd_gbB\x0c\n\n_memory_mbB\x10\n\x0e_min_node_cpus\"\x95\x04\n\rInstanceGroup\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPort\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05H\t\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\n\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0b\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\x07\n\x05_sizeB\r\n\x0b_subnetworkB\x07\n\x05_zone\"\xc8\x03\n\x1bInstanceGroupAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Q\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32?.google.cloud.compute.v1.InstanceGroupAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a_\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12@\n\x05value\x18\x02 \x01(\x0b\x32\x31.google.cloud.compute.v1.InstanceGroupsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x02\n\x11InstanceGroupList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x38\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32&.google.cloud.compute.v1.InstanceGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfd\x12\n\x14InstanceGroupManager\x12\x65\n\x14\x61ll_instances_config\x18\x81\xae\xd8\x35 \x01(\x0b\x32?.google.cloud.compute.v1.InstanceGroupManagerAllInstancesConfigH\x00\x88\x01\x01\x12\x61\n\x15\x61uto_healing_policies\x18\x85\xe7\xe8\xd9\x01 \x03(\x0b\x32>.google.cloud.compute.v1.InstanceGroupManagerAutoHealingPolicy\x12#\n\x12\x62\x61se_instance_name\x18\x87\x96\xc5\xb9\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\\\n\x0f\x63urrent_actions\x18\xb7\xc8\x9cN \x01(\x0b\x32;.google.cloud.compute.v1.InstanceGroupManagerActionsSummaryH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12Q\n\x13\x64istribution_policy\x18\xcd\xee\xf2\xfe\x01 \x01(\x0b\x32+.google.cloud.compute.v1.DistributionPolicyH\x05\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12s\n\x1binstance_flexibility_policy\x18\x82\x8e\xec\x0c \x01(\x0b\x32\x46.google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyH\x08\x88\x01\x01\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tH\t\x88\x01\x01\x12p\n\x19instance_lifecycle_policy\x18\x91\xb4\xcd\xd5\x01 \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagerInstanceLifecyclePolicyH\n\x88\x01\x01\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x0b\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x0c\x88\x01\x01\x12/\n\x1elist_managed_instances_results\x18\xb4\xa4\x95\x8d\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0e\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPort\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0f\x88\x01\x01\x12`\n\x11resource_policies\x18\xe1\x9c\xcc\n \x01(\x0b\x32=.google.cloud.compute.v1.InstanceGroupManagerResourcePoliciesH\x10\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x11\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x13\x88\x01\x01\x12[\n\x0estandby_policy\x18\x84\x86\x8e\xee\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstanceGroupManagerStandbyPolicyH\x14\x88\x01\x01\x12H\n\x0fstateful_policy\x18\x85\xc3\xd5\x16 \x01(\x0b\x32\'.google.cloud.compute.v1.StatefulPolicyH\x15\x88\x01\x01\x12K\n\x06status\x18\xf2\x9f\xb7V \x01(\x0b\x32\x33.google.cloud.compute.v1.InstanceGroupManagerStatusH\x16\x88\x01\x01\x12\x18\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\t\x12\x1b\n\x0btarget_size\x18\xef\xf3\xfd\x1d \x01(\x05H\x17\x88\x01\x01\x12#\n\x13target_stopped_size\x18\xa1\xd6\x93\x01 \x01(\x05H\x18\x88\x01\x01\x12&\n\x15target_suspended_size\x18\xd3\x88\xf4\x92\x01 \x01(\x05H\x19\x88\x01\x01\x12X\n\rupdate_policy\x18\xe8\xca\xeaS \x01(\x0b\x32\x39.google.cloud.compute.v1.InstanceGroupManagerUpdatePolicyH\x1a\x88\x01\x01\x12I\n\x08versions\x18\x9b\xfd\xb9M \x03(\x0b\x32\x34.google.cloud.compute.v1.InstanceGroupManagerVersion\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x1b\x88\x01\x01\"n\n\x1bListManagedInstancesResults\x12,\n(UNDEFINED_LIST_MANAGED_INSTANCES_RESULTS\x10\x00\x12\x0f\n\x08PAGELESS\x10\xa8\xa9\xac\x0f\x12\x10\n\tPAGINATED\x10\xad\x85\x95\x13\x42\x17\n\x15_all_instances_configB\x15\n\x13_base_instance_nameB\x15\n\x13_creation_timestampB\x12\n\x10_current_actionsB\x0e\n\x0c_descriptionB\x16\n\x14_distribution_policyB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x1e\n\x1c_instance_flexibility_policyB\x11\n\x0f_instance_groupB\x1c\n\x1a_instance_lifecycle_policyB\x14\n\x12_instance_templateB\x07\n\x05_kindB!\n\x1f_list_managed_instances_resultsB\x07\n\x05_nameB\t\n\x07_regionB\x14\n\x12_resource_policiesB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x11\n\x0f_standby_policyB\x12\n\x10_stateful_policyB\t\n\x07_statusB\x0e\n\x0c_target_sizeB\x16\n\x14_target_stopped_sizeB\x18\n\x16_target_suspended_sizeB\x10\n\x0e_update_policyB\x07\n\x05_zone\"\xd3\x04\n\"InstanceGroupManagerActionsSummary\x12\x1b\n\nabandoning\x18\xcd\xf2\xe8\xd1\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x08\x63reating\x18\xb9\xdd\x85\x64 \x01(\x05H\x01\x88\x01\x01\x12)\n\x18\x63reating_without_retries\x18\xc9\xf6\xb1\xb0\x01 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x08\x64\x65leting\x18\xa8\xc7\xef\x86\x01 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x04none\x18\xb8\xde\xce\x01 \x01(\x05H\x04\x88\x01\x01\x12\x1b\n\nrecreating\x18\xec\xb3\xd6\xa1\x01 \x01(\x05H\x05\x88\x01\x01\x12\x1a\n\nrefreshing\x18\xa7\xa6\xc5\x66 \x01(\x05H\x06\x88\x01\x01\x12\x1b\n\nrestarting\x18\xf3\x96\xc4\xb1\x01 \x01(\x05H\x07\x88\x01\x01\x12\x18\n\x08resuming\x18\xaa\x9b\xf2_ \x01(\x05H\x08\x88\x01\x01\x12\x18\n\x08starting\x18\xc0\xc0\xf3s \x01(\x05H\t\x88\x01\x01\x12\x18\n\x08stopping\x18\xf4\xf0\x8a\x32 \x01(\x05H\n\x88\x01\x01\x12\x1a\n\nsuspending\x18\xa6\xfc\xf0\r \x01(\x05H\x0b\x88\x01\x01\x12\x1a\n\tverifying\x18\xc9\xa1\xac\xd7\x01 \x01(\x05H\x0c\x88\x01\x01\x42\r\n\x0b_abandoningB\x0b\n\t_creatingB\x1b\n\x19_creating_without_retriesB\x0b\n\t_deletingB\x07\n\x05_noneB\r\n\x0b_recreatingB\r\n\x0b_refreshingB\r\n\x0b_restartingB\x0b\n\t_resumingB\x0b\n\t_startingB\x0b\n\t_stoppingB\r\n\x0b_suspendingB\x0c\n\n_verifying\"\xdd\x03\n\"InstanceGroupManagerAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12X\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x46.google.cloud.compute.v1.InstanceGroupManagerAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x66\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12G\n\x05value\x18\x02 \x01(\x0b\x32\x38.google.cloud.compute.v1.InstanceGroupManagersScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x85\x01\n&InstanceGroupManagerAllInstancesConfig\x12L\n\nproperties\x18\xb3\x9a\xb6\x46 \x01(\x0b\x32\x30.google.cloud.compute.v1.InstancePropertiesPatchH\x00\x88\x01\x01\x42\r\n\x0b_properties\"\x90\x01\n%InstanceGroupManagerAutoHealingPolicy\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x11initial_delay_sec\x18\xda\xf0\xc0} \x01(\x05H\x01\x88\x01\x01\x42\x0f\n\r_health_checkB\x14\n\x12_initial_delay_sec\"\xc4\x02\n-InstanceGroupManagerInstanceFlexibilityPolicy\x12~\n\x13instance_selections\x18\xd1\x84\xf9\n \x03(\x0b\x32^.google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicy.InstanceSelectionsEntry\x1a\x92\x01\n\x17InstanceSelectionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x66\n\x05value\x18\x02 \x01(\x0b\x32W.google.cloud.compute.v1.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection:\x02\x38\x01\"y\n>InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection\x12\x18\n\rmachine_types\x18\x81\xdd\x81& \x03(\t\x12\x14\n\x04rank\x18\xac\x98\xd5\x01 \x01(\x05H\x00\x88\x01\x01\x42\x07\n\x05_rank\"\xf1\x02\n+InstanceGroupManagerInstanceLifecyclePolicy\x12)\n\x19\x64\x65\x66\x61ult_action_on_failure\x18\xd5\xc4\xa2\x1d \x01(\tH\x00\x88\x01\x01\x12\'\n\x16\x66orce_update_on_repair\x18\xcb\xf9\xf2\xa9\x01 \x01(\tH\x01\x88\x01\x01\"d\n\x16\x44\x65\x66\x61ultActionOnFailure\x12\'\n#UNDEFINED_DEFAULT_ACTION_ON_FAILURE\x10\x00\x12\x12\n\nDO_NOTHING\x10\xf9\xcf\x99\xd7\x01\x12\r\n\x06REPAIR\x10\x8d\xa7\xfc~\"O\n\x13\x46orceUpdateOnRepair\x12$\n UNDEFINED_FORCE_UPDATE_ON_REPAIR\x10\x00\x12\x07\n\x02NO\x10\xc1\x13\x12\t\n\x03YES\x10\xc7\xad\x05\x42\x1c\n\x1a_default_action_on_failureB\x19\n\x17_force_update_on_repair\"\xb9\x02\n\x18InstanceGroupManagerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManager\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8d\x06\n!InstanceGroupManagerResizeRequest\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12I\n\x16requested_run_duration\x18\xf9\x8b\xd9n \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x05\x88\x01\x01\x12\x1a\n\tresize_by\x18\xc2\xcf\xc0\xfe\x01 \x01(\x05H\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x08\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\t\x88\x01\x01\x12X\n\x06status\x18\xf2\x9f\xb7V \x01(\x0b\x32@.google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusH\n\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0b\x88\x01\x01\"\x8f\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x10\n\tCANCELLED\x10\xb1\xf2\x80\x14\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x11\n\tSUCCEEDED\x10\xc1\xa4\xdb\xf3\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x19\n\x17_requested_run_durationB\x0c\n\n_resize_byB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x08\n\x06_stateB\t\n\x07_statusB\x07\n\x05_zone\"\xe7\x01\n\'InstanceGroupManagerResizeRequestStatus\x12\x35\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1e.google.cloud.compute.v1.ErrorH\x00\x88\x01\x01\x12j\n\x0clast_attempt\x18\xa4\xac\xa8\xcf\x01 \x01(\x0b\x32K.google.cloud.compute.v1.InstanceGroupManagerResizeRequestStatusLastAttemptH\x01\x88\x01\x01\x42\x08\n\x06_errorB\x0f\n\r_last_attempt\"u\n2InstanceGroupManagerResizeRequestStatusLastAttempt\x12\x35\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1e.google.cloud.compute.v1.ErrorH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xdc\x02\n.InstanceGroupManagerResizeRequestsListResponse\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.InstanceGroupManagerResizeRequest\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"[\n$InstanceGroupManagerResourcePolicies\x12\x1f\n\x0fworkload_policy\x18\xfa\x85\xda\x36 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_workload_policy\"\xbc\x01\n!InstanceGroupManagerStandbyPolicy\x12!\n\x11initial_delay_sec\x18\xda\xf0\xc0} \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x01\x88\x01\x01\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\r\n\x06MANUAL\x10\xc6\xb7\xf7\x38\x12\x14\n\x0eSCALE_OUT_POOL\x10\x82\xe4&B\x14\n\x12_initial_delay_secB\x07\n\x05_mode\"\xd1\x03\n\x1aInstanceGroupManagerStatus\x12k\n\x14\x61ll_instances_config\x18\x81\xae\xd8\x35 \x01(\x0b\x32\x45.google.cloud.compute.v1.InstanceGroupManagerStatusAllInstancesConfigH\x00\x88\x01\x01\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tis_stable\x18\xf0\xef\xd8\x33 \x01(\x08H\x02\x88\x01\x01\x12U\n\x08stateful\x18\xcc\xe6\xc8t \x01(\x0b\x32;.google.cloud.compute.v1.InstanceGroupManagerStatusStatefulH\x03\x88\x01\x01\x12\x61\n\x0eversion_target\x18\xd8\xdd\xfe\x89\x01 \x01(\x0b\x32@.google.cloud.compute.v1.InstanceGroupManagerStatusVersionTargetH\x04\x88\x01\x01\x42\x17\n\x15_all_instances_configB\r\n\x0b_autoscalerB\x0c\n\n_is_stableB\x0b\n\t_statefulB\x11\n\x0f_version_target\"\x8e\x01\n,InstanceGroupManagerStatusAllInstancesConfig\x12 \n\x10\x63urrent_revision\x18\xe1\x87\xa5\x12 \x01(\tH\x00\x88\x01\x01\x12\x19\n\teffective\x18\xa7\xd3\xd8\x43 \x01(\x08H\x01\x88\x01\x01\x42\x13\n\x11_current_revisionB\x0c\n\n_effective\"\xf0\x01\n\"InstanceGroupManagerStatusStateful\x12#\n\x13has_stateful_config\x18\xf0\xe7\xd6\x34 \x01(\x08H\x00\x88\x01\x01\x12t\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x01(\x0b\x32M.google.cloud.compute.v1.InstanceGroupManagerStatusStatefulPerInstanceConfigsH\x01\x88\x01\x01\x42\x16\n\x14_has_stateful_configB\x17\n\x15_per_instance_configs\"h\n4InstanceGroupManagerStatusStatefulPerInstanceConfigs\x12\x1e\n\rall_effective\x18\x89\x91\xa7\xf6\x01 \x01(\x08H\x00\x88\x01\x01\x42\x10\n\x0e_all_effective\"U\n\'InstanceGroupManagerStatusVersionTarget\x12\x1b\n\nis_reached\x18\xbd\xfe\xc8\xce\x01 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_is_reached\"\xdc\x06\n InstanceGroupManagerUpdatePolicy\x12-\n\x1cinstance_redistribution_type\x18\x98\xdf\xc4\x8b\x01 \x01(\tH\x00\x88\x01\x01\x12\x43\n\tmax_surge\x18\x93\xc9\xa3\x90\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x01\x88\x01\x01\x12I\n\x0fmax_unavailable\x18\xf5\xcb\x8b\xc1\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x02\x88\x01\x01\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x03\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x04\x88\x01\x01\x12#\n\x12replacement_method\x18\xae\xcf\x9f\xf1\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x06\x88\x01\x01\"H\n\x1aInstanceRedistributionType\x12*\n&UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE\x10\x00\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\"[\n\x11ReplacementMethod\x12 \n\x1cUNDEFINED_REPLACEMENT_METHOD\x10\x00\x12\x10\n\x08RECREATE\x10\xef\xd9\x9b\xf9\x01\x12\x12\n\nSUBSTITUTE\x10\x9a\xa1\xfa\x85\x01\"1\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x15\n\rOPPORTUNISTIC\x10\xe9\xb7\xe8\xcc\x01\x42\x1f\n\x1d_instance_redistribution_typeB\x0c\n\n_max_surgeB\x12\n\x10_max_unavailableB\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_actionB\x15\n\x13_replacement_methodB\x07\n\x05_type\"\xcc\x01\n\x1bInstanceGroupManagerVersion\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x44\n\x0btarget_size\x18\xef\xf3\xfd\x1d \x01(\x0b\x32\'.google.cloud.compute.v1.FixedOrPercentH\x02\x88\x01\x01\x42\x14\n\x12_instance_templateB\x07\n\x05_nameB\x0e\n\x0c_target_size\"D\n,InstanceGroupManagersAbandonInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"\xf5\x02\n(InstanceGroupManagersApplyUpdatesRequest\x12\x1e\n\rall_instances\x18\xe0\xba\xbe\xc0\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x01\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x02\x88\x01\x01\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\x42\x10\n\x0e_all_instancesB\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_action\"o\n+InstanceGroupManagersCreateInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"\x9e\x01\n+InstanceGroupManagersDeleteInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x32\n\"skip_instances_on_validation_error\x18\xa1\xf6\xaf\x13 \x01(\x08H\x00\x88\x01\x01\x42%\n#_skip_instances_on_validation_error\"D\n0InstanceGroupManagersDeletePerInstanceConfigsReq\x12\x10\n\x05names\x18\xc8\xae\xef\x31 \x03(\t\"\xa4\x01\n\'InstanceGroupManagersListErrorsResponse\x12\x44\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x32.google.cloud.compute.v1.InstanceManagedByIgmError\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xb1\x01\n1InstanceGroupManagersListManagedInstancesResponse\x12G\n\x11managed_instances\x18\xde\x9b\xa9\xa0\x01 \x03(\x0b\x32(.google.cloud.compute.v1.ManagedInstance\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xeb\x01\n/InstanceGroupManagersListPerInstanceConfigsResp\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x01\x88\x01\x01\x42\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\x7f\n/InstanceGroupManagersPatchPerInstanceConfigsReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"E\n-InstanceGroupManagersRecreateInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"C\n+InstanceGroupManagersResumeInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"\xbb\x01\n\x1fInstanceGroupManagersScopedList\x12Q\n\x17instance_group_managers\x18\x90\xfa\x89\x66 \x03(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManager\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"k\n/InstanceGroupManagersSetInstanceTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_instance_template\"s\n*InstanceGroupManagersSetTargetPoolsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\tB\x0e\n\x0c_fingerprint\"B\n*InstanceGroupManagersStartInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"l\n)InstanceGroupManagersStopInstancesRequest\x12\x1a\n\nforce_stop\x18\xd6\xa1\xa1@ \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\r\n\x0b_force_stop\"u\n,InstanceGroupManagersSuspendInstancesRequest\x12\x1d\n\rforce_suspend\x18\xe8\xed\x96\r \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\x10\n\x0e_force_suspend\"\x80\x01\n0InstanceGroupManagersUpdatePerInstanceConfigsReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"e\n!InstanceGroupsAddInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"\xbe\x02\n\x1bInstanceGroupsListInstances\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.InstanceWithNamedPorts\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa1\x01\n\"InstanceGroupsListInstancesRequest\x12\x1e\n\x0einstance_state\x18\xe7\xf0\xfc+ \x01(\tH\x00\x88\x01\x01\"H\n\rInstanceState\x12\x1c\n\x18UNDEFINED_INSTANCE_STATE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x42\x11\n\x0f_instance_state\"h\n$InstanceGroupsRemoveInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"\xa6\x01\n\x18InstanceGroupsScopedList\x12\x43\n\x0finstance_groups\x18\xbe\xc1\xdf\xae\x01 \x03(\x0b\x32&.google.cloud.compute.v1.InstanceGroup\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8e\x01\n\"InstanceGroupsSetNamedPortsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPortB\x0e\n\x0c_fingerprint\"\xa1\x02\n\x0cInstanceList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.Instance\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x02\n\x15InstanceListReferrers\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.Reference\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbc\x02\n\x19InstanceManagedByIgmError\x12]\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x46.google.cloud.compute.v1.InstanceManagedByIgmErrorManagedInstanceErrorH\x00\x88\x01\x01\x12q\n\x17instance_action_details\x18\xa3\xfc\xab\x8b\x01 \x01(\x0b\x32G.google.cloud.compute.v1.InstanceManagedByIgmErrorInstanceActionDetailsH\x01\x88\x01\x01\x12\x19\n\ttimestamp\x18\x96\xd2\xa4\x1a \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_errorB\x1a\n\x18_instance_action_detailsB\x0c\n\n_timestamp\"\xf0\x03\n.InstanceManagedByIgmErrorInstanceActionDetails\x12\x16\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x01\x88\x01\x01\x12I\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\x0b\x32/.google.cloud.compute.v1.ManagedInstanceVersionH\x02\x88\x01\x01\"\x9c\x02\n\x06\x41\x63tion\x12\x14\n\x10UNDEFINED_ACTION\x10\x00\x12\x12\n\nABANDONING\x10\xcd\xca\x90\xb9\x01\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12 \n\x18\x43REATING_WITHOUT_RETRIES\x10\x89\xc6\xbe\xcc\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x12\n\nRECREATING\x10\xec\x8b\xfe\x88\x01\x12\x11\n\nREFRESHING\x10\xa7\xfe\xecM\x12\x12\n\nRESTARTING\x10\xf3\xee\xeb\x98\x01\x12\x10\n\x08RESUMING\x10\xaa\xfb\x89\xd5\x01\x12\x10\n\x08STARTING\x10\xc0\xa0\x8b\xe9\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x10\n\tVERIFYING\x10\xa9\xc1\x8c\x08\x42\t\n\x07_actionB\x0b\n\t_instanceB\n\n\x08_version\"t\n-InstanceManagedByIgmErrorManagedInstanceError\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"\x82\x01\n\x13InstanceMoveRequest\x12 \n\x10\x64\x65stination_zone\x18\xbd\xe2\xef> \x01(\tH\x00\x88\x01\x01\x12 \n\x0ftarget_instance\x18\x83\x8f\x96\x8a\x01 \x01(\tH\x01\x88\x01\x01\x42\x13\n\x11_destination_zoneB\x12\n\x10_target_instance\"\x9f\x02\n\x0eInstanceParams\x12M\n\x1arequest_valid_for_duration\x18\xdd\x96\xb7\x37 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x00\x88\x01\x01\x12\x63\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32@.google.cloud.compute.v1.InstanceParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x1d\n\x1b_request_valid_for_duration\"\xd8\x10\n\x12InstanceProperties\x12\\\n\x19\x61\x64vanced_machine_features\x18\xb2\xe7\xaa\xc3\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.AdvancedMachineFeaturesH\x00\x88\x01\x01\x12\x1f\n\x0e\x63\x61n_ip_forward\x18\xfc\x86\x84\xdf\x01 \x01(\x08H\x01\x88\x01\x01\x12\x62\n\x1c\x63onfidential_instance_config\x18\xf5\x92\xfa\xe9\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.ConfidentialInstanceConfigH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x37\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32%.google.cloud.compute.v1.AttachedDisk\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12*\n\x1akey_revocation_action_type\x18\xe2\xdc\xc0p \x01(\tH\x04\x88\x01\x01\x12K\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.InstanceProperties.LabelsEntry\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x05\x88\x01\x01\x12;\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x06\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x07\x88\x01\x01\x12H\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\x0b\x32).google.cloud.compute.v1.NetworkInterface\x12^\n\x1anetwork_performance_config\x18\xe2\x97\xf8\xbd\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.NetworkPerformanceConfigH\x08\x88\x01\x01\x12*\n\x1aprivate_ipv6_google_access\x18\x8e\xcc\x82\x17 \x01(\tH\t\x88\x01\x01\x12R\n\x14reservation_affinity\x18\xbb\xb8\xa2K \x01(\x0b\x32,.google.cloud.compute.v1.ReservationAffinityH\n\x88\x01\x01\x12g\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x44.google.cloud.compute.v1.InstanceProperties.ResourceManagerTagsEntry\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12@\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingH\x0b\x88\x01\x01\x12\x45\n\x10service_accounts\x18\xb0\xc4\xab\x84\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.ServiceAccount\x12Y\n\x18shielded_instance_config\x18\xb5\x8b\x91\x06 \x01(\x0b\x32/.google.cloud.compute.v1.ShieldedInstanceConfigH\x0c\x88\x01\x01\x12\x33\n\x04tags\x18\x99\xe8\xd8\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsH\r\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x01\n\x17KeyRevocationActionType\x12(\n$UNDEFINED_KEY_REVOCATION_ACTION_TYPE\x10\x00\x12.\n&KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED\x10\xda\x91\xde\xde\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\"\xc0\x01\n\x17PrivateIpv6GoogleAccess\x12(\n$UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS\x10\x00\x12-\n%ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE\x10\xba\xca\x89\xcc\x01\x12+\n#ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE\x10\xd7\xfa\xb6\x89\x01\x12\x1f\n\x17INHERIT_FROM_SUBNETWORK\x10\xbf\xa8\xec\xfc\x01\x42\x1c\n\x1a_advanced_machine_featuresB\x11\n\x0f_can_ip_forwardB\x1f\n\x1d_confidential_instance_configB\x0e\n\x0c_descriptionB\x1d\n\x1b_key_revocation_action_typeB\x0f\n\r_machine_typeB\x0b\n\t_metadataB\x13\n\x11_min_cpu_platformB\x1d\n\x1b_network_performance_configB\x1d\n\x1b_private_ipv6_google_accessB\x17\n\x15_reservation_affinityB\r\n\x0b_schedulingB\x1b\n\x19_shielded_instance_configB\x07\n\x05_tags\"\xa0\x02\n\x17InstancePropertiesPatch\x12P\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32<.google.cloud.compute.v1.InstancePropertiesPatch.LabelsEntry\x12S\n\x08metadata\x18\xaf\xf6\xb5) \x03(\x0b\x32>.google.cloud.compute.v1.InstancePropertiesPatch.MetadataEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\":\n\x11InstanceReference\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_instance\"\xd7\x01\n\x10InstanceSettings\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12K\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32\x31.google.cloud.compute.v1.InstanceSettingsMetadataH\x02\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x03\x88\x01\x01\x42\x0e\n\x0c_fingerprintB\x07\n\x05_kindB\x0b\n\t_metadataB\x07\n\x05_zone\"\xb7\x01\n\x18InstanceSettingsMetadata\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.InstanceSettingsMetadata.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x1a,\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05_kind\"\x9f\x04\n\x10InstanceTemplate\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12G\n\nproperties\x18\xb3\x9a\xb6\x46 \x01(\x0b\x32+.google.cloud.compute.v1.InstancePropertiesH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12 \n\x0fsource_instance\x18\xb9\x98\xfd\xbc\x01 \x01(\tH\x08\x88\x01\x01\x12U\n\x16source_instance_params\x18\xcc\xd0\xc4@ \x01(\x0b\x32-.google.cloud.compute.v1.SourceInstanceParamsH\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_propertiesB\t\n\x07_regionB\x0c\n\n_self_linkB\x12\n\x10_source_instanceB\x19\n\x17_source_instance_params\"\xb8\x03\n\x1eInstanceTemplateAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.InstanceTemplateAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x62\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.InstanceTemplatesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb1\x02\n\x14InstanceTemplateList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.InstanceTemplate\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x01\n\x1bInstanceTemplatesScopedList\x12I\n\x12instance_templates\x18\x8f\xb8\xa5\xdb\x01 \x03(\x0b\x32).google.cloud.compute.v1.InstanceTemplate\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8e\x03\n\x16InstanceWithNamedPorts\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x00\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPort\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x01\x88\x01\x01\"\xec\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x11\n\tREPAIRING\x10\x95\x82\x95\xc5\x01\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x12\x0f\n\x07STAGING\x10\x9b\xc8\xc6\xcd\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x10\n\tSUSPENDED\x10\xbb\xbb\xb6\x18\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x0b\n\t_instanceB\t\n\x07_status\"C\n#InstancesAddResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"\x8a\x02\n$InstancesBulkInsertOperationMetadata\x12t\n\x13per_location_status\x18\x9a\xe9\x84P \x03(\x0b\x32T.google.cloud.compute.v1.InstancesBulkInsertOperationMetadata.PerLocationStatusEntry\x1al\n\x16PerLocationStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.BulkInsertOperationStatus:\x02\x38\x01\"\xd8\x01\n&InstancesGetEffectiveFirewallsResponse\x12t\n\x10\x66irewall_policys\x18\xc2\xca\xfc\xc3\x01 \x03(\x0b\x32V.google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x38\n\tfirewalls\x18\xf3\xc6\xe8\x81\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\"\xac\x04\n=InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12O\n\x16packet_mirroring_rules\x18\xc4\xff\xc0\xfd\x01 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x02\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x1b\n\nshort_name\x18\xee\xb8\xd0\xea\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x04\x88\x01\x01\"\x99\x01\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\tHIERARCHY\x10\x95\xc4\xaa!\x12\x0f\n\x07NETWORK\x10\x8e\xcc\xb3\xc5\x01\x12\x17\n\x10NETWORK_REGIONAL\x10\xb0\xe2\xfdZ\x12\x14\n\rSYSTEM_GLOBAL\x10\xb3\x97\xd4\x1c\x12\x16\n\x0fSYSTEM_REGIONAL\x10\xaf\x8c\x92M\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0f\n\r_display_nameB\x07\n\x05_nameB\x0b\n\t_priorityB\r\n\x0b_short_nameB\x07\n\x05_type\"F\n&InstancesRemoveResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"\xc8\x02\n\"InstancesReportHostAsFaultyRequest\x12#\n\x13\x64isruption_schedule\x18\x83\xc5\xdb- \x01(\tH\x00\x88\x01\x01\x12`\n\rfault_reasons\x18\x92\xab\x91P \x03(\x0b\x32\x46.google.cloud.compute.v1.InstancesReportHostAsFaultyRequestFaultReason\"\x82\x01\n\x12\x44isruptionSchedule\x12!\n\x1dUNDEFINED_DISRUPTION_SCHEDULE\x10\x00\x12\'\n\x1f\x44ISRUPTION_SCHEDULE_UNSPECIFIED\x10\xdb\xee\xc8\x9e\x01\x12\x0e\n\x06\x46UTURE\x10\xc3\x83\xa2\xe2\x01\x12\x10\n\tIMMEDIATE\x10\x91\x8f\xf3HB\x16\n\x14_disruption_schedule\"\x9b\x02\n-InstancesReportHostAsFaultyRequestFaultReason\x12\x19\n\x08\x62\x65havior\x18\xd2\xe4\xba\xd0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\"\x93\x01\n\x08\x42\x65havior\x12\x16\n\x12UNDEFINED_BEHAVIOR\x10\x00\x12\x1b\n\x14\x42\x45HAVIOR_UNSPECIFIED\x10\xaa\xe9\xf0(\x12\x12\n\x0bPERFORMANCE\x10\x90\xc8\xda@\x12\x1d\n\x16SILENT_DATA_CORRUPTION\x10\xa6\xf5\x8c\x35\x12\x1f\n\x17UNRECOVERABLE_GPU_ERROR\x10\x9b\x92\xb7\xad\x01\x42\x0b\n\t_behaviorB\x0e\n\x0c_description\"\x95\x01\n\x13InstancesScopedList\x12\x37\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32!.google.cloud.compute.v1.Instance\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd7\x01\n\x19InstancesSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12R\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32>.google.cloud.compute.v1.InstancesSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"q\n#InstancesSetMachineResourcesRequest\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\"O\n\x1eInstancesSetMachineTypeRequest\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_machine_type\"Z\n!InstancesSetMinCpuPlatformRequest\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x00\x88\x01\x01\x42\x13\n\x11_min_cpu_platform\"h\n\x17InstancesSetNameRequest\x12\x1d\n\x0c\x63urrent_name\x18\x91\xf3\xab\xbc\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x0f\n\r_current_nameB\x07\n\x05_name\"w\n!InstancesSetSecurityPolicyRequest\x12\x1d\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\t\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_security_policy\"W\n!InstancesSetServiceAccountRequest\x12\x15\n\x05\x65mail\x18\x9c\x97\x89. \x01(\tH\x00\x88\x01\x01\x12\x11\n\x06scopes\x18\x9f\x99\x92O \x03(\tB\x08\n\x06_email\"w\n&InstancesStartWithEncryptionKeyRequest\x12M\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32;.google.cloud.compute.v1.CustomerEncryptionKeyProtectedDisk\"\xc1\t\n\x0fInstantSnapshot\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x06\x88\x01\x01\x12H\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x34.google.cloud.compute.v1.InstantSnapshot.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12W\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x36.google.cloud.compute.v1.InstantSnapshotResourceStatusH\t\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\n\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\r\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x0f\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x10\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x11\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"u\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x13\n\x0bUNAVAILABLE\x10\xb0\xd8\xa5\xc5\x01\x42\x0f\n\r_architectureB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0f\n\r_disk_size_gbB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x0e\n\x0c_source_diskB\x11\n\x0f_source_disk_idB\t\n\x07_statusB\x07\n\x05_zone\"\xce\x03\n\x1dInstantSnapshotAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.InstantSnapshotAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.InstantSnapshotsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x02\n\x13InstantSnapshotList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.InstantSnapshot\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"[\n\x1dInstantSnapshotResourceStatus\x12#\n\x12storage_size_bytes\x18\xf1\x8d\xe6\xb8\x01 \x01(\x03H\x00\x88\x01\x01\x42\x15\n\x13_storage_size_bytes\"\xac\x01\n\x1aInstantSnapshotsScopedList\x12G\n\x11instant_snapshots\x18\xd1\xbc\x97\x9d\x01 \x03(\x0b\x32(.google.cloud.compute.v1.InstantSnapshot\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"h\n\x0fInt64RangeMatch\x12\x1a\n\trange_end\x18\xd9\x95\xe0\x99\x01 \x01(\x03H\x00\x88\x01\x01\x12\x1b\n\x0brange_start\x18\xe0\xfd\xa2\x31 \x01(\x03H\x01\x88\x01\x01\x42\x0c\n\n_range_endB\x0e\n\x0c_range_start\"\xc5\x12\n\x0cInterconnect\x12\x1c\n\x0b\x61\x61i_enabled\x18\xcb\xa2\xb1\xb9\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x01\x88\x01\x01\x12r\n\x1e\x61pplication_aware_interconnect\x18\x9e\xf8\xcd\xcc\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectH\x02\x88\x01\x01\x12\x1e\n\x12\x61vailable_features\x18\xf3\xb9\xd6\xec\x01 \x03(\t\x12J\n\rcircuit_infos\x18\xaf\x83\xcdN \x03(\x0b\x32\x30.google.cloud.compute.v1.InterconnectCircuitInfo\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12\x1d\n\rcustomer_name\x18\xcc\xdc\xdf\x01 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12T\n\x10\x65xpected_outages\x18\x9b\xea\x8e~ \x03(\x0b\x32\x37.google.cloud.compute.v1.InterconnectOutageNotification\x12\"\n\x11google_ip_address\x18\xa2\x85\xa5\xd3\x01 \x01(\tH\x06\x88\x01\x01\x12$\n\x13google_reference_id\x18\xd5\xb5\x8a\xff\x01 \x01(\tH\x07\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12$\n\x18interconnect_attachments\x18\xff\xd2\xeb\xca\x01 \x03(\t\x12\x1e\n\x13interconnect_groups\x18\xa5\xad\x84q \x03(\t\x12\"\n\x11interconnect_type\x18\xcb\x98\xd3\xf5\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0b\x88\x01\x01\x12\x45\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.Interconnect.LabelsEntry\x12\x1a\n\tlink_type\x18\xdf\x88\xbe\xf9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x19\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\tH\r\x88\x01\x01\x12\x44\n\x06macsec\x18\xa2\xc1\x97\xfc\x01 \x01(\x0b\x32+.google.cloud.compute.v1.InterconnectMacsecH\x0e\x88\x01\x01\x12\x1e\n\x0emacsec_enabled\x18\xa4\xa1\xcd\\ \x01(\x08H\x0f\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x10\x88\x01\x01\x12!\n\x11noc_contact_email\x18\x80\xf8\xda\x06 \x01(\tH\x11\x88\x01\x01\x12\"\n\x12operational_status\x18\xff\xb1\xf0_ \x01(\tH\x12\x88\x01\x01\x12\x1f\n\x0fpeer_ip_address\x18\xd9\x97\x87\x63 \x01(\tH\x13\x88\x01\x01\x12\'\n\x16provisioned_link_count\x18\xf5\xd2\xf6\xc3\x01 \x01(\x05H\x14\x88\x01\x01\x12 \n\x0fremote_location\x18\x8e\x8f\xd7\x9a\x01 \x01(\tH\x15\x88\x01\x01\x12\x1e\n\x12requested_features\x18\xee\xf3\xf7\xdb\x01 \x03(\t\x12$\n\x14requested_link_count\x18\xfb\xdb\xbd\x15 \x01(\x05H\x16\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x17\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x18\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x19\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x11\x41vailableFeatures\x12 \n\x1cUNDEFINED_AVAILABLE_FEATURES\x10\x00\"j\n\x10InterconnectType\x12\x1f\n\x1bUNDEFINED_INTERCONNECT_TYPE\x10\x00\x12\x10\n\tDEDICATED\x10\xcf\x9b\x9c{\x12\x12\n\nIT_PRIVATE\x10\xcf\x8c\x88\xa0\x01\x12\x0f\n\x07PARTNER\x10\xa8\xd1\xa1\xdc\x01\"\x8d\x01\n\x08LinkType\x12\x17\n\x13UNDEFINED_LINK_TYPE\x10\x00\x12\"\n\x1aLINK_TYPE_ETHERNET_100G_LR\x10\xe7\xf2\x81\xa1\x01\x12 \n\x19LINK_TYPE_ETHERNET_10G_LR\x10\xa5\xb9\xf1p\x12\"\n\x1bLINK_TYPE_ETHERNET_400G_LR4\x10\xca\xf4\xc8<\"`\n\x11OperationalStatus\x12 \n\x1cUNDEFINED_OPERATIONAL_STATUS\x10\x00\x12\x10\n\tOS_ACTIVE\x10\xc1\xfb\xc8\x1a\x12\x17\n\x10OS_UNPROVISIONED\x10\xc0\xc1\xaar\"5\n\x11RequestedFeatures\x12 \n\x1cUNDEFINED_REQUESTED_FEATURES\x10\x00\"C\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x15\n\rUNPROVISIONED\x10\xdb\xc7\xd7\xf6\x01\x42\x0e\n\x0c_aai_enabledB\x10\n\x0e_admin_enabledB!\n\x1f_application_aware_interconnectB\x15\n\x13_creation_timestampB\x10\n\x0e_customer_nameB\x0e\n\x0c_descriptionB\x14\n\x12_google_ip_addressB\x16\n\x14_google_reference_idB\x05\n\x03_idB\x14\n\x12_interconnect_typeB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x0c\n\n_link_typeB\x0b\n\t_locationB\t\n\x07_macsecB\x11\n\x0f_macsec_enabledB\x07\n\x05_nameB\x14\n\x12_noc_contact_emailB\x15\n\x13_operational_statusB\x12\n\x10_peer_ip_addressB\x19\n\x17_provisioned_link_countB\x12\n\x10_remote_locationB\x17\n\x15_requested_link_countB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x08\n\x06_state\"\xa7\x04\n(InterconnectApplicationAwareInterconnect\x12\x87\x01\n\x1b\x62\x61ndwidth_percentage_policy\x18\xe9\xdc\x96Y \x01(\x0b\x32Z.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicyH\x00\x88\x01\x01\x12#\n\x13profile_description\x18\xe6\xec\xa8} \x01(\tH\x01\x88\x01\x01\x12z\n\x19shape_average_percentages\x18\xd9\xb8\xf4{ \x03(\x0b\x32T.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage\x12}\n\x16strict_priority_policy\x18\xb7\x95\x97\x45 \x01(\x0b\x32U.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectStrictPriorityPolicyH\x02\x88\x01\x01\x42\x1e\n\x1c_bandwidth_percentage_policyB\x16\n\x14_profile_descriptionB\x19\n\x17_strict_priority_policy\"\x88\x02\n;InterconnectApplicationAwareInterconnectBandwidthPercentage\x12\x1a\n\npercentage\x18\x9a\xe5\xb7H \x01(\rH\x00\x88\x01\x01\x12\x1d\n\rtraffic_class\x18\xb6\xf9\xbf^ \x01(\tH\x01\x88\x01\x01\"m\n\x0cTrafficClass\x12\x1b\n\x17UNDEFINED_TRAFFIC_CLASS\x10\x00\x12\t\n\x03TC1\x10\xa2\x87\x05\x12\t\n\x03TC2\x10\xa3\x87\x05\x12\t\n\x03TC3\x10\xa4\x87\x05\x12\t\n\x03TC4\x10\xa5\x87\x05\x12\t\n\x03TC5\x10\xa6\x87\x05\x12\t\n\x03TC6\x10\xa7\x87\x05\x42\r\n\x0b_percentageB\x10\n\x0e_traffic_class\"\xbb\x01\nAInterconnectApplicationAwareInterconnectBandwidthPercentagePolicy\x12v\n\x15\x62\x61ndwidth_percentages\x18\x8b\xfd\xa3o \x03(\x0b\x32T.google.cloud.compute.v1.InterconnectApplicationAwareInterconnectBandwidthPercentage\">\n.google.cloud.compute.v1.InterconnectAttachmentPartnerMetadataH\x19\x88\x01\x01\x12\x65\n\x19private_interconnect_info\x18\x83\xec\x91q \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentPrivateInfoH\x1a\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x1b\x88\x01\x01\x12\x1f\n\x0eremote_service\x18\xbc\xff\xf2\xba\x01 \x01(\tH\x1c\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x1e\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x1f\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH \x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH!\x88\x01\x01\x12\x1e\n\rsubnet_length\x18\x88\xc4\xb7\x85\x01 \x01(\x05H\"\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH#\x88\x01\x01\x12\x1d\n\rvlan_tag8021q\x18\x9c\xe8\x97\x39 \x01(\x05H$\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xfe\x01\n\tBandwidth\x12\x17\n\x13UNDEFINED_BANDWIDTH\x10\x00\x12\x0f\n\x08\x42PS_100G\x10\xb0\x95\xd0\x17\x12\x0f\n\x08\x42PS_100M\x10\xb6\x95\xd0\x17\x12\x0f\n\x07\x42PS_10G\x10\x8e\x89\xf2\x84\x01\x12\x0e\n\x06\x42PS_1G\x10\xf0\xad\xb9\xa9\x01\x12\x0f\n\x08\x42PS_200M\x10\x95\xfe\xd1\x17\x12\x0f\n\x07\x42PS_20G\x10\xcf\x90\xf2\x84\x01\x12\x0e\n\x06\x42PS_2G\x10\x8f\xae\xb9\xa9\x01\x12\x0f\n\x08\x42PS_300M\x10\xf4\xe6\xd3\x17\x12\x0f\n\x08\x42PS_400M\x10\xd3\xcf\xd5\x17\x12\x0f\n\x08\x42PS_500M\x10\xb2\xb8\xd7\x17\x12\x0f\n\x07\x42PS_50G\x10\x92\xa7\xf2\x84\x01\x12\x0f\n\x07\x42PS_50M\x10\x98\xa7\xf2\x84\x01\x12\x0e\n\x06\x42PS_5G\x10\xec\xae\xb9\xa9\x01\"\x9f\x01\n\x16\x45\x64geAvailabilityDomain\x12&\n\"UNDEFINED_EDGE_AVAILABILITY_DOMAIN\x10\x00\x12\x1d\n\x15\x41VAILABILITY_DOMAIN_1\x10\xda\xfb\xd6\xa6\x01\x12\x1d\n\x15\x41VAILABILITY_DOMAIN_2\x10\xdb\xfb\xd6\xa6\x01\x12\x1f\n\x17\x41VAILABILITY_DOMAIN_ANY\x10\xb5\xea\xf7\xb2\x01\"A\n\nEncryption\x12\x18\n\x14UNDEFINED_ENCRYPTION\x10\x00\x12\x0c\n\x05IPSEC\x10\xaa\xa3\xa9!\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\"`\n\x11OperationalStatus\x12 \n\x1cUNDEFINED_OPERATIONAL_STATUS\x10\x00\x12\x10\n\tOS_ACTIVE\x10\xc1\xfb\xc8\x1a\x12\x17\n\x10OS_UNPROVISIONED\x10\xc0\xc1\xaar\"I\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\"\xc2\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x07\x44\x45\x46UNCT\x10\xaf\xbc\xa1\x37\x12 \n\x18PARTNER_REQUEST_RECEIVED\x10\xe8\xf0\xf2\xf4\x01\x12\x17\n\x10PENDING_CUSTOMER\x10\xa6\x83\xefO\x12\x17\n\x0fPENDING_PARTNER\x10\xe0\xfb\xfa\xb8\x01\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x15\n\rUNPROVISIONED\x10\xdb\xc7\xd7\xf6\x01\"W\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\tDEDICATED\x10\xcf\x9b\x9c{\x12\x0f\n\x07PARTNER\x10\xa8\xd1\xa1\xdc\x01\x12\x18\n\x10PARTNER_PROVIDER\x10\xa8\xf7\xb7\xe6\x01\x42\x10\n\x0e_admin_enabledB\x13\n\x11_attachment_groupB\x0c\n\n_bandwidthB\x1a\n\x18_cloud_router_ip_addressB\x1c\n\x1a_cloud_router_ipv6_addressB!\n\x1f_cloud_router_ipv6_interface_idB\x1c\n\x1a_configuration_constraintsB\x15\n\x13_creation_timestampB\x1d\n\x1b_customer_router_ip_addressB\x1f\n\x1d_customer_router_ipv6_addressB$\n\"_customer_router_ipv6_interface_idB\x14\n\x12_dataplane_versionB\x0e\n\x0c_descriptionB\x1b\n\x19_edge_availability_domainB\r\n\x0b_encryptionB\x16\n\x14_google_reference_idB\x05\n\x03_idB\x0f\n\r_interconnectB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x06\n\x04_mtuB\x07\n\x05_nameB\x15\n\x13_operational_statusB\x0e\n\x0c_pairing_keyB\x0e\n\x0c_partner_asnB\x13\n\x11_partner_metadataB\x1c\n\x1a_private_interconnect_infoB\t\n\x07_regionB\x11\n\x0f_remote_serviceB\t\n\x07_routerB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\r\n\x0b_stack_typeB\x08\n\x06_stateB\x10\n\x0e_subnet_lengthB\x07\n\x05_typeB\x10\n\x0e_vlan_tag8021q\"\xe3\x03\n$InterconnectAttachmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Z\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32H.google.cloud.compute.v1.InterconnectAttachmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1ah\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12I\n\x05value\x18\x02 \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n.InterconnectAttachmentConfigurationConstraints\x12\x18\n\x07\x62gp_md5\x18\x8a\xe8\xf3\xb1\x01 \x01(\tH\x00\x88\x01\x01\x12w\n\x13\x62gp_peer_asn_ranges\x18\x82\xbb\xf9\xe2\x01 \x03(\x0b\x32V.google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange\"b\n\x06\x42gpMd5\x12\x15\n\x11UNDEFINED_BGP_MD5\x10\x00\x12\x14\n\x0cMD5_OPTIONAL\x10\x81\xa2\xe0\xfd\x01\x12\x13\n\x0cMD5_REQUIRED\x10\xc0\xe2\xfbg\x12\x16\n\x0fMD5_UNSUPPORTED\x10\xd4\xe1\xbb)B\n\n\x08_bgp_md5\"w\n=InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange\x12\x12\n\x03max\x18\xe4\xca\x06 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x03min\x18\xd2\xcc\x06 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_maxB\x06\n\x04_min\"\x81\x07\n\x1bInterconnectAttachmentGroup\x12^\n\x0b\x61ttachments\x18\xb0\x97\xcf\x9f\x01 \x03(\x0b\x32\x45.google.cloud.compute.v1.InterconnectAttachmentGroup.AttachmentsEntry\x12[\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12S\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentGroupIntentH\x05\x88\x01\x01\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12g\n\x11logical_structure\x18\xbd\x99\xf4\x43 \x01(\x0b\x32\x44.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureH\x08\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x1ar\n\x10\x41ttachmentsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupAttachment:\x02\x38\x01\x42\r\n\x0b_configuredB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x07\n\x05_etagB\x05\n\x03_idB\t\n\x07_intentB\x15\n\x13_interconnect_groupB\x07\n\x05_kindB\x14\n\x12_logical_structureB\x07\n\x05_nameB\x0c\n\n_self_link\"R\n%InterconnectAttachmentGroupAttachment\x12\x1a\n\nattachment\x18\xa3\xb2\xddW \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_attachment\"\xae\x01\n%InterconnectAttachmentGroupConfigured\x12p\n\x10\x61vailability_sla\x18\xc4\xb8\xb3\xe1\x01 \x01(\x0b\x32M.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAH\x00\x88\x01\x01\x42\x13\n\x11_availability_sla\"\x8a\x03\n4InterconnectAttachmentGroupConfiguredAvailabilitySLA\x12\x1d\n\reffective_sla\x18\x90\xd5\xdf\x44 \x01(\tH\x00\x88\x01\x01\x12\x83\x01\n\x15intended_sla_blockers\x18\x84\xad\xe6\xd5\x01 \x03(\x0b\x32`.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers\"\x9a\x01\n\x0c\x45\x66\x66\x65\x63tiveSla\x12\x1b\n\x17UNDEFINED_EFFECTIVE_SLA\x10\x00\x12!\n\x19\x45\x46\x46\x45\x43TIVE_SLA_UNSPECIFIED\x10\xa8\xa7\x90\xea\x01\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x42\x10\n\x0e_effective_sla\"\xab\x04\nGInterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers\x12\x17\n\x0b\x61ttachments\x18\xb0\x97\xcf\x9f\x01 \x03(\t\x12\x1d\n\x0c\x62locker_type\x18\xdf\xa4\xe2\xb5\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x64ocumentation_link\x18\xdf\xd4\xc8, \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x65xplanation\x18\x99\x9c\xd7\xf0\x01 \x01(\tH\x02\x88\x01\x01\x12\x12\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\t\x12\x12\n\x07regions\x18\xff\xef\xf2\x05 \x03(\t\x12\x10\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\t\"\xf3\x01\n\x0b\x42lockerType\x12\x1a\n\x16UNDEFINED_BLOCKER_TYPE\x10\x00\x12 \n\x18\x42LOCKER_TYPE_UNSPECIFIED\x10\xd7\xc2\xf8\xcc\x01\x12\x1b\n\x13INCOMPATIBLE_METROS\x10\xc0\x9f\xbd\x8a\x01\x12\x1b\n\x14INCOMPATIBLE_REGIONS\x10\xd9\x8e\xfa\x02\x12\x1d\n\x16MISSING_GLOBAL_ROUTING\x10\xa3\xc8\x8eO\x12\x16\n\x0eNO_ATTACHMENTS\x10\x92\xdc\xd8\xd9\x01\x12\'\n NO_ATTACHMENTS_IN_METRO_AND_ZONE\x10\xa7\xc6\xd2\x18\x12\x0c\n\x05OTHER\x10\xf0\x8d\x82$B\x0f\n\r_blocker_typeB\x15\n\x13_documentation_linkB\x0e\n\x0c_explanation\"\x80\x02\n!InterconnectAttachmentGroupIntent\x12!\n\x10\x61vailability_sla\x18\xc4\xb8\xb3\xe1\x01 \x01(\tH\x00\x88\x01\x01\"\xa2\x01\n\x0f\x41vailabilitySla\x12\x1e\n\x1aUNDEFINED_AVAILABILITY_SLA\x10\x00\x12#\n\x1c\x41VAILABILITY_SLA_UNSPECIFIED\x10\xfc\xde\xaa\x05\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x42\x13\n\x11_availability_sla\"\x8d\x01\n+InterconnectAttachmentGroupLogicalStructure\x12^\n\x07regions\x18\xff\xef\xf2\x05 \x03(\x0b\x32J.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegion\"\xbb\x01\n1InterconnectAttachmentGroupLogicalStructureRegion\x12\x63\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\x0b\x32O.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetro\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_region\"\xca\x01\n6InterconnectAttachmentGroupLogicalStructureRegionMetro\x12o\n\nfacilities\x18\x81\xc5\xf4\xff\x01 \x03(\x0b\x32W.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility\x12\x15\n\x05metro\x18\x99\xda\xbe\x31 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_metro\"\xd7\x01\n>InterconnectAttachmentGroupLogicalStructureRegionMetroFacility\x12\x19\n\x08\x66\x61\x63ility\x18\xa3\xdd\xf9\xee\x01 \x01(\tH\x00\x88\x01\x01\x12m\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\x0b\x32[.google.cloud.compute.v1.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneB\x0b\n\t_facility\"|\nBInterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone\x12\x17\n\x0b\x61ttachments\x18\xb0\x97\xcf\x9f\x01 \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_zone\"\xc4\x01\n8InterconnectAttachmentGroupsGetOperationalStatusResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12^\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32\x46.google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_result\"\x88\x03\n(InterconnectAttachmentGroupsListResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x46\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x34.google.cloud.compute.v1.InterconnectAttachmentGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x88\x05\n-InterconnectAttachmentGroupsOperationalStatus\x12w\n\x13\x61ttachment_statuses\x18\xbc\xaf\x98\xea\x01 \x03(\x0b\x32V.google.cloud.compute.v1.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus\x12[\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredH\x00\x88\x01\x01\x12\x1d\n\x0cgroup_status\x18\xb2\xb3\xc5\xa1\x01 \x01(\tH\x01\x88\x01\x01\x12S\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InterconnectAttachmentGroupIntentH\x02\x88\x01\x01\x12[\n\x0boperational\x18\xd2\xc7\xec= \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectAttachmentGroupConfiguredH\x03\x88\x01\x01\"u\n\x0bGroupStatus\x12\x1a\n\x16UNDEFINED_GROUP_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x11\n\nFULLY_DOWN\x10\x97\xb0\xeby\x12\x10\n\x08\x46ULLY_UP\x10\xd0\xbe\xb4\xf0\x01\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\r\n\x0b_configuredB\x0f\n\r_group_statusB\t\n\x07_intentB\x0e\n\x0c_operational\"\x94\x06\n=InterconnectAttachmentGroupsOperationalStatusAttachmentStatus\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\nattachment\x18\xa3\xb2\xddW \x01(\tH\x01\x88\x01\x01\x12\x19\n\tis_active\x18\xbb\xd7\xe0\x36 \x01(\tH\x02\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\"Z\n\x08IsActive\x12\x17\n\x13UNDEFINED_IS_ACTIVE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\"\xcd\x03\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12!\n\x19\x41TTACHMENT_STATUS_UNKNOWN\x10\xf9\xde\xa5\xe1\x01\x12\x1b\n\x13\x43ONNECTION_DISABLED\x10\xbd\x95\xa9\xce\x01\x12\x16\n\x0f\x43ONNECTION_DOWN\x10\xe3\x8a\xca\x7f\x12\x15\n\rCONNECTION_UP\x10\x9c\xdf\x9e\xd9\x01\x12\x0e\n\x07\x44\x45\x46UNCT\x10\xaf\xbc\xa1\x37\x12)\n!IPSEC_CONFIGURATION_NEEDED_STATUS\x10\xfe\xb5\x87\xd9\x01\x12)\n!IPSEC_READY_TO_RESUME_FLOW_STATUS\x10\x84\x99\xc0\xb7\x01\x12\x19\n\x11IPV4_DOWN_IPV6_UP\x10\xb0\xda\xa8\x84\x01\x12\x19\n\x11IPV4_UP_IPV6_DOWN\x10\xb0\x9e\xda\x96\x01\x12 \n\x18PARTNER_REQUEST_RECEIVED\x10\xe8\xf0\xf2\xf4\x01\x12\x17\n\x10PENDING_CUSTOMER\x10\xa6\x83\xefO\x12\x17\n\x0fPENDING_PARTNER\x10\xe0\xfb\xfa\xb8\x01\x12\x13\n\x0bPROVISIONED\x10\x94\xb0\xd1\xa9\x01\x12\"\n\x1bROUTER_CONFIGURATION_BROKEN\x10\x94\x8d\xe2G\x12\x15\n\rUNPROVISIONED\x10\xdb\xc7\xd7\xf6\x01\x42\x10\n\x0e_admin_enabledB\r\n\x0b_attachmentB\x0c\n\n_is_activeB\t\n\x07_status\"\xbd\x02\n\x1aInterconnectAttachmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbc\x01\n%InterconnectAttachmentPartnerMetadata\x12\"\n\x11interconnect_name\x18\x9c\xef\xc6\xf5\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cpartner_name\x18\xa2\xa7\x90M \x01(\tH\x01\x88\x01\x01\x12\x1b\n\nportal_url\x18\x9c\xce\xad\x80\x01 \x01(\tH\x02\x88\x01\x01\x42\x14\n\x12_interconnect_nameB\x0f\n\r_partner_nameB\r\n\x0b_portal_url\"K\n!InterconnectAttachmentPrivateInfo\x12\x19\n\x08tag8021q\x18\xc0\xd1\xce\x81\x01 \x01(\rH\x00\x88\x01\x01\x42\x0b\n\t_tag8021q\"\xc1\x01\n!InterconnectAttachmentsScopedList\x12U\n\x18interconnect_attachments\x18\xff\xd2\xeb\xca\x01 \x03(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xc5\x01\n\x17InterconnectCircuitInfo\x12\"\n\x12\x63ustomer_demarc_id\x18\x93\x8c\xdc\r \x01(\tH\x00\x88\x01\x01\x12!\n\x11google_circuit_id\x18\xf7\x8d\xf8| \x01(\tH\x01\x88\x01\x01\x12!\n\x10google_demarc_id\x18\xae\xdd\xdb\xd5\x01 \x01(\tH\x02\x88\x01\x01\x42\x15\n\x13_customer_demarc_idB\x14\n\x12_google_circuit_idB\x13\n\x11_google_demarc_id\"\x95\x05\n\x17InterconnectDiagnostics\x12P\n\narp_caches\x18\x91\xd6\xd8\xc5\x01 \x03(\x0b\x32\x38.google.cloud.compute.v1.InterconnectDiagnosticsARPEntry\x12(\n\x17\x62undle_aggregation_type\x18\x94\xc9\xb2\xcf\x01 \x01(\tH\x00\x88\x01\x01\x12)\n\x19\x62undle_operational_status\x18\xdc\x97\xe0\x32 \x01(\tH\x01\x88\x01\x01\x12L\n\x05links\x18\xb9\x9f\x8d\x31 \x03(\x0b\x32:.google.cloud.compute.v1.InterconnectDiagnosticsLinkStatus\x12\x1c\n\x0bmac_address\x18\x84\xd2\xc8\x9e\x01 \x01(\tH\x02\x88\x01\x01\"\x8a\x01\n\x15\x42undleAggregationType\x12%\n!UNDEFINED_BUNDLE_AGGREGATION_TYPE\x10\x00\x12#\n\x1c\x42UNDLE_AGGREGATION_TYPE_LACP\x10\xcd\xa2\x9e\r\x12%\n\x1e\x42UNDLE_AGGREGATION_TYPE_STATIC\x10\xd9\x98\x95\x18\"\x8f\x01\n\x17\x42undleOperationalStatus\x12\'\n#UNDEFINED_BUNDLE_OPERATIONAL_STATUS\x10\x00\x12&\n\x1e\x42UNDLE_OPERATIONAL_STATUS_DOWN\x10\x85\xae\xb4\xd8\x01\x12#\n\x1c\x42UNDLE_OPERATIONAL_STATUS_UP\x10\xbe\x83\xf9LB\x1a\n\x18_bundle_aggregation_typeB\x1c\n\x1a_bundle_operational_statusB\x0e\n\x0c_mac_address\"{\n\x1fInterconnectDiagnosticsARPEntry\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bmac_address\x18\x84\xd2\xc8\x9e\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_ip_addressB\x0e\n\x0c_mac_address\"\xfa\x01\n%InterconnectDiagnosticsLinkLACPStatus\x12 \n\x10google_system_id\x18\xa5\x85\xbf+ \x01(\tH\x00\x88\x01\x01\x12#\n\x12neighbor_system_id\x18\x9e\x98\xf9\xa3\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x02\x88\x01\x01\"=\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0f\n\x08\x44\x45TACHED\x10\xf2\xf6\xa1gB\x13\n\x11_google_system_idB\x15\n\x13_neighbor_system_idB\x08\n\x06_state\"\xe3\x01\n\'InterconnectDiagnosticsLinkOpticalPower\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\x02H\x01\x88\x01\x01\"v\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x12\n\nHIGH_ALARM\x10\xd4\xf2\xcd\x91\x01\x12\x13\n\x0cHIGH_WARNING\x10\xdf\xeb\xafi\x12\x11\n\tLOW_ALARM\x10\xe6\xaa\xff\x96\x01\x12\x13\n\x0bLOW_WARNING\x10\xf1\xaa\xc6\xa1\x01\x12\x07\n\x02OK\x10\xdc\x13\x42\x08\n\x06_stateB\x08\n\x06_value\"\xf1\x06\n!InterconnectDiagnosticsLinkStatus\x12P\n\narp_caches\x18\x91\xd6\xd8\xc5\x01 \x03(\x0b\x32\x38.google.cloud.compute.v1.InterconnectDiagnosticsARPEntry\x12\x1a\n\ncircuit_id\x18\xb1\xfa\xafk \x01(\tH\x00\x88\x01\x01\x12\x1c\n\rgoogle_demarc\x18\x8c\x8f\x03 \x01(\tH\x01\x88\x01\x01\x12\\\n\x0blacp_status\x18\xaf\xc4\x9e\xac\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectDiagnosticsLinkLACPStatusH\x02\x88\x01\x01\x12U\n\x06macsec\x18\xa2\xc1\x97\xfc\x01 \x01(\x0b\x32<.google.cloud.compute.v1.InterconnectDiagnosticsMacsecStatusH\x03\x88\x01\x01\x12\"\n\x12operational_status\x18\xff\xb1\xf0_ \x01(\tH\x04\x88\x01\x01\x12i\n\x17receiving_optical_power\x18\xdf\xad\xd8t \x01(\x0b\x32@.google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPowerH\x05\x88\x01\x01\x12m\n\x1atransmitting_optical_power\x18\x9d\xba\x89\xdb\x01 \x01(\x0b\x32@.google.cloud.compute.v1.InterconnectDiagnosticsLinkOpticalPowerH\x06\x88\x01\x01\"\x7f\n\x11OperationalStatus\x12 \n\x1cUNDEFINED_OPERATIONAL_STATUS\x10\x00\x12$\n\x1cLINK_OPERATIONAL_STATUS_DOWN\x10\xfd\xe4\xa6\x86\x01\x12\"\n\x1aLINK_OPERATIONAL_STATUS_UP\x10\xb6\xb6\xed\x91\x01\x42\r\n\x0b_circuit_idB\x10\n\x0e_google_demarcB\x0e\n\x0c_lacp_statusB\t\n\x07_macsecB\x15\n\x13_operational_statusB\x1a\n\x18_receiving_optical_powerB\x1d\n\x1b_transmitting_optical_power\"n\n#InterconnectDiagnosticsMacsecStatus\x12\x12\n\x03\x63kn\x18\x86\x82\x06 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0boperational\x18\xd2\xc7\xec= \x01(\x08H\x01\x88\x01\x01\x42\x06\n\x04_cknB\x0e\n\x0c_operational\"\x94\x06\n\x11InterconnectGroup\x12Q\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectGroupConfiguredH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12I\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectGroupIntentH\x05\x88\x01\x01\x12X\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\x0b\x32=.google.cloud.compute.v1.InterconnectGroup.InterconnectsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12_\n\x12physical_structure\x18\x8b\xd0\x90] \x01(\x0b\x32;.google.cloud.compute.v1.InterconnectGroupPhysicalStructureH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x1al\n\x12InterconnectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x45\n\x05value\x18\x02 \x01(\x0b\x32\x36.google.cloud.compute.v1.InterconnectGroupInterconnect:\x02\x38\x01\x42\r\n\x0b_configuredB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x07\n\x05_etagB\x05\n\x03_idB\t\n\x07_intentB\x07\n\x05_kindB\x07\n\x05_nameB\x15\n\x13_physical_structureB\x0c\n\n_self_link\"\xa2\x01\n\x1bInterconnectGroupConfigured\x12k\n\x13topology_capability\x18\xe8\xd9\xe0\x44 \x01(\x0b\x32\x46.google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityH\x00\x88\x01\x01\x42\x16\n\x14_topology_capability\"\xfc\x02\n-InterconnectGroupConfiguredTopologyCapability\x12\x8a\x01\n\x1cintended_capability_blockers\x18\xec\xfd\xc0\xfd\x01 \x03(\x0b\x32`.google.cloud.compute.v1.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers\x12\x1d\n\rsupported_sla\x18\x97\xf4\xa2\x1c \x01(\tH\x00\x88\x01\x01\"\x8c\x01\n\x0cSupportedSla\x12\x1b\n\x17UNDEFINED_SUPPORTED_SLA\x10\x00\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x10\n\x0e_supported_sla\"\x83\x04\nGInterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers\x12\x1d\n\x0c\x62locker_type\x18\xdf\xa4\xe2\xb5\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x64ocumentation_link\x18\xdf\xd4\xc8, \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x65xplanation\x18\x99\x9c\xd7\xf0\x01 \x01(\tH\x02\x88\x01\x01\x12\x16\n\nfacilities\x18\x81\xc5\xf4\xff\x01 \x03(\t\x12\x19\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\t\x12\x12\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\t\x12\x10\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\t\"\xc5\x01\n\x0b\x42lockerType\x12\x1a\n\x16UNDEFINED_BLOCKER_TYPE\x10\x00\x12\x1b\n\x13INCOMPATIBLE_METROS\x10\xc0\x9f\xbd\x8a\x01\x12\x14\n\rNOT_AVAILABLE\x10\x9d\x80\x8d\x43\x12\x18\n\x10NO_INTERCONNECTS\x10\x87\xf7\xd2\xf9\x01\x12*\n\"NO_INTERCONNECTS_IN_METRO_AND_ZONE\x10\xdc\xba\xa2\xd2\x01\x12\x0c\n\x05OTHER\x10\xf0\x8d\x82$\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0f\n\r_blocker_typeB\x15\n\x13_documentation_linkB\x0e\n\x0c_explanation\"\xf1\x01\n\x17InterconnectGroupIntent\x12#\n\x13topology_capability\x18\xe8\xd9\xe0\x44 \x01(\tH\x00\x88\x01\x01\"\x98\x01\n\x12TopologyCapability\x12!\n\x1dUNDEFINED_TOPOLOGY_CAPABILITY\x10\x00\x12\r\n\x06NO_SLA\x10\x8a\xe3\xfeL\x12\x1b\n\x13PRODUCTION_CRITICAL\x10\xe5\xf8\xa7\xe0\x01\x12\x1e\n\x17PRODUCTION_NON_CRITICAL\x10\xb7\xbd\xfd\x37\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x16\n\x14_topology_capability\"N\n\x1dInterconnectGroupInterconnect\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_interconnect\"{\n\"InterconnectGroupPhysicalStructure\x12U\n\x06metros\x18\xfa\xec\x97\xfe\x01 \x03(\x0b\x32\x41.google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetros\"\xb0\x01\n(InterconnectGroupPhysicalStructureMetros\x12\x63\n\nfacilities\x18\x81\xc5\xf4\xff\x01 \x03(\x0b\x32K.google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilities\x12\x15\n\x05metro\x18\x99\xda\xbe\x31 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_metro\"\xc0\x01\n2InterconnectGroupPhysicalStructureMetrosFacilities\x12\x19\n\x08\x66\x61\x63ility\x18\xa3\xdd\xf9\xee\x01 \x01(\tH\x00\x88\x01\x01\x12\x62\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\x0b\x32P.google.cloud.compute.v1.InterconnectGroupPhysicalStructureMetrosFacilitiesZonesB\x0b\n\t_facility\"s\n7InterconnectGroupPhysicalStructureMetrosFacilitiesZones\x12\x19\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_zone\"\xd0\x03\n\x1fInterconnectGroupsCreateMembers\x12(\n\x18intent_mismatch_behavior\x18\xc0\xd5\xb2N \x01(\tH\x00\x88\x01\x01\x12\x64\n\rinterconnects\x18\xa5\xdb\x85\xf8\x01 \x03(\x0b\x32I.google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInput\x12p\n\x15template_interconnect\x18\xb3\xb0\x95k \x01(\x0b\x32I.google.cloud.compute.v1.InterconnectGroupsCreateMembersInterconnectInputH\x01\x88\x01\x01\"t\n\x16IntentMismatchBehavior\x12&\n\"UNDEFINED_INTENT_MISMATCH_BEHAVIOR\x10\x00\x12\x0e\n\x06\x43REATE\x10\xfc\xa9\xe2\xb7\x01\x12\r\n\x06REJECT\x10\x9f\xcf\xf1~\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x1b\n\x19_intent_mismatch_behaviorB\x18\n\x16_template_interconnect\"\x82\x07\n0InterconnectGroupsCreateMembersInterconnectInput\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\rcustomer_name\x18\xcc\xdc\xdf\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x08\x66\x61\x63ility\x18\xa3\xdd\xf9\xee\x01 \x01(\tH\x03\x88\x01\x01\x12\"\n\x11interconnect_type\x18\xcb\x98\xd3\xf5\x01 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\tlink_type\x18\xdf\x88\xbe\xf9\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x11noc_contact_email\x18\x80\xf8\xda\x06 \x01(\tH\x07\x88\x01\x01\x12 \n\x0fremote_location\x18\x8e\x8f\xd7\x9a\x01 \x01(\tH\x08\x88\x01\x01\x12\x1e\n\x12requested_features\x18\xee\xf3\xf7\xdb\x01 \x03(\t\x12$\n\x14requested_link_count\x18\xfb\xdb\xbd\x15 \x01(\x05H\t\x88\x01\x01\"j\n\x10InterconnectType\x12\x1f\n\x1bUNDEFINED_INTERCONNECT_TYPE\x10\x00\x12\x10\n\tDEDICATED\x10\xcf\x9b\x9c{\x12\x12\n\nIT_PRIVATE\x10\xcf\x8c\x88\xa0\x01\x12\x0f\n\x07PARTNER\x10\xa8\xd1\xa1\xdc\x01\"\x8d\x01\n\x08LinkType\x12\x17\n\x13UNDEFINED_LINK_TYPE\x10\x00\x12\"\n\x1aLINK_TYPE_ETHERNET_100G_LR\x10\xe7\xf2\x81\xa1\x01\x12 \n\x19LINK_TYPE_ETHERNET_10G_LR\x10\xa5\xb9\xf1p\x12\"\n\x1bLINK_TYPE_ETHERNET_400G_LR4\x10\xca\xf4\xc8<\"H\n\x11RequestedFeatures\x12 \n\x1cUNDEFINED_REQUESTED_FEATURES\x10\x00\x12\x11\n\tIF_MACSEC\x10\x84\xfc\xfa\xbc\x01\x42\x10\n\x0e_admin_enabledB\x10\n\x0e_customer_nameB\x0e\n\x0c_descriptionB\x0b\n\t_facilityB\x14\n\x12_interconnect_typeB\x0c\n\n_link_typeB\x07\n\x05_nameB\x14\n\x12_noc_contact_emailB\x12\n\x10_remote_locationB\x17\n\x15_requested_link_count\"\x87\x01\n&InterconnectGroupsCreateMembersRequest\x12Q\n\x07request\x18\x8f\xe5\xbb\n \x01(\x0b\x32\x38.google.cloud.compute.v1.InterconnectGroupsCreateMembersH\x00\x88\x01\x01\x42\n\n\x08_request\"\xb0\x01\n.InterconnectGroupsGetOperationalStatusResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12T\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32<.google.cloud.compute.v1.InterconnectGroupsOperationalStatusH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_result\"\xf4\x02\n\x1eInterconnectGroupsListResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.InterconnectGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe8\x04\n#InterconnectGroupsOperationalStatus\x12Q\n\nconfigured\x18\xbe\xf4\xfb\x8c\x01 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectGroupConfiguredH\x00\x88\x01\x01\x12\x1d\n\x0cgroup_status\x18\xb2\xb3\xc5\xa1\x01 \x01(\tH\x01\x88\x01\x01\x12I\n\x06intent\x18\x9c\xed\xc4\xcb\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectGroupIntentH\x02\x88\x01\x01\x12q\n\x15interconnect_statuses\x18\xb1\xe9\x83\xd5\x01 \x03(\x0b\x32N.google.cloud.compute.v1.InterconnectGroupsOperationalStatusInterconnectStatus\x12Q\n\x0boperational\x18\xd2\xc7\xec= \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectGroupConfiguredH\x03\x88\x01\x01\"\x82\x01\n\x0bGroupStatus\x12\x1a\n\x16UNDEFINED_GROUP_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x11\n\nFULLY_DOWN\x10\x97\xb0\xeby\x12\x10\n\x08\x46ULLY_UP\x10\xd0\xbe\xb4\xf0\x01\x12 \n\x19GROUPS_STATUS_UNSPECIFIED\x10\x95\x8d\xf3|B\r\n\x0b_configuredB\x0f\n\r_group_statusB\t\n\x07_intentB\x0e\n\x0c_operational\"\x87\x03\n5InterconnectGroupsOperationalStatusInterconnectStatus\x12\x1e\n\radmin_enabled\x18\xd1\xec\xc1\xd4\x01 \x01(\x08H\x00\x88\x01\x01\x12N\n\x0b\x64iagnostics\x18\xac\xb3\xfa\x9e\x01 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectDiagnosticsH\x01\x88\x01\x01\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tH\x02\x88\x01\x01\x12\x19\n\tis_active\x18\xbb\xd7\xe0\x36 \x01(\tH\x03\x88\x01\x01\"d\n\x08IsActive\x12\x17\n\x13UNDEFINED_IS_ACTIVE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x12\x1d\n\x15IS_ACTIVE_UNSPECIFIED\x10\x93\xc1\x8d\x83\x01\x42\x10\n\x0e_admin_enabledB\x0e\n\x0c_diagnosticsB\x0f\n\r_interconnectB\x0c\n\n_is_active\"\xa9\x02\n\x10InterconnectList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x37\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32%.google.cloud.compute.v1.Interconnect\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfa\n\n\x14InterconnectLocation\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x11\x61vailability_zone\x18\x90\xd0\xc7K \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x12\x61vailable_features\x18\xf3\xb9\xd6\xec\x01 \x03(\t\x12 \n\x14\x61vailable_link_types\x18\xaa\xd6\xf9\xf2\x01 \x03(\t\x12\x14\n\x04\x63ity\x18\xeb\xb2\xba\x01 \x01(\tH\x02\x88\x01\x01\x12\x19\n\tcontinent\x18\xb4\xdb\xd0? \x01(\tH\x03\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x11\x66\x61\x63ility_provider\x18\x8d\xa0\xa6\xfe\x01 \x01(\tH\x06\x88\x01\x01\x12-\n\x1d\x66\x61\x63ility_provider_facility_id\x18\x85\xbe\xce) \x01(\tH\x07\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12&\n\x15peeringdb_facility_id\x18\xb6\xba\xed\xff\x01 \x01(\tH\x0b\x88\x01\x01\x12Q\n\x0cregion_infos\x18\xfa\xe8\xee\x94\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.InterconnectLocationRegionInfo\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\r\x88\x01\x01\x12\x1c\n\x0csupports_pzs\x18\xee\xf6\x85( \x01(\x08H\x0e\x88\x01\x01\"H\n\x11\x41vailableFeatures\x12 \n\x1cUNDEFINED_AVAILABLE_FEATURES\x10\x00\x12\x11\n\tIF_MACSEC\x10\x84\xfc\xfa\xbc\x01\"\xa2\x01\n\x12\x41vailableLinkTypes\x12\"\n\x1eUNDEFINED_AVAILABLE_LINK_TYPES\x10\x00\x12\"\n\x1aLINK_TYPE_ETHERNET_100G_LR\x10\xe7\xf2\x81\xa1\x01\x12 \n\x19LINK_TYPE_ETHERNET_10G_LR\x10\xa5\xb9\xf1p\x12\"\n\x1bLINK_TYPE_ETHERNET_400G_LR4\x10\xca\xf4\xc8<\"\xea\x01\n\tContinent\x12\x17\n\x13UNDEFINED_CONTINENT\x10\x00\x12\x0e\n\x06\x41\x46RICA\x10\xfa\x9c\xaf\x97\x01\x12\x0f\n\x08\x41SIA_PAC\x10\xfd\xf6\x8e\x39\x12\x0f\n\x08\x43_AFRICA\x10\xf6\x93\xaa\"\x12\x12\n\nC_ASIA_PAC\x10\xf9\x8f\x86\xde\x01\x12\x0f\n\x08\x43_EUROPE\x10\x9e\xca\xc5_\x12\x17\n\x0f\x43_NORTH_AMERICA\x10\x98\x9b\xbb\x83\x01\x12\x17\n\x0f\x43_SOUTH_AMERICA\x10\xe0\x8c\xb0\xbd\x01\x12\x0e\n\x06\x45UROPE\x10\xa2\xd3\xca\xd4\x01\x12\x15\n\rNORTH_AMERICA\x10\x94\xd9\xd0\xd5\x01\x12\x14\n\rSOUTH_AMERICA\x10\xdc\xca\xc5\x0f\"A\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x11\n\tAVAILABLE\x10\xa9\xb5\xe6\xd2\x01\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x42\n\n\x08_addressB\x14\n\x12_availability_zoneB\x07\n\x05_cityB\x0c\n\n_continentB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x14\n\x12_facility_providerB \n\x1e_facility_provider_facility_idB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x18\n\x16_peeringdb_facility_idB\x0c\n\n_self_linkB\t\n\x07_statusB\x0f\n\r_supports_pzs\"\xb9\x02\n\x18InterconnectLocationList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.InterconnectLocation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xba\x02\n\x1eInterconnectLocationRegionInfo\x12 \n\x0f\x65xpected_rtt_ms\x18\xfa\x83\xbe\xc9\x01 \x01(\x03H\x00\x88\x01\x01\x12!\n\x11location_presence\x18\xc5\x94\xb4\x30 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x02\x88\x01\x01\"\x85\x01\n\x10LocationPresence\x12\x1f\n\x1bUNDEFINED_LOCATION_PRESENCE\x10\x00\x12\x0e\n\x06GLOBAL\x10\xa3\xef\xef\xeb\x01\x12\x14\n\x0cLOCAL_REGION\x10\xe8\xec\xb5\xc0\x01\x12\x11\n\tLP_GLOBAL\x10\xbe\xdd\xeb\xcc\x01\x12\x17\n\x0fLP_LOCAL_REGION\x10\xc3\xda\xfd\xe8\x01\x42\x12\n\x10_expected_rtt_msB\x14\n\x12_location_presenceB\t\n\x07_region\"\x94\x01\n\x12InterconnectMacsec\x12\x1a\n\tfail_open\x18\xcb\x95\xfb\xfd\x01 \x01(\x08H\x00\x88\x01\x01\x12T\n\x0fpre_shared_keys\x18\xf2\xcb\xb5\xc8\x01 \x03(\x0b\x32\x37.google.cloud.compute.v1.InterconnectMacsecPreSharedKeyB\x0c\n\n_fail_open\"v\n\x18InterconnectMacsecConfig\x12Z\n\x0fpre_shared_keys\x18\xf2\xcb\xb5\xc8\x01 \x03(\x0b\x32=.google.cloud.compute.v1.InterconnectMacsecConfigPreSharedKey\"\xa8\x01\n$InterconnectMacsecConfigPreSharedKey\x12\x12\n\x03\x63\x61k\x18\xcd\xff\x05 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03\x63kn\x18\x86\x82\x06 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x03\x88\x01\x01\x42\x06\n\x04_cakB\x06\n\x04_cknB\x07\n\x05_nameB\r\n\x0b_start_time\"j\n\x1eInterconnectMacsecPreSharedKey\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_start_time\"\x85\x05\n\x1eInterconnectOutageNotification\x12\x1c\n\x11\x61\x66\x66\x65\x63ted_circuits\x18\x95\xfe\xdeT \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x65nd_time\x18\xb1\xa7\xe7\x36 \x01(\x03H\x01\x88\x01\x01\x12\x1b\n\nissue_type\x18\xe0\xfd\xa0\xb0\x01 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x03\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x04\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x06\x88\x01\x01\"w\n\tIssueType\x12\x18\n\x14UNDEFINED_ISSUE_TYPE\x10\x00\x12\x10\n\tIT_OUTAGE\x10\x85\xe1\xe8S\x12\x18\n\x11IT_PARTIAL_OUTAGE\x10\xa3\xca\xf5+\x12\r\n\x06OUTAGE\x10\xf1\xa5\x8f]\x12\x15\n\x0ePARTIAL_OUTAGE\x10\x8f\xb7\x8f\x46\"C\n\x06Source\x12\x14\n\x10UNDEFINED_SOURCE\x10\x00\x12\x0e\n\x06GOOGLE\x10\xb9\xa4\x99\xed\x01\x12\x13\n\x0bNSRC_GOOGLE\x10\xe2\xff\xba\xf3\x01\"x\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\tCANCELLED\x10\xb1\xf2\x80\x14\x12\x11\n\tCOMPLETED\x10\xab\x8c\xe4\x93\x01\x12\x10\n\tNS_ACTIVE\x10\xc0\x9d\xb7x\x12\x13\n\x0bNS_CANCELED\x10\xd3\x93\xc7\xf1\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_end_timeB\r\n\x0b_issue_typeB\x07\n\x05_nameB\t\n\x07_sourceB\r\n\x0b_start_timeB\x08\n\x06_state\"\xcb\x0b\n\x1aInterconnectRemoteLocation\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12~\n$attachment_configuration_constraints\x18\xd1\xe8\xeb\x9b\x01 \x01(\x0b\x32G.google.cloud.compute.v1.InterconnectAttachmentConfigurationConstraintsH\x01\x88\x01\x01\x12\x14\n\x04\x63ity\x18\xeb\xb2\xba\x01 \x01(\tH\x02\x88\x01\x01\x12[\n\x0b\x63onstraints\x18\xb6\xcc\xee\x01 \x01(\x0b\x32>.google.cloud.compute.v1.InterconnectRemoteLocationConstraintsH\x03\x88\x01\x01\x12\x19\n\tcontinent\x18\xb4\xdb\xd0? \x01(\tH\x04\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x06\x88\x01\x01\x12\"\n\x11\x66\x61\x63ility_provider\x18\x8d\xa0\xa6\xfe\x01 \x01(\tH\x07\x88\x01\x01\x12-\n\x1d\x66\x61\x63ility_provider_facility_id\x18\x85\xbe\xce) \x01(\tH\x08\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x14\n\x04lacp\x18\xa2\xa1\xca\x01 \x01(\tH\x0b\x88\x01\x01\x12$\n\x14max_lag_size100_gbps\x18\xb5\xff\xf6t \x01(\x05H\x0c\x88\x01\x01\x12$\n\x13max_lag_size10_gbps\x18\x95\xe6\x98\x8c\x01 \x01(\x05H\r\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0e\x88\x01\x01\x12&\n\x15peeringdb_facility_id\x18\xb6\xba\xed\xff\x01 \x01(\tH\x0f\x88\x01\x01\x12j\n\x15permitted_connections\x18\xae\xb3\xe5\xd2\x01 \x03(\x0b\x32G.google.cloud.compute.v1.InterconnectRemoteLocationPermittedConnections\x12\x1f\n\x0eremote_service\x18\xbc\xff\xf2\xba\x01 \x01(\tH\x10\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x11\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x12\x88\x01\x01\"\x82\x01\n\tContinent\x12\x17\n\x13UNDEFINED_CONTINENT\x10\x00\x12\x0e\n\x06\x41\x46RICA\x10\xfa\x9c\xaf\x97\x01\x12\x0f\n\x08\x41SIA_PAC\x10\xfd\xf6\x8e\x39\x12\x0e\n\x06\x45UROPE\x10\xa2\xd3\xca\xd4\x01\x12\x15\n\rNORTH_AMERICA\x10\x94\xd9\xd0\xd5\x01\x12\x14\n\rSOUTH_AMERICA\x10\xdc\xca\xc5\x0f\"K\n\x04Lacp\x12\x12\n\x0eUNDEFINED_LACP\x10\x00\x12\x16\n\x0eLACP_SUPPORTED\x10\xb1\x8a\xf6\xa1\x01\x12\x17\n\x10LACP_UNSUPPORTED\x10\xf8\xf3\x9e\x61\"A\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x11\n\tAVAILABLE\x10\xa9\xb5\xe6\xd2\x01\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x42\n\n\x08_addressB\'\n%_attachment_configuration_constraintsB\x07\n\x05_cityB\x0e\n\x0c_constraintsB\x0c\n\n_continentB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x14\n\x12_facility_providerB \n\x1e_facility_provider_facility_idB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_lacpB\x17\n\x15_max_lag_size100_gbpsB\x16\n\x14_max_lag_size10_gbpsB\x07\n\x05_nameB\x18\n\x16_peeringdb_facility_idB\x11\n\x0f_remote_serviceB\x0c\n\n_self_linkB\t\n\x07_status\"\xc5\x04\n%InterconnectRemoteLocationConstraints\x12*\n\x19port_pair_remote_location\x18\xa7\xb2\xbc\xec\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0eport_pair_vlan\x18\xea\xf2\x83\xe4\x01 \x01(\tH\x01\x88\x01\x01\x12t\n\x13subnet_length_range\x18\xc6\xb0\xfbW \x01(\x0b\x32O.google.cloud.compute.v1.InterconnectRemoteLocationConstraintsSubnetLengthRangeH\x02\x88\x01\x01\"\x9c\x01\n\x16PortPairRemoteLocation\x12\'\n#UNDEFINED_PORT_PAIR_REMOTE_LOCATION\x10\x00\x12)\n\"PORT_PAIR_MATCHING_REMOTE_LOCATION\x10\xd3\x8b\xec\x62\x12.\n\'PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION\x10\xa5\xaa\xf3\x1c\"q\n\x0cPortPairVlan\x12\x1c\n\x18UNDEFINED_PORT_PAIR_VLAN\x10\x00\x12\x1e\n\x17PORT_PAIR_MATCHING_VLAN\x10\xbe\xe8\xacw\x12#\n\x1cPORT_PAIR_UNCONSTRAINED_VLAN\x10\xac\x88\xc7SB\x1c\n\x1a_port_pair_remote_locationB\x11\n\x0f_port_pair_vlanB\x16\n\x14_subnet_length_range\"p\n6InterconnectRemoteLocationConstraintsSubnetLengthRange\x12\x12\n\x03max\x18\xe4\xca\x06 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x03min\x18\xd2\xcc\x06 \x01(\x05H\x01\x88\x01\x01\x42\x06\n\x04_maxB\x06\n\x04_min\"\xc5\x02\n\x1eInterconnectRemoteLocationList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x45\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x33.google.cloud.compute.v1.InterconnectRemoteLocation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"r\n.InterconnectRemoteLocationPermittedConnections\x12&\n\x15interconnect_location\x18\xc6\xd8\xdb\xea\x01 \x01(\tH\x00\x88\x01\x01\x42\x18\n\x16_interconnect_location\"z\n#InterconnectsGetDiagnosticsResponse\x12H\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32\x30.google.cloud.compute.v1.InterconnectDiagnosticsH\x00\x88\x01\x01\x42\t\n\x07_result\"\x9b\x01\n$InterconnectsGetMacsecConfigResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12I\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32\x31.google.cloud.compute.v1.InterconnectMacsecConfigH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_result\"\xe9\x01\n\x1cInvalidateCacheUrlMapRequest\x12\x61\n cache_invalidation_rule_resource\x18\xad\xc3\x93\x95\x01 \x01(\x0b\x32..google.cloud.compute.v1.CacheInvalidationRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"D\n\x05Items\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x08\n\x06_value\"\xd4\x08\n\x07License\x12\'\n\x1c\x61llowed_replacement_licenses\x18\x96\x9c\xa7] \x03(\t\x12\"\n\x12\x61ppendable_to_disk\x18\x96\x8e\x8b\x08 \x01(\x08H\x00\x88\x01\x01\x12 \n\x0f\x63harges_use_fee\x18\xce\xa1\xca\xb1\x01 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12!\n\x15incompatible_licenses\x18\x98\xb0\xb0\x9f\x01 \x03(\t\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0clicense_code\x18\xab\xc6Y \x01(\x04H\x06\x88\x01\x01\x12\x44\n\x11minimum_retention\x18\xad\xe0\x8cJ \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x07\x88\x01\x01\x12\"\n\x11multi_tenant_only\x18\x9b\xe0\xeb\x82\x01 \x01(\x08H\x08\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12\x1b\n\nos_license\x18\xe6\xa9\xd8\xe8\x01 \x01(\x08H\n\x88\x01\x01\x12#\n\x13removable_from_disk\x18\xae\x85\xaa\x0c \x01(\x08H\x0b\x88\x01\x01\x12\'\n\x1crequired_coattached_licenses\x18\x81\xba\xcd= \x03(\t\x12[\n\x15resource_requirements\x18\xa1\xb2\x97\x66 \x01(\x0b\x32\x34.google.cloud.compute.v1.LicenseResourceRequirementsH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0e\x88\x01\x01\x12!\n\x10sole_tenant_only\x18\xb7\x8b\xee\xcb\x01 \x01(\x08H\x0f\x88\x01\x01\x12\x1c\n\x0ctransferable\x18\xc5\xbf\x89\x02 \x01(\x08H\x10\x88\x01\x01\x12 \n\x10update_timestamp\x18\xa0\xea\xd2\x39 \x01(\tH\x11\x88\x01\x01\x42\x15\n\x13_appendable_to_diskB\x12\n\x10_charges_use_feeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x0f\n\r_license_codeB\x14\n\x12_minimum_retentionB\x14\n\x12_multi_tenant_onlyB\x07\n\x05_nameB\r\n\x0b_os_licenseB\x16\n\x14_removable_from_diskB\x18\n\x16_resource_requirementsB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x13\n\x11_sole_tenant_onlyB\x0f\n\r_transferableB\x13\n\x11_update_timestamp\"\x94\x04\n\x0bLicenseCode\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12J\n\rlicense_alias\x18\xd2\x91\xe2\x14 \x03(\x0b\x32\x30.google.cloud.compute.v1.LicenseCodeLicenseAlias\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0ctransferable\x18\xc5\xbf\x89\x02 \x01(\x08H\x07\x88\x01\x01\"\x7f\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0e\n\x07\x45NABLED\x10\xa1\xae\xecV\x12\x11\n\nRESTRICTED\x10\xdb\xe8\xdb|\x12\x19\n\x11STATE_UNSPECIFIED\x10\xc9\xd0\xbc\xe0\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_self_linkB\x08\n\x06_stateB\x0f\n\r_transferable\"q\n\x17LicenseCodeLicenseAlias\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0c\n\n_self_link\"\x9c\x01\n\x19LicenseResourceCommitment\x12\x16\n\x06\x61mount\x18\xd8\xa0\xe9] \x01(\x03H\x00\x88\x01\x01\x12!\n\x11\x63ores_per_license\x18\x94\xc8\xbe\x0f \x01(\tH\x01\x88\x01\x01\x12\x17\n\x07license\x18\xc1\x88\xc2O \x01(\tH\x02\x88\x01\x01\x42\t\n\x07_amountB\x14\n\x12_cores_per_licenseB\n\n\x08_license\"\x8d\x01\n\x1bLicenseResourceRequirements\x12$\n\x13min_guest_cpu_count\x18\xa4\xd4\xf4\xe3\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\rmin_memory_mb\x18\xe6\xd7\xd9\xf0\x01 \x01(\x05H\x01\x88\x01\x01\x42\x16\n\x14_min_guest_cpu_countB\x10\n\x0e_min_memory_mb\"\x89\x02\n\x14LicensesListResponse\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.License\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x01\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb3\x02\n\x1bListAcceleratorTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xae\x02\n\x14ListAddressesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"]\n%ListAssociationsFirewallPolicyRequest\x12 \n\x0ftarget_resource\x18\xfc\xed\xea\xde\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_target_resource\"\xae\x02\n\x16ListAutoscalersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc7\x02\n-ListAvailableFeaturesRegionSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa9\x02\n\'ListAvailableFeaturesSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9b\x02\n\x19ListBackendBucketsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x8b\x06\n\x1bListBgpRoutesRoutersRequest\x12\x1e\n\x0e\x61\x64\x64ress_family\x18\x8f\xc4\xecR \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x64\x65stination_prefix\x18\xe3\xbf\xe9} \x01(\tH\x01\x88\x01\x01\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x03\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x04\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04peer\x18\xe2\xe2\xd1\x01 \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x0epolicy_applied\x18\xf0\xd4\xf8\xb4\x01 \x01(\x08H\x07\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x08\x88\x01\x01\x12\x1b\n\nroute_type\x18\xf0\xb6\x9e\xb3\x01 \x01(\tH\t\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\"f\n\rAddressFamily\x12\x1c\n\x18UNDEFINED_ADDRESS_FAMILY\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\x12\x1d\n\x16UNSPECIFIED_IP_VERSION\x10\xc8\xe7\xe3\"\"g\n\tRouteType\x12\x18\n\x14UNDEFINED_ROUTE_TYPE\x10\x00\x12\x11\n\nADVERTISED\x10\x9d\x92\xd7\t\x12\x0e\n\x07LEARNED\x10\xc3\xcb\xc9n\x12\x1d\n\x16UNSPECIFIED_ROUTE_TYPE\x10\xb8\xd3\xa4vB\x11\n\x0f_address_familyB\x15\n\x13_destination_prefixB\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x07\n\x05_peerB\x11\n\x0f_policy_appliedB\x19\n\x17_return_partial_successB\r\n\x0b_route_type\"\xac\x02\n\x14ListDiskTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa8\x02\n\x10ListDisksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd3\x02\n\x1cListDisksStoragePoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xe6\x02\n&ListErrorsInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xee\x02\n,ListErrorsRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa0\x02\n\x1eListExternalVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xae\x02\n\x1bListFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tH\x04\x88\x01\x01\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x0c\n\n_parent_idB\x19\n\x17_return_partial_success\"\x96\x02\n\x14ListFirewallsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb4\x02\n\x1aListForwardingRulesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListGlobalAddressesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa2\x02\n ListGlobalForwardingRulesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa8\x02\n&ListGlobalNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListGlobalOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xba\x02\n\'ListGlobalOrganizationOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tH\x04\x88\x01\x01\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x05\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x0c\n\n_parent_idB\x19\n\x17_return_partial_success\"\xaa\x02\n(ListGlobalPublicDelegatedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x99\x02\n\x17ListHealthChecksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x93\x02\n\x11ListImagesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xed\x02\n-ListInstanceGroupManagerResizeRequestsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb8\x02\n ListInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb1\x02\n\x19ListInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9e\x02\n\x1cListInstanceTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd9\x03\n\"ListInstancesInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12}\n/instance_groups_list_instances_request_resource\x18\x9f\xa8\x8c\xe3\x01 \x01(\x0b\x32;.google.cloud.compute.v1.InstanceGroupsListInstancesRequestB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xee\x03\n(ListInstancesRegionInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x89\x01\n6region_instance_groups_list_instances_request_resource\x18\xd4\xa9\x80\x17 \x01(\x0b\x32\x41.google.cloud.compute.v1.RegionInstanceGroupsListInstancesRequestB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xac\x02\n\x14ListInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb3\x02\n\x1bListInstantSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa9\x02\n\'ListInterconnectAttachmentGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListInterconnectAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9f\x02\n\x1dListInterconnectGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa2\x02\n ListInterconnectLocationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa8\x02\n&ListInterconnectRemoteLocationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9a\x02\n\x18ListInterconnectsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x95\x02\n\x13ListLicensesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9a\x02\n\x18ListMachineImagesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x17ListMachineTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xf0\x02\n0ListManagedInstancesInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xf8\x02\n6ListManagedInstancesRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb7\x02\n\x1dListNetworkAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb8\x02\n ListNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xe1\x02\n6ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xff\x03\n0ListNetworkEndpointsNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8b\x01\n7network_endpoint_groups_list_endpoints_request_resource\x18\x8e\x98\xaf\x1c \x01(\x0b\x32\x42.google.cloud.compute.v1.NetworkEndpointGroupsListEndpointsRequestB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xf9\x02\n6ListNetworkEndpointsRegionNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\'\n\x16network_endpoint_group\x18\x86\xcb\xf3\xce\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa4\x02\n\"ListNetworkFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListNetworkProfilesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x95\x02\n\x13ListNetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xad\x02\n\x15ListNodeGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb2\x02\n\x18ListNodeTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xac\x02\n\x14ListNodeTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xcf\x02\n\x1aListNodesNodeGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb5\x02\n\x1bListPacketMirroringsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x80\x04\n ListPeeringRoutesNetworksRequest\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x02\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x03\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0cpeering_name\x18\xaa\xd0\x80w \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x07\x88\x01\x01\"H\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\x10\n\x08INCOMING\x10\xa6\xd0\xb7\xa1\x01\x12\x10\n\x08OUTGOING\x10\xec\xc6\xcc\x92\x01\x42\x0c\n\n_directionB\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x0f\n\r_peering_nameB\t\n\x07_regionB\x19\n\x17_return_partial_success\"\xf2\x02\n2ListPerInstanceConfigsInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xfa\x02\n8ListPerInstanceConfigsRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb8\x02\n6ListPreconfiguredExpressionSetsSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa5\x02\n#ListPublicAdvertisedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListPublicDelegatedPrefixesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xcf\x02\n\x1dListReferrersInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListRegionAutoscalersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xba\x02\n ListRegionBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListRegionCommitmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb4\x02\n\x1aListRegionDiskTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListRegionDisksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbe\x02\n$ListRegionHealthCheckServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb7\x02\n\x1dListRegionHealthChecksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListRegionInstanceGroupManagersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb9\x02\n\x1fListRegionInstanceGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListRegionInstanceTemplatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbb\x02\n!ListRegionInstantSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListRegionNetworkEndpointGroupsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc2\x02\n(ListRegionNetworkFirewallPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListRegionNotificationEndpointsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb5\x02\n\x1bListRegionOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbb\x02\n!ListRegionSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xba\x02\n ListRegionSslCertificatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListRegionSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbc\x02\n\"ListRegionTargetHttpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbd\x02\n#ListRegionTargetHttpsProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xbb\x02\n!ListRegionTargetTcpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb2\x02\n\x18ListRegionUrlMapsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListRegionZonesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x94\x02\n\x12ListRegionsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd1\x02\n\x1cListReservationBlocksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd5\x02\n\x1fListReservationSubBlocksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0bparent_name\x18\x80\x8a\x80\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x17ListReservationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb5\x02\n\x1bListResourcePoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd1\x02\n\x1fListRoutePoliciesRoutersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xac\x02\n\x12ListRoutersRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x93\x02\n\x11ListRoutesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListSecurityPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb7\x02\n\x1dListServiceAttachmentsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x96\x02\n\x14ListSnapshotsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9c\x02\n\x1aListSslCertificatesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x98\x02\n\x16ListSslPoliciesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb3\x02\n\x1bListStoragePoolTypesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x17ListStoragePoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListSubnetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9e\x02\n\x1cListTargetGrpcProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9e\x02\n\x1cListTargetHttpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9f\x02\n\x1dListTargetHttpsProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb2\x02\n\x1aListTargetInstancesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb0\x02\n\x16ListTargetPoolsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListTargetSslProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x9d\x02\n\x1bListTargetTcpProxiesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb6\x02\n\x1cListTargetVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x94\x02\n\x12ListUrlMapsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xa2\x02\n ListUsableBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xc0\x02\n&ListUsableRegionBackendServicesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xd4\x02\n\x1cListUsableSubnetworksRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12 \n\x0fservice_project\x18\x8f\xe7\x80\xfd\x01 \x01(\tH\x05\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_successB\x12\n\x10_service_project\"\xb0\x02\n\x16ListVpnGatewaysRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xaf\x02\n\x15ListVpnTunnelsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x8d\x03\n\x1bListXpnHostsProjectsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12n\n(projects_list_xpn_hosts_request_resource\x18\x97\xd0\xceq \x01(\x0b\x32\x34.google.cloud.compute.v1.ProjectsListXpnHostsRequestB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\xb1\x02\n\x19ListZoneOperationsRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x92\x02\n\x10ListZonesRequest\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bmax_results\x18\x9b\xc8\x8b\x1a \x01(\rH\x01\x88\x01\x01\x12\x18\n\x08order_by\x18\xe8\xfd\xc7L \x01(\tH\x02\x88\x01\x01\x12\x1a\n\npage_token\x18\xc9\xb0\xc4\t \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\'\n\x16return_partial_success\x18\xb6\xa4\xcf\xf6\x01 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_filterB\x0e\n\x0c_max_resultsB\x0b\n\t_order_byB\r\n\x0b_page_tokenB\x19\n\x17_return_partial_success\"\x8f\x01\n\tLocalDisk\x12\x1a\n\ndisk_count\x18\xed\xaf\x9dW \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\tdisk_type\x18\x9c\xe9\xac, \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_disk_countB\x0f\n\r_disk_size_gbB\x0c\n\n_disk_type\"\\\n\x10LocalizedMessage\x12\x17\n\x06locale\x18\xda\x9c\xd8\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_localeB\n\n\x08_message\"\xd2\x02\n\x0eLocationPolicy\x12M\n\tlocations\x18\xde\xae\x91\xc5\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.LocationPolicy.LocationsEntry\x12\x1d\n\x0ctarget_shape\x18\xf3\xe6\xbb\xa1\x01 \x01(\tH\x00\x88\x01\x01\x1a\x61\n\x0eLocationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.LocationPolicyLocation:\x02\x38\x01\"^\n\x0bTargetShape\x12\x1a\n\x16UNDEFINED_TARGET_SHAPE\x10\x00\x12\t\n\x03\x41NY\x10\xcc\xfb\x03\x12\x16\n\x0f\x41NY_SINGLE_ZONE\x10\xd0\xa6\x91\x1d\x12\x10\n\x08\x42\x41LANCED\x10\x88\xba\xad\xdf\x01\x42\x0f\n\r_target_shape\"\x8e\x02\n\x16LocationPolicyLocation\x12W\n\x0b\x63onstraints\x18\xb6\xcc\xee\x01 \x01(\x0b\x32:.google.cloud.compute.v1.LocationPolicyLocationConstraintsH\x00\x88\x01\x01\x12\x1a\n\npreference\x18\xdb\xf9\xf2G \x01(\tH\x01\x88\x01\x01\"`\n\nPreference\x12\x18\n\x14UNDEFINED_PREFERENCE\x10\x00\x12\x0c\n\x05\x41LLOW\x10\xa9\xd6\xde\x1d\x12\n\n\x04\x44\x45NY\x10\x8c\xec\x7f\x12\x1e\n\x16PREFERENCE_UNSPECIFIED\x10\xb3\xeb\xce\xec\x01\x42\x0e\n\x0c_constraintsB\r\n\x0b_preference\"M\n!LocationPolicyLocationConstraints\x12\x1a\n\tmax_count\x18\xf4\xfc\x92\x89\x01 \x01(\x05H\x00\x88\x01\x01\x42\x0c\n\n_max_count\"\xe4\n\n\x0cMachineImage\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12P\n\x13instance_properties\x18\x9d\x9e\xd8\x66 \x01(\x0b\x32+.google.cloud.compute.v1.InstancePropertiesH\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x06\x88\x01\x01\x12\x45\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.MachineImage.LabelsEntry\x12]\n\x1cmachine_image_encryption_key\x18\xff\xff\xe7\xfb\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\t\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\n\x88\x01\x01\x12;\n\x0bsaved_disks\x18\xbe\xed\xc0\xbd\x01 \x03(\x0b\x32\".google.cloud.compute.v1.SavedDisk\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12Y\n\x1bsource_disk_encryption_keys\x18\xb2\xf8\xcf\xb0\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.SourceDiskEncryptionKey\x12 \n\x0fsource_instance\x18\xb9\x98\xfd\xbc\x01 \x01(\tH\x0c\x88\x01\x01\x12^\n\x1asource_instance_properties\x18\xf9\xd1\xcb\xe2\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.SourceInstancePropertiesH\r\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0e\x88\x01\x01\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x12#\n\x13total_storage_bytes\x18\xec\x87\x84\' \x01(\x03H\x0f\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"s\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x10\n\tUPLOADING\x10\xa1\x9c\xcd\x7f\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_guest_flushB\x05\n\x03_idB\x16\n\x14_instance_propertiesB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x1f\n\x1d_machine_image_encryption_keyB\x07\n\x05_nameB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x12\n\x10_source_instanceB\x1d\n\x1b_source_instance_propertiesB\t\n\x07_statusB\x16\n\x14_total_storage_bytes\"\xa9\x02\n\x10MachineImageList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x37\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32%.google.cloud.compute.v1.MachineImage\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa4\x07\n\x0bMachineType\x12?\n\x0c\x61\x63\x63\x65lerators\x18\xe8\xd6\xc5\x80\x01 \x03(\x0b\x32%.google.cloud.compute.v1.Accelerators\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nguest_cpus\x18\xd2\xcb\xc8\xbb\x01 \x01(\x05H\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x1e\n\x0eimage_space_gb\x18\x98\xf2\xf5# \x01(\x05H\x06\x88\x01\x01\x12\x1e\n\ris_shared_cpu\x18\x83\xda\xcf\xf8\x01 \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12)\n\x18maximum_persistent_disks\x18\x8d\xf6\xce\xec\x01 \x01(\x05H\t\x88\x01\x01\x12\x30\n maximum_persistent_disks_size_gb\x18\xa7\x95\xc8I \x01(\x03H\n\x88\x01\x01\x12\x19\n\tmemory_mb\x18\x93\x93\xa8\x37 \x01(\x05H\x0b\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0e\x88\x01\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\x42\x0f\n\r_architectureB\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\r\n\x0b_guest_cpusB\x05\n\x03_idB\x11\n\x0f_image_space_gbB\x10\n\x0e_is_shared_cpuB\x07\n\x05_kindB\x1b\n\x19_maximum_persistent_disksB#\n!_maximum_persistent_disks_size_gbB\x0c\n\n_memory_mbB\x07\n\x05_nameB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xc2\x03\n\x19MachineTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.MachineTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.MachineTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa7\x02\n\x0fMachineTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x36\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32$.google.cloud.compute.v1.MachineType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9f\x01\n\x16MachineTypesScopedList\x12>\n\rmachine_types\x18\x81\xdd\x81& \x03(\x0b\x32$.google.cloud.compute.v1.MachineType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x82\x0b\n\x0fManagedInstance\x12\x1e\n\x0e\x63urrent_action\x18\xbc\xa7\x8dU \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x02\x88\x01\x01\x12S\n\x0finstance_health\x18\xc6\x92\xbc\xb6\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.ManagedInstanceInstanceHealth\x12\x1f\n\x0finstance_status\x18\xdc\xad\x9fS \x01(\tH\x03\x88\x01\x01\x12R\n\x0clast_attempt\x18\xa4\xac\xa8\xcf\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.ManagedInstanceLastAttemptH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12T\n\x1bpreserved_state_from_config\x18\xe2\xeb\x85/ \x01(\x0b\x32\'.google.cloud.compute.v1.PreservedStateH\x06\x88\x01\x01\x12U\n\x1bpreserved_state_from_policy\x18\xd2\xaf\xbe\xe0\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.PreservedStateH\x07\x88\x01\x01\x12{\n\"properties_from_flexibility_policy\x18\xc1\xc5\x94J \x01(\x0b\x32G.google.cloud.compute.v1.ManagedInstancePropertiesFromFlexibilityPolicyH\x08\x88\x01\x01\x12I\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\x0b\x32/.google.cloud.compute.v1.ManagedInstanceVersionH\t\x88\x01\x01\"\x85\x02\n\rCurrentAction\x12\x1c\n\x18UNDEFINED_CURRENT_ACTION\x10\x00\x12\x12\n\nABANDONING\x10\xcd\xca\x90\xb9\x01\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12 \n\x18\x43REATING_WITHOUT_RETRIES\x10\x89\xc6\xbe\xcc\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x12\n\nRECREATING\x10\xec\x8b\xfe\x88\x01\x12\x11\n\nREFRESHING\x10\xa7\xfe\xecM\x12\x12\n\nRESTARTING\x10\xf3\xee\xeb\x98\x01\x12\x10\n\x08RESUMING\x10\xaa\xfb\x89\xd5\x01\x12\x10\n\x08STARTING\x10\xc0\xa0\x8b\xe9\x01\x12\x10\n\tVERIFYING\x10\xa9\xc1\x8c\x08\"\xfd\x01\n\x0eInstanceStatus\x12\x1d\n\x19UNDEFINED_INSTANCE_STATUS\x10\x00\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x11\n\tREPAIRING\x10\x95\x82\x95\xc5\x01\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x12\x0f\n\x07STAGING\x10\x9b\xc8\xc6\xcd\x01\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x10\n\x08STOPPING\x10\xf4\xd0\xa2\xa7\x01\x12\x10\n\tSUSPENDED\x10\xbb\xbb\xb6\x18\x12\x12\n\nSUSPENDING\x10\xa6\xd4\x98\xf5\x01\x12\x11\n\nTERMINATED\x10\xa3\xf4\x9bwB\x11\n\x0f_current_actionB\x05\n\x03_idB\x0b\n\t_instanceB\x12\n\x10_instance_statusB\x0f\n\r_last_attemptB\x07\n\x05_nameB\x1e\n\x1c_preserved_state_from_configB\x1e\n\x1c_preserved_state_from_policyB%\n#_properties_from_flexibility_policyB\n\n\x08_version\"\xa6\x02\n\x1dManagedInstanceInstanceHealth\x12&\n\x15\x64\x65tailed_health_state\x18\x9d\xd0\xb4\xf3\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tH\x01\x88\x01\x01\"\x92\x01\n\x13\x44\x65tailedHealthState\x12#\n\x1fUNDEFINED_DETAILED_HEALTH_STATE\x10\x00\x12\x10\n\x08\x44RAINING\x10\xea\xd5\x8c\xe5\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12\x0f\n\x07TIMEOUT\x10\xc1\xb2\xeb\xe3\x01\x12\x11\n\tUNHEALTHY\x10\xc4\xb9\xad\xdc\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\x42\x18\n\x16_detailed_health_stateB\x0f\n\r_health_check\"{\n\x1aManagedInstanceLastAttempt\x12R\n\x06\x65rrors\x18\xeb\xde\xd5\x96\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.ManagedInstanceLastAttemptErrorsH\x00\x88\x01\x01\x42\t\n\x07_errors\"W\n ManagedInstanceLastAttemptErrors\x12\x33\n\x06\x65rrors\x18\xeb\xde\xd5\x96\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Errors\"_\n.ManagedInstancePropertiesFromFlexibilityPolicy\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_machine_type\"q\n\x16ManagedInstanceVersion\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_instance_templateB\x07\n\x05_name\"\x88\x01\n\x08Metadata\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x30\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1e.google.cloud.compute.v1.Items\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_fingerprintB\x07\n\x05_kind\"\x8f\x02\n\x0eMetadataFilter\x12L\n\rfilter_labels\x18\xa6\xf5\xe8\x92\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.MetadataFilterLabelMatch\x12%\n\x15\x66ilter_match_criteria\x18\xc0\xd0\xb6r \x01(\tH\x00\x88\x01\x01\"n\n\x13\x46ilterMatchCriteria\x12#\n\x1fUNDEFINED_FILTER_MATCH_CRITERIA\x10\x00\x12\x10\n\tMATCH_ALL\x10\xe7\xe7\x92V\x12\x10\n\tMATCH_ANY\x10\xb2\xe8\x92V\x12\x0e\n\x07NOT_SET\x10\xb6\x99\x84NB\x18\n\x16_filter_match_criteria\"Z\n\x18MetadataFilterLabelMatch\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\x8b\x02\n\x12MoveAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12l\n®ion_addresses_move_request_resource\x18\xc4\xb0\x88\xc3\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.RegionAddressesMoveRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n\x16MoveDiskProjectRequest\x12U\n\x1a\x64isk_move_request_resource\x18\xca\xc2\xa0\x95\x01 \x01(\x0b\x32(.google.cloud.compute.v1.DiskMoveRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x90\x01\n\x19MoveFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12&\n\tparent_id\x18\xd0\xe1\x9a\xdb\x01 \x01(\tB\x0f\xe0\x41\x02\xf2G\tparent_id\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf0\x01\n\x18MoveGlobalAddressRequest\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tB\x03\xe0\x41\x02\x12l\n&global_addresses_move_request_resource\x18\xf3\xf1\xb1\x90\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.GlobalAddressesMoveRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc9\x01\n\x1aMoveInstanceProjectRequest\x12]\n\x1einstance_move_request_resource\x18\xc2\xbc\xce\x94\x01 \x01(\x0b\x32,.google.cloud.compute.v1.InstanceMoveRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"I\n\tNamedPort\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_nameB\x07\n\x05_port\"\x88\x01\n\tNatIpInfo\x12S\n\x14nat_ip_info_mappings\x18\x9c\x80\x8es \x03(\x0b\x32\x32.google.cloud.compute.v1.NatIpInfoNatIpInfoMapping\x12\x19\n\x08nat_name\x18\xe9\xad\xf8\xca\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_nat_name\"\xf2\x01\n\x19NatIpInfoNatIpInfoMapping\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06nat_ip\x18\x85\xd2\x88\n \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05usage\x18\xa1\xfb\x99\x35 \x01(\tH\x02\x88\x01\x01\"5\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\n\n\x04\x41UTO\x10\xaf\xab{\x12\r\n\x06MANUAL\x10\xc6\xb7\xf7\x38\";\n\x05Usage\x12\x13\n\x0fUNDEFINED_USAGE\x10\x00\x12\r\n\x06IN_USE\x10\xcd\xce\xa5\x08\x12\x0e\n\x06UNUSED\x10\xd6\xf3\xfb\xab\x01\x42\x07\n\x05_modeB\t\n\x07_nat_ipB\x08\n\x06_usage\"J\n\x11NatIpInfoResponse\x12\x35\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32\".google.cloud.compute.v1.NatIpInfo\"\xed\t\n\x07Network\x12\x1b\n\x0bI_pv4_range\x18\xb6\xb0\x9f\x1c \x01(\tH\x00\x88\x01\x01\x12\'\n\x17\x61uto_create_subnetworks\x18\x92\xc8\x92z \x01(\x08H\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12)\n\x18\x65nable_ula_internal_ipv6\x18\x98\x8f\x88\xca\x01 \x01(\x08H\x04\x88\x01\x01\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tH\x05\x88\x01\x01\x12\x1d\n\rgateway_i_pv4\x18\xdd\xd8\x99U \x01(\tH\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12$\n\x13internal_ipv6_range\x18\xa7\xcf\xa6\x84\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\t\x88\x01\x01\x12\x12\n\x03mtu\x18\xae\xcf\x06 \x01(\x05H\n\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0b\x88\x01\x01\x12\x39\n)network_firewall_policy_enforcement_order\x18\xd0\x82\x8d\x03 \x01(\tH\x0c\x88\x01\x01\x12\x1f\n\x0fnetwork_profile\x18\x98\xf9\xc5R \x01(\tH\r\x88\x01\x01\x12>\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32&.google.cloud.compute.v1.NetworkParamsH\x0e\x88\x01\x01\x12<\n\x08peerings\x18\xb3\xaa\xa9! \x03(\x0b\x32\'.google.cloud.compute.v1.NetworkPeering\x12N\n\x0erouting_config\x18\xdb\xa9\xd3\xf9\x01 \x01(\x0b\x32-.google.cloud.compute.v1.NetworkRoutingConfigH\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x11\x88\x01\x01\x12\x17\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\t\"\xa0\x01\n%NetworkFirewallPolicyEnforcementOrder\x12\x37\n3UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER\x10\x00\x12\x1d\n\x16\x41\x46TER_CLASSIC_FIREWALL\x10\xd0\xfc\xdaI\x12\x1f\n\x17\x42\x45\x46ORE_CLASSIC_FIREWALL\x10\xed\xed\xb1\xa1\x01\x42\x0e\n\x0c_I_pv4_rangeB\x1a\n\x18_auto_create_subnetworksB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x1b\n\x19_enable_ula_internal_ipv6B\x12\n\x10_firewall_policyB\x10\n\x0e_gateway_i_pv4B\x05\n\x03_idB\x16\n\x14_internal_ipv6_rangeB\x07\n\x05_kindB\x06\n\x04_mtuB\x07\n\x05_nameB,\n*_network_firewall_policy_enforcement_orderB\x12\n\x10_network_profileB\t\n\x07_paramsB\x11\n\x0f_routing_configB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_id\"\xa7\x06\n\x11NetworkAttachment\x12]\n\x14\x63onnection_endpoints\x18\xdd\xa2\xbe\x9b\x01 \x03(\x0b\x32;.google.cloud.compute.v1.NetworkAttachmentConnectedEndpoint\x12&\n\x15\x63onnection_preference\x18\xdc\xf9\xa4\x88\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12 \n\x15producer_accept_lists\x18\xab\x9a\xda` \x03(\t\x12 \n\x15producer_reject_lists\x18\x82\xfd\xfa\x01 \x03(\t\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\n\x88\x01\x01\x12\x17\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\t\"|\n\x14\x43onnectionPreference\x12#\n\x1fUNDEFINED_CONNECTION_PREFERENCE\x10\x00\x12\x17\n\x10\x41\x43\x43\x45PT_AUTOMATIC\x10\x94\xf7\xf0#\x12\x15\n\rACCEPT_MANUAL\x10\xdd\xed\xf1\xb1\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x42\x18\n\x16_connection_preferenceB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_id\"\xbb\x03\n\x1fNetworkAttachmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12U\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x43.google.cloud.compute.v1.NetworkAttachmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x63\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworkAttachmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x87\x04\n\"NetworkAttachmentConnectedEndpoint\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x11project_id_or_num\x18\xa8\x8a\xe5\xa6\x01 \x01(\tH\x02\x88\x01\x01\x12#\n\x18secondary_ip_cidr_ranges\x18\x94\xb2\xf0\x37 \x03(\t\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x04\x88\x01\x01\x12&\n\x15subnetwork_cidr_range\x18\xa3\xdb\xdf\xb6\x01 \x01(\tH\x05\x88\x01\x01\"\x94\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x12\x17\n\x0fNEEDS_ATTENTION\x10\xbc\x8b\xa2\xa4\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\r\n\x0b_ip_addressB\x0f\n\r_ipv6_addressB\x14\n\x12_project_id_or_numB\t\n\x07_statusB\r\n\x0b_subnetworkB\x18\n\x16_subnetwork_cidr_range\"\xb3\x02\n\x15NetworkAttachmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.NetworkAttachment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x1cNetworkAttachmentsScopedList\x12K\n\x13network_attachments\x18\x9f\xde\xd6\xf8\x01 \x03(\x0b\x32*.google.cloud.compute.v1.NetworkAttachment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xc4\x03\n\x1aNetworkEdgeSecurityService\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_security_policyB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_id\"\x8e\x04\n(NetworkEdgeSecurityServiceAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12^\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32L.google.cloud.compute.v1.NetworkEdgeSecurityServiceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1al\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.NetworkEdgeSecurityServicesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xce\x01\n%NetworkEdgeSecurityServicesScopedList\x12^\n\x1enetwork_edge_security_services\x18\xac\xcb\xf8\x10 \x03(\x0b\x32\x33.google.cloud.compute.v1.NetworkEdgeSecurityService\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x9e\x03\n\x0fNetworkEndpoint\x12Q\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32\x39.google.cloud.compute.v1.NetworkEndpoint.AnnotationsEntry\x12\'\n\x17\x63lient_destination_port\x18\x86\x88\x82; \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04\x66qdn\x18\x95\xa5\xc0\x01 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x03\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x05\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x1a\n\x18_client_destination_portB\x07\n\x05_fqdnB\x0b\n\t_instanceB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_addressB\x07\n\x05_port\"\x89\x0b\n\x14NetworkEndpointGroup\x12V\n\x0b\x61nnotations\x18\xa4\xf6\xb5\x35 \x03(\x0b\x32>.google.cloud.compute.v1.NetworkEndpointGroup.AnnotationsEntry\x12S\n\napp_engine\x18\xa0\x8c\xc0\xa2\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.NetworkEndpointGroupAppEngineH\x00\x88\x01\x01\x12[\n\x0e\x63loud_function\x18\xa2\xe5\xf3\xf7\x01 \x01(\x0b\x32:.google.cloud.compute.v1.NetworkEndpointGroupCloudFunctionH\x01\x88\x01\x01\x12P\n\tcloud_run\x18\x81\xcb\xfa\x34 \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworkEndpointGroupCloudRunH\x02\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12\x1d\n\x0c\x64\x65\x66\x61ult_port\x18\xbf\xf7\xf0\xc9\x01 \x01(\x05H\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\t\x88\x01\x01\x12%\n\x15network_endpoint_type\x18\xd3\xc6\xb4\x38 \x01(\tH\n\x88\x01\x01\x12N\n\x08psc_data\x18\xc9\xdb\xa6\" \x01(\x0b\x32\x34.google.cloud.compute.v1.NetworkEndpointGroupPscDataH\x0b\x88\x01\x01\x12#\n\x12psc_target_service\x18\xe6\xc2\xaa\x80\x01 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\r\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0e\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05H\x0f\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x10\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x11\x88\x01\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8a\x02\n\x13NetworkEndpointType\x12#\n\x1fUNDEFINED_NETWORK_ENDPOINT_TYPE\x10\x00\x12\x11\n\tGCE_VM_IP\x10\xd9\xed\xd0\xbf\x01\x12\x16\n\x0eGCE_VM_IP_PORT\x10\xa7\xe4\xa5\xef\x01\x12\x18\n\x11GCE_VM_IP_PORTMAP\x10\xb5\xe3\xf0\n\x12\x1a\n\x12INTERNET_FQDN_PORT\x10\xed\xd0\xdb\xc0\x01\x12\x18\n\x10INTERNET_IP_PORT\x10\x9b\xdb\xe5\xe3\x01\x12\x1f\n\x17NON_GCP_PRIVATE_IP_PORT\x10\xe0\x93\xb7\xa0\x01\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x12\n\nSERVERLESS\x10\xdc\xc6\xfd\x80\x01\x42\r\n\x0b_app_engineB\x11\n\x0f_cloud_functionB\x0c\n\n_cloud_runB\x15\n\x13_creation_timestampB\x0f\n\r_default_portB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\x18\n\x16_network_endpoint_typeB\x0b\n\t_psc_dataB\x15\n\x13_psc_target_serviceB\t\n\x07_regionB\x0c\n\n_self_linkB\x07\n\x05_sizeB\r\n\x0b_subnetworkB\x07\n\x05_zone\"\xdd\x03\n\"NetworkEndpointGroupAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12X\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x46.google.cloud.compute.v1.NetworkEndpointGroupAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x66\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12G\n\x05value\x18\x02 \x01(\x0b\x32\x38.google.cloud.compute.v1.NetworkEndpointGroupsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x92\x01\n\x1dNetworkEndpointGroupAppEngine\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08url_mask\x18\xbc\x8f\xa4\x31 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_serviceB\x0b\n\t_url_maskB\n\n\x08_version\"r\n!NetworkEndpointGroupCloudFunction\x12\x19\n\x08\x66unction\x18\xd8\xe7\xbd\x92\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08url_mask\x18\xbc\x8f\xa4\x31 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_functionB\x0b\n\t_url_mask\"\x87\x01\n\x1cNetworkEndpointGroupCloudRun\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03tag\x18\x9a\xff\x06 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x08url_mask\x18\xbc\x8f\xa4\x31 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_serviceB\x06\n\x04_tagB\x0b\n\t_url_mask\"\xb9\x02\n\x18NetworkEndpointGroupList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\x03\n\x1bNetworkEndpointGroupPscData\x12%\n\x14\x63onsumer_psc_address\x18\xac\xad\xeb\xd7\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\rproducer_port\x18\x8e\xda\xc1\xc3\x01 \x01(\x05H\x01\x88\x01\x01\x12\"\n\x11psc_connection_id\x18\xdd\xa5\xa3\x8b\x01 \x01(\x04H\x02\x88\x01\x01\x12%\n\x15psc_connection_status\x18\xb4\xc9\xe7W \x01(\tH\x03\x88\x01\x01\"\xb0\x01\n\x13PscConnectionStatus\x12#\n\x1fUNDEFINED_PSC_CONNECTION_STATUS\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x12\x17\n\x0fNEEDS_ATTENTION\x10\xbc\x8b\xa2\xa4\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\x17\n\x15_consumer_psc_addressB\x10\n\x0e_producer_portB\x14\n\x12_psc_connection_idB\x18\n\x16_psc_connection_status\"u\n+NetworkEndpointGroupsAttachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"u\n+NetworkEndpointGroupsDetachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"\xa4\x01\n)NetworkEndpointGroupsListEndpointsRequest\x12\x1e\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x01(\tH\x00\x88\x01\x01\"E\n\x0cHealthStatus\x12\x1b\n\x17UNDEFINED_HEALTH_STATUS\x10\x00\x12\x0b\n\x04SHOW\x10\xfd\xa5\x9b\x01\x12\x0b\n\x04SKIP\x10\xff\xba\x9b\x01\x42\x10\n\x0e_health_status\"\xab\x02\n)NetworkEndpointGroupsListNetworkEndpoints\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12J\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x38.google.cloud.compute.v1.NetworkEndpointWithHealthStatus\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\xbb\x01\n\x1fNetworkEndpointGroupsScopedList\x12Q\n\x17network_endpoint_groups\x18\xad\x97\xff\r \x03(\x0b\x32-.google.cloud.compute.v1.NetworkEndpointGroup\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xcf\x01\n\x1fNetworkEndpointWithHealthStatus\x12K\n\x07healths\x18\x97\x93\xad{ \x03(\x0b\x32\x37.google.cloud.compute.v1.HealthStatusForNetworkEndpoint\x12J\n\x10network_endpoint\x18\x86\x91\x8a\x1b \x01(\x0b\x32(.google.cloud.compute.v1.NetworkEndpointH\x00\x88\x01\x01\x42\x13\n\x11_network_endpoint\"\xda\x03\n#NetworkFirewallPolicyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Y\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32G.google.cloud.compute.v1.NetworkFirewallPolicyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.FirewallPoliciesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x92\n\n\x10NetworkInterface\x12@\n\x0e\x61\x63\x63\x65ss_configs\x18\x96\xbb\xfa\x34 \x03(\x0b\x32%.google.cloud.compute.v1.AccessConfig\x12\x41\n\x0f\x61lias_ip_ranges\x18\xbf\x83\xdcN \x03(\x0b\x32%.google.cloud.compute.v1.AliasIpRange\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12+\n\x1binternal_ipv6_prefix_length\x18\x9d\x83\x99\x61 \x01(\x05H\x01\x88\x01\x01\x12\x46\n\x13ipv6_access_configs\x18\xee\xe5\xc4\xe6\x01 \x03(\x0b\x32%.google.cloud.compute.v1.AccessConfig\x12!\n\x10ipv6_access_type\x18\xdd\xf5\xd1\xf0\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12\"\n\x12network_attachment\x18\xd4\x97\x8fk \x01(\tH\x07\x88\x01\x01\x12\x1b\n\x0bnetwork_i_p\x18\x89\xb1\xe5\x62 \x01(\tH\x08\x88\x01\x01\x12\x18\n\x08nic_type\x18\x91\xc6\xc2\x1c \x01(\tH\t\x88\x01\x01\x12 \n\x0fparent_nic_name\x18\xd7\xac\xd7\xc7\x01 \x01(\tH\n\x88\x01\x01\x12\x1c\n\x0bqueue_count\x18\xe1\xf8\x97\xf0\x01 \x01(\x05H\x0b\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x0c\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04vlan\x18\xe3\x8a\xdd\x01 \x01(\x05H\x0e\x88\x01\x01\"y\n\x0eIpv6AccessType\x12\x1e\n\x1aUNDEFINED_IPV6_ACCESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12$\n\x1cUNSPECIFIED_IPV6_ACCESS_TYPE\x10\xa5\xf6\xa4\x95\x01\"\x89\x01\n\x07NicType\x12\x16\n\x12UNDEFINED_NIC_TYPE\x10\x00\x12\x0c\n\x05GVNIC\x10\x99\x95\xc3 \x12\x0b\n\x04IDPF\x10\xd1\xf0\x88\x01\x12\x0c\n\x05IRDMA\x10\x8f\x86\xac!\x12\x0c\n\x05MRDMA\x10\x93\xc2\x8d#\x12\x1b\n\x14UNSPECIFIED_NIC_TYPE\x10\xd9\xbe\x92 \x12\x12\n\nVIRTIO_NET\x10\xd9\xb6\xcb\xd7\x01\"{\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\x12\x1e\n\x16UNSPECIFIED_STACK_TYPE\x10\xd9\xd1\x91\x8e\x01\x42\x0e\n\x0c_fingerprintB\x1e\n\x1c_internal_ipv6_prefix_lengthB\x13\n\x11_ipv6_access_typeB\x0f\n\r_ipv6_addressB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\x15\n\x13_network_attachmentB\x0e\n\x0c_network_i_pB\x0b\n\t_nic_typeB\x12\n\x10_parent_nic_nameB\x0e\n\x0c_queue_countB\r\n\x0b_stack_typeB\r\n\x0b_subnetworkB\x07\n\x05_vlan\"\x9f\x02\n\x0bNetworkList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.Network\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x01\n\rNetworkParams\x12\x62\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32?.google.cloud.compute.v1.NetworkParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xce\x08\n\x0eNetworkPeering\x12\"\n\x12\x61uto_create_routes\x18\xdd\xe2\xb2\x1b \x01(\x08H\x00\x88\x01\x01\x12[\n\x11\x63onnection_status\x18\xf3\xf0\xd1\xfa\x01 \x01(\x0b\x32\x37.google.cloud.compute.v1.NetworkPeeringConnectionStatusH\x01\x88\x01\x01\x12&\n\x16\x65xchange_subnet_routes\x18\xd0\xca\xc6\x0c \x01(\x08H\x02\x88\x01\x01\x12$\n\x14\x65xport_custom_routes\x18\x8d\xa5\xdf\x1c \x01(\x08H\x03\x88\x01\x01\x12\x33\n#export_subnet_routes_with_public_ip\x18\xe2\xea\xd9. \x01(\x08H\x04\x88\x01\x01\x12$\n\x14import_custom_routes\x18\xbe\xf1\xb3^ \x01(\x08H\x05\x88\x01\x01\x12\x33\n#import_subnet_routes_with_public_ip\x18\x91\x8e\xf0\x06 \x01(\x08H\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x08\x88\x01\x01\x12\x18\n\x08peer_mtu\x18\xd1\x8e\x97! \x01(\x05H\t\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\n\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x0b\x88\x01\x01\x12\x1d\n\rstate_details\x18\x94\xf9\xc8- \x01(\tH\x0c\x88\x01\x01\x12\x1f\n\x0fupdate_strategy\x18\xa9\xdc\xf5\x02 \x01(\tH\r\x88\x01\x01\"I\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\">\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\"j\n\x0eUpdateStrategy\x12\x1d\n\x19UNDEFINED_UPDATE_STRATEGY\x10\x00\x12\x10\n\tCONSENSUS\x10\xd7\xf8\xfc`\x12\x12\n\x0bINDEPENDENT\x10\xda\x96\xc8<\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x15\n\x13_auto_create_routesB\x14\n\x12_connection_statusB\x19\n\x17_exchange_subnet_routesB\x17\n\x15_export_custom_routesB&\n$_export_subnet_routes_with_public_ipB\x17\n\x15_import_custom_routesB&\n$_import_subnet_routes_with_public_ipB\x07\n\x05_nameB\n\n\x08_networkB\x0b\n\t_peer_mtuB\r\n\x0b_stack_typeB\x08\n\x06_stateB\x10\n\x0e_state_detailsB\x12\n\x10_update_strategy\"\xcc\x03\n\x1eNetworkPeeringConnectionStatus\x12g\n\x0f\x63onsensus_state\x18\xc9\xbd\x8b\xb5\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.NetworkPeeringConnectionStatusConsensusStateH\x00\x88\x01\x01\x12r\n\x15traffic_configuration\x18\xb4\xd4\xb6? \x01(\x0b\x32K.google.cloud.compute.v1.NetworkPeeringConnectionStatusTrafficConfigurationH\x01\x88\x01\x01\x12\x1f\n\x0fupdate_strategy\x18\xa9\xdc\xf5\x02 \x01(\tH\x02\x88\x01\x01\"j\n\x0eUpdateStrategy\x12\x1d\n\x19UNDEFINED_UPDATE_STRATEGY\x10\x00\x12\x10\n\tCONSENSUS\x10\xd7\xf8\xfc`\x12\x12\n\x0bINDEPENDENT\x10\xda\x96\xc8<\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x12\n\x10_consensus_stateB\x18\n\x16_traffic_configurationB\x12\n\x10_update_strategy\"\xe6\x03\n,NetworkPeeringConnectionStatusConsensusState\x12\x1e\n\rdelete_status\x18\x86\xc2\xc2\xe6\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\rupdate_status\x18\xa8\xa0\xeb~ \x01(\tH\x01\x88\x01\x01\"\xa8\x01\n\x0c\x44\x65leteStatus\x12\x1b\n\x17UNDEFINED_DELETE_STATUS\x10\x00\x12\x1b\n\x13\x44\x45LETE_ACKNOWLEDGED\x10\xdc\xae\x8e\x9b\x01\x12!\n\x19\x44\x45LETE_STATUS_UNSPECIFIED\x10\xde\x8a\xc5\xbc\x01\x12\x1d\n\x16LOCAL_DELETE_REQUESTED\x10\xae\xb8\xb3l\x12\x1c\n\x15PEER_DELETE_REQUESTED\x10\xf7\xd5\xab^\"\xa7\x01\n\x0cUpdateStatus\x12\x1b\n\x17UNDEFINED_UPDATE_STATUS\x10\x00\x12\x0e\n\x07IN_SYNC\x10\xf5\xe2\x8a\x01\x12\"\n\x1bPENDING_LOCAL_ACKNOWLEDMENT\x10\xc0\xcd\xd1m\x12$\n\x1cPENDING_PEER_ACKNOWLEDGEMENT\x10\xc5\x8d\xae\xc8\x01\x12 \n\x19UPDATE_STATUS_UNSPECIFIED\x10\x80\xa3\xcf\x39\x42\x10\n\x0e_delete_statusB\x10\n\x0e_update_status\"\xad\x04\n2NetworkPeeringConnectionStatusTrafficConfiguration\x12-\n\x1c\x65xport_custom_routes_to_peer\x18\xf4\x99\xca\x88\x01 \x01(\x08H\x00\x88\x01\x01\x12;\n+export_subnet_routes_with_public_ip_to_peer\x18\xc9\x95\xfe\x03 \x01(\x08H\x01\x88\x01\x01\x12/\n\x1eimport_custom_routes_from_peer\x18\x96\xd5\x87\xbe\x01 \x01(\x08H\x02\x88\x01\x01\x12=\n-import_subnet_routes_with_public_ip_from_peer\x18\xa9\xda\xf5o \x01(\x08H\x03\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x04\x88\x01\x01\"I\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\nB\x1f\n\x1d_export_custom_routes_to_peerB.\n,_export_subnet_routes_with_public_ip_to_peerB!\n\x1f_import_custom_routes_from_peerB0\n._import_subnet_routes_with_public_ip_from_peerB\r\n\x0b_stack_type\"\xce\x01\n\x18NetworkPerformanceConfig\x12+\n\x1btotal_egress_bandwidth_tier\x18\xff\x9f\x85> \x01(\tH\x00\x88\x01\x01\"e\n\x18TotalEgressBandwidthTier\x12)\n%UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER\x10\x00\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\x12\x0e\n\x06TIER_1\x10\x94\xca\xf1\x9b\x01\x42\x1e\n\x1c_total_egress_bandwidth_tier\"\xed\x04\n\x0eNetworkProfile\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12P\n\x08\x66\x65\x61tures\x18\xbd\xc8\xb3u \x01(\x0b\x32\x36.google.cloud.compute.v1.NetworkProfileNetworkFeaturesH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12J\n\x08location\x18\xb5\xbf\xbe\x8a\x01 \x01(\x0b\x32/.google.cloud.compute.v1.NetworkProfileLocationH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12P\n\x0cprofile_type\x18\x90\xc0\xcdG \x01(\x0b\x32\x32.google.cloud.compute.v1.NetworkProfileProfileTypeH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\n\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0b\n\t_featuresB\x05\n\x03_idB\x07\n\x05_kindB\x0b\n\t_locationB\x07\n\x05_nameB\x0f\n\r_profile_typeB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x07\n\x05_zone\"\x92\x01\n\x16NetworkProfileLocation\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05scope\x18\xd4\xfc\x8c\x34 \x01(\tH\x01\x88\x01\x01\"8\n\x05Scope\x12\x13\n\x0fUNDEFINED_SCOPE\x10\x00\x12\r\n\x06REGION\x10\xf4\xb5\xec~\x12\x0b\n\x04ZONE\x10\xac\xb7\xa8\x01\x42\x07\n\x05_nameB\x08\n\x06_scope\"\xfe(\n\x1dNetworkProfileNetworkFeatures\x12\x1c\n\x10\x61\x64\x64ress_purposes\x18\x80\xde\xbd\xce\x01 \x03(\t\x12&\n\x15\x61llow_alias_ip_ranges\x18\xc9\x91\xb1\xda\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x16\x61llow_auto_mode_subnet\x18\x9f\x82\xc9H \x01(\tH\x01\x88\x01\x01\x12\'\n\x17\x61llow_class_d_firewalls\x18\x9b\xe3\xe0> \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0f\x61llow_cloud_nat\x18\xa1\xd5\xc1y \x01(\tH\x03\x88\x01\x01\x12#\n\x12\x61llow_cloud_router\x18\xc9\xcb\x8d\xd7\x01 \x01(\tH\x04\x88\x01\x01\x12,\n\x1c\x61llow_default_nic_attachment\x18\xae\xee\xda\x19 \x01(\tH\x05\x88\x01\x01\x12(\n\x18\x61llow_external_ip_access\x18\xbe\xb9\xdc> \x01(\tH\x06\x88\x01\x01\x12#\n\x12\x61llow_interconnect\x18\xc4\x93\xe1\x85\x01 \x01(\tH\x07\x88\x01\x01\x12$\n\x13\x61llow_ip_forwarding\x18\x9f\xdd\xe8\xee\x01 \x01(\tH\x08\x88\x01\x01\x12$\n\x14\x61llow_load_balancing\x18\xb6\x98\xc1j \x01(\tH\t\x88\x01\x01\x12/\n\x1f\x61llow_multi_nic_in_same_network\x18\xfc\xb4\x8a* \x01(\tH\n\x88\x01\x01\x12\x1a\n\tallow_ncc\x18\xd8\xde\xc6\xb1\x01 \x01(\tH\x0b\x88\x01\x01\x12\'\n\x17\x61llow_network_migration\x18\x87\xa7\x9fr \x01(\tH\x0c\x88\x01\x01\x12\'\n\x16\x61llow_packet_mirroring\x18\x82\xee\x9f\xf4\x01 \x01(\tH\r\x88\x01\x01\x12,\n\x1b\x61llow_private_google_access\x18\xf8\xff\xd5\xb2\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1a\n\tallow_psc\x18\xca\xf1\xc6\xb1\x01 \x01(\tH\x0f\x88\x01\x01\x12*\n\x1a\x61llow_same_network_unicast\x18\xfb\xa8\xf1O \x01(\tH\x10\x88\x01\x01\x12#\n\x13\x61llow_static_routes\x18\xc5\x9f\xabX \x01(\tH\x11\x88\x01\x01\x12$\n\x14\x61llow_sub_interfaces\x18\xef\xb2\xf0u \x01(\tH\x12\x88\x01\x01\x12!\n\x11\x61llow_vpc_peering\x18\xf4\xcb\x83\x37 \x01(\tH\x13\x88\x01\x01\x12\x1a\n\tallow_vpn\x18\xfe\x9d\xc7\xb1\x01 \x01(\tH\x14\x88\x01\x01\x12\x1a\n\x0finterface_types\x18\xf3\xb3\xaaK \x03(\t\x12\x1b\n\x0fsubnet_purposes\x18\xb7\x9b\xd8\x8f\x01 \x03(\t\x12\x1e\n\x12subnet_stack_types\x18\xa0\xec\xb7\xf8\x01 \x03(\t\x12\x1f\n\x13subnetwork_purposes\x18\xc6\xa0\xf1\xfb\x01 \x03(\t\x12\"\n\x16subnetwork_stack_types\x18\xb1\xea\xa5\xd0\x01 \x03(\t\x12\x17\n\x07unicast\x18\xaf\x90\x91w \x01(\tH\x15\x88\x01\x01\"\xf3\x01\n\x0f\x41\x64\x64ressPurposes\x12\x1e\n\x1aUNDEFINED_ADDRESS_PURPOSES\x10\x00\x12\x14\n\x0c\x44NS_RESOLVER\x10\xfc\xdc\x83\xe3\x01\x12\x13\n\x0cGCE_ENDPOINT\x10\xab\xc4\xf5m\x12\x1a\n\x12IPSEC_INTERCONNECT\x10\x83\xd2\xaa\xa2\x01\x12\x0f\n\x08NAT_AUTO\x10\xad\xb4\x85N\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x12\n\nSERVERLESS\x10\xdc\xc6\xfd\x80\x01\x12\x1f\n\x17SHARED_LOADBALANCER_VIP\x10\xd4\xd3\xb3\x8c\x01\x12\x13\n\x0bVPC_PEERING\x10\xaa\xf3\x8e\xbf\x01\"{\n\x12\x41llowAliasIpRanges\x12#\n\x1fUNDEFINED_ALLOW_ALIAS_IP_RANGES\x10\x00\x12\x1f\n\x17\x41LIAS_IP_RANGES_ALLOWED\x10\xe8\x9d\xd5\xdd\x01\x12\x1f\n\x17\x41LIAS_IP_RANGES_BLOCKED\x10\xac\xde\x80\x86\x01\"~\n\x13\x41llowAutoModeSubnet\x12$\n UNDEFINED_ALLOW_AUTO_MODE_SUBNET\x10\x00\x12 \n\x18\x41UTO_MODE_SUBNET_ALLOWED\x10\xb2\xac\xbb\xba\x01\x12\x1f\n\x18\x41UTO_MODE_SUBNET_BLOCKED\x10\xf6\xec\xe6\x62\"\x82\x01\n\x14\x41llowClassDFirewalls\x12%\n!UNDEFINED_ALLOW_CLASS_D_FIREWALLS\x10\x00\x12!\n\x19\x43LASS_D_FIREWALLS_ALLOWED\x10\xfa\xcf\x85\xa6\x01\x12 \n\x19\x43LASS_D_FIREWALLS_BLOCKED\x10\xbe\x90\xb1N\"b\n\rAllowCloudNat\x12\x1d\n\x19UNDEFINED_ALLOW_CLOUD_NAT\x10\x00\x12\x18\n\x11\x43LOUD_NAT_ALLOWED\x10\xa0\xba\xa2u\x12\x18\n\x11\x43LOUD_NAT_BLOCKED\x10\xe4\xfa\xcd\x1d\"o\n\x10\x41llowCloudRouter\x12 \n\x1cUNDEFINED_ALLOW_CLOUD_ROUTER\x10\x00\x12\x1c\n\x14\x43LOUD_ROUTER_ALLOWED\x10\xfc\xc3\x9d\xae\x01\x12\x1b\n\x14\x43LOUD_ROUTER_BLOCKED\x10\xc0\x84\xc9V\"\x96\x01\n\x19\x41llowDefaultNicAttachment\x12*\n&UNDEFINED_ALLOW_DEFAULT_NIC_ATTACHMENT\x10\x00\x12%\n\x1e\x44\x45\x46\x41ULT_NIC_ATTACHMENT_ALLOWED\x10\x81\x9c\xc2\x05\x12&\n\x1e\x44\x45\x46\x41ULT_NIC_ATTACHMENT_BLOCKED\x10\xc5\xdc\xed\xad\x01\"\x86\x01\n\x15\x41llowExternalIpAccess\x12&\n\"UNDEFINED_ALLOW_EXTERNAL_IP_ACCESS\x10\x00\x12!\n\x1a\x45XTERNAL_IP_ACCESS_ALLOWED\x10\xd1\x98\x9d\x34\x12\"\n\x1a\x45XTERNAL_IP_ACCESS_BLOCKED\x10\x95\xd9\xc8\xdc\x01\"p\n\x11\x41llowInterconnect\x12 \n\x1cUNDEFINED_ALLOW_INTERCONNECT\x10\x00\x12\x1b\n\x14INTERCONNECT_ALLOWED\x10\xd7\xa5\xd3M\x12\x1c\n\x14INTERCONNECT_BLOCKED\x10\x9b\xe6\xfe\xf5\x01\"s\n\x11\x41llowIpForwarding\x12!\n\x1dUNDEFINED_ALLOW_IP_FORWARDING\x10\x00\x12\x1c\n\x15IP_FORWARDING_ALLOWED\x10\xde\xd8\xe1H\x12\x1d\n\x15IP_FORWARDING_BLOCKED\x10\xa2\x99\x8d\xf1\x01\"w\n\x12\x41llowLoadBalancing\x12\"\n\x1eUNDEFINED_ALLOW_LOAD_BALANCING\x10\x00\x12\x1d\n\x16LOAD_BALANCING_ALLOWED\x10\xa9\xf1\xc5\r\x12\x1e\n\x16LOAD_BALANCING_BLOCKED\x10\xed\xb1\xf1\xb5\x01\"\xa1\x01\n\x1a\x41llowMultiNicInSameNetwork\x12-\n)UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_NETWORK\x10\x00\x12)\n!MULTI_NIC_IN_SAME_NETWORK_ALLOWED\x10\xdb\xfb\x96\xda\x01\x12)\n!MULTI_NIC_IN_SAME_NETWORK_BLOCKED\x10\x9f\xbc\xc2\x82\x01\"M\n\x08\x41llowNcc\x12\x17\n\x13UNDEFINED_ALLOW_NCC\x10\x00\x12\x13\n\x0bNCC_ALLOWED\x10\xf7\xa6\xe5\xde\x01\x12\x13\n\x0bNCC_BLOCKED\x10\xbb\xe7\x90\x87\x01\"\x83\x01\n\x15\x41llowNetworkMigration\x12%\n!UNDEFINED_ALLOW_NETWORK_MIGRATION\x10\x00\x12 \n\x19NETWORK_MIGRATION_ALLOWED\x10\x86\xa4\xee\x06\x12!\n\x19NETWORK_MIGRATION_BLOCKED\x10\xca\xe4\x99\xaf\x01\"\x7f\n\x14\x41llowPacketMirroring\x12$\n UNDEFINED_ALLOW_PACKET_MIRRORING\x10\x00\x12\x1f\n\x18PACKET_MIRRORING_ALLOWED\x10\xf5\xd1\x88,\x12 \n\x18PACKET_MIRRORING_BLOCKED\x10\xb9\x92\xb4\xd4\x01\"\x91\x01\n\x18\x41llowPrivateGoogleAccess\x12)\n%UNDEFINED_ALLOW_PRIVATE_GOOGLE_ACCESS\x10\x00\x12$\n\x1dPRIVATE_GOOGLE_ACCESS_ALLOWED\x10\x97\xe5\xa3i\x12$\n\x1dPRIVATE_GOOGLE_ACCESS_BLOCKED\x10\xdb\xa5\xcf\x11\"L\n\x08\x41llowPsc\x12\x17\n\x13UNDEFINED_ALLOW_PSC\x10\x00\x12\x12\n\x0bPSC_ALLOWED\x10\xe9\x95\xe7Q\x12\x13\n\x0bPSC_BLOCKED\x10\xad\xd6\x92\xfa\x01\"\x8e\x01\n\x17\x41llowSameNetworkUnicast\x12(\n$UNDEFINED_ALLOW_SAME_NETWORK_UNICAST\x10\x00\x12#\n\x1cSAME_NETWORK_UNICAST_ALLOWED\x10\xce\xa8\x95L\x12$\n\x1cSAME_NETWORK_UNICAST_BLOCKED\x10\x92\xe9\xc0\xf4\x01\"s\n\x11\x41llowStaticRoutes\x12!\n\x1dUNDEFINED_ALLOW_STATIC_ROUTES\x10\x00\x12\x1d\n\x15STATIC_ROUTES_ALLOWED\x10\x84\xaf\x86\xc3\x01\x12\x1c\n\x15STATIC_ROUTES_BLOCKED\x10\xc8\xef\xb1k\"u\n\x12\x41llowSubInterfaces\x12\"\n\x1eUNDEFINED_ALLOW_SUB_INTERFACES\x10\x00\x12\x1c\n\x15SUBINTERFACES_ALLOWED\x10\xc3\xb5\xd5K\x12\x1d\n\x15SUBINTERFACES_BLOCKED\x10\x87\xf6\x80\xf4\x01\"j\n\x0f\x41llowVpcPeering\x12\x1f\n\x1bUNDEFINED_ALLOW_VPC_PEERING\x10\x00\x12\x1a\n\x13VPC_PEERING_ALLOWED\x10\xf3\xc7\xd6|\x12\x1a\n\x13VPC_PEERING_BLOCKED\x10\xb7\x88\x82%\"L\n\x08\x41llowVpn\x12\x17\n\x13UNDEFINED_ALLOW_VPN\x10\x00\x12\x12\n\x0bVPN_ALLOWED\x10\x9d\xda\xa9M\x12\x13\n\x0bVPN_BLOCKED\x10\xe1\x9a\xd5\xf5\x01\"\x97\x01\n\x0eInterfaceTypes\x12\x1d\n\x19UNDEFINED_INTERFACE_TYPES\x10\x00\x12\x0c\n\x05GVNIC\x10\x99\x95\xc3 \x12\x0b\n\x04IDPF\x10\xd1\xf0\x88\x01\x12\x0c\n\x05IRDMA\x10\x8f\x86\xac!\x12\x0c\n\x05MRDMA\x10\x93\xc2\x8d#\x12\x1b\n\x14UNSPECIFIED_NIC_TYPE\x10\xd9\xbe\x92 \x12\x12\n\nVIRTIO_NET\x10\xd9\xb6\xcb\xd7\x01\"w\n\x0eSubnetPurposes\x12\x1d\n\x19UNDEFINED_SUBNET_PURPOSES\x10\x00\x12&\n\x1eSUBNET_PURPOSE_CUSTOM_HARDWARE\x10\xd3\xdd\x82\x87\x01\x12\x1e\n\x16SUBNET_PURPOSE_PRIVATE\x10\xc0\xec\xe8\xc0\x01\"\xa0\x01\n\x10SubnetStackTypes\x12 \n\x1cUNDEFINED_SUBNET_STACK_TYPES\x10\x00\x12\"\n\x1bSUBNET_STACK_TYPE_IPV4_IPV6\x10\x95\x97\xe2\x13\x12\"\n\x1bSUBNET_STACK_TYPE_IPV4_ONLY\x10\xba\xfa\xec\x13\x12\"\n\x1bSUBNET_STACK_TYPE_IPV6_ONLY\x10\xf8\xdc\x93/\"\xef\x01\n\x12SubnetworkPurposes\x12!\n\x1dUNDEFINED_SUBNETWORK_PURPOSES\x10\x00\x12\x1b\n\x14GLOBAL_MANAGED_PROXY\x10\xf2\xcb\xe0p\x12#\n\x1cINTERNAL_HTTPS_LOAD_BALANCER\x10\xd9\xb6\xcev\x12\x16\n\x0ePEER_MIGRATION\x10\x91\xaa\xc7\xea\x01\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\x13\n\x0bPRIVATE_NAT\x10\xa5\xc8\xae\xaf\x01\x12\x17\n\x10PRIVATE_RFC_1918\x10\xdb\xfe\xc5y\x12\x1d\n\x16REGIONAL_MANAGED_PROXY\x10\xee\xb6\xfdH\"r\n\x14SubnetworkStackTypes\x12$\n UNDEFINED_SUBNETWORK_STACK_TYPES\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\"J\n\x07Unicast\x12\x15\n\x11UNDEFINED_UNICAST\x10\x00\x12\x13\n\x0bUNICAST_SDN\x10\xed\xc7\x96\xb5\x01\x12\x13\n\x0bUNICAST_ULL\x10\xe5\xd8\x96\xb5\x01\x42\x18\n\x16_allow_alias_ip_rangesB\x19\n\x17_allow_auto_mode_subnetB\x1a\n\x18_allow_class_d_firewallsB\x12\n\x10_allow_cloud_natB\x15\n\x13_allow_cloud_routerB\x1f\n\x1d_allow_default_nic_attachmentB\x1b\n\x19_allow_external_ip_accessB\x15\n\x13_allow_interconnectB\x16\n\x14_allow_ip_forwardingB\x17\n\x15_allow_load_balancingB\"\n _allow_multi_nic_in_same_networkB\x0c\n\n_allow_nccB\x1a\n\x18_allow_network_migrationB\x19\n\x17_allow_packet_mirroringB\x1e\n\x1c_allow_private_google_accessB\x0c\n\n_allow_pscB\x1d\n\x1b_allow_same_network_unicastB\x16\n\x14_allow_static_routesB\x17\n\x15_allow_sub_interfacesB\x14\n\x12_allow_vpc_peeringB\x0c\n\n_allow_vpnB\n\n\x08_unicast\"\xf4\x03\n\x19NetworkProfileProfileType\x12\x1d\n\x0cnetwork_type\x18\xab\xb5\xdc\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0crdma_subtype\x18\x81\x8b\x8e\' \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0bull_subtype\x18\xf0\xa7\xfc, \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0bvpc_subtype\x18\xa4\xc8\x86\xaa\x01 \x01(\tH\x03\x88\x01\x01\"L\n\x0bNetworkType\x12\x1a\n\x16UNDEFINED_NETWORK_TYPE\x10\x00\x12\x0b\n\x04RDMA\x10\xc6\x9e\x99\x01\x12\t\n\x03ULL\x10\x95\x91\x05\x12\t\n\x03VPC\x10\xc9\x99\x05\"F\n\x0bRdmaSubtype\x12\x1a\n\x16UNDEFINED_RDMA_SUBTYPE\x10\x00\x12\x0e\n\x06\x46\x41LCON\x10\xd1\x89\xab\xd9\x01\x12\x0b\n\x04ROCE\x10\xdf\xee\x99\x01\"M\n\nUllSubtype\x12\x19\n\x15UNDEFINED_ULL_SUBTYPE\x10\x00\x12\x10\n\x08OPERATOR\x10\xa4\xb1\xc0\x86\x01\x12\x12\n\x0bPARTICIPANT\x10\x93\x86\xc6p\"8\n\nVpcSubtype\x12\x19\n\x15UNDEFINED_VPC_SUBTYPE\x10\x00\x12\x0f\n\x08REGIONAL\x10\x9f\xec\x80,B\x0f\n\r_network_typeB\x0f\n\r_rdma_subtypeB\x0e\n\x0c_ull_subtypeB\x0e\n\x0c_vpc_subtype\"\xee\x02\n\x1bNetworkProfilesListResponse\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.NetworkProfile\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xae\x06\n\x14NetworkRoutingConfig\x12&\n\x16\x62gp_always_compare_med\x18\xb6\xe2\xce\x65 \x01(\x08H\x00\x88\x01\x01\x12-\n\x1c\x62gp_best_path_selection_mode\x18\xe9\xfb\xc5\x97\x01 \x01(\tH\x01\x88\x01\x01\x12&\n\x15\x62gp_inter_region_cost\x18\xe1\xf9\xae\xdc\x01 \x01(\tH\x02\x88\x01\x01\x12\x30\n effective_bgp_always_compare_med\x18\xce\xf5\xad\x66 \x01(\x08H\x03\x88\x01\x01\x12/\n\x1f\x65\x66\x66\x65\x63tive_bgp_inter_region_cost\x18\xc9\xc0\xa1X \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x0crouting_mode\x18\xfc\xba\xc8\xe2\x01 \x01(\tH\x05\x88\x01\x01\"g\n\x18\x42gpBestPathSelectionMode\x12*\n&UNDEFINED_BGP_BEST_PATH_SELECTION_MODE\x10\x00\x12\r\n\x06LEGACY\x10\xc9\xcf\xf7,\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\"b\n\x12\x42gpInterRegionCost\x12#\n\x1fUNDEFINED_BGP_INTER_REGION_COST\x10\x00\x12\x17\n\x0f\x41\x44\x44_COST_TO_MED\x10\xdc\xe7\xf6\xe9\x01\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\"L\n\x1b\x45\x66\x66\x65\x63tiveBgpInterRegionCost\x12-\n)UNDEFINED_EFFECTIVE_BGP_INTER_REGION_COST\x10\x00\"J\n\x0bRoutingMode\x12\x1a\n\x16UNDEFINED_ROUTING_MODE\x10\x00\x12\x0e\n\x06GLOBAL\x10\xa3\xef\xef\xeb\x01\x12\x0f\n\x08REGIONAL\x10\x9f\xec\x80,B\x19\n\x17_bgp_always_compare_medB\x1f\n\x1d_bgp_best_path_selection_modeB\x18\n\x16_bgp_inter_region_costB#\n!_effective_bgp_always_compare_medB\"\n _effective_bgp_inter_region_costB\x0f\n\r_routing_mode\"\x84\x02\n\x19NetworksAddPeeringRequest\x12\"\n\x12\x61uto_create_routes\x18\xdd\xe2\xb2\x1b \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12I\n\x0fnetwork_peering\x18\xaf\x8c\xec\x9c\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.NetworkPeeringH\x02\x88\x01\x01\x12\x1d\n\x0cpeer_network\x18\xd1\xe0\xdb\xee\x01 \x01(\tH\x03\x88\x01\x01\x42\x15\n\x13_auto_create_routesB\x07\n\x05_nameB\x12\n\x10_network_peeringB\x0f\n\r_peer_network\"\xd6\x01\n%NetworksGetEffectiveFirewallsResponse\x12s\n\x10\x66irewall_policys\x18\xc2\xca\xfc\xc3\x01 \x03(\x0b\x32U.google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x38\n\tfirewalls\x18\xf3\xc6\xe8\x81\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\"\xf3\x03\n.google.cloud.compute.v1.NodeTemplateAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a^\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.google.cloud.compute.v1.NodeTemplatesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa9\x02\n\x10NodeTemplateList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x37\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32%.google.cloud.compute.v1.NodeTemplate\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8e\x01\n\x1fNodeTemplateNodeTypeFlexibility\x12\x14\n\x04\x63pus\x18\xcb\xe7\xba\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tlocal_ssd\x18\xb0\xbe\xbc\xc1\x01 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x06memory\x18\x81\xfa\x8a\xfe\x01 \x01(\tH\x02\x88\x01\x01\x42\x07\n\x05_cpusB\x0c\n\n_local_ssdB\t\n\x07_memory\"\xa3\x01\n\x17NodeTemplatesScopedList\x12\x41\n\x0enode_templates\x18\xbc\xa2\xed\xa8\x01 \x03(\x0b\x32%.google.cloud.compute.v1.NodeTemplate\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xc6\x04\n\x08NodeType\x12\x1d\n\x0c\x63pu_platform\x18\xaa\xea\xd1\xc3\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nguest_cpus\x18\xd2\xcb\xc8\xbb\x01 \x01(\x05H\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x0clocal_ssd_gb\x18\xca\x88\xff\x9c\x01 \x01(\x05H\x07\x88\x01\x01\x12\x18\n\x07max_vms\x18\xc1\x96\xd5\x92\x01 \x01(\x05H\x08\x88\x01\x01\x12\x19\n\tmemory_mb\x18\x93\x93\xa8\x37 \x01(\x05H\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0c\x88\x01\x01\x42\x0f\n\r_cpu_platformB\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\r\n\x0b_guest_cpusB\x05\n\x03_idB\x07\n\x05_kindB\x0f\n\r_local_ssd_gbB\n\n\x08_max_vmsB\x0c\n\n_memory_mbB\x07\n\x05_nameB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xb9\x03\n\x16NodeTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12L\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32:.google.cloud.compute.v1.NodeTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aZ\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.google.cloud.compute.v1.NodeTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa1\x02\n\x0cNodeTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.NodeType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x97\x01\n\x13NodeTypesScopedList\x12\x39\n\nnode_types\x18\xfc\xbf\xf5\xe5\x01 \x03(\x0b\x32!.google.cloud.compute.v1.NodeType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x90\x03\n\x14NotificationEndpoint\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12Y\n\rgrpc_settings\x18\xa4\xc6\xc0\xd9\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.NotificationEndpointGrpcSettingsH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x10\n\x0e_grpc_settingsB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_link\"\xb7\x02\n NotificationEndpointGrpcSettings\x12\x1a\n\tauthority\x18\xc3\x8e\xd0\xbf\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x65ndpoint\x18\x95\xbb\x9c> \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x0cpayload_name\x18\x9c\xb5\x9c\x8f\x01 \x01(\tH\x02\x88\x01\x01\x12\x43\n\x0fresend_interval\x18\xc9\xb8\x88\xe4\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x03\x88\x01\x01\x12\"\n\x12retry_duration_sec\x18\xdd\xce\x94\x37 \x01(\rH\x04\x88\x01\x01\x42\x0c\n\n_authorityB\x0b\n\t_endpointB\x0f\n\r_payload_nameB\x12\n\x10_resend_intervalB\x15\n\x13_retry_duration_sec\"\xb9\x02\n\x18NotificationEndpointList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.NotificationEndpoint\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbd\x0c\n\tOperation\x12$\n\x13\x63lient_operation_id\x18\xe7\x8d\xde\x8d\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08\x65nd_time\x18\xb1\xa7\xe7\x36 \x01(\tH\x03\x88\x01\x01\x12\x35\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1e.google.cloud.compute.v1.ErrorH\x04\x88\x01\x01\x12\'\n\x12http_error_message\x18\xd9\xfa\xc8` \x01(\tB\x03\xe8G\x04H\x05\x88\x01\x01\x12,\n\x16http_error_status_code\x18\xec\x84\xf8\x94\x01 \x01(\x05\x42\x03\xe8G\x03H\x06\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x07\x88\x01\x01\x12\x1c\n\x0binsert_time\x18\x93\xa9\xe8\xce\x01 \x01(\tH\x08\x88\x01\x01\x12w\n(instances_bulk_insert_operation_metadata\x18\xc1\x86\xc1* \x01(\x0b\x32=.google.cloud.compute.v1.InstancesBulkInsertOperationMetadataH\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x19\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tB\x03\xe8G\x01H\x0b\x88\x01\x01\x12\"\n\x12operation_group_id\x18\xb3\xed\x93\x13 \x01(\tH\x0c\x88\x01\x01\x12\x1e\n\x0eoperation_type\x18\x92\xf6\xdaT \x01(\tH\r\x88\x01\x01\x12\x18\n\x08progress\x18\xad\x84\xd3\" \x01(\x05H\x0e\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12\x85\x01\n/set_common_instance_metadata_operation_metadata\x18\xe4\xad\xea\xe9\x01 \x01(\x0b\x32\x43.google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataH\x11\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x12\x88\x01\x01\x12\x46\n\x06status\x18\xf2\x9f\xb7V \x01(\x0e\x32).google.cloud.compute.v1.Operation.StatusB\x03\xe8G\x02H\x13\x88\x01\x01\x12\x1f\n\x0estatus_message\x18\xba\xc9\xe9\x8d\x01 \x01(\tH\x14\x88\x01\x01\x12\x19\n\ttarget_id\x18\x89\x95\x8d{ \x01(\x04H\x15\x88\x01\x01\x12\x1b\n\x0btarget_link\x18\xe8\x93\xf1\x1d \x01(\tH\x16\x88\x01\x01\x12\x14\n\x04user\x18\xcb\xd7\xdb\x01 \x01(\tH\x17\x88\x01\x01\x12\x37\n\x08warnings\x18\xd7\x88\xc1\xed\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Warnings\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x18\x88\x01\x01\"K\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44ONE\x10\x82\xb7\x80\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x42\x16\n\x14_client_operation_idB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0b\n\t_end_timeB\x08\n\x06_errorB\x15\n\x13_http_error_messageB\x19\n\x17_http_error_status_codeB\x05\n\x03_idB\x0e\n\x0c_insert_timeB+\n)_instances_bulk_insert_operation_metadataB\x07\n\x05_kindB\x07\n\x05_nameB\x15\n\x13_operation_group_idB\x11\n\x0f_operation_typeB\x0b\n\t_progressB\t\n\x07_regionB\x0c\n\n_self_linkB2\n0_set_common_instance_metadata_operation_metadataB\r\n\x0b_start_timeB\t\n\x07_statusB\x11\n\x0f_status_messageB\x0c\n\n_target_idB\x0e\n\x0c_target_linkB\x07\n\x05_userB\x07\n\x05_zone\"\xbc\x03\n\x17OperationAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12M\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32;.google.cloud.compute.v1.OperationAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a[\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x05value\x18\x02 \x01(\x0b\x32-.google.cloud.compute.v1.OperationsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa3\x02\n\rOperationList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.Operation\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x98\x01\n\x14OperationsScopedList\x12\x39\n\noperations\x18\xec\xaf\xff\x01 \x03(\x0b\x32\".google.cloud.compute.v1.Operation\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xda\x06\n\x10OutlierDetection\x12\x45\n\x12\x62\x61se_ejection_time\x18\x87\xd7\xcf& \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x00\x88\x01\x01\x12#\n\x12\x63onsecutive_errors\x18\xa0\xb3\xd0\xb8\x01 \x01(\x05H\x01\x88\x01\x01\x12,\n\x1b\x63onsecutive_gateway_failure\x18\xfa\xb7\x8a\xc7\x01 \x01(\x05H\x02\x88\x01\x01\x12,\n\x1c\x65nforcing_consecutive_errors\x18\xc0\xd3\xd0\x65 \x01(\x05H\x03\x88\x01\x01\x12\x36\n%enforcing_consecutive_gateway_failure\x18\xda\xdf\x8a\xbc\x01 \x01(\x05H\x04\x88\x01\x01\x12&\n\x16\x65nforcing_success_rate\x18\xbc\xef\xdf\\ \x01(\x05H\x05\x88\x01\x01\x12;\n\x08interval\x18\xc5\xc9\xff\x0f \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x06\x88\x01\x01\x12$\n\x14max_ejection_percent\x18\x98\xa6\xe5\x08 \x01(\x05H\x07\x88\x01\x01\x12+\n\x1asuccess_rate_minimum_hosts\x18\xf7\xa1\xda\xfa\x01 \x01(\x05H\x08\x88\x01\x01\x12,\n\x1bsuccess_rate_request_volume\x18\xcd\xeb\x98\x86\x01 \x01(\x05H\t\x88\x01\x01\x12)\n\x19success_rate_stdev_factor\x18\x9d\x83\xa9S \x01(\x05H\n\x88\x01\x01\x42\x15\n\x13_base_ejection_timeB\x15\n\x13_consecutive_errorsB\x1e\n\x1c_consecutive_gateway_failureB\x1f\n\x1d_enforcing_consecutive_errorsB(\n&_enforcing_consecutive_gateway_failureB\x19\n\x17_enforcing_success_rateB\x0b\n\t_intervalB\x17\n\x15_max_ejection_percentB\x1d\n\x1b_success_rate_minimum_hostsB\x1e\n\x1c_success_rate_request_volumeB\x1c\n\x1a_success_rate_stdev_factor\"\xc6\x03\n\x0fPacketIntervals\x12\x16\n\x06\x61vg_ms\x18\xb3\xdc\xd4\x61 \x01(\x03H\x00\x88\x01\x01\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x01\x88\x01\x01\x12\x17\n\x06max_ms\x18\xe1\xc4\xbc\xfc\x01 \x01(\x03H\x02\x88\x01\x01\x12\x17\n\x06min_ms\x18\xb3\xa5\xed\xff\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1d\n\rnum_intervals\x18\xd5\xd5\xecX \x01(\x03H\x04\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x05\x88\x01\x01\"g\n\x08\x44uration\x12\x16\n\x12UNDEFINED_DURATION\x10\x00\x12\x1c\n\x14\x44URATION_UNSPECIFIED\x10\xec\xf9\xa3\xfc\x01\x12\x0b\n\x04HOUR\x10\xe4\xdb\x87\x01\x12\t\n\x03MAX\x10\xc4\xd2\x04\x12\r\n\x06MINUTE\x10\x94\xb4\xba<\"h\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\x08LOOPBACK\x10\x8b\x93\xeb\xa9\x01\x12\x0e\n\x07RECEIVE\x10\xc3\xfd\xb7Z\x12\x10\n\x08TRANSMIT\x10\xb0\x85\xfb\xd7\x01\x12\x18\n\x10TYPE_UNSPECIFIED\x10\x92\xfb\xdb\xd0\x01\x42\t\n\x07_avg_msB\x0b\n\t_durationB\t\n\x07_max_msB\t\n\x07_min_msB\x10\n\x0e_num_intervalsB\x07\n\x05_type\"\xba\x06\n\x0fPacketMirroring\x12Z\n\rcollector_ilb\x18\xed\x89\xb6\xcb\x01 \x01(\x0b\x32:.google.cloud.compute.v1.PacketMirroringForwardingRuleInfoH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\tH\x03\x88\x01\x01\x12G\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\x0b\x32..google.cloud.compute.v1.PacketMirroringFilterH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12`\n\x12mirrored_resources\x18\xc4\x9f\xc2; \x01(\x0b\x32<.google.cloud.compute.v1.PacketMirroringMirroredResourceInfoH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12L\n\x07network\x18\xae\xb4\x85o \x01(\x0b\x32\x33.google.cloud.compute.v1.PacketMirroringNetworkInfoH\t\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\rH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\"9\n\x06\x45nable\x12\x14\n\x10UNDEFINED_ENABLE\x10\x00\x12\x0c\n\x05\x46\x41LSE\x10\x83\xc2\xe4\x1f\x12\x0b\n\x04TRUE\x10\x8e\xdb\x9d\x01\x42\x10\n\x0e_collector_ilbB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\t\n\x07_enableB\t\n\x07_filterB\x05\n\x03_idB\x07\n\x05_kindB\x15\n\x13_mirrored_resourcesB\x07\n\x05_nameB\n\n\x08_networkB\x0b\n\t_priorityB\t\n\x07_regionB\x0c\n\n_self_link\"\xce\x03\n\x1dPacketMirroringAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.PacketMirroringAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.PacketMirroringsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xc6\x01\n\x15PacketMirroringFilter\x12\x18\n\rI_p_protocols\x18\xd6\xd9\xfe. \x03(\t\x12\x17\n\x0b\x63idr_ranges\x18\x81\x94\xd3\xe8\x01 \x03(\t\x12\x19\n\tdirection\x18\xff\x8e\x80\x35 \x01(\tH\x00\x88\x01\x01\"Q\n\tDirection\x12\x17\n\x13UNDEFINED_DIRECTION\x10\x00\x12\n\n\x04\x42OTH\x10\x81\xe7|\x12\x0e\n\x06\x45GRESS\x10\xf5\xf6\xb4\xce\x01\x12\x0f\n\x07INGRESS\x10\x95\xfd\xbe\xf6\x01\x42\x0c\n\n_direction\"q\n!PacketMirroringForwardingRuleInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"\xaf\x02\n\x13PacketMirroringList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.PacketMirroring\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xf7\x01\n#PacketMirroringMirroredResourceInfo\x12^\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32H.google.cloud.compute.v1.PacketMirroringMirroredResourceInfoInstanceInfo\x12_\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\x0b\x32\x46.google.cloud.compute.v1.PacketMirroringMirroredResourceInfoSubnetInfo\x12\x0f\n\x04tags\x18\x99\xe8\xd8\x01 \x03(\t\"\x7f\n/PacketMirroringMirroredResourceInfoInstanceInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"}\n-PacketMirroringMirroredResourceInfoSubnetInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"j\n\x1aPacketMirroringNetworkInfo\x12\x1e\n\rcanonical_url\x18\xa4\xff\xa3\xf4\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03url\x18\xef\x8a\x07 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_canonical_urlB\x06\n\x04_url\"\xab\x01\n\x1aPacketMirroringsScopedList\x12\x46\n\x11packet_mirrorings\x18\xa7\xfa\xdcI \x03(\x0b\x32(.google.cloud.compute.v1.PacketMirroring\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xf9\x01\n\x16PatchAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\xdb\x01\n\x19PatchBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12P\n\x17\x62\x61\x63kend_bucket_resource\x18\x98\xce\xc7\xb5\x01 \x01(\x0b\x32&.google.cloud.compute.v1.BackendBucketB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe0\x01\n\x1aPatchBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbd\x01\n\x1aPatchFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc5\x01\n\x14PatchFirewallRequest\x12\x19\n\x08\x66irewall\x18\x80\xfa\xd5\xf3\x01 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x11\x66irewall_resource\x18\xed\xb0\xe0\x13 \x01(\x0b\x32!.google.cloud.compute.v1.FirewallB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x81\x02\n\x1aPatchForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe6\x01\n PatchGlobalForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66orwarding_rule_resource\x18\xaf\xc0\xd0\x8f\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.ForwardingRuleB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x83\x02\n(PatchGlobalPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd3\x01\n\x17PatchHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb9\x01\n\x11PatchImageRequest\x12\x15\n\x05image\x18\xdb\xd2\xea/ \x01(\tB\x03\xe0\x41\x02\x12?\n\x0eimage_resource\x18\xf2\xc4\xfe\xb0\x01 \x01(\x0b\x32\x1e.google.cloud.compute.v1.ImageB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x95\x02\n PatchInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x8e\x02\n\x1bPatchInstanceSettingRequest\x12V\n\x1ainstance_settings_resource\x18\x80\xa7\xce\x8a\x01 \x01(\x0b\x32).google.cloud.compute.v1.InstanceSettingsB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xc2\x02\n\'PatchInterconnectAttachmentGroupRequest\x12-\n\x1dinterconnect_attachment_group\x18\xf4\xef\x98$ \x01(\tB\x03\xe0\x41\x02\x12l\n&interconnect_attachment_group_resource\x18\xf9\xdf\xe1\x04 \x01(\x0b\x32\x34.google.cloud.compute.v1.InterconnectAttachmentGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xa0\x02\n\"PatchInterconnectAttachmentRequest\x12(\n\x17interconnect_attachment\x18\xf4\x8a\xf7\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12\x61\n interconnect_attachment_resource\x18\xf9\xa4\xa0\x65 \x01(\x0b\x32/.google.cloud.compute.v1.InterconnectAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x99\x02\n\x1dPatchInterconnectGroupRequest\x12#\n\x12interconnect_group\x18\x8e\xb7\xa9\xb9\x01 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1binterconnect_group_resource\x18\x9f\xf3\xe6( \x01(\x0b\x32*.google.cloud.compute.v1.InterconnectGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xd5\x01\n\x18PatchInterconnectRequest\x12\x1c\n\x0cinterconnect\x18\x8e\xc9\x8ck \x01(\tB\x03\xe0\x41\x02\x12M\n\x15interconnect_resource\x18\x9f\xa1\xcc\xbd\x01 \x01(\x0b\x32%.google.cloud.compute.v1.InterconnectB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8b\x02\n\x1dPatchNetworkAttachmentRequest\x12\"\n\x12network_attachment\x18\xd4\x97\x8fk \x01(\tB\x03\xe0\x41\x02\x12W\n\x1bnetwork_attachment_resource\x18\x99\xf0\xcc\x64 \x01(\x0b\x32*.google.cloud.compute.v1.NetworkAttachmentB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x83\x03\n&PatchNetworkEdgeSecurityServiceRequest\x12-\n\x1dnetwork_edge_security_service\x18\xa7\x9f\xefJ \x01(\tB\x03\xe0\x41\x02\x12l\n&network_edge_security_service_resource\x18\xa6\xa3\xdb\xe3\x01 \x01(\x0b\x32\x33.google.cloud.compute.v1.NetworkEdgeSecurityServiceB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xe7\x01\n!PatchNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc0\x01\n\x13PatchNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12\x42\n\x10network_resource\x18\xff\xdd\x9c: \x01(\x0b\x32 .google.cloud.compute.v1.NetworkB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe9\x01\n\x15PatchNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13node_group_resource\x18\xab\xb3\xfa\xf0\x01 \x01(\x0b\x32\".google.cloud.compute.v1.NodeGroupB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x84\x02\n\x1bPatchPacketMirroringRequest\x12 \n\x10packet_mirroring\x18\xcc\xb9\xd1\n \x01(\tB\x03\xe0\x41\x02\x12T\n\x19packet_mirroring_resource\x18\xa1\xfc\xa8\xeb\x01 \x01(\x0b\x32(.google.cloud.compute.v1.PacketMirroringB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xaa\x02\n4PatchPacketMirroringRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xe4\x02\n2PatchPerInstanceConfigsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x9a\x01\n?instance_group_managers_patch_per_instance_configs_req_resource\x18\xff\x9b\x88\xaa\x01 \x01(\x0b\x32H.google.cloud.compute.v1.InstanceGroupManagersPatchPerInstanceConfigsReqB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xef\x02\n8PatchPerInstanceConfigsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9b\x01\n@region_instance_group_manager_patch_instance_config_req_resource\x18\xca\xcd\xa1^ \x01(\x0b\x32I.google.cloud.compute.v1.RegionInstanceGroupManagerPatchInstanceConfigReqB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x81\x02\n#PatchPublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x62\n!public_advertised_prefix_resource\x18\x8f\xd7\xb2o \x01(\x0b\x32/.google.cloud.compute.v1.PublicAdvertisedPrefixB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9e\x02\n\"PatchPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12`\n public_delegated_prefix_resource\x18\x85\xf8\xd8\x16 \x01(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefixB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x83\x02\n\x1cPatchRegionAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\x87\x02\n PatchRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xfa\x01\n\x1dPatchRegionHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x99\x02\n$PatchRegionHealthCheckServiceRequest\x12%\n\x14health_check_service\x18\xdb\x9b\xdd\xc2\x01 \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dhealth_check_service_resource\x18\xf2\x9b\xd0\xe3\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HealthCheckServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9f\x02\n&PatchRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12^\n\x1finstance_group_manager_resource\x18\x8a\x8a\xbe| \x01(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManagerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8e\x02\n\'PatchRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x66irewall_policy_resource\x18\xbc\xb6\x87\xec\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.FirewallPolicyB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb3\x02\n PatchRegionSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xf3\x01\n\x1bPatchRegionSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x90\x02\n\"PatchRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe6\x01\n\x18PatchRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xad\x02\n\x1aPatchResourcePolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fresource_policy\x18\x83\xa5\xf7K \x01(\tB\x03\xe0\x41\x02\x12Q\n\x18resource_policy_resource\x18\xca\x8c\xd1$ \x01(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicyB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xf3\x01\n\x1dPatchRoutePolicyRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x15route_policy_resource\x18\x85\xbd\xb5\x37 \x01(\x0b\x32$.google.cloud.compute.v1.RoutePolicyB\x03\xe0\x41\x02\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xdd\x01\n\x12PatchRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf1\x01\n\x1ePatchRuleFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\x9b\x02\n%PatchRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xc2\x02\n+PatchRuleRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x66irewall_policy_rule_resource\x18\x83\xdf\xbaw \x01(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRuleB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xef\x02\n$PatchRuleRegionSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x0e\n\x0c_update_maskB\x10\n\x0e_validate_only\"\xc8\x02\n\x1ePatchRuleSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12[\n\x1dsecurity_policy_rule_resource\x18\xc3\xba\x82\xc0\x01 \x01(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRuleB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rvalidate_only\x18\xb5\xfa\xdfs \x01(\x08H\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x0e\n\x0c_update_maskB\x10\n\x0e_validate_only\"\x8c\x02\n\x1aPatchSecurityPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x12Q\n\x18security_policy_resource\x18\xfc\xaa\x89g \x01(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicyB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\x8d\x02\n\x1dPatchServiceAttachmentRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12#\n\x12service_attachment\x18\xed\xa9\xd0\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x12X\n\x1bservice_attachment_resource\x18\xa0\xb6\xc4\xe1\x01 \x01(\x0b\x32*.google.cloud.compute.v1.ServiceAttachmentB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf1\x01\n\x1bPatchSnapshotSettingRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12V\n\x1asnapshot_settings_resource\x18\xef\x8d\xc6\xaa\x01 \x01(\x0b\x32).google.cloud.compute.v1.SnapshotSettingsB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xcc\x01\n\x15PatchSslPolicyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13ssl_policy_resource\x18\xc8\x88\x8a\x83\x01 \x01(\x0b\x32\".google.cloud.compute.v1.SslPolicyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb0\x02\n\x16PatchSubnetworkRequest\x12&\n\x15\x64rain_timeout_seconds\x18\xda\xda\xc8\xaa\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13subnetwork_resource\x18\xbf\xda\x91\x14 \x01(\x0b\x32#.google.cloud.compute.v1.SubnetworkB\x03\xe0\x41\x02\x42\x18\n\x16_drain_timeout_secondsB\r\n\x0b_request_id\"\xe5\x01\n\x1bPatchTargetGrpcProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_grpc_proxy\x18\xfb\xb4\xb2\x02 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1atarget_grpc_proxy_resource\x18\xd2\xea\xeb\x9c\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetGrpcProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe4\x01\n\x1bPatchTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x12T\n\x1atarget_http_proxy_resource\x18\xa8\xaf\xe3\x0b \x01(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe9\x01\n\x1cPatchTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12W\n\x1btarget_https_proxy_resource\x18\x81\xad\xe4\xce\x01 \x01(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxyB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbf\x01\n\x12PatchUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd2\x05\n\x0bPathMatcher\x12h\n$default_custom_error_response_policy\x18\xa9\x8b\xe0& \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x00\x88\x01\x01\x12O\n\x14\x64\x65\x66\x61ult_route_action\x18\xaa\xb4\xd7\xb4\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x01\x88\x01\x01\x12 \n\x0f\x64\x65\x66\x61ult_service\x18\xb7\xe5\xc5\xb0\x01 \x01(\tH\x02\x88\x01\x01\x12R\n\x14\x64\x65\x66\x61ult_url_redirect\x18\xea\xab\xb6\xab\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x38\n\npath_rules\x18\xdd\xc0\xe6\x31 \x03(\x0b\x32!.google.cloud.compute.v1.PathRule\x12?\n\x0broute_rules\x18\x81\x87\xb7\xb3\x01 \x03(\x0b\x32&.google.cloud.compute.v1.HttpRouteRuleB\'\n%_default_custom_error_response_policyB\x17\n\x15_default_route_actionB\x12\n\x10_default_serviceB\x17\n\x15_default_url_redirectB\x0e\n\x0c_descriptionB\x10\n\x0e_header_actionB\x07\n\x05_name\"\xfc\x02\n\x08PathRule\x12`\n\x1c\x63ustom_error_response_policy\x18\xeb\xf8\xda` \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x00\x88\x01\x01\x12\x10\n\x05paths\x18\xee\xc1\xe0\x32 \x03(\t\x12G\n\x0croute_action\x18\xec\xa9\xb9\xca\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x01\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x02\x88\x01\x01\x12J\n\x0curl_redirect\x18\xac\xa1\x98\xc1\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x03\x88\x01\x01\x42\x1f\n\x1d_custom_error_response_policyB\x0f\n\r_route_actionB\n\n\x08_serviceB\x0f\n\r_url_redirect\"\xf3\x02\n\x11PerInstanceConfig\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12H\n\x0fpreserved_state\x18\xaa\xe2\xa0\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.PreservedStateH\x02\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x03\x88\x01\x01\"\x90\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x41PPLYING\x10\xb4\xcb\xec\xa7\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x10\n\tEFFECTIVE\x10\x87\xf3\xb8t\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x11\n\tUNAPPLIED\x10\xa4\x87\xe1\xe6\x01\x12\x1a\n\x12UNAPPLIED_DELETION\x10\x89\xb4\xda\x95\x01\x42\x0e\n\x0c_fingerprintB\x07\n\x05_nameB\x12\n\x10_preserved_stateB\t\n\x07_status\"\xa8\x01\n!PerformMaintenanceInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xac\x02\n\"PerformMaintenanceNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12~\n0node_groups_perform_maintenance_request_resource\x18\xd6\xb8\xaeX \x01(\x0b\x32<.google.cloud.compute.v1.NodeGroupsPerformMaintenanceRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n)PerformMaintenanceReservationBlockRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11reservation_block\x18\xda\xc4\x89\xfe\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n8reservations_blocks_perform_maintenance_request_resource\x18\x89\xa9\xd4\xe7\x01 \x01(\x0b\x32\x44.google.cloud.compute.v1.ReservationsBlocksPerformMaintenanceRequestB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb2\x02\n$PerformMaintenanceReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12\x81\x01\n1reservations_perform_maintenance_request_resource\x18\xa0\xf5\x94\x0e \x01(\x0b\x32>.google.cloud.compute.v1.ReservationsPerformMaintenanceRequestB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xde\x01\n,PerformMaintenanceReservationSubBlockRequest\x12\x1c\n\x0bparent_name\x18\x80\x8a\x80\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12%\n\x15reservation_sub_block\x18\x9b\xca\xec\n \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf0\x01\n\x06Policy\x12?\n\raudit_configs\x18\x8d\xba\xb8\x9c\x01 \x03(\x0b\x32$.google.cloud.compute.v1.AuditConfig\x12\x36\n\x08\x62indings\x18\x8e\xc5\xa4\xc0\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Binding\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tiam_owned\x18\xbb\xb0\xec\xd6\x01 \x01(\x08H\x01\x88\x01\x01\x12\x18\n\x07version\x18\xd8\xb9\xd4\xa7\x01 \x01(\x05H\x02\x88\x01\x01\x42\x07\n\x05_etagB\x0c\n\n_iam_ownedB\n\n\x08_version\"]\n\x13PreconfiguredWafSet\x12\x46\n\x0f\x65xpression_sets\x18\x98\xab\x83\xe2\x01 \x03(\x0b\x32).google.cloud.compute.v1.WafExpressionSet\"\xbe\x05\n\x0ePreservedState\x12\x44\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32\x32.google.cloud.compute.v1.PreservedState.DisksEntry\x12S\n\rexternal_i_ps\x18\x8d\xd3\x80\xfe\x01 \x03(\x0b\x32\x38.google.cloud.compute.v1.PreservedState.ExternalIPsEntry\x12R\n\rinternal_i_ps\x18\xdb\x9b\xef\x66 \x03(\x0b\x32\x38.google.cloud.compute.v1.PreservedState.InternalIPsEntry\x12J\n\x08metadata\x18\xaf\xf6\xb5) \x03(\x0b\x32\x35.google.cloud.compute.v1.PreservedState.MetadataEntry\x1a\x62\n\nDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.PreservedStatePreservedDisk:\x02\x38\x01\x1am\n\x10\x45xternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0b\x32\x39.google.cloud.compute.v1.PreservedStatePreservedNetworkIp:\x02\x38\x01\x1am\n\x10InternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12H\n\x05value\x18\x02 \x01(\x0b\x32\x39.google.cloud.compute.v1.PreservedStatePreservedNetworkIp:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xac\x02\n\x1bPreservedStatePreservedDisk\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x02\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x10\n\tREAD_ONLY\x10\xb5\x99\xec+\x12\x11\n\nREAD_WRITE\x10\xd6\x97\xe4RB\x0e\n\x0c_auto_deleteB\x07\n\x05_modeB\t\n\x07_source\"\x9e\x02\n PreservedStatePreservedNetworkIp\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\x12_\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\x0b\x32\x42.google.cloud.compute.v1.PreservedStatePreservedNetworkIpIpAddressH\x01\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-B\x0e\n\x0c_auto_deleteB\r\n\x0b_ip_address\"v\n)PreservedStatePreservedNetworkIpIpAddress\x12\x18\n\x07\x61\x64\x64ress\x18\xf4\xb7\xde\xdc\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x07literal\x18\xaf\xc1\x80W \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_literal\"\xa1\x01\n\x14PreviewRouterRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\"\xea\n\n\x07Project\x12 \n\x10\x63loud_armor_tier\x18\xac\x9a\x8e\x02 \x01(\tH\x00\x88\x01\x01\x12K\n\x18\x63ommon_instance_metadata\x18\xc5\xfc\xcbX \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12%\n\x14\x64\x65\x66\x61ult_network_tier\x18\x91\xc5\xf9\xe0\x01 \x01(\tH\x03\x88\x01\x01\x12(\n\x17\x64\x65\x66\x61ult_service_account\x18\xa5\xf9\xb7\x8e\x01 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x10\x65nabled_features\x18\xfb\xc6\xd2\xdf\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x31\n\x06quotas\x18\xfb\xa1\xe2; \x03(\x0b\x32\x1e.google.cloud.compute.v1.Quota\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12T\n\x15usage_export_location\x18\xc2\xb2\xdc\xa5\x01 \x01(\x0b\x32,.google.cloud.compute.v1.UsageExportLocationH\n\x88\x01\x01\x12\x1e\n\x0evm_dns_setting\x18\xb2\xa7\x88\x1c \x01(\tH\x0b\x88\x01\x01\x12\"\n\x12xpn_project_status\x18\xc1\xcd\xf5l \x01(\tH\x0c\x88\x01\x01\"~\n\x0e\x43loudArmorTier\x12\x1e\n\x1aUNDEFINED_CLOUD_ARMOR_TIER\x10\x00\x12\x1b\n\x14\x43\x41_ENTERPRISE_ANNUAL\x10\xdc\xf5\xeeh\x12\x1b\n\x13\x43\x41_ENTERPRISE_PAYGO\x10\xd3\xa5\xa1\xd8\x01\x12\x12\n\x0b\x43\x41_STANDARD\x10\xfe\x82\xa3\x06\"\x9e\x01\n\x12\x44\x65\x66\x61ultNetworkTier\x12\"\n\x1eUNDEFINED_DEFAULT_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"\x92\x01\n\x0cVmDnsSetting\x12\x1c\n\x18UNDEFINED_VM_DNS_SETTING\x10\x00\x12\x16\n\x0eGLOBAL_DEFAULT\x10\x85\xdb\xda\xa4\x01\x12!\n\x1aUNSPECIFIED_VM_DNS_SETTING\x10\x9a\xbb\x82\x11\x12\x15\n\rZONAL_DEFAULT\x10\x86\xfd\xd9\xaf\x01\x12\x12\n\nZONAL_ONLY\x10\xe7\xba\xc3\xf8\x01\"i\n\x10XpnProjectStatus\x12 \n\x1cUNDEFINED_XPN_PROJECT_STATUS\x10\x00\x12\x0b\n\x04HOST\x10\xa8\xdb\x87\x01\x12&\n\x1eUNSPECIFIED_XPN_PROJECT_STATUS\x10\xa9\xfa\xa7\xa2\x01\x42\x13\n\x11_cloud_armor_tierB\x1b\n\x19_common_instance_metadataB\x15\n\x13_creation_timestampB\x17\n\x15_default_network_tierB\x1a\n\x18_default_service_accountB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_self_linkB\x18\n\x16_usage_export_locationB\x11\n\x0f_vm_dns_settingB\x15\n\x13_xpn_project_status\"z\n!ProjectsDisableXpnResourceRequest\x12\x44\n\x0cxpn_resource\x18\xb7\x93\xcd? \x01(\x0b\x32&.google.cloud.compute.v1.XpnResourceIdH\x00\x88\x01\x01\x42\x0f\n\r_xpn_resource\"y\n ProjectsEnableXpnResourceRequest\x12\x44\n\x0cxpn_resource\x18\xb7\x93\xcd? \x01(\x0b\x32&.google.cloud.compute.v1.XpnResourceIdH\x00\x88\x01\x01\x42\x0f\n\r_xpn_resource\"\xab\x01\n\x17ProjectsGetXpnResources\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x01\x88\x01\x01\x12<\n\tresources\x18\xa5\xfc\xb2N \x03(\x0b\x32&.google.cloud.compute.v1.XpnResourceIdB\x07\n\x05_kindB\x12\n\x10_next_page_token\"L\n\x1bProjectsListXpnHostsRequest\x12\x1c\n\x0corganization\x18\xb3\xda\x93\x32 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_organization\"\xd9\x01\n ProjectsSetCloudArmorTierRequest\x12 \n\x10\x63loud_armor_tier\x18\xac\x9a\x8e\x02 \x01(\tH\x00\x88\x01\x01\"~\n\x0e\x43loudArmorTier\x12\x1e\n\x1aUNDEFINED_CLOUD_ARMOR_TIER\x10\x00\x12\x1b\n\x14\x43\x41_ENTERPRISE_ANNUAL\x10\xdc\xf5\xeeh\x12\x1b\n\x13\x43\x41_ENTERPRISE_PAYGO\x10\xd3\xa5\xa1\xd8\x01\x12\x12\n\x0b\x43\x41_STANDARD\x10\xfe\x82\xa3\x06\x42\x13\n\x11_cloud_armor_tier\"\xe8\x01\n$ProjectsSetDefaultNetworkTierRequest\x12\x1d\n\x0cnetwork_tier\x18\xd3\xba\xdb\xf6\x01 \x01(\tH\x00\x88\x01\x01\"\x8f\x01\n\x0bNetworkTier\x12\x1a\n\x16UNDEFINED_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\x42\x0f\n\r_network_tier\"\x96\t\n\x16PublicAdvertisedPrefix\x12!\n\x11\x62yoip_api_version\x18\x93\xb3\xc9M \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12#\n\x13\x64ns_verification_ip\x18\xb5\x95\xf6r \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tpdp_scope\x18\xd1\xca\xfe\xf9\x01 \x01(\tH\t\x88\x01\x01\x12j\n\x18public_delegated_prefixs\x18\x8b\xbe\x85\xcb\x01 \x03(\x0b\x32\x44.google.cloud.compute.v1.PublicAdvertisedPrefixPublicDelegatedPrefix\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12\x1e\n\rshared_secret\x18\xca\xa7\x8f\xb6\x01 \x01(\tH\x0b\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0c\x88\x01\x01\"D\n\x0f\x42yoipApiVersion\x12\x1f\n\x1bUNDEFINED_BYOIP_API_VERSION\x10\x00\x12\x07\n\x02V1\x10\x9b\x15\x12\x07\n\x02V2\x10\x9c\x15\"a\n\x08PdpScope\x12\x17\n\x13UNDEFINED_PDP_SCOPE\x10\x00\x12\x0e\n\x06GLOBAL\x10\xa3\xef\xef\xeb\x01\x12\x1b\n\x13GLOBAL_AND_REGIONAL\x10\xc3\xb5\xd4\x97\x01\x12\x0f\n\x08REGIONAL\x10\x9f\xec\x80,\"\xa9\x02\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x1c\n\x15\x41NNOUNCED_TO_INTERNET\x10\xc1\xfe\xe8T\x12\x0f\n\x07INITIAL\x10\xa4\xc6\xb3\xf7\x01\x12%\n\x1dPREFIX_CONFIGURATION_COMPLETE\x10\xcf\x95\xa7\xe5\x01\x12(\n PREFIX_CONFIGURATION_IN_PROGRESS\x10\xb1\xf5\xc0\xb4\x01\x12\"\n\x1aPREFIX_REMOVAL_IN_PROGRESS\x10\xe7\xf5\xcc\x87\x01\x12\x16\n\x0ePTR_CONFIGURED\x10\xcf\xb0\xed\xf4\x01\x12\x18\n\x11READY_TO_ANNOUNCE\x10\xf1\xb1\xe9\x1e\x12!\n\x19REVERSE_DNS_LOOKUP_FAILED\x10\xaf\xbb\x83\x8d\x01\x12\x10\n\tVALIDATED\x10\xee\xb3\xc8\x1f\x42\x14\n\x12_byoip_api_versionB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x16\n\x14_dns_verification_ipB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x10\n\x0e_ip_cidr_rangeB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_pdp_scopeB\x0c\n\n_self_linkB\x10\n\x0e_shared_secretB\t\n\x07_status\"\xbd\x02\n\x1aPublicAdvertisedPrefixList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.PublicAdvertisedPrefix\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xde\x01\n+PublicAdvertisedPrefixPublicDelegatedPrefix\x12\x18\n\x08ip_range\x18\xa5\xe0\x97\x45 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tH\x02\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x03\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x04\x88\x01\x01\x42\x0b\n\t_ip_rangeB\x07\n\x05_nameB\n\n\x08_projectB\t\n\x07_regionB\t\n\x07_status\"\xa3\t\n\x15PublicDelegatedPrefix\x12)\n\x19\x61llocatable_prefix_length\x18\xb6\xb6\xa9\x12 \x01(\x05H\x00\x88\x01\x01\x12!\n\x11\x62yoip_api_version\x18\x93\xb3\xc9M \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x06\x88\x01\x01\x12\"\n\x11is_live_migration\x18\xf0\x9f\x87\xf4\x01 \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12\x1d\n\rparent_prefix\x18\xc7\xe7\xa1\x07 \x01(\tH\x0b\x88\x01\x01\x12o\n\x1cpublic_delegated_sub_prefixs\x18\x8c\xfe\x8bZ \x03(\x0b\x32\x46.google.cloud.compute.v1.PublicDelegatedPrefixPublicDelegatedSubPrefix\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0e\x88\x01\x01\"D\n\x0f\x42yoipApiVersion\x12\x1f\n\x1bUNDEFINED_BYOIP_API_VERSION\x10\x00\x12\x07\n\x02V1\x10\x9b\x15\x12\x07\n\x02V2\x10\x9c\x15\"\x87\x01\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x11\n\nDELEGATION\x10\xa8\xb2\xfa}\x12.\n&EXTERNAL_IPV6_FORWARDING_RULE_CREATION\x10\xc4\xe1\x8d\xbe\x01\x12(\n!EXTERNAL_IPV6_SUBNETWORK_CREATION\x10\xcc\x9f\x97\x1d\"\xae\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x11\n\tANNOUNCED\x10\xfb\x91\x8c\xae\x01\x12\x1b\n\x13\x41NNOUNCED_TO_GOOGLE\x10\xb9\xb4\xf3\xd8\x01\x12\x1c\n\x15\x41NNOUNCED_TO_INTERNET\x10\xc1\xfe\xe8T\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x14\n\x0cINITIALIZING\x10\xcd\xd8\x98\x92\x01\x12\x18\n\x11READY_TO_ANNOUNCE\x10\xf1\xb1\xe9\x1e\x42\x1c\n\x1a_allocatable_prefix_lengthB\x14\n\x12_byoip_api_versionB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x10\n\x0e_ip_cidr_rangeB\x14\n\x12_is_live_migrationB\x07\n\x05_kindB\x07\n\x05_modeB\x07\n\x05_nameB\x10\n\x0e_parent_prefixB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_status\"\xe1\x03\n#PublicDelegatedPrefixAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12Y\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32G.google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1ah\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12I\n\x05value\x18\x02 \x01(\x0b\x32:.google.cloud.compute.v1.PublicDelegatedPrefixesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbb\x02\n\x19PublicDelegatedPrefixList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12@\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefix\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8d\x05\n-PublicDelegatedPrefixPublicDelegatedSubPrefix\x12)\n\x19\x61llocatable_prefix_length\x18\xb6\xb6\xa9\x12 \x01(\x05H\x00\x88\x01\x01\x12\"\n\x11\x64\x65legatee_project\x18\xda\x8a\xe9\xc5\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x03\x88\x01\x01\x12\x1b\n\nis_address\x18\xdf\x8b\x92\xa8\x01 \x01(\x08H\x04\x88\x01\x01\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x08\x88\x01\x01\"\x87\x01\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x11\n\nDELEGATION\x10\xa8\xb2\xfa}\x12.\n&EXTERNAL_IPV6_FORWARDING_RULE_CREATION\x10\xc4\xe1\x8d\xbe\x01\x12(\n!EXTERNAL_IPV6_SUBNETWORK_CREATION\x10\xcc\x9f\x97\x1d\"@\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x42\x1c\n\x1a_allocatable_prefix_lengthB\x14\n\x12_delegatee_projectB\x0e\n\x0c_descriptionB\x10\n\x0e_ip_cidr_rangeB\r\n\x0b_is_addressB\x07\n\x05_modeB\x07\n\x05_nameB\t\n\x07_regionB\t\n\x07_status\"\xc1\x01\n!PublicDelegatedPrefixesScopedList\x12U\n\x19public_delegated_prefixes\x18\x96\x82\xaa\x96\x01 \x03(\x0b\x32..google.cloud.compute.v1.PublicDelegatedPrefix\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe6(\n\x05Quota\x12\x15\n\x05limit\x18\xbb\x97\x8d\x31 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\x06metric\x18\xb0\xeb\x97\xfe\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05owner\x18\xb3\xe5\xcf\x32 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x05usage\x18\xa1\xfb\x99\x35 \x01(\x01H\x03\x88\x01\x01\"\xd5\'\n\x06Metric\x12\x14\n\x10UNDEFINED_METRIC\x10\x00\x12\x0e\n\x07\x41\x32_CPUS\x10\xb9\xfe\x86I\x12\x16\n\x0f\x41\x46\x46INITY_GROUPS\x10\xcb\xa9\xd2\x33\x12\x13\n\x0b\x41UTOSCALERS\x10\xdc\xe0\xda\xe0\x01\x12\x16\n\x0f\x42\x41\x43KEND_BUCKETS\x10\xde\x89\xd0\x41\x12\x18\n\x10\x42\x41\x43KEND_SERVICES\x10\xc9\xc3\xc8\x80\x01\x12\x10\n\x08\x43\x32\x44_CPUS\x10\xf5\xff\xa8\xf2\x01\x12\x0f\n\x07\x43\x32_CPUS\x10\xbb\xeb\xb8\x97\x01\x12\x0f\n\x07\x43\x33_CPUS\x10\xda\x9c\x8c\xa5\x01\x12\x13\n\x0b\x43OMMITMENTS\x10\xde\xd7\xc0\xd9\x01\x12\x18\n\x11\x43OMMITTED_A2_CPUS\x10\xd6\xa2\xa5\x1c\x12\x1a\n\x12\x43OMMITTED_C2D_CPUS\x10\xf8\xe2\xd3\x86\x01\x12\x18\n\x11\x43OMMITTED_C2_CPUS\x10\xd8\x8f\xd7j\x12\x18\n\x11\x43OMMITTED_C3_CPUS\x10\xf7\xc0\xaax\x12\x16\n\x0e\x43OMMITTED_CPUS\x10\xce\xad\xb6\x8b\x01\x12\x19\n\x11\x43OMMITTED_E2_CPUS\x10\xda\xfc\x88\xb9\x01\x12\x1a\n\x12\x43OMMITTED_LICENSES\x10\xd5\xcb\xc2\xaa\x01\x12$\n\x1c\x43OMMITTED_LOCAL_SSD_TOTAL_GB\x10\x88\xec\x86\x93\x01\x12\x17\n\x11\x43OMMITTED_M3_CPUS\x10\x81\xe2#\x12\'\n\x1f\x43OMMITTED_MEMORY_OPTIMIZED_CPUS\x10\xde\xdc\x99\xe9\x01\x12\x19\n\x12\x43OMMITTED_N2A_CPUS\x10\xb0\xaa\x8d\x13\x12\x19\n\x12\x43OMMITTED_N2D_CPUS\x10\x8d\xbe\x87<\x12\x19\n\x11\x43OMMITTED_N2_CPUS\x10\xa3\xa7\xe9\x99\x01\x12\'\n\x1f\x43OMMITTED_NVIDIA_A100_80GB_GPUS\x10\xa5\x9f\xb4\xdd\x01\x12\"\n\x1a\x43OMMITTED_NVIDIA_A100_GPUS\x10\x95\xfd\x98\xb3\x01\x12!\n\x1a\x43OMMITTED_NVIDIA_H100_GPUS\x10\x9c\x8f\x95\"\x12 \n\x19\x43OMMITTED_NVIDIA_K80_GPUS\x10\xa4\xb6\xeb\x01\x12\x1f\n\x18\x43OMMITTED_NVIDIA_L4_GPUS\x10\xfd\xd3\x91\t\x12!\n\x1a\x43OMMITTED_NVIDIA_P100_GPUS\x10\xa4\xff\xa2\x33\x12 \n\x18\x43OMMITTED_NVIDIA_P4_GPUS\x10\x81\xae\xf5\xa5\x01\x12\x1f\n\x18\x43OMMITTED_NVIDIA_T4_GPUS\x10\x85\x88\xd9\x42\x12 \n\x1a\x43OMMITTED_NVIDIA_V100_GPUS\x10\xaa\xb3\r\x12\x1a\n\x12\x43OMMITTED_T2A_CPUS\x10\xea\xc4\xa9\x8d\x01\x12\x1a\n\x12\x43OMMITTED_T2D_CPUS\x10\xc7\xd8\xa3\xb6\x01\x12\x18\n\x11\x43OMMITTED_Z3_CPUS\x10\xce\xe6\xe7}\x12\n\n\x04\x43PUS\x10\xcb\xd7~\x12\x18\n\x10\x43PUS_ALL_REGIONS\x10\xad\x91\xc6\xe0\x01\x12\x16\n\x0e\x44ISKS_TOTAL_GB\x10\x9f\x97\xc9\xa8\x01\x12\x0f\n\x07\x45\x32_CPUS\x10\xbd\xd8\xea\xe5\x01\x12(\n!EXTERNAL_MANAGED_FORWARDING_RULES\x10\xc9\xbf\xf3G\x12,\n$EXTERNAL_NETWORK_LB_FORWARDING_RULES\x10\x99\xad\xbd\xb2\x01\x12)\n\"EXTERNAL_PROTOCOL_FORWARDING_RULES\x10\xe8\xb8\xa2\x1e\x12\x1d\n\x15\x45XTERNAL_VPN_GATEWAYS\x10\xae\xbb\xf5\x81\x01\x12\x11\n\tFIREWALLS\x10\xd3\xe6\xc8\xb2\x01\x12\x18\n\x10\x46ORWARDING_RULES\x10\x95\x82\xa8\xce\x01\x12/\n(GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES\x10\xe1\xad\xbcN\x12\x30\n(GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES\x10\xad\xec\x9b\x9c\x01\x12\x31\n)GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES\x10\xa9\xd9\xed\xbe\x01\x12 \n\x19GLOBAL_INTERNAL_ADDRESSES\x10\x9c\xc5\xb0\x14\x12/\n(GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES\x10\xaf\x90\xaez\x12\x39\n1GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES\x10\xd4\xde\xa1\x9a\x01\x12\x17\n\x10GPUS_ALL_REGIONS\x10\xa9\x80\xe4\x12\x12\x14\n\x0cHDB_TOTAL_GB\x10\xaf\xc2\xa1\x98\x01\x12\x16\n\x0eHDB_TOTAL_IOPS\x10\xfd\xe9\xd7\x93\x01\x12\x1b\n\x14HDB_TOTAL_THROUGHPUT\x10\xfe\xcc\x80\n\x12\x15\n\rHEALTH_CHECKS\x10\xae\xaf\xfc\x89\x01\x12\r\n\x06IMAGES\x10\xf8\xec\xb5\x07\x12\x10\n\tINSTANCES\x10\xde\x9c\xd0>\x12\x17\n\x0fINSTANCE_GROUPS\x10\xbe\xc9\xdb\xa9\x01\x12\x1e\n\x17INSTANCE_GROUP_MANAGERS\x10\xb0\xa2\xc5\x30\x12\x19\n\x12INSTANCE_TEMPLATES\x10\xef\xb7\xedk\x12\x15\n\rINTERCONNECTS\x10\x85\x8b\xfe\xc5\x01\x12*\n#INTERCONNECT_ATTACHMENTS_PER_REGION\x10\xd6\xd6\xa3L\x12+\n#INTERCONNECT_ATTACHMENTS_TOTAL_MBPS\x10\xf3\xba\xd9\xca\x01\x12\x1f\n\x17INTERCONNECT_TOTAL_GBPS\x10\xaa\xf1\x87\x88\x01\x12\x19\n\x12INTERNAL_ADDRESSES\x10\x80\xe9\xae^\x12\x31\n*INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES\x10\x84\xe9\x85\x7f\x12\x19\n\x12IN_PLACE_SNAPSHOTS\x10\x9d\x9d\x96H\x12\x18\n\x10IN_USE_ADDRESSES\x10\x90\xe2\xdf\xbf\x01\x12\x1e\n\x17IN_USE_BACKUP_SCHEDULES\x10\x91\x92\xd1\x0f\x12!\n\x19IN_USE_SNAPSHOT_SCHEDULES\x10\x93\xcc\xac\xdc\x01\x12\x1a\n\x12LOCAL_SSD_TOTAL_GB\x10\xc5\x98\xe3\x9d\x01\x12\x0e\n\x07M1_CPUS\x10\xa6\xdb\xde\x11\x12\x0e\n\x07M2_CPUS\x10\xc5\x8c\xb2\x1f\x12\x0e\n\x07M3_CPUS\x10\xe4\xbd\x85-\x12\x16\n\x0eMACHINE_IMAGES\x10\x90\xf3\x91\xd5\x01\x12\x0f\n\x08N2A_CPUS\x10\xad\xc7\xe2~\x12\x10\n\x08N2D_CPUS\x10\x8a\xdb\xdc\xa7\x01\x12\x0f\n\x07N2_CPUS\x10\x86\x83\xcb\xc6\x01\x12\x10\n\x08NETWORKS\x10\x85\xb8\xbf\xe7\x01\x12\x1a\n\x13NETWORK_ATTACHMENTS\x10\xdf\xfd\x87G\x12\x1e\n\x17NETWORK_ENDPOINT_GROUPS\x10\x8d\xb7\xda\x30\x12 \n\x19NETWORK_FIREWALL_POLICIES\x10\xbe\xdb\x9b\x30\x12*\n#NET_LB_SECURITY_POLICIES_PER_REGION\x10\xad\xfd\xa4K\x12/\n\'NET_LB_SECURITY_POLICY_RULES_PER_REGION\x10\xb3\x88\xe6\xa9\x01\x12\x39\n1NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION\x10\xf0\xe8\xb4\x94\x01\x12\x12\n\x0bNODE_GROUPS\x10\xb1\xfd\xde\x0b\x12\x16\n\x0eNODE_TEMPLATES\x10\x9c\xb2\xb9\xe2\x01\x12\x1d\n\x15NVIDIA_A100_80GB_GPUS\x10\xc8\xe8\xc7\x88\x01\x12\x18\n\x10NVIDIA_A100_GPUS\x10\x92\x80\xdf\xf0\x01\x12\x16\n\x0fNVIDIA_K80_GPUS\x10\x87\xec\x92N\x12\x16\n\x0eNVIDIA_L4_GPUS\x10\xba\xcd\xc8\xea\x01\x12\x17\n\x10NVIDIA_P100_GPUS\x10\xa1\x82\xe9p\x12\x1b\n\x14NVIDIA_P100_VWS_GPUS\x10\x8e\xdd\x83\x66\x12\x16\n\x0eNVIDIA_P4_GPUS\x10\xbe\xa7\xac\x87\x01\x12\x1a\n\x12NVIDIA_P4_VWS_GPUS\x10\xab\xd5\xf4\xfb\x01\x12\x15\n\x0eNVIDIA_T4_GPUS\x10\xc2\x81\x90$\x12\x1a\n\x12NVIDIA_T4_VWS_GPUS\x10\xaf\xeb\xbf\x98\x01\x12\x17\n\x10NVIDIA_V100_GPUS\x10\xa7\xb6\xd3=\x12\x18\n\x11PACKET_MIRRORINGS\x10\xa7\xea\xb6\x07\x12(\n!PD_EXTREME_TOTAL_PROVISIONED_IOPS\x10\xed\xd6\x97!\x12\x17\n\x10PREEMPTIBLE_CPUS\x10\xc9\x8d\xe3w\x12\x1f\n\x18PREEMPTIBLE_LOCAL_SSD_GB\x10\x88\x93\xaf|\x12(\n!PREEMPTIBLE_NVIDIA_A100_80GB_GPUS\x10\x8a\xea\xb9H\x12#\n\x1cPREEMPTIBLE_NVIDIA_A100_GPUS\x10\x90\x9c\xe9 \x12$\n\x1cPREEMPTIBLE_NVIDIA_H100_GPUS\x10\x97\xae\xe5\x8f\x01\x12#\n\x1bPREEMPTIBLE_NVIDIA_K80_GPUS\x10\xc9\xe0\xe5\xb2\x01\x12!\n\x1aPREEMPTIBLE_NVIDIA_L4_GPUS\x10\xb8\xb8\xf0/\x12$\n\x1cPREEMPTIBLE_NVIDIA_P100_GPUS\x10\x9f\x9e\xf3\xa0\x01\x12(\n PREEMPTIBLE_NVIDIA_P100_VWS_GPUS\x10\x8c\x9b\xc1\x95\x01\x12\"\n\x1aPREEMPTIBLE_NVIDIA_P4_GPUS\x10\xbc\x92\xd4\xcc\x01\x12%\n\x1ePREEMPTIBLE_NVIDIA_P4_VWS_GPUS\x10\xa9\xe2\xd0x\x12!\n\x1aPREEMPTIBLE_NVIDIA_T4_GPUS\x10\xc0\xec\xb7i\x12%\n\x1ePREEMPTIBLE_NVIDIA_T4_VWS_GPUS\x10\xad\xf8\x9b\x15\x12#\n\x1cPREEMPTIBLE_NVIDIA_V100_GPUS\x10\xa5\xd2\xddm\x12%\n\x1ePREEMPTIBLE_TPU_LITE_DEVICE_V5\x10\xfb\x91\x8cS\x12\'\n PREEMPTIBLE_TPU_LITE_PODSLICE_V5\x10\xc4\x91\xc5\x35\x12#\n\x1bPREEMPTIBLE_TPU_PODSLICE_V4\x10\x8c\xfc\xf4\xca\x01\x12=\n6PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK\x10\x83\x93\x9dn\x12\'\n PSC_INTERNAL_LB_FORWARDING_RULES\x10\xfb\xa2\xcbP\x12\"\n\x1aPUBLIC_ADVERTISED_PREFIXES\x10\xcc\xa1\xe2\xe0\x01\x12!\n\x19PUBLIC_DELEGATED_PREFIXES\x10\xb6\x92\xf3\xfd\x01\x12\x1b\n\x14REGIONAL_AUTOSCALERS\x10\xbc\x9c\x80\x0e\x12\x31\n*REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES\x10\xdd\xec\x82\x02\x12\x35\n-REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES\x10\xed\xea\xa5\xc3\x01\x12\'\n REGIONAL_INSTANCE_GROUP_MANAGERS\x10\x90\xbe\xf3\x11\x12,\n%REGIONAL_INTERNAL_LB_BACKEND_SERVICES\x10\x90\xee\xe5\x41\x12\x31\n*REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES\x10\xab\xcf\xf4-\x12;\n3REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES\x10\xd8\xf6\xb1\xe6\x01\x12\x13\n\x0cRESERVATIONS\x10\xa7\xbc\xc8\x0f\x12\x18\n\x11RESOURCE_POLICIES\x10\xe1\x9c\x84(\x12\x0f\n\x07ROUTERS\x10\xaa\xbc\x8b\xeb\x01\x12\x0e\n\x06ROUTES\x10\xca\x96\xba\x83\x01\x12\x18\n\x11SECURITY_POLICIES\x10\xef\xa6\xafZ\x12#\n\x1cSECURITY_POLICIES_PER_REGION\x10\xc6\xa6\xe0v\x12\x31\n)SECURITY_POLICY_ADVANCED_RULES_PER_REGION\x10\xad\xe7\xa5\xb1\x01\x12#\n\x1bSECURITY_POLICY_CEVAL_RULES\x10\xc9\xa7\xc0\xe0\x01\x12\x1c\n\x15SECURITY_POLICY_RULES\x10\xa9\xd4\x87\x61\x12\'\n SECURITY_POLICY_RULES_PER_REGION\x10\xcc\xc8\xa9<\x12\x1b\n\x13SERVICE_ATTACHMENTS\x10\xe6\xb1\xeb\xe0\x01\x12\x11\n\tSNAPSHOTS\x10\x8f\xe6\xdf\xa3\x01\x12\x13\n\x0cSSD_TOTAL_GB\x10\xd1\xaf\x8fM\x12\x18\n\x10SSL_CERTIFICATES\x10\xaf\x82\xb6\xb4\x01\x12\x14\n\x0cSSL_POLICIES\x10\xc3\xf4\xc0\xf9\x01\x12\x17\n\x10STATIC_ADDRESSES\x10\xf1\xad\xd2,\x12\x1e\n\x16STATIC_BYOIP_ADDRESSES\x10\xf1\x8a\xc2\x83\x01\x12+\n#STATIC_EXTERNAL_IPV6_ADDRESS_RANGES\x10\x96\xe1\x9d\xe1\x01\x12\x13\n\x0bSUBNETWORKS\x10\xa5\xfc\xf3\xc8\x01\x12\x10\n\x08T2A_CPUS\x10\xe7\xe1\xfe\xf8\x01\x12\x0f\n\x08T2D_CPUS\x10\xc4\xf5\xf8!\x12\x1b\n\x14TARGET_HTTPS_PROXIES\x10\xca\xcb\xd6h\x12\x1a\n\x13TARGET_HTTP_PROXIES\x10\xa3\xf5\xa0N\x12\x18\n\x10TARGET_INSTANCES\x10\xb0\xda\xd5\x87\x01\x12\x14\n\x0cTARGET_POOLS\x10\x89\x97\x88\xa6\x01\x12\x19\n\x12TARGET_SSL_PROXIES\x10\xeb\xe4\xf5K\x12\x19\n\x12TARGET_TCP_PROXIES\x10\xc0\x9e\xf3V\x12\x1a\n\x13TARGET_VPN_GATEWAYS\x10\xa8\xbb\xe3#\x12\x1a\n\x12TPU_LITE_DEVICE_V5\x10\xfd\x84\xb0\xd6\x01\x12\x1b\n\x14TPU_LITE_PODSLICE_V5\x10\xc6\xd3\x87\x06\x12\x16\n\x0fTPU_PODSLICE_V4\x10\xca\x87\xa2\x66\x12\x10\n\x08URL_MAPS\x10\x87\xcf\xc7\xb4\x01\x12.\n\'VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES\x10\xa1\xf6\x9c=\x12\x13\n\x0cVPN_GATEWAYS\x10\xba\x8b\xfe\x10\x12\x12\n\x0bVPN_TUNNELS\x10\x80\xd1\xdf\x31\x12\x1b\n\x14XPN_SERVICE_PROJECTS\x10\xad\x87\xb2-B\x08\n\x06_limitB\t\n\x07_metricB\x08\n\x06_ownerB\x08\n\x06_usage\"\xe0\x03\n\x11QuotaExceededInfo\x12R\n\ndimensions\x18\xcd\xff\xc8\xc5\x01 \x03(\x0b\x32:.google.cloud.compute.v1.QuotaExceededInfo.DimensionsEntry\x12\x1d\n\x0c\x66uture_limit\x18\xbf\xbc\xda\xd9\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x05limit\x18\xbb\x97\x8d\x31 \x01(\x01H\x01\x88\x01\x01\x12\x1b\n\nlimit_name\x18\x8f\x89\xf0\xbd\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0bmetric_name\x18\xba\x97\xb9\xc3\x01 \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x0erollout_status\x18\xc0\xe4\x96\xe3\x01 \x01(\tH\x04\x88\x01\x01\x1a\x31\n\x0f\x44imensionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"e\n\rRolloutStatus\x12\x1c\n\x18UNDEFINED_ROLLOUT_STATUS\x10\x00\x12\x13\n\x0bIN_PROGRESS\x10\x87\xa8\xdd\xdf\x01\x12!\n\x1aROLLOUT_STATUS_UNSPECIFIED\x10\xb8\xd7\xe7\x0c\x42\x0f\n\r_future_limitB\x08\n\x06_limitB\r\n\x0b_limit_nameB\x0e\n\x0c_metric_nameB\x11\n\x0f_rollout_status\"\x88\t\n\x12QuotaStatusWarning\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Data\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\"\xfc\x07\n\x04\x43ode\x12\x12\n\x0eUNDEFINED_CODE\x10\x00\x12\x15\n\x0e\x43LEANUP_FAILED\x10\xd8\x8c\xd6G\x12 \n\x18\x44\x45PRECATED_RESOURCE_USED\x10\xc2\xdf\xeb\xba\x01\x12\x1c\n\x14\x44\x45PRECATED_TYPE_USED\x10\x96\xa4\x9e\xa5\x01\x12(\n DISK_SIZE_LARGER_THAN_IMAGE_SIZE\x10\x97\x81\x95\xb0\x01\x12\x1e\n\x16\x45XPERIMENTAL_TYPE_USED\x10\x8b\x8e\xc1\xd7\x01\x12\x1b\n\x14\x45XTERNAL_API_WARNING\x10\xc3\xbf\xdaS\x12\x1d\n\x15\x46IELD_VALUE_OVERRIDEN\x10\xaf\xb6\x99\x9d\x01\x12#\n\x1bINJECTED_KERNELS_DEPRECATED\x10\x8b\xd9\x82\xc7\x01\x12\x34\n,INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB\x10\xce\x9b\xbc\xbf\x01\x12 \n\x18LARGE_DEPLOYMENT_WARNING\x10\xa6\xe7\xc8\xe5\x01\x12!\n\x1aLIST_OVERHEAD_QUOTA_EXCEED\x10\xc5\xb0\xda\x16\x12\x1f\n\x17MISSING_TYPE_DEPENDENCY\x10\xf7\xf8\xa2\xa4\x01\x12%\n\x1dNEXT_HOP_ADDRESS_NOT_ASSIGNED\x10\x87\xa5\xfa\x9a\x01\x12\"\n\x1aNEXT_HOP_CANNOT_IP_FORWARD\x10\xe7\xea\xe7\xb6\x01\x12.\n\'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE\x10\x92\xe8\xfc\x45\x12#\n\x1bNEXT_HOP_INSTANCE_NOT_FOUND\x10\xce\xcc\xaf\xdd\x01\x12\'\n NEXT_HOP_INSTANCE_NOT_ON_NETWORK\x10\xc2\xe8\x9dt\x12\x1c\n\x14NEXT_HOP_NOT_RUNNING\x10\xb1\xcf\xf0\xc6\x01\x12\x19\n\x12NOT_CRITICAL_ERROR\x10\xd4\xa8\xb7\x32\x12\x19\n\x12NO_RESULTS_ON_PAGE\x10\x88\xa6\xa9\x0e\x12\x16\n\x0fPARTIAL_SUCCESS\x10\x85\xae\x87\x13\x12\x1e\n\x16QUOTA_INFO_UNAVAILABLE\x10\xa6\xd2\x8c\x91\x01\x12\x1d\n\x16REQUIRED_TOS_AGREEMENT\x10\x83\xce\xe4\x01\x12\x31\n)RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING\x10\xc1\xf4\xed\xec\x01\x12\x1b\n\x14RESOURCE_NOT_DELETED\x10\xbc\xb7\xb2P\x12!\n\x19SCHEMA_VALIDATION_IGNORED\x10\xca\xd4\x9f\x83\x01\x12(\n!SINGLE_INSTANCE_PROPERTY_TEMPLATE\x10\xd1\x89\xf8\x7f\x12\x1d\n\x15UNDECLARED_PROPERTIES\x10\x9f\x86\x9b\xba\x01\x12\x12\n\x0bUNREACHABLE\x10\xb4\xbd\xad\x06\x42\x07\n\x05_codeB\n\n\x08_message\"\xcc\x01\n\x07RawDisk\x12\x1f\n\x0e\x63ontainer_type\x18\xb8\xc8\x82\x98\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\rsha1_checksum\x18\xbd\x94\xf8\x95\x01 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\x02\x88\x01\x01\"8\n\rContainerType\x12\x1c\n\x18UNDEFINED_CONTAINER_TYPE\x10\x00\x12\t\n\x03TAR\x10\x85\x87\x05\x42\x11\n\x0f_container_typeB\x10\n\x0e_sha1_checksumB\t\n\x07_source\"\xd7\x02\n,RecreateInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x93\x01\n;instance_group_managers_recreate_instances_request_resource\x18\x80\xc2\x9a\n \x01(\x0b\x32\x46.google.cloud.compute.v1.InstanceGroupManagersRecreateInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xdb\x02\n2RecreateInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x8d\x01\n8region_instance_group_managers_recreate_request_resource\x18\x94\xfc\xc4Q \x01(\x0b\x32\x43.google.cloud.compute.v1.RegionInstanceGroupManagersRecreateRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa8\x01\n\tReference\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x0ereference_type\x18\xae\xbf\x83v \x01(\tH\x01\x88\x01\x01\x12\x19\n\x08referrer\x18\x9f\xf8\xb9\xa7\x01 \x01(\tH\x02\x88\x01\x01\x12\x16\n\x06target\x18\x91\xe3\xf9[ \x01(\tH\x03\x88\x01\x01\x42\x07\n\x05_kindB\x11\n\x0f_reference_typeB\x0b\n\t_referrerB\t\n\x07_target\"\x84\x05\n\x06Region\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12R\n\x14quota_status_warning\x18\xf6\x89\xba\x90\x01 \x01(\x0b\x32+.google.cloud.compute.v1.QuotaStatusWarningH\x06\x88\x01\x01\x12\x31\n\x06quotas\x18\xfb\xa1\xe2; \x03(\x0b\x32\x1e.google.cloud.compute.v1.Quota\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0csupports_pzs\x18\xee\xf6\x85( \x01(\x08H\t\x88\x01\x01\x12\x10\n\x05zones\x18\xc7\xa4\xad\x37 \x03(\t\"4\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x17\n\x15_quota_status_warningB\x0c\n\n_self_linkB\t\n\x07_statusB\x0f\n\r_supports_pzs\"\x88\x01\n\x1aRegionAddressesMoveRequest\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12$\n\x13\x64\x65stination_address\x18\xc3\xb1\x9e\xb1\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x16\n\x14_destination_address\"\xab\x02\n\x14RegionAutoscalerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Autoscaler\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa7\x02\n\x12RegionDiskTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.DiskType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"E\n%RegionDisksAddResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"H\n(RegionDisksRemoveResourcePoliciesRequest\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\"@\n\x18RegionDisksResizeRequest\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x00\x88\x01\x01\x42\n\n\x08_size_gb\"h\n\'RegionDisksStartAsyncReplicationRequest\x12$\n\x14\x61sync_secondary_disk\x18\xab\x83\xe3> \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_async_secondary_disk\"\xb1\x02\n\x17RegionInstanceGroupList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x38\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32&.google.cloud.compute.v1.InstanceGroup\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"E\n1RegionInstanceGroupManagerDeleteInstanceConfigReq\x12\x10\n\x05names\x18\xc8\xae\xef\x31 \x03(\t\"\xbf\x02\n\x1eRegionInstanceGroupManagerList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12?\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32-.google.cloud.compute.v1.InstanceGroupManager\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x80\x01\n0RegionInstanceGroupManagerPatchInstanceConfigReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"\x81\x01\n1RegionInstanceGroupManagerUpdateInstanceConfigReq\x12L\n\x14per_instance_configs\x18\xa9\xd5\xf8\xfa\x01 \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"J\n2RegionInstanceGroupManagersAbandonInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"\xfb\x02\n.RegionInstanceGroupManagersApplyUpdatesRequest\x12\x1e\n\rall_instances\x18\xe0\xba\xbe\xc0\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x01\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x02\x88\x01\x01\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\x42\x10\n\x0e_all_instancesB\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_action\"u\n1RegionInstanceGroupManagersCreateInstancesRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\"\xa4\x01\n1RegionInstanceGroupManagersDeleteInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x32\n\"skip_instances_on_validation_error\x18\xa1\xf6\xaf\x13 \x01(\x08H\x00\x88\x01\x01\x42%\n#_skip_instances_on_validation_error\"\xaa\x01\n-RegionInstanceGroupManagersListErrorsResponse\x12\x44\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x32.google.cloud.compute.v1.InstanceManagedByIgmError\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"\xee\x01\n2RegionInstanceGroupManagersListInstanceConfigsResp\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.PerInstanceConfig\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x01\x88\x01\x01\x42\x12\n\x10_next_page_tokenB\n\n\x08_warning\"\xb0\x01\n0RegionInstanceGroupManagersListInstancesResponse\x12G\n\x11managed_instances\x18\xde\x9b\xa9\xa0\x01 \x03(\x0b\x32(.google.cloud.compute.v1.ManagedInstance\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_next_page_token\"B\n*RegionInstanceGroupManagersRecreateRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"I\n1RegionInstanceGroupManagersResumeInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"y\n0RegionInstanceGroupManagersSetTargetPoolsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\tB\x0e\n\x0c_fingerprint\"i\n-RegionInstanceGroupManagersSetTemplateRequest\x12\"\n\x11instance_template\x18\xe4\x81\xbb\x93\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_instance_template\"H\n0RegionInstanceGroupManagersStartInstancesRequest\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\"r\n/RegionInstanceGroupManagersStopInstancesRequest\x12\x1a\n\nforce_stop\x18\xd6\xa1\xa1@ \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\r\n\x0b_force_stop\"{\n2RegionInstanceGroupManagersSuspendInstancesRequest\x12\x1d\n\rforce_suspend\x18\xe8\xed\x96\r \x01(\x08H\x00\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\tB\x10\n\x0e_force_suspend\"\xc4\x02\n!RegionInstanceGroupsListInstances\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x41\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32/.google.cloud.compute.v1.InstanceWithNamedPorts\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd0\x01\n(RegionInstanceGroupsListInstancesRequest\x12\x1e\n\x0einstance_state\x18\xe7\xf0\xfc+ \x01(\tH\x00\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x01\x88\x01\x01\"H\n\rInstanceState\x12\x1c\n\x18UNDEFINED_INSTANCE_STATE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12\x0e\n\x07RUNNING\x10\x9f\xc3\xea\x39\x42\x11\n\x0f_instance_stateB\x0c\n\n_port_name\"\x94\x01\n(RegionInstanceGroupsSetNamedPortsRequest\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12;\n\x0bnamed_ports\x18\x8c\xc7\xf2\xcb\x01 \x03(\x0b\x32\".google.cloud.compute.v1.NamedPortB\x0e\n\x0c_fingerprint\"\x9d\x02\n\nRegionList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x31\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1f.google.cloud.compute.v1.Region\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"{\n1RegionNetworkEndpointGroupsAttachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"{\n1RegionNetworkEndpointGroupsDetachEndpointsRequest\x12\x46\n\x11network_endpoints\x18\xad\x91\xbaG \x03(\x0b\x32(.google.cloud.compute.v1.NetworkEndpoint\"\x81\x02\n:RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse\x12\x88\x01\n\x10\x66irewall_policys\x18\xc2\xca\xfc\xc3\x01 \x03(\x0b\x32j.google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x38\n\tfirewalls\x18\xf3\xc6\xe8\x81\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Firewall\"\x94\x04\nQRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy\x12\x1c\n\x0c\x64isplay_name\x18\xe8\x87\x91\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12O\n\x16packet_mirroring_rules\x18\xc4\xff\xc0\xfd\x01 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x02\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.FirewallPolicyRule\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x03\x88\x01\x01\"\x99\x01\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\tHIERARCHY\x10\x95\xc4\xaa!\x12\x0f\n\x07NETWORK\x10\x8e\xcc\xb3\xc5\x01\x12\x17\n\x10NETWORK_REGIONAL\x10\xb0\xe2\xfdZ\x12\x14\n\rSYSTEM_GLOBAL\x10\xb3\x97\xd4\x1c\x12\x16\n\x0fSYSTEM_REGIONAL\x10\xaf\x8c\x92M\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x0f\n\r_display_nameB\x07\n\x05_nameB\x0b\n\t_priorityB\x07\n\x05_type\"\xd1\x01\n\x16RegionSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12O\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32;.google.cloud.compute.v1.RegionSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"\xb3\x01\n\x16RegionSetPolicyRequest\x12\x36\n\x08\x62indings\x18\x8e\xc5\xa4\xc0\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Binding\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06policy\x18\xb2\xca\xb6+ \x01(\x0b\x32\x1f.google.cloud.compute.v1.PolicyH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_policy\"Q\n1RegionTargetHttpsProxiesSetSslCertificatesRequest\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\"f\n\x1cRegionUrlMapsValidateRequest\x12\x39\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapH\x00\x88\x01\x01\x42\x0b\n\t_resource\"\x94\x01\n&RemoveAssociationFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_request_id\"\xbe\x01\n-RemoveAssociationNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_request_id\"\xe5\x01\n3RemoveAssociationRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\r\n\x0b_request_id\"\xb3\x02\n\"RemoveHealthCheckTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12\x80\x01\n1target_pools_remove_health_check_request_resource\x18\xb3\xe7\xb6\x91\x01 \x01(\x0b\x32<.google.cloud.compute.v1.TargetPoolsRemoveHealthCheckRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n\x1fRemoveInstanceTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12x\n-target_pools_remove_instance_request_resource\x18\x83\xc0\x8b\x0e \x01(\x0b\x32\x39.google.cloud.compute.v1.TargetPoolsRemoveInstanceRequestB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb4\x02\n#RemoveInstancesInstanceGroupRequest\x12\x1e\n\x0einstance_group\x18\xd5\xd4\xd5& \x01(\tB\x03\xe0\x41\x02\x12\x81\x01\n1instance_groups_remove_instances_request_resource\x18\xb9\xd1\xb7\xba\x01 \x01(\x0b\x32=.google.cloud.compute.v1.InstanceGroupsRemoveInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcf\x01\n5RemovePacketMirroringRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xf6\x01\n\x1bRemovePeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12p\n(networks_remove_peering_request_resource\x18\xfe\xdb\xe9\xc8\x01 \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworksRemovePeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa3\x02\n!RemoveResourcePoliciesDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12}\n/disks_remove_resource_policies_request_resource\x18\xee\xc1\xa1\xd0\x01 \x01(\x0b\x32;.google.cloud.compute.v1.DisksRemoveResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb3\x02\n%RemoveResourcePoliciesInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x84\x01\n3instances_remove_resource_policies_request_resource\x18\xf6\xdd\xbc\x17 \x01(\x0b\x32?.google.cloud.compute.v1.InstancesRemoveResourcePoliciesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xba\x02\n\'RemoveResourcePoliciesRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x89\x01\n6region_disks_remove_resource_policies_request_resource\x18\xa3\xc3\x95\x04 \x01(\x0b\x32\x41.google.cloud.compute.v1.RegionDisksRemoveResourcePoliciesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x96\x01\n\x1fRemoveRuleFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xc0\x01\n&RemoveRuleNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xe7\x01\n,RemoveRuleRegionNetworkFirewallPolicyRequest\x12 \n\x0f\x66irewall_policy\x18\xd1\x8a\xc6\xed\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_priorityB\r\n\x0b_request_id\"\xb4\x01\n%RemoveRuleRegionSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\x0b\n\t_priority\"\x8d\x01\n\x1fRemoveRuleSecurityPolicyRequest\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tB\x03\xe0\x41\x02\x42\x0b\n\t_priority\"\xa8\x02\n!ReportHostAsFaultyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12~\n0instances_report_host_as_faulty_request_resource\x18\xa6\x94\xcd\xeb\x01 \x01(\x0b\x32;.google.cloud.compute.v1.InstancesReportHostAsFaultyRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"K\n\x13RequestMirrorPolicy\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_backend_service\"\x8b\x02\n\"RequestRemovePeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12~\n0networks_request_remove_peering_request_resource\x18\xce\xe4\xf7G \x01(\x0b\x32<.google.cloud.compute.v1.NetworksRequestRemovePeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x95\x10\n\x0bReservation\x12k\n\x1b\x61\x64vanced_deployment_control\x18\xa0\x92\xe6\xc3\x01 \x01(\x0b\x32=.google.cloud.compute.v1.ReservationAdvancedDeploymentControlH\x00\x88\x01\x01\x12_\n\x15\x61ggregate_reservation\x18\xcc\xf2\x83\x8b\x01 \x01(\x0b\x32\x37.google.cloud.compute.v1.AllocationAggregateReservationH\x01\x88\x01\x01\x12\x1b\n\ncommitment\x18\x95\x96\xf3\xe5\x01 \x01(\tH\x02\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x03\x88\x01\x01\x12I\n\x15\x64\x65lete_after_duration\x18\xab\x9b\xbf\x9a\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x04\x88\x01\x01\x12\x1e\n\x0e\x64\x65lete_at_time\x18\xc5\xf1\xdb\' \x01(\tH\x05\x88\x01\x01\x12 \n\x0f\x64\x65ployment_type\x18\xf4\x80\x96\xbd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x07\x88\x01\x01\x12,\n\x1b\x65nable_emergent_maintenance\x18\x89\xe2\xd7\xa8\x01 \x01(\x08H\x08\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\t\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\n\x88\x01\x01\x12\x1e\n\x12linked_commitments\x18\xd8\xfd\xc8\xe0\x01 \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0b\x88\x01\x01\x12g\n\x1areservation_sharing_policy\x18\xc8\xb5\x9b\x62 \x01(\x0b\x32;.google.cloud.compute.v1.AllocationReservationSharingPolicyH\x0c\x88\x01\x01\x12X\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\x0b\x32:.google.cloud.compute.v1.Reservation.ResourcePoliciesEntry\x12R\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x31.google.cloud.compute.v1.AllocationResourceStatusH\r\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x0e\x88\x01\x01\x12\x1f\n\x0fscheduling_type\x18\x85\xfe\xa4_ \x01(\tH\x0f\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x10\x88\x01\x01\x12\x46\n\x0eshare_settings\x18\x83\x91\x94\x7f \x01(\x0b\x32&.google.cloud.compute.v1.ShareSettingsH\x11\x88\x01\x01\x12`\n\x14specific_reservation\x18\xbf\xa0\x89\xc1\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.AllocationSpecificSKUReservationH\x12\x88\x01\x01\x12-\n\x1dspecific_reservation_required\x18\x9f\xc7\x83l \x01(\x08H\x13\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x14\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x15\x88\x01\x01\x1a\x37\n\x15ResourcePoliciesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"a\n\x0e\x44\x65ploymentType\x12\x1d\n\x19UNDEFINED_DEPLOYMENT_TYPE\x10\x00\x12\x0c\n\x05\x44\x45NSE\x10\xff\x95\xfb\x1e\x12\"\n\x1b\x44\x45PLOYMENT_TYPE_UNSPECIFIED\x10\xcc\xf7\xfdo\"\x80\x01\n\x0eSchedulingType\x12\x1d\n\x19UNDEFINED_SCHEDULING_TYPE\x10\x00\x12\x0f\n\x07GROUPED\x10\xbe\xd6\xa3\xe2\x01\x12*\n\"GROUP_MAINTENANCE_TYPE_UNSPECIFIED\x10\xbe\xf6\x9d\xd5\x01\x12\x12\n\x0bINDEPENDENT\x10\xda\x96\xc8<\"s\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x42\x1e\n\x1c_advanced_deployment_controlB\x18\n\x16_aggregate_reservationB\r\n\x0b_commitmentB\x15\n\x13_creation_timestampB\x18\n\x16_delete_after_durationB\x11\n\x0f_delete_at_timeB\x12\n\x10_deployment_typeB\x0e\n\x0c_descriptionB\x1e\n\x1c_enable_emergent_maintenanceB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x1d\n\x1b_reservation_sharing_policyB\x12\n\x10_resource_statusB\x10\n\x0e_satisfies_pzsB\x12\n\x10_scheduling_typeB\x0c\n\n_self_linkB\x11\n\x0f_share_settingsB\x17\n\x15_specific_reservationB \n\x1e_specific_reservation_requiredB\t\n\x07_statusB\x07\n\x05_zone\"\xaa\x02\n$ReservationAdvancedDeploymentControl\x12-\n\x1creservation_operational_mode\x18\x83\xa4\xb4\xee\x01 \x01(\tH\x00\x88\x01\x01\"\xb1\x01\n\x1aReservationOperationalMode\x12*\n&UNDEFINED_RESERVATION_OPERATIONAL_MODE\x10\x00\x12\x14\n\x0c\x41LL_CAPACITY\x10\xb8\xb3\xb7\xee\x01\x12 \n\x19HIGHLY_AVAILABLE_CAPACITY\x10\xa0\xba\xee\x34\x12/\n(RESERVATION_OPERATIONAL_MODE_UNSPECIFIED\x10\x9b\xf6\xd2\\B\x1f\n\x1d_reservation_operational_mode\"\xb0\x02\n\x13ReservationAffinity\x12)\n\x18\x63onsume_reservation_type\x18\xb0\xc3\xb3\x8f\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x06values\x18\xa2\xba\x96w \x03(\t\"\xa1\x01\n\x16\x43onsumeReservationType\x12&\n\"UNDEFINED_CONSUME_RESERVATION_TYPE\x10\x00\x12\x16\n\x0f\x41NY_RESERVATION\x10\xb9\xc3\xaf_\x12\x15\n\x0eNO_RESERVATION\x10\xae\xcc\xdeP\x12\x1b\n\x14SPECIFIC_RESERVATION\x10\x9f\xa8\xcfm\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x1b\n\x19_consume_reservation_typeB\x06\n\x04_key\"\xc2\x03\n\x19ReservationAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.ReservationAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.ReservationsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xf2\x07\n\x10ReservationBlock\x12\x15\n\x05\x63ount\x18\x8f\xa2\x9d- \x01(\x05H\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12P\n\x0bhealth_info\x18\xb1\xe9\x98p \x01(\x0b\x32\x33.google.cloud.compute.v1.ReservationBlockHealthInfoH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x1d\n\x0cin_use_count\x18\xbd\xab\xa6\xeb\x01 \x01(\x05H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12]\n\x11physical_topology\x18\xd7\xa9\xb4\x85\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.ReservationBlockPhysicalTopologyH\x07\x88\x01\x01\x12W\n\x17reservation_maintenance\x18\xa0\x86\xb5\xa2\x01 \x01(\x0b\x32-.google.cloud.compute.v1.GroupMaintenanceInfoH\x08\x88\x01\x01\x12,\n\x1breservation_sub_block_count\x18\xeb\xb1\xdd\x9d\x01 \x01(\x05H\t\x88\x01\x01\x12\x32\n\"reservation_sub_block_in_use_count\x18\xe1\xfc\xd8X \x01(\x05H\n\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0b\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\r\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0e\x88\x01\x01\"a\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x08\n\x06_countB\x15\n\x13_creation_timestampB\x0e\n\x0c_health_infoB\x05\n\x03_idB\x0f\n\r_in_use_countB\x07\n\x05_kindB\x07\n\x05_nameB\x14\n\x12_physical_topologyB\x1a\n\x18_reservation_maintenanceB\x1e\n\x1c_reservation_sub_block_countB%\n#_reservation_sub_block_in_use_countB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\t\n\x07_statusB\x07\n\x05_zone\"\xce\x02\n\x1aReservationBlockHealthInfo\x12)\n\x18\x64\x65graded_sub_block_count\x18\xcd\xe8\xb4\xda\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x01(\tH\x01\x88\x01\x01\x12\'\n\x17healthy_sub_block_count\x18\xbc\xb9\xc6\x02 \x01(\x05H\x02\x88\x01\x01\"q\n\x0cHealthStatus\x12\x1b\n\x17UNDEFINED_HEALTH_STATUS\x10\x00\x12\x10\n\x08\x44\x45GRADED\x10\xae\xa6\xa0\xbd\x01\x12\x0f\n\x07HEALTHY\x10\xfd\xaa\xdb\xd1\x01\x12!\n\x19HEALTH_STATUS_UNSPECIFIED\x10\x8d\x82\xfa\xe5\x01\x42\x1b\n\x19_degraded_sub_block_countB\x10\n\x0e_health_statusB\x1a\n\x18_healthy_sub_block_count\"\xc2\x01\n ReservationBlockPhysicalTopology\x12\x15\n\x05\x62lock\x18\x8d\x89\xdf, \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07\x63luster\x18\xfa\xa3\xec\x9f\x01 \x01(\tH\x01\x88\x01\x01\x12W\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32\x41.google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstanceB\x08\n\x06_blockB\n\n\x08_cluster\"\x9d\x02\n(ReservationBlockPhysicalTopologyInstance\x12\x1b\n\x0binstance_id\x18\x85\xb2\xd8\x15 \x01(\x04H\x00\x88\x01\x01\x12~\n\x16physical_host_topology\x18\xbe\x93\xaf\xba\x01 \x01(\x0b\x32U.google.cloud.compute.v1.ReservationBlockPhysicalTopologyInstancePhysicalHostTopologyH\x01\x88\x01\x01\x12\x1a\n\nproject_id\x18\x81\xc8\xd2T \x01(\x04H\x02\x88\x01\x01\x42\x0e\n\x0c_instance_idB\x19\n\x17_physical_host_topologyB\r\n\x0b_project_id\"\x87\x01\n\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32,.google.cloud.compute.v1.ReservationSubBlock\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfa\x01\n+ReservationsBlocksPerformMaintenanceRequest\x12!\n\x11maintenance_scope\x18\xa8\xf4\x8a\x43 \x01(\tH\x00\x88\x01\x01\"\x91\x01\n\x10MaintenanceScope\x12\x1f\n\x1bUNDEFINED_MAINTENANCE_SCOPE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12$\n\x1dMAINTENANCE_SCOPE_UNSPECIFIED\x10\xc0\x9e\xcb%\x12\x13\n\x0bRUNNING_VMS\x10\xdc\xeb\xbc\xff\x01\x12\x16\n\x0fUNUSED_CAPACITY\x10\x83\xda\xb7\x65\x42\x14\n\x12_maintenance_scope\"\xf4\x01\n%ReservationsPerformMaintenanceRequest\x12!\n\x11maintenance_scope\x18\xa8\xf4\x8a\x43 \x01(\tH\x00\x88\x01\x01\"\x91\x01\n\x10MaintenanceScope\x12\x1f\n\x1bUNDEFINED_MAINTENANCE_SCOPE\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12$\n\x1dMAINTENANCE_SCOPE_UNSPECIFIED\x10\xc0\x9e\xcb%\x12\x13\n\x0bRUNNING_VMS\x10\xdc\xeb\xbc\xff\x01\x12\x16\n\x0fUNUSED_CAPACITY\x10\x83\xda\xb7\x65\x42\x14\n\x12_maintenance_scope\"V\n\x19ReservationsResizeRequest\x12\"\n\x12specific_sku_count\x18\xa0\xe9\xcf\x06 \x01(\x03H\x00\x88\x01\x01\x42\x15\n\x13_specific_sku_count\"\x9f\x01\n\x16ReservationsScopedList\x12>\n\x0creservations\x18\xa7\xec\xcc\xbe\x01 \x03(\x0b\x32$.google.cloud.compute.v1.Reservation\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x9b\x01\n\x14ResetInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf0\x01\n\x11ResizeDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12Z\n\x1d\x64isks_resize_request_resource\x18\xa0\xc2\xab% \x01(\x0b\x32+.google.cloud.compute.v1.DisksResizeRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcc\x01\n!ResizeInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x88\x02\n\x17ResizeRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12h\n$region_disks_resize_request_resource\x18\x95\xaa\xfc\xd4\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.RegionDisksResizeRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd6\x01\n\'ResizeRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04size\x18\x81\xc0\xd7\x01 \x01(\x05\x42\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x8d\x02\n\x18ResizeReservationRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12i\n$reservations_resize_request_resource\x18\xd1\xdb\xce\xb9\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.ReservationsResizeRequestB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x82\x02\n\x12ResourceCommitment\x12 \n\x10\x61\x63\x63\x65lerator_type\x18\x8e\xe1\xe8\x41 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06\x61mount\x18\xd8\xa0\xe9] \x01(\x03H\x01\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x02\x88\x01\x01\"s\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x13\n\x0b\x41\x43\x43\x45LERATOR\x10\xcb\xec\xf9\xcc\x01\x12\x11\n\tLOCAL_SSD\x10\xf0\xf5\xd6\xf2\x01\x12\r\n\x06MEMORY\x10\x81\xe2\xd6:\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x12\x0b\n\x04VCPU\x10\xf2\xba\xa0\x01\x42\x13\n\x11_accelerator_typeB\t\n\x07_amountB\x07\n\x05_type\"9\n\x16ResourceGroupReference\x12\x15\n\x05group\x18\xff\xec\x83/ \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_group\"\xaa\x01\n\x1aResourcePoliciesScopedList\x12\x45\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xae\t\n\x0eResourcePolicy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12q\n\x1d\x64isk_consistency_group_policy\x18\x9b\x84\xf2\xe1\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.ResourcePolicyDiskConsistencyGroupPolicyH\x02\x88\x01\x01\x12\x63\n\x16group_placement_policy\x18\x8c\x9b\x9b\x05 \x01(\x0b\x32;.google.cloud.compute.v1.ResourcePolicyGroupPlacementPolicyH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12h\n\x18instance_schedule_policy\x18\xb0\xd0\xb9\xa4\x01 \x01(\x0b\x32=.google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicyH\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12V\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x35.google.cloud.compute.v1.ResourcePolicyResourceStatusH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12g\n\x18snapshot_schedule_policy\x18\xdf\xd6\x81h \x01(\x0b\x32=.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyH\x0b\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0c\x88\x01\x01\x12V\n\x0fworkload_policy\x18\xfa\x85\xda\x36 \x01(\x0b\x32\x35.google.cloud.compute.v1.ResourcePolicyWorkloadPolicyH\r\x88\x01\x01\"r\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0f\n\x07\x45XPIRED\x10\x85\xe6\x88\xe6\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB \n\x1e_disk_consistency_group_policyB\x19\n\x17_group_placement_policyB\x05\n\x03_idB\x1b\n\x19_instance_schedule_policyB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_resource_statusB\x0c\n\n_self_linkB\x1b\n\x19_snapshot_schedule_policyB\t\n\x07_statusB\x12\n\x10_workload_policy\"\xeb\x03\n\x1cResourcePolicyAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.ResourcePolicyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.ResourcePoliciesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9e\x01\n\x18ResourcePolicyDailyCycle\x12\x1e\n\rdays_in_cycle\x18\xb4\x98\xaa\xb0\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_days_in_cycleB\x0b\n\t_durationB\r\n\x0b_start_time\"*\n(ResourcePolicyDiskConsistencyGroupPolicy\"\xcf\x02\n\"ResourcePolicyGroupPlacementPolicy\x12)\n\x19\x61vailability_domain_count\x18\xb8\x8c\xf8\x05 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0b\x63ollocation\x18\xb5\xc2\xde\xf3\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0cgpu_topology\x18\xa2\xc9\x9dv \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08vm_count\x18\x87\xbb\xd6| \x01(\x05H\x03\x88\x01\x01\"\\\n\x0b\x43ollocation\x12\x19\n\x15UNDEFINED_COLLOCATION\x10\x00\x12\x11\n\nCOLLOCATED\x10\xd2\xab\x9e\x31\x12\x1f\n\x17UNSPECIFIED_COLLOCATION\x10\xed\x8f\xb3\xdd\x01\x42\x1c\n\x1a_availability_domain_countB\x0e\n\x0c_collocationB\x0f\n\r_gpu_topologyB\x0b\n\t_vm_count\"\xa1\x01\n\x19ResourcePolicyHourlyCycle\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0ehours_in_cycle\x18\xfc\x88\x97\xfb\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_durationB\x11\n\x0f_hours_in_cycleB\r\n\x0b_start_time\"\xae\x03\n$ResourcePolicyInstanceSchedulePolicy\x12\x1f\n\x0f\x65xpiration_time\x18\xdd\xac\xe8m \x01(\tH\x00\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x01\x88\x01\x01\x12\x19\n\ttime_zone\x18\xde\x83\xc9\x11 \x01(\tH\x02\x88\x01\x01\x12h\n\x11vm_start_schedule\x18\xdc\x90\xbc\x08 \x01(\x0b\x32\x45.google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicyScheduleH\x03\x88\x01\x01\x12h\n\x10vm_stop_schedule\x18\xac\xe5\x9f\xcb\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.ResourcePolicyInstanceSchedulePolicyScheduleH\x04\x88\x01\x01\x42\x12\n\x10_expiration_timeB\r\n\x0b_start_timeB\x0c\n\n_time_zoneB\x14\n\x12_vm_start_scheduleB\x13\n\x11_vm_stop_schedule\"V\n,ResourcePolicyInstanceSchedulePolicySchedule\x12\x19\n\x08schedule\x18\x97\xa5\x9a\xb3\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_schedule\"\xcc\x02\n\x12ResourcePolicyList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.ResourcePolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb9\x01\n\x1cResourcePolicyResourceStatus\x12|\n\x18instance_schedule_policy\x18\xb0\xd0\xb9\xa4\x01 \x01(\x0b\x32Q.google.cloud.compute.v1.ResourcePolicyResourceStatusInstanceSchedulePolicyStatusH\x00\x88\x01\x01\x42\x1b\n\x19_instance_schedule_policy\"\xb6\x01\n8ResourcePolicyResourceStatusInstanceSchedulePolicyStatus\x12$\n\x13last_run_start_time\x18\x87\xef\xc1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12$\n\x13next_run_start_time\x18\x8a\xb3\xf8\x97\x01 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_last_run_start_timeB\x16\n\x14_next_run_start_time\"\xa8\x03\n$ResourcePolicySnapshotSchedulePolicy\x12n\n\x10retention_policy\x18\xf3\xca\xdc \x01(\x0b\x32L.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyRetentionPolicyH\x00\x88\x01\x01\x12`\n\x08schedule\x18\x97\xa5\x9a\xb3\x01 \x01(\x0b\x32\x45.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicyScheduleH\x01\x88\x01\x01\x12t\n\x13snapshot_properties\x18\x8e\x95\xb2X \x01(\x0b\x32O.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesH\x02\x88\x01\x01\x42\x13\n\x11_retention_policyB\x0b\n\t_scheduleB\x16\n\x14_snapshot_properties\"\xd5\x02\n3ResourcePolicySnapshotSchedulePolicyRetentionPolicy\x12#\n\x12max_retention_days\x18\x93\xc2\xd1\x9a\x01 \x01(\x05H\x00\x88\x01\x01\x12&\n\x15on_source_disk_delete\x18\xc9\xcd\xc2\x99\x01 \x01(\tH\x01\x88\x01\x01\"\x9f\x01\n\x12OnSourceDiskDelete\x12#\n\x1fUNDEFINED_ON_SOURCE_DISK_DELETE\x10\x00\x12\x1e\n\x16\x41PPLY_RETENTION_POLICY\x10\xe4\x94\x92\xff\x01\x12\x1a\n\x13KEEP_AUTO_SNAPSHOTS\x10\xf9\xc8\xbb{\x12(\n!UNSPECIFIED_ON_SOURCE_DISK_DELETE\x10\xa1\xff\x83rB\x15\n\x13_max_retention_daysB\x18\n\x16_on_source_disk_delete\"\xe7\x02\n,ResourcePolicySnapshotSchedulePolicySchedule\x12Q\n\x0e\x64\x61ily_schedule\x18\xfd\xe3\x8a) \x01(\x0b\x32\x31.google.cloud.compute.v1.ResourcePolicyDailyCycleH\x00\x88\x01\x01\x12S\n\x0fhourly_schedule\x18\xa5\xb1\xa3\x12 \x01(\x0b\x32\x32.google.cloud.compute.v1.ResourcePolicyHourlyCycleH\x01\x88\x01\x01\x12T\n\x0fweekly_schedule\x18\x95\x89\xb9\xab\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.ResourcePolicyWeeklyCycleH\x02\x88\x01\x01\x42\x11\n\x0f_daily_scheduleB\x12\n\x10_hourly_scheduleB\x12\n\x10_weekly_schedule\"\xd0\x02\n6ResourcePolicySnapshotSchedulePolicySnapshotProperties\x12\x1a\n\nchain_name\x18\xc9\xda\xdd \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\x01\x88\x01\x01\x12o\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32[.google.cloud.compute.v1.ResourcePolicySnapshotSchedulePolicySnapshotProperties.LabelsEntry\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\r\n\x0b_chain_nameB\x0e\n\x0c_guest_flush\"q\n\x19ResourcePolicyWeeklyCycle\x12T\n\x0c\x64\x61y_of_weeks\x18\xda\x9f\xfbz \x03(\x0b\x32;.google.cloud.compute.v1.ResourcePolicyWeeklyCycleDayOfWeek\"\xb4\x02\n\"ResourcePolicyWeeklyCycleDayOfWeek\x12\x12\n\x03\x64\x61y\x18\x9c\x87\x06 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x64uration\x18\x94\x9b\x91J \x01(\tH\x01\x88\x01\x01\x12\x1a\n\nstart_time\x18\x8a\xe9\xee\x11 \x01(\tH\x02\x88\x01\x01\"\x9f\x01\n\x03\x44\x61y\x12\x11\n\rUNDEFINED_DAY\x10\x00\x12\x0e\n\x06\x46RIDAY\x10\xdf\xf2\xe3\xe0\x01\x12\x0f\n\x07INVALID\x10\xd7\xfb\xed\xfc\x01\x12\r\n\x06MONDAY\x10\x90\xca\x8b?\x12\x10\n\x08SATURDAY\x10\xb9\x8f\x87\x85\x01\x12\x0e\n\x06SUNDAY\x10\xd0\x8b\xd2\x93\x01\x12\x0f\n\x08THURSDAY\x10\xda\xb3\xe6\x62\x12\x0f\n\x07TUESDAY\x10\xad\xec\xa9\x84\x01\x12\x11\n\tWEDNESDAY\x10\xb6\xce\x9e\xc9\x01\x42\x06\n\x04_dayB\x0b\n\t_durationB\r\n\x0b_start_time\"\xfa\x02\n\x1cResourcePolicyWorkloadPolicy\x12%\n\x14\x61\x63\x63\x65lerator_topology\x18\xc3\xb3\xd2\xb9\x01 \x01(\tH\x00\x88\x01\x01\x12%\n\x15max_topology_distance\x18\xaa\x8b\xcb\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x02\x88\x01\x01\"k\n\x13MaxTopologyDistance\x12#\n\x1fUNDEFINED_MAX_TOPOLOGY_DISTANCE\x10\x00\x12\x0c\n\x05\x42LOCK\x10\xed\x98\x97\x1e\x12\x0f\n\x07\x43LUSTER\x10\xda\xbb\x9a\xf6\x01\x12\x10\n\x08SUBBLOCK\x10\xcd\xbc\xe3\x96\x01\"M\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x19\n\x11HIGH_AVAILABILITY\x10\xd8\x91\xa1\xc3\x01\x12\x16\n\x0fHIGH_THROUGHPUT\x10\xe7\xd1\xed\x45\x42\x17\n\x15_accelerator_topologyB\x18\n\x16_max_topology_distanceB\x07\n\x05_type\"\x9e\x04\n\x0eResourceStatus\x12m\n\x1b\x65\x66\x66\x65\x63tive_instance_metadata\x18\x81\x8e\xa0\x1a \x01(\x0b\x32@.google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadataH\x00\x88\x01\x01\x12\x1e\n\rphysical_host\x18\x90\xf8\xb6\xdd\x01 \x01(\tH\x01\x88\x01\x01\x12\x64\n\x16physical_host_topology\x18\xbe\x93\xaf\xba\x01 \x01(\x0b\x32;.google.cloud.compute.v1.ResourceStatusPhysicalHostTopologyH\x02\x88\x01\x01\x12N\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32\x31.google.cloud.compute.v1.ResourceStatusSchedulingH\x03\x88\x01\x01\x12R\n\x14upcoming_maintenance\x18\xf0\xa0\xb4l \x01(\x0b\x32,.google.cloud.compute.v1.UpcomingMaintenanceH\x04\x88\x01\x01\x42\x1e\n\x1c_effective_instance_metadataB\x10\n\x0e_physical_hostB\x19\n\x17_physical_host_topologyB\r\n\x0b_schedulingB\x17\n\x15_upcoming_maintenance\"\x86\x06\n\'ResourceStatusEffectiveInstanceMetadata\x12\x36\n%block_project_ssh_keys_metadata_value\x18\xfd\xf4\xbb\xa1\x01 \x01(\x08H\x00\x88\x01\x01\x12\x37\n&enable_guest_attributes_metadata_value\x18\xe6\xa3\xac\xc8\x01 \x01(\x08H\x01\x88\x01\x01\x12\x33\n\"enable_os_inventory_metadata_value\x18\xe3\xfd\xa1\xb1\x01 \x01(\x08H\x02\x88\x01\x01\x12/\n\x1e\x65nable_osconfig_metadata_value\x18\xde\xd1\xea\xef\x01 \x01(\x08H\x03\x88\x01\x01\x12-\n\x1d\x65nable_oslogin_metadata_value\x18\x97\xb4\xa4g \x01(\x08H\x04\x88\x01\x01\x12\x32\n!serial_port_enable_metadata_value\x18\x8a\xed\xa5\xcd\x01 \x01(\x08H\x05\x88\x01\x01\x12:\n)serial_port_logging_enable_metadata_value\x18\xaa\xc9\xd7\x94\x01 \x01(\x08H\x06\x88\x01\x01\x12.\n\x1dvm_dns_setting_metadata_value\x18\x8e\xa1\x85\xc4\x01 \x01(\tH\x07\x88\x01\x01\x42(\n&_block_project_ssh_keys_metadata_valueB)\n\'_enable_guest_attributes_metadata_valueB%\n#_enable_os_inventory_metadata_valueB!\n\x1f_enable_osconfig_metadata_valueB \n\x1e_enable_oslogin_metadata_valueB$\n\"_serial_port_enable_metadata_valueB,\n*_serial_port_logging_enable_metadata_valueB \n\x1e_vm_dns_setting_metadata_value\"\xb1\x01\n\"ResourceStatusPhysicalHostTopology\x12\x15\n\x05\x62lock\x18\x8d\x89\xdf, \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07\x63luster\x18\xfa\xa3\xec\x9f\x01 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x08subblock\x18\xcd\xdc\xcb! \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_blockB\n\n\x08_clusterB\x07\n\x05_hostB\x0b\n\t_subblock\"W\n\x18ResourceStatusScheduling\x12#\n\x13\x61vailability_domain\x18\xa8\xa0\xb4x \x01(\x05H\x00\x88\x01\x01\x42\x16\n\x14_availability_domain\"\x9c\x01\n\x15ResumeInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xd1\x02\n*ResumeInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_resume_instances_request_resource\x18\xc2\xbe\xc2= \x01(\x0b\x32\x44.google.cloud.compute.v1.InstanceGroupManagersResumeInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe9\x02\n0ResumeInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\n@region_instance_group_managers_resume_instances_request_resource\x18\xb7\x83\x80\xdd\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagersResumeInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x96\x0c\n\x05Route\x12\x39\n\x08\x61s_paths\x18\xa1\xc5\xcc\x41 \x03(\x0b\x32$.google.cloud.compute.v1.RouteAsPath\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\ndest_range\x18\xe0\xb2\xea\xb5\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12!\n\x10next_hop_gateway\x18\x82\xfa\xec\xb3\x01 \x01(\tH\x07\x88\x01\x01\x12\x1c\n\x0cnext_hop_hub\x18\xb3\xb5\xde^ \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0cnext_hop_ilb\x18\xdd\xba\xde^ \x01(\tH\t\x88\x01\x01\x12\"\n\x11next_hop_instance\x18\x97\xeb\xd1\xbb\x01 \x01(\tH\n\x88\x01\x01\x12*\n\x1anext_hop_inter_region_cost\x18\x93\xe9\xd3\x0b \x01(\rH\x0b\x88\x01\x01\x12\x1b\n\x0bnext_hop_ip\x18\xa9\xaf\xcd\x34 \x01(\tH\x0c\x88\x01\x01\x12\x1c\n\x0cnext_hop_med\x18\x8a\xd7\xde^ \x01(\rH\r\x88\x01\x01\x12 \n\x10next_hop_network\x18\xec\xa1\x89} \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x0fnext_hop_origin\x18\xa8\xd1\x9f\x17 \x01(\tH\x0f\x88\x01\x01\x12!\n\x10next_hop_peering\x18\xfe\x93\xe4\xc4\x01 \x01(\tH\x10\x88\x01\x01\x12$\n\x13next_hop_vpn_tunnel\x18\x95\xe5\xf0\xf7\x01 \x01(\tH\x11\x88\x01\x01\x12<\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32$.google.cloud.compute.v1.RouteParamsH\x12\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\rH\x13\x88\x01\x01\x12\x1d\n\x0croute_status\x18\xa8\xcd\xb2\xc7\x01 \x01(\tH\x14\x88\x01\x01\x12\x1b\n\nroute_type\x18\xf0\xb6\x9e\xb3\x01 \x01(\tH\x15\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x16\x88\x01\x01\x12\x0f\n\x04tags\x18\x99\xe8\xd8\x01 \x03(\t\x12\x37\n\x08warnings\x18\xd7\x88\xc1\xed\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Warnings\"W\n\rNextHopOrigin\x12\x1d\n\x19UNDEFINED_NEXT_HOP_ORIGIN\x10\x00\x12\t\n\x03\x45GP\x10\xee\x97\x04\x12\t\n\x03IGP\x10\xf2\xb5\x04\x12\x11\n\nINCOMPLETE\x10\xde\xea\xd8\x05\"l\n\x0bRouteStatus\x12\x1a\n\x16UNDEFINED_ROUTE_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0f\n\x07\x44ROPPED\x10\xa0\xe7\xcf\xec\x01\x12\x10\n\x08INACTIVE\x10\xeb\x98\xf9\x80\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\"`\n\tRouteType\x12\x18\n\x14UNDEFINED_ROUTE_TYPE\x10\x00\x12\t\n\x03\x42GP\x10\xab\x81\x04\x12\x0e\n\x06STATIC\x10\xee\x84\x83\x93\x01\x12\x0e\n\x06SUBNET\x10\xdd\xee\xbc\x93\x01\x12\x0e\n\x07TRANSIT\x10\xb3\x83\xc6YB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\r\n\x0b_dest_rangeB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\x13\n\x11_next_hop_gatewayB\x0f\n\r_next_hop_hubB\x0f\n\r_next_hop_ilbB\x14\n\x12_next_hop_instanceB\x1d\n\x1b_next_hop_inter_region_costB\x0e\n\x0c_next_hop_ipB\x0f\n\r_next_hop_medB\x13\n\x11_next_hop_networkB\x12\n\x10_next_hop_originB\x13\n\x11_next_hop_peeringB\x16\n\x14_next_hop_vpn_tunnelB\t\n\x07_paramsB\x0b\n\t_priorityB\x0f\n\r_route_statusB\r\n\x0b_route_typeB\x0c\n\n_self_link\"\xe7\x01\n\x0bRouteAsPath\x12\x13\n\x08\x61s_lists\x18\xc8\xca\xf9? \x03(\r\x12\"\n\x11path_segment_type\x18\xa0\xb5\xeb\xf4\x01 \x01(\tH\x00\x88\x01\x01\"\x88\x01\n\x0fPathSegmentType\x12\x1f\n\x1bUNDEFINED_PATH_SEGMENT_TYPE\x10\x00\x12\x19\n\x12\x41S_CONFED_SEQUENCE\x10\xb0\x8f\xf7i\x12\x15\n\rAS_CONFED_SET\x10\xf3\xcd\xad\xb2\x01\x12\x12\n\x0b\x41S_SEQUENCE\x10\xae\xd2\xf2\x32\x12\x0e\n\x06\x41S_SET\x10\xb5\x9d\xa4\x9d\x01\x42\x14\n\x12_path_segment_type\"\x9b\x02\n\tRouteList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x30\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x01\n\x0bRouteParams\x12`\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32=.google.cloud.compute.v1.RouteParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc8\x02\n\x0bRoutePolicy\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x12@\n\x05terms\x18\x87\x93\xc9\x34 \x03(\x0b\x32..google.cloud.compute.v1.RoutePolicyPolicyTerm\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x03\x88\x01\x01\"^\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12 \n\x18ROUTE_POLICY_TYPE_EXPORT\x10\xa2\xcd\xe0\x8b\x01\x12 \n\x18ROUTE_POLICY_TYPE_IMPORT\x10\x93\x8d\xc2\xbd\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x07\n\x05_nameB\x07\n\x05_type\"\xb3\x01\n\x15RoutePolicyPolicyTerm\x12\x32\n\x07\x61\x63tions\x18\xfd\x91\x81\xd6\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Expr\x12\x34\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\x0b\x32\x1d.google.cloud.compute.v1.ExprH\x00\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_matchB\x0b\n\t_priority\"\xa4\x06\n\x06Router\x12\x36\n\x03\x62gp\x18\xcb\xf9\x05 \x01(\x0b\x32\".google.cloud.compute.v1.RouterBgpH\x00\x88\x01\x01\x12=\n\tbgp_peers\x18\xdd\xad\xee\xd7\x01 \x03(\x0b\x32&.google.cloud.compute.v1.RouterBgpPeer\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12.\n\x1d\x65ncrypted_interconnect_router\x18\x9f\xa2\x8c\x8e\x01 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12?\n\ninterfaces\x18\xda\xf4\xe0\x05 \x03(\x0b\x32(.google.cloud.compute.v1.RouterInterface\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12W\n\x17md5_authentication_keys\x18\x9a\xae\xf1! \x03(\x0b\x32\x33.google.cloud.compute.v1.RouterMd5AuthenticationKey\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x33\n\x04nats\x18\xf2\xf6\xcd\x01 \x03(\x0b\x32\".google.cloud.compute.v1.RouterNat\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12=\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32%.google.cloud.compute.v1.RouterParamsH\x08\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x42\x06\n\x04_bgpB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB \n\x1e_encrypted_interconnect_routerB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_paramsB\t\n\x07_regionB\x0c\n\n_self_link\"h\n\x17RouterAdvertisedIpRange\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05range\x18\xbd\xf2\xd0\x33 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_range\"\xb3\x03\n\x14RouterAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12J\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x38.google.cloud.compute.v1.RouterAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aX\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.google.cloud.compute.v1.RoutersScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd8\x03\n\tRouterBgp\x12\x1f\n\x0e\x61\x64vertise_mode\x18\xbb\x95\xeb\x94\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x11\x61\x64vertised_groups\x18\xb6\xde\x85\n \x03(\t\x12Q\n\x14\x61\x64vertised_ip_ranges\x18\xcc\xd8\xf3\x10 \x03(\x0b\x32\x30.google.cloud.compute.v1.RouterAdvertisedIpRange\x12\x12\n\x03\x61sn\x18\xfc\xf4\x05 \x01(\rH\x01\x88\x01\x01\x12!\n\x10identifier_range\x18\xa7\xcc\x95\xef\x01 \x01(\tH\x02\x88\x01\x01\x12#\n\x12keepalive_interval\x18\xbc\xe5\xfc\x83\x01 \x01(\rH\x03\x88\x01\x01\"M\n\rAdvertiseMode\x12\x1c\n\x18UNDEFINED_ADVERTISE_MODE\x10\x00\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\"G\n\x10\x41\x64vertisedGroups\x12\x1f\n\x1bUNDEFINED_ADVERTISED_GROUPS\x10\x00\x12\x12\n\x0b\x41LL_SUBNETS\x10\xd8\x8f\xdd\x01\x42\x11\n\x0f_advertise_modeB\x06\n\x04_asnB\x13\n\x11_identifier_rangeB\x15\n\x13_keepalive_interval\"\xa5\r\n\rRouterBgpPeer\x12\x1f\n\x0e\x61\x64vertise_mode\x18\xbb\x95\xeb\x94\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x11\x61\x64vertised_groups\x18\xb6\xde\x85\n \x03(\t\x12Q\n\x14\x61\x64vertised_ip_ranges\x18\xcc\xd8\xf3\x10 \x03(\x0b\x32\x30.google.cloud.compute.v1.RouterAdvertisedIpRange\x12)\n\x19\x61\x64vertised_route_priority\x18\xbc\x9c\xf6X \x01(\rH\x01\x88\x01\x01\x12=\n\x03\x62\x66\x64\x18\xa0\xf9\x05 \x01(\x0b\x32).google.cloud.compute.v1.RouterBgpPeerBfdH\x02\x88\x01\x01\x12`\n\x18\x63ustom_learned_ip_ranges\x18\xc4\x88\xc4\xe5\x01 \x03(\x0b\x32:.google.cloud.compute.v1.RouterBgpPeerCustomLearnedIpRange\x12.\n\x1d\x63ustom_learned_route_priority\x18\xc4\xe2\xc6\x9d\x01 \x01(\x05H\x03\x88\x01\x01\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv4\x18\xa1\xf6\xc3V \x01(\x08H\x05\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv6\x18\xa3\xf6\xc3V \x01(\x08H\x06\x88\x01\x01\x12\x1a\n\x0f\x65xport_policies\x18\xfb\xf2\xf7? \x03(\t\x12\x1b\n\x0fimport_policies\x18\xaa\xf1\x8f\xd7\x01 \x03(\t\x12\x1f\n\x0einterface_name\x18\xd1\xc3\xe4\xd0\x01 \x01(\tH\x07\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x08\x88\x01\x01\x12$\n\x14ipv4_nexthop_address\x18\xd1\x8d\xdc\x02 \x01(\tH\t\x88\x01\x01\x12$\n\x14ipv6_nexthop_address\x18\xd3\x85\xab\r \x01(\tH\n\x88\x01\x01\x12\x1f\n\x0fmanagement_type\x18\xb6\x83\xeaR \x01(\tH\x0b\x88\x01\x01\x12,\n\x1bmd5_authentication_key_name\x18\x91\xbd\x83\x86\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\r\x88\x01\x01\x12\x18\n\x08peer_asn\x18\x9f\xb4\x96! \x01(\rH\x0e\x88\x01\x01\x12\x1f\n\x0fpeer_ip_address\x18\xd9\x97\x87\x63 \x01(\tH\x0f\x88\x01\x01\x12*\n\x19peer_ipv4_nexthop_address\x18\x8e\x83\xdf\xdf\x01 \x01(\tH\x10\x88\x01\x01\x12*\n\x19peer_ipv6_nexthop_address\x18\x90\xfb\xad\xea\x01 \x01(\tH\x11\x88\x01\x01\x12*\n\x19router_appliance_instance\x18\x9d\xc7\xa7\xdf\x01 \x01(\tH\x12\x88\x01\x01\"M\n\rAdvertiseMode\x12\x1c\n\x18UNDEFINED_ADVERTISE_MODE\x10\x00\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\x0e\n\x07\x44\x45\x46\x41ULT\x10\xa1\xc4\xfd\x36\"G\n\x10\x41\x64vertisedGroups\x12\x1f\n\x1bUNDEFINED_ADVERTISED_GROUPS\x10\x00\x12\x12\n\x0b\x41LL_SUBNETS\x10\xd8\x8f\xdd\x01\"9\n\x06\x45nable\x12\x14\n\x10UNDEFINED_ENABLE\x10\x00\x12\x0c\n\x05\x46\x41LSE\x10\x83\xc2\xe4\x1f\x12\x0b\n\x04TRUE\x10\x8e\xdb\x9d\x01\"g\n\x0eManagementType\x12\x1d\n\x19UNDEFINED_MANAGEMENT_TYPE\x10\x00\x12\x1d\n\x15MANAGED_BY_ATTACHMENT\x10\xcb\xd2\xea\xda\x01\x12\x17\n\x0fMANAGED_BY_USER\x10\xf3\x8b\xa6\x97\x01\x42\x11\n\x0f_advertise_modeB\x1c\n\x1a_advertised_route_priorityB\x06\n\x04_bfdB \n\x1e_custom_learned_route_priorityB\t\n\x07_enableB\x0e\n\x0c_enable_ipv4B\x0e\n\x0c_enable_ipv6B\x11\n\x0f_interface_nameB\r\n\x0b_ip_addressB\x17\n\x15_ipv4_nexthop_addressB\x17\n\x15_ipv6_nexthop_addressB\x12\n\x10_management_typeB\x1e\n\x1c_md5_authentication_key_nameB\x07\n\x05_nameB\x0b\n\t_peer_asnB\x12\n\x10_peer_ip_addressB\x1c\n\x1a_peer_ipv4_nexthop_addressB\x1c\n\x1a_peer_ipv6_nexthop_addressB\x1c\n\x1a_router_appliance_instance\"\x86\x03\n\x10RouterBgpPeerBfd\x12$\n\x14min_receive_interval\x18\xee\xb9\x94Y \x01(\rH\x00\x88\x01\x01\x12&\n\x15min_transmit_interval\x18\xc7\xd1\xc2\xf9\x01 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\nmultiplier\x18\xc1\xfb\x9d[ \x01(\rH\x02\x88\x01\x01\x12+\n\x1bsession_initialization_mode\x18\xb9\x8d\xc3\x32 \x01(\tH\x03\x88\x01\x01\"y\n\x19SessionInitializationMode\x12)\n%UNDEFINED_SESSION_INITIALIZATION_MODE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x07PASSIVE\x10\x87\xf6\xd7\xdc\x01\x42\x17\n\x15_min_receive_intervalB\x18\n\x16_min_transmit_intervalB\r\n\x0b_multiplierB\x1e\n\x1c_session_initialization_mode\"D\n!RouterBgpPeerCustomLearnedIpRange\x12\x15\n\x05range\x18\xbd\xf2\xd0\x33 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_range\"\x95\x05\n\x0fRouterInterface\x12\x18\n\x08ip_range\x18\xa5\xe0\x97\x45 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nip_version\x18\xc0\xf3\xd2\x8c\x01 \x01(\tH\x01\x88\x01\x01\x12/\n\x1elinked_interconnect_attachment\x18\xce\xea\xf7\xee\x01 \x01(\tH\x02\x88\x01\x01\x12\"\n\x11linked_vpn_tunnel\x18\xf9\xbf\xfe\xa7\x01 \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x0fmanagement_type\x18\xb6\x83\xeaR \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x12private_ip_address\x18\x98\xd2\x8b\x30 \x01(\tH\x06\x88\x01\x01\x12$\n\x13redundant_interface\x18\xe7\xe8\xbc\xf9\x01 \x01(\tH\x07\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x08\x88\x01\x01\"?\n\tIpVersion\x12\x18\n\x14UNDEFINED_IP_VERSION\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\"g\n\x0eManagementType\x12\x1d\n\x19UNDEFINED_MANAGEMENT_TYPE\x10\x00\x12\x1d\n\x15MANAGED_BY_ATTACHMENT\x10\xcb\xd2\xea\xda\x01\x12\x17\n\x0fMANAGED_BY_USER\x10\xf3\x8b\xa6\x97\x01\x42\x0b\n\t_ip_rangeB\r\n\x0b_ip_versionB!\n\x1f_linked_interconnect_attachmentB\x14\n\x12_linked_vpn_tunnelB\x12\n\x10_management_typeB\x07\n\x05_nameB\x15\n\x13_private_ip_addressB\x16\n\x14_redundant_interfaceB\r\n\x0b_subnetwork\"\x9d\x02\n\nRouterList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x31\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1f.google.cloud.compute.v1.Router\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"W\n\x1aRouterMd5AuthenticationKey\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_keyB\x07\n\x05_name\"\xb5\x11\n\tRouterNat\x12\"\n\x11\x61uto_network_tier\x18\xe3\xbb\xd1\x80\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\rdrain_nat_ips\x18\xc7\xc1\xae\xf0\x01 \x03(\t\x12/\n\x1e\x65nable_dynamic_port_allocation\x18\xa2\x99\xdd\xfd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x33\n#enable_endpoint_independent_mapping\x18\x9b\x89\xdb{ \x01(\x08H\x02\x88\x01\x01\x12\x1a\n\x0e\x65ndpoint_types\x18\xcf\xaa\xd6\xef\x01 \x03(\t\x12%\n\x15icmp_idle_timeout_sec\x18\xca\xd0\xde\x01 \x01(\x05H\x03\x88\x01\x01\x12H\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32+.google.cloud.compute.v1.RouterNatLogConfigH\x04\x88\x01\x01\x12 \n\x10max_ports_per_vm\x18\xe1\xc9\x9ew \x01(\x05H\x05\x88\x01\x01\x12 \n\x10min_ports_per_vm\x18\xb3\xad\xe4X \x01(\x05H\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12Q\n\x11nat64_subnetworks\x18\xa5\xfb\xa8\x1e \x03(\x0b\x32\x33.google.cloud.compute.v1.RouterNatSubnetworkToNat64\x12\'\n\x16nat_ip_allocate_option\x18\xfd\xb8\xf4\xcc\x01 \x01(\tH\x08\x88\x01\x01\x12\x12\n\x07nat_ips\x18\x8e\xf0\x8b\x38 \x03(\t\x12\x38\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32&.google.cloud.compute.v1.RouterNatRule\x12\x32\n\"source_subnetwork_ip_ranges_to_nat\x18\xdb\xef\xa1x \x01(\tH\t\x88\x01\x01\x12\x34\n$source_subnetwork_ip_ranges_to_nat64\x18\xd9\xe7\xa7v \x01(\tH\n\x88\x01\x01\x12J\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\x0b\x32\x31.google.cloud.compute.v1.RouterNatSubnetworkToNat\x12\x30\n tcp_established_idle_timeout_sec\x18\xed\xeb\xb0j \x01(\x05H\x0b\x88\x01\x01\x12*\n\x19tcp_time_wait_timeout_sec\x18\xfd\xbb\xf3\xf4\x01 \x01(\x05H\x0c\x88\x01\x01\x12/\n\x1ftcp_transitory_idle_timeout_sec\x18\xa6\xfb\xe1\x61 \x01(\x05H\r\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x0e\x88\x01\x01\x12$\n\x14udp_idle_timeout_sec\x18\xc6\xb2\xfa\x1e \x01(\x05H\x0f\x88\x01\x01\"\x98\x01\n\x0f\x41utoNetworkTier\x12\x1f\n\x1bUNDEFINED_AUTO_NETWORK_TIER\x10\x00\x12\x16\n\x0e\x46IXED_STANDARD\x10\xc8\x9e\x85\x94\x01\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12)\n!STANDARD_OVERRIDES_FIXED_STANDARD\x10\xc2\x87\x91\xde\x01\"\x88\x01\n\rEndpointTypes\x12\x1c\n\x18UNDEFINED_ENDPOINT_TYPES\x10\x00\x12&\n\x1e\x45NDPOINT_TYPE_MANAGED_PROXY_LB\x10\x82\xba\xb6\xd1\x01\x12\x18\n\x11\x45NDPOINT_TYPE_SWG\x10\xc8\xce\xfdK\x12\x17\n\x10\x45NDPOINT_TYPE_VM\x10\xb2\xea\x9c\x1b\"a\n\x13NatIpAllocateOption\x12$\n UNDEFINED_NAT_IP_ALLOCATE_OPTION\x10\x00\x12\x10\n\tAUTO_ONLY\x10\xbc\xe0\xf8V\x12\x12\n\x0bMANUAL_ONLY\x10\x85\xc1\xc9|\"\xc2\x01\n\x1dSourceSubnetworkIpRangesToNat\x12\x30\n,UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT\x10\x00\x12$\n\x1d\x41LL_SUBNETWORKS_ALL_IP_RANGES\x10\xd8\x93\xe8U\x12,\n%ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES\x10\xbb\xc3\xbeX\x12\x1b\n\x13LIST_OF_SUBNETWORKS\x10\xfe\xa2\xe4\xf6\x01\"\x95\x01\n\x1fSourceSubnetworkIpRangesToNat64\x12\x32\n.UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT64\x10\x00\x12\x1c\n\x14\x41LL_IPV6_SUBNETWORKS\x10\xeb\xcd\xf3\xa2\x01\x12 \n\x18LIST_OF_IPV6_SUBNETWORKS\x10\xb4\x98\xbc\xf8\x01\":\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\r\n\x06PUBLIC\x10\xe9\xcc\xc2jB\x14\n\x12_auto_network_tierB!\n\x1f_enable_dynamic_port_allocationB&\n$_enable_endpoint_independent_mappingB\x18\n\x16_icmp_idle_timeout_secB\r\n\x0b_log_configB\x13\n\x11_max_ports_per_vmB\x13\n\x11_min_ports_per_vmB\x07\n\x05_nameB\x19\n\x17_nat_ip_allocate_optionB%\n#_source_subnetwork_ip_ranges_to_natB\'\n%_source_subnetwork_ip_ranges_to_nat64B#\n!_tcp_established_idle_timeout_secB\x1c\n\x1a_tcp_time_wait_timeout_secB\"\n _tcp_transitory_idle_timeout_secB\x07\n\x05_typeB\x17\n\x15_udp_idle_timeout_sec\"\xb7\x01\n\x12RouterNatLogConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\x06\x66ilter\x18\xf8\x96\xa3\xa0\x01 \x01(\tH\x01\x88\x01\x01\"Y\n\x06\x46ilter\x12\x14\n\x10UNDEFINED_FILTER\x10\x00\x12\t\n\x03\x41LL\x10\x81\xfb\x03\x12\x13\n\x0b\x45RRORS_ONLY\x10\x80\xb0\xcf\x92\x01\x12\x19\n\x11TRANSLATIONS_ONLY\x10\xe9\xc3\xaa\xaa\x01\x42\t\n\x07_enableB\t\n\x07_filter\"\xdd\x01\n\rRouterNatRule\x12\x44\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\x0b\x32,.google.cloud.compute.v1.RouterNatRuleActionH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0brule_number\x18\xec\xdb\x9a\xff\x01 \x01(\rH\x03\x88\x01\x01\x42\t\n\x07_actionB\x0e\n\x0c_descriptionB\x08\n\x06_matchB\x0e\n\x0c_rule_number\"\xa2\x01\n\x13RouterNatRuleAction\x12 \n\x15source_nat_active_ips\x18\xf5\xbb\xa8\x64 \x03(\t\x12#\n\x18source_nat_active_ranges\x18\xed\xd0\xeeZ \x03(\t\x12 \n\x14source_nat_drain_ips\x18\xa3\xc5\xc1\xa2\x01 \x03(\t\x12\"\n\x17source_nat_drain_ranges\x18\xff\xf9\xb7( \x03(\t\"\x96\x02\n\x18RouterNatSubnetworkToNat\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x18secondary_ip_range_names\x18\xd9\xc1\x84~ \x03(\t\x12#\n\x17source_ip_ranges_to_nat\x18\xf2\xca\x94\xb9\x01 \x03(\t\"\x90\x01\n\x13SourceIpRangesToNat\x12%\n!UNDEFINED_SOURCE_IP_RANGES_TO_NAT\x10\x00\x12\x14\n\rALL_IP_RANGES\x10\xb0\xaf\xfd\x10\x12\"\n\x1bLIST_OF_SECONDARY_IP_RANGES\x10\x9c\xb4\xd8[\x12\x18\n\x10PRIMARY_IP_RANGE\x10\xc2\x93\xd6\x8d\x01\x42\x07\n\x05_name\";\n\x1aRouterNatSubnetworkToNat64\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xad\x01\n\x0cRouterParams\x12\x61\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32>.google.cloud.compute.v1.RouterParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc6\x02\n\x0cRouterStatus\x12\x37\n\x0b\x62\x65st_routes\x18\x85\xac\xdf\xbc\x01 \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12\x41\n\x16\x62\x65st_routes_for_router\x18\xf9\xfb\xf6\x38 \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12N\n\x0f\x62gp_peer_status\x18\xfb\xd7\x95h \x03(\x0b\x32\x32.google.cloud.compute.v1.RouterStatusBgpPeerStatus\x12\x45\n\nnat_status\x18\xd0\x99\x8b\x1e \x03(\x0b\x32..google.cloud.compute.v1.RouterStatusNatStatus\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_network\"\xe9\n\n\x19RouterStatusBgpPeerStatus\x12=\n\x11\x61\x64vertised_routes\x18\xac\xd9\xfc\x9e\x01 \x03(\x0b\x32\x1e.google.cloud.compute.v1.Route\x12?\n\nbfd_status\x18\xf1\xb8\xd3\xbc\x01 \x01(\x0b\x32\".google.cloud.compute.v1.BfdStatusH\x00\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv4\x18\xa1\xf6\xc3V \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x65nable_ipv6\x18\xa3\xf6\xc3V \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x03\x88\x01\x01\x12$\n\x14ipv4_nexthop_address\x18\xd1\x8d\xdc\x02 \x01(\tH\x04\x88\x01\x01\x12$\n\x14ipv6_nexthop_address\x18\xd3\x85\xab\r \x01(\tH\x05\x88\x01\x01\x12\"\n\x11linked_vpn_tunnel\x18\xf9\xbf\xfe\xa7\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x10md5_auth_enabled\x18\xcb\x91\x90\xd7\x01 \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\"\n\x12num_learned_routes\x18\xff\xd5\xcb@ \x01(\rH\t\x88\x01\x01\x12\x1f\n\x0fpeer_ip_address\x18\xd9\x97\x87\x63 \x01(\tH\n\x88\x01\x01\x12*\n\x19peer_ipv4_nexthop_address\x18\x8e\x83\xdf\xdf\x01 \x01(\tH\x0b\x88\x01\x01\x12*\n\x19peer_ipv6_nexthop_address\x18\x90\xfb\xad\xea\x01 \x01(\tH\x0c\x88\x01\x01\x12*\n\x19router_appliance_instance\x18\x9d\xc7\xa7\xdf\x01 \x01(\tH\r\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x0e\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x0f\x88\x01\x01\x12\x1e\n\rstatus_reason\x18\xb1\x96\xb5\xa3\x01 \x01(\tH\x10\x88\x01\x01\x12\x16\n\x06uptime\x18\xe8\xb7\x9ep \x01(\tH\x11\x88\x01\x01\x12\x1e\n\x0euptime_seconds\x18\xa8\xca\xf8\x31 \x01(\tH\x12\x88\x01\x01\"E\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\x12\x07\n\x02UP\x10\x9b\x15\"\xc6\x01\n\x0cStatusReason\x12\x1b\n\x17UNDEFINED_STATUS_REASON\x10\x00\x12)\n!IPV4_PEER_ON_IPV6_ONLY_CONNECTION\x10\x96\xbb\xef\xcf\x01\x12)\n!IPV6_PEER_ON_IPV4_ONLY_CONNECTION\x10\xd2\xf1\x85\xd0\x01\x12 \n\x19MD5_AUTH_INTERNAL_PROBLEM\x10\xb3\x91\xfd\x42\x12!\n\x19STATUS_REASON_UNSPECIFIED\x10\x89\x8e\x84\xbc\x01\x42\r\n\x0b_bfd_statusB\x0e\n\x0c_enable_ipv4B\x0e\n\x0c_enable_ipv6B\r\n\x0b_ip_addressB\x17\n\x15_ipv4_nexthop_addressB\x17\n\x15_ipv6_nexthop_addressB\x14\n\x12_linked_vpn_tunnelB\x13\n\x11_md5_auth_enabledB\x07\n\x05_nameB\x15\n\x13_num_learned_routesB\x12\n\x10_peer_ip_addressB\x1c\n\x1a_peer_ipv4_nexthop_addressB\x1c\n\x1a_peer_ipv6_nexthop_addressB\x1c\n\x1a_router_appliance_instanceB\x08\n\x06_stateB\t\n\x07_statusB\x10\n\x0e_status_reasonB\t\n\x07_uptimeB\x11\n\x0f_uptime_seconds\"\xf7\x03\n\x15RouterStatusNatStatus\x12\"\n\x16\x61uto_allocated_nat_ips\x18\x86\xb4\xc8\xf3\x01 \x03(\t\x12(\n\x1c\x64rain_auto_allocated_nat_ips\x18\xad\x90\xb7\x93\x01 \x03(\t\x12(\n\x1c\x64rain_user_allocated_nat_ips\x18\xc9\x8e\xc8\x91\x01 \x03(\t\x12)\n\x18min_extra_nat_ips_needed\x18\xe2\xe9\xb5\xae\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x01\x88\x01\x01\x12\x33\n\"num_vm_endpoints_with_nat_mappings\x18\xec\xb6\xa8\xf4\x01 \x01(\x05H\x02\x88\x01\x01\x12S\n\x0brule_status\x18\x95\xc5\xee\x42 \x03(\x0b\x32;.google.cloud.compute.v1.RouterStatusNatStatusNatRuleStatus\x12*\n\x1fuser_allocated_nat_ip_resources\x18\xd7\xe9\xba\x65 \x03(\t\x12\"\n\x16user_allocated_nat_ips\x18\xa2\xb2\xd9\xf1\x01 \x03(\tB\x1b\n\x19_min_extra_nat_ips_neededB\x07\n\x05_nameB%\n#_num_vm_endpoints_with_nat_mappings\"\xa4\x02\n\"RouterStatusNatStatusNatRuleStatus\x12\x19\n\x0e\x61\x63tive_nat_ips\x18\xd5\xef\xb6\x63 \x03(\t\x12\x19\n\rdrain_nat_ips\x18\xc7\xc1\xae\xf0\x01 \x03(\t\x12%\n\x14min_extra_ips_needed\x18\x84\xca\xa9\xa8\x01 \x01(\x05H\x00\x88\x01\x01\x12\x33\n\"num_vm_endpoints_with_nat_mappings\x18\xec\xb6\xa8\xf4\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0brule_number\x18\xec\xdb\x9a\xff\x01 \x01(\x05H\x02\x88\x01\x01\x42\x17\n\x15_min_extra_ips_neededB%\n#_num_vm_endpoints_with_nat_mappingsB\x0e\n\x0c_rule_number\"\x7f\n\x14RouterStatusResponse\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32%.google.cloud.compute.v1.RouterStatusH\x01\x88\x01\x01\x42\x07\n\x05_kindB\t\n\x07_result\"l\n\x1dRoutersGetRoutePolicyResponse\x12>\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32$.google.cloud.compute.v1.RoutePolicyH\x00\x88\x01\x01\x42\x0b\n\t_resource\"\xe2\x02\n\x14RoutersListBgpRoutes\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x34\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32!.google.cloud.compute.v1.BgpRoute\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe9\x02\n\x18RoutersListRoutePolicies\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x37\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32$.google.cloud.compute.v1.RoutePolicy\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"`\n\x16RoutersPreviewResponse\x12\x39\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterH\x00\x88\x01\x01\x42\x0b\n\t_resource\"\x90\x01\n\x11RoutersScopedList\x12\x34\n\x07routers\x18\xca\xa4\xdd\x94\x01 \x03(\x0b\x32\x1f.google.cloud.compute.v1.Router\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd8\x03\n\x0eSSLHealthCheck\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x00\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12port_specification\x18\xc5\xeb\xcc\x18 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07request\x18\x8f\xe5\xbb\n \x01(\tH\x04\x88\x01\x01\x12\x18\n\x08response\x18\xc1\xa8\xdc] \x01(\tH\x05\x88\x01\x01\"~\n\x11PortSpecification\x12 \n\x1cUNDEFINED_PORT_SPECIFICATION\x10\x00\x12\x15\n\x0eUSE_FIXED_PORT\x10\xe4\x88\xdbZ\x12\x16\n\x0eUSE_NAMED_PORT\x10\xbf\xcf\xc7\xa6\x01\x12\x18\n\x10USE_SERVING_PORT\x10\xcc\xd1\xf5\xac\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x07\n\x05_portB\x0c\n\n_port_nameB\x15\n\x13_port_specificationB\x0f\n\r_proxy_headerB\n\n\x08_requestB\x0b\n\t_response\"\x8f\x08\n\x11SavedAttachedDisk\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04\x62oot\x18\xf2\xf5\xb8\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tH\x02\x88\x01\x01\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x03\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x04\x88\x01\x01\x12\x19\n\tdisk_type\x18\x9c\xe9\xac, \x01(\tH\x05\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x15\n\x05index\x18\xd2\xd1\xec/ \x01(\x05H\x06\x88\x01\x01\x12\x1a\n\tinterface\x18\xb9\xda\xd5\xef\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x08\x88\x01\x01\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x14\n\x04mode\x18\xa3\xf3\xcc\x01 \x01(\tH\t\x88\x01\x01\x12\x16\n\x06source\x18\x9b\xd0\xc1T \x01(\tH\n\x88\x01\x01\x12\x1e\n\rstorage_bytes\x18\xa7\xbb\xbd\xca\x01 \x01(\x03H\x0b\x88\x01\x01\x12%\n\x14storage_bytes_status\x18\x8a\xab\x80\xea\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\r\x88\x01\x01\">\n\tInterface\x12\x17\n\x13UNDEFINED_INTERFACE\x10\x00\x12\x0b\n\x04NVME\x10\xe0\x82\x93\x01\x12\x0b\n\x04SCSI\x10\xa6\x81\x9b\x01\"?\n\x04Mode\x12\x12\n\x0eUNDEFINED_MODE\x10\x00\x12\x10\n\tREAD_ONLY\x10\xb5\x99\xec+\x12\x11\n\nREAD_WRITE\x10\xd6\x97\xe4R\"]\n\x12StorageBytesStatus\x12\"\n\x1eUNDEFINED_STORAGE_BYTES_STATUS\x10\x00\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x12\x11\n\nUP_TO_DATE\x10\xce\xa2\xa7\x30\"?\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\nPERSISTENT\x10\x97\xf5\xd5\xdb\x01\x12\x0f\n\x07SCRATCH\x10\xda\xfd\xf0\xec\x01\x42\x0e\n\x0c_auto_deleteB\x07\n\x05_bootB\x0e\n\x0c_device_nameB\x16\n\x14_disk_encryption_keyB\x0f\n\r_disk_size_gbB\x0c\n\n_disk_typeB\x08\n\x06_indexB\x0c\n\n_interfaceB\x07\n\x05_kindB\x07\n\x05_modeB\t\n\x07_sourceB\x10\n\x0e_storage_bytesB\x17\n\x15_storage_bytes_statusB\x07\n\x05_type\"\xc5\x03\n\tSavedDisk\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\rstorage_bytes\x18\xa7\xbb\xbd\xca\x01 \x01(\x03H\x03\x88\x01\x01\x12%\n\x14storage_bytes_status\x18\x8a\xab\x80\xea\x01 \x01(\tH\x04\x88\x01\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"]\n\x12StorageBytesStatus\x12\"\n\x1eUNDEFINED_STORAGE_BYTES_STATUS\x10\x00\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x12\x11\n\nUP_TO_DATE\x10\xce\xa2\xa7\x30\x42\x0f\n\r_architectureB\x07\n\x05_kindB\x0e\n\x0c_source_diskB\x10\n\x0e_storage_bytesB\x17\n\x15_storage_bytes_status\"\x81\x02\n\x15ScalingScheduleStatus\x12\x1f\n\x0flast_start_time\x18\xd3\xbb\xbc\x10 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0fnext_start_time\x18\xd6\xf2\xb0. \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x02\x88\x01\x01\"]\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x0f\n\x08OBSOLETE\x10\x99\xeb\xdc\x1f\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x12\n\x10_last_start_timeB\x12\n\x10_next_start_timeB\x08\n\x06_state\"\xac\x0b\n\nScheduling\x12\"\n\x11\x61utomatic_restart\x18\xfb\xb7\xa4\xa7\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x13\x61vailability_domain\x18\xa8\xa0\xb4x \x01(\x05H\x01\x88\x01\x01\x12+\n\x1ahost_error_timeout_seconds\x18\x93\xdc\xd9\xc2\x01 \x01(\x05H\x02\x88\x01\x01\x12+\n\x1binstance_termination_action\x18\xbb\xff\x99\x33 \x01(\tH\x03\x88\x01\x01\x12M\n\x1alocal_ssd_recovery_timeout\x18\xe6\xaf\xe6\x7f \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x04\x88\x01\x01\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\x05\x88\x01\x01\x12\x44\n\x10max_run_duration\x18\xc3\xaf\xb8\xcd\x01 \x01(\x0b\x32!.google.cloud.compute.v1.DurationH\x06\x88\x01\x01\x12\x1e\n\rmin_node_cpus\x18\xbb\xa4\xa2\x97\x01 \x01(\x05H\x07\x88\x01\x01\x12L\n\x0fnode_affinities\x18\xa3\x84\x9a\xdc\x01 \x03(\x0b\x32/.google.cloud.compute.v1.SchedulingNodeAffinity\x12#\n\x13on_host_maintenance\x18\xdc\xf2\xe7\x1e \x01(\tH\x08\x88\x01\x01\x12\x61\n\x17on_instance_stop_action\x18\xc9\x8d\xd5\xfc\x01 \x01(\x0b\x32\x37.google.cloud.compute.v1.SchedulingOnInstanceStopActionH\t\x88\x01\x01\x12\x1c\n\x0bpreemptible\x18\xa1\xe5\xcb\x9a\x01 \x01(\x08H\n\x88\x01\x01\x12!\n\x12provisioning_model\x18\xd7\x96\x1e \x01(\tH\x0b\x88\x01\x01\x12&\n\x16skip_guest_os_shutdown\x18\xaa\xbf\x94` \x01(\x08H\x0c\x88\x01\x01\x12!\n\x10termination_time\x18\xa8\x8e\x90\xcc\x01 \x01(\tH\r\x88\x01\x01\"\x93\x01\n\x19InstanceTerminationAction\x12)\n%UNDEFINED_INSTANCE_TERMINATION_ACTION\x10\x00\x12\x0e\n\x06\x44\x45LETE\x10\xab\xf3\xe5\xbf\x01\x12.\n\'INSTANCE_TERMINATION_ACTION_UNSPECIFIED\x10\xb3\xc1\xa9,\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\"Y\n\x11OnHostMaintenance\x12!\n\x1dUNDEFINED_ON_HOST_MAINTENANCE\x10\x00\x12\x0e\n\x07MIGRATE\x10\x8b\xc3\x81O\x12\x11\n\tTERMINATE\x10\xc1\x9c\xcb\xfb\x01\"\x82\x01\n\x11ProvisioningModel\x12 \n\x1cUNDEFINED_PROVISIONING_MODEL\x10\x00\x12\x11\n\nFLEX_START\x10\xfc\x90\xc2\x30\x12\x19\n\x11RESERVATION_BOUND\x10\x8b\x96\xfc\x8b\x01\x12\x0b\n\x04SPOT\x10\x82\xe2\x9b\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\x14\n\x12_automatic_restartB\x16\n\x14_availability_domainB\x1d\n\x1b_host_error_timeout_secondsB\x1e\n\x1c_instance_termination_actionB\x1d\n\x1b_local_ssd_recovery_timeoutB\x10\n\x0e_location_hintB\x13\n\x11_max_run_durationB\x10\n\x0e_min_node_cpusB\x16\n\x14_on_host_maintenanceB\x1a\n\x18_on_instance_stop_actionB\x0e\n\x0c_preemptibleB\x15\n\x13_provisioning_modelB\x19\n\x17_skip_guest_os_shutdownB\x13\n\x11_termination_time\"\xc7\x01\n\x16SchedulingNodeAffinity\x12\x12\n\x03key\x18\xdf\xbc\x06 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08operator\x18\xa4\xd1\xa8\x11 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x06values\x18\xa2\xba\x96w \x03(\t\"W\n\x08Operator\x12\x16\n\x12UNDEFINED_OPERATOR\x10\x00\x12\x07\n\x02IN\x10\xa5\x12\x12\r\n\x06NOT_IN\x10\xb1\xbc\xebL\x12\x1b\n\x14OPERATOR_UNSPECIFIED\x10\xfc\xff\xba=B\x06\n\x04_keyB\x0b\n\t_operator\"Z\n\x1eSchedulingOnInstanceStopAction\x12\"\n\x11\x64iscard_local_ssd\x18\xcf\xe9\xad\x98\x01 \x01(\x08H\x00\x88\x01\x01\x42\x14\n\x12_discard_local_ssd\"S\n\nScreenshot\x12\x19\n\x08\x63ontents\x18\x9a\xb6\xbd\xf1\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_contentsB\x07\n\x05_kind\"\xef\x03\n\x1eSecurityPoliciesAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.SecurityPoliciesAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.SecurityPoliciesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xbf\x01\n7SecurityPoliciesListPreconfiguredExpressionSetsResponse\x12\x62\n\x1dpreconfigured_expression_sets\x18\xfa\x8c\xd7\xff\x01 \x01(\x0b\x32\x32.google.cloud.compute.v1.SecurityPoliciesWafConfigH\x00\x88\x01\x01\x42 \n\x1e_preconfigured_expression_sets\"\xaa\x01\n\x1aSecurityPoliciesScopedList\x12\x45\n\x11security_policies\x18\xef\xa6\xf7< \x03(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"r\n\x19SecurityPoliciesWafConfig\x12G\n\twaf_rules\x18\xd4\xc3\xdb# \x01(\x0b\x32,.google.cloud.compute.v1.PreconfiguredWafSetH\x00\x88\x01\x01\x42\x0c\n\n_waf_rules\"\xaf\n\n\x0eSecurityPolicy\x12k\n\x1a\x61\x64\x61ptive_protection_config\x18\xdf\xfb\xd1G \x01(\x0b\x32?.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigH\x00\x88\x01\x01\x12\x66\n\x17\x61\x64vanced_options_config\x18\xc0\xd3\x9d\xd6\x01 \x01(\x0b\x32<.google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x63\n\x16\x64\x64os_protection_config\x18\xcd\x84\xff\x17 \x01(\x0b\x32;.google.cloud.compute.v1.SecurityPolicyDdosProtectionConfigH\x03\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x08\x88\x01\x01\x12G\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x33.google.cloud.compute.v1.SecurityPolicy.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\t\x88\x01\x01\x12h\n\x18recaptcha_options_config\x18\xdb\xd4\xbd\xf7\x01 \x01(\x0b\x32=.google.cloud.compute.v1.SecurityPolicyRecaptchaOptionsConfigH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12=\n\x05rules\x18\xf7\x91\xf5\x33 \x03(\x0b\x32+.google.cloud.compute.v1.SecurityPolicyRule\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\r\x88\x01\x01\x12W\n\x13user_defined_fields\x18\xa3\x89\xc0\r \x03(\x0b\x32\x37.google.cloud.compute.v1.SecurityPolicyUserDefinedField\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x12\n\x0b\x43LOUD_ARMOR\x10\xf5\x9c\xa4|\x12\x17\n\x10\x43LOUD_ARMOR_EDGE\x10\xc7\xa2\xc7w\x12\x1b\n\x13\x43LOUD_ARMOR_NETWORK\x10\xc4\xac\xf9\xe8\x01\x42\x1d\n\x1b_adaptive_protection_configB\x1a\n\x18_advanced_options_configB\x15\n\x13_creation_timestampB\x19\n\x17_ddos_protection_configB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x1b\n\x19_recaptcha_options_configB\t\n\x07_regionB\x0c\n\n_self_linkB\x07\n\x05_type\"\xcd\x01\n&SecurityPolicyAdaptiveProtectionConfig\x12\x83\x01\n\x1alayer7_ddos_defense_config\x18\xa3\xd9\xc3\xd0\x01 \x01(\x0b\x32V.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigH\x00\x88\x01\x01\x42\x1d\n\x1b_layer7_ddos_defense_config\"\xf3\x02\n=SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x0frule_visibility\x18\xb5\xd8\x90\xd8\x01 \x01(\tH\x01\x88\x01\x01\x12\x83\x01\n\x11threshold_configs\x18\x9d\xab\xe3\x1c \x03(\x0b\x32\x65.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig\"R\n\x0eRuleVisibility\x12\x1d\n\x19UNDEFINED_RULE_VISIBILITY\x10\x00\x12\x0f\n\x07PREMIUM\x10\xb7\xb4\xc1\xbe\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\t\n\x07_enableB\x12\n\x10_rule_visibility\"\xd1\x06\nLSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig\x12\x30\n auto_deploy_confidence_threshold\x18\xbe\xed\x99( \x01(\x02H\x00\x88\x01\x01\x12*\n\x1a\x61uto_deploy_expiration_sec\x18\x89\xb5\x9a! \x01(\x05H\x01\x88\x01\x01\x12\x38\n\'auto_deploy_impacted_baseline_threshold\x18\xc3\x9c\xb9\x8b\x01 \x01(\x02H\x02\x88\x01\x01\x12+\n\x1a\x61uto_deploy_load_threshold\x18\x9a\xa0\x82\xf9\x01 \x01(\x02H\x03\x88\x01\x01\x12\'\n\x16\x64\x65tection_absolute_qps\x18\xe6\xfd\xd7\xb6\x01 \x01(\x02H\x04\x88\x01\x01\x12)\n\x18\x64\x65tection_load_threshold\x18\xcc\xca\xa3\xcd\x01 \x01(\x02H\x05\x88\x01\x01\x12\x33\n\"detection_relative_to_baseline_qps\x18\x85\x9b\xf6\x8a\x01 \x01(\x02H\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\xa5\x01\n\x1btraffic_granularity_configs\x18\xbe\xb4\xda( \x03(\x0b\x32}.google.cloud.compute.v1.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfigB#\n!_auto_deploy_confidence_thresholdB\x1d\n\x1b_auto_deploy_expiration_secB*\n(_auto_deploy_impacted_baseline_thresholdB\x1d\n\x1b_auto_deploy_load_thresholdB\x19\n\x17_detection_absolute_qpsB\x1b\n\x19_detection_load_thresholdB%\n#_detection_relative_to_baseline_qpsB\x07\n\x05_name\"\xd0\x02\ndSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig\x12)\n\x18\x65nable_each_unique_value\x18\xc5\x8a\xde\xdf\x01 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x02\x88\x01\x01\"`\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x18\n\x10HTTP_HEADER_HOST\x10\xe3\xe5\xbe\xb2\x01\x12\x11\n\tHTTP_PATH\x10\xfc\xd2\xc4\x94\x01\x12\x17\n\x10UNSPECIFIED_TYPE\x10\xe2\xee\xdb\x19\x42\x1b\n\x19_enable_each_unique_valueB\x07\n\x05_typeB\x08\n\x06_value\"\xde\x03\n#SecurityPolicyAdvancedOptionsConfig\x12p\n\x12json_custom_config\x18\xb9\xd9\x99\x35 \x01(\x0b\x32L.google.cloud.compute.v1.SecurityPolicyAdvancedOptionsConfigJsonCustomConfigH\x00\x88\x01\x01\x12\x1d\n\x0cjson_parsing\x18\xd9\x84\xda\x86\x01 \x01(\tH\x01\x88\x01\x01\x12\x19\n\tlog_level\x18\xc9\xbd\x84\x43 \x01(\tH\x02\x88\x01\x01\x12#\n\x17user_ip_request_headers\x18\xb2\xef\xe2\xc8\x01 \x03(\t\"k\n\x0bJsonParsing\x12\x1a\n\x16UNDEFINED_JSON_PARSING\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x12\x1c\n\x15STANDARD_WITH_GRAPHQL\x10\x92\xbf\x81\x33\"C\n\x08LogLevel\x12\x17\n\x13UNDEFINED_LOG_LEVEL\x10\x00\x12\r\n\x06NORMAL\x10\xe7\xe1\xe6L\x12\x0f\n\x07VERBOSE\x10\xe2\x8a\xe4\xfd\x01\x42\x15\n\x13_json_custom_configB\x0f\n\r_json_parsingB\x0c\n\n_log_level\"O\n3SecurityPolicyAdvancedOptionsConfigJsonCustomConfig\x12\x18\n\rcontent_types\x18\xb3\xe2\xa7\x08 \x03(\t\"\xc7\x01\n\"SecurityPolicyDdosProtectionConfig\x12 \n\x0f\x64\x64os_protection\x18\x94\x9f\x9b\x83\x01 \x01(\tH\x00\x88\x01\x01\"k\n\x0e\x44\x64osProtection\x12\x1d\n\x19UNDEFINED_DDOS_PROTECTION\x10\x00\x12\x0f\n\x08\x41\x44VANCED\x10\xa2\xb0\xb5\x1e\x12\x17\n\x10\x41\x44VANCED_PREVIEW\x10\x8b\xd9\xc0\x13\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\x42\x12\n\x10_ddos_protection\"\x83\x02\n\x12SecurityPolicyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.SecurityPolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x03\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\n\n\x08_warning\"`\n$SecurityPolicyRecaptchaOptionsConfig\x12\"\n\x11redirect_site_key\x18\xea\x84\xbc\xd5\x01 \x01(\tH\x00\x88\x01\x01\x42\x14\n\x12_redirect_site_key\"N\n\x17SecurityPolicyReference\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_security_policy\"\xf7\x06\n\x12SecurityPolicyRule\x12\x16\n\x06\x61\x63tion\x18\xb6\xfc\xbdY \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12[\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32;.google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionH\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12I\n\x05match\x18\xc5\xb3\xb7\x31 \x01(\x0b\x32\x32.google.cloud.compute.v1.SecurityPolicyRuleMatcherH\x04\x88\x01\x01\x12Y\n\rnetwork_match\x18\xf4\xf8\xfa\xdc\x01 \x01(\x0b\x32\x39.google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherH\x05\x88\x01\x01\x12k\n\x18preconfigured_waf_config\x18\xe3\x9f\x96\x38 \x01(\x0b\x32\x41.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigH\x06\x88\x01\x01\x12\x17\n\x07preview\x18\xc8\xc7\xa3h \x01(\x08H\x07\x88\x01\x01\x12\x19\n\x08priority\x18\xa4\xf3\xa1\xd4\x01 \x01(\x05H\x08\x88\x01\x01\x12_\n\x12rate_limit_options\x18\xfb\xc9\x9a \x01(\x0b\x32;.google.cloud.compute.v1.SecurityPolicyRuleRateLimitOptionsH\t\x88\x01\x01\x12\\\n\x10redirect_options\x18\xbb\x92\xeeM \x01(\x0b\x32:.google.cloud.compute.v1.SecurityPolicyRuleRedirectOptionsH\n\x88\x01\x01\x42\t\n\x07_actionB\x0e\n\x0c_descriptionB\x10\n\x0e_header_actionB\x07\n\x05_kindB\x08\n\x06_matchB\x10\n\x0e_network_matchB\x1b\n\x19_preconfigured_waf_configB\n\n\x08_previewB\x0b\n\t_priorityB\x15\n\x13_rate_limit_optionsB\x13\n\x11_redirect_options\"\x95\x01\n\"SecurityPolicyRuleHttpHeaderAction\x12o\n\x17request_headers_to_adds\x18\xcd\xab\xfa) \x03(\x0b\x32K.google.cloud.compute.v1.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption\"\x90\x01\n2SecurityPolicyRuleHttpHeaderActionHttpHeaderOption\x12\x1b\n\x0bheader_name\x18\xfd\xc1\xc7\x34 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0cheader_value\x18\xbf\xf2\xeb` \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_header_nameB\x0f\n\r_header_value\"\x9b\x03\n\x19SecurityPolicyRuleMatcher\x12P\n\x06\x63onfig\x18\xc2\x86\xfey \x01(\x0b\x32\x38.google.cloud.compute.v1.SecurityPolicyRuleMatcherConfigH\x00\x88\x01\x01\x12\x33\n\x04\x65xpr\x18\xf5\xf3\xbe\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.ExprH\x01\x88\x01\x01\x12\\\n\x0c\x65xpr_options\x18\xd4\xc4\xec\xe7\x01 \x01(\x0b\x32=.google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsH\x02\x88\x01\x01\x12\x1f\n\x0eversioned_expr\x18\xbd\xe3\xd6\x99\x01 \x01(\tH\x03\x88\x01\x01\"@\n\rVersionedExpr\x12\x1c\n\x18UNDEFINED_VERSIONED_EXPR\x10\x00\x12\x11\n\nSRC_IPS_V1\x10\x89\xfd\xe8!B\t\n\x07_configB\x07\n\x05_exprB\x0f\n\r_expr_optionsB\x11\n\x0f_versioned_expr\"<\n\x1fSecurityPolicyRuleMatcherConfig\x12\x19\n\rsrc_ip_ranges\x18\xd3\x80\x87\xce\x01 \x03(\t\"\xaf\x01\n$SecurityPolicyRuleMatcherExprOptions\x12q\n\x11recaptcha_options\x18\xc6\xf6\xc7\xb9\x01 \x01(\x0b\x32M.google.cloud.compute.v1.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptionsH\x00\x88\x01\x01\x42\x14\n\x12_recaptcha_options\"~\n4SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions\x12!\n\x16\x61\x63tion_token_site_keys\x18\x9d\xea\xc9\x1c \x03(\t\x12#\n\x17session_token_site_keys\x18\xfd\xf2\xfa\x9e\x01 \x03(\t\"\xc3\x02\n SecurityPolicyRuleNetworkMatcher\x12\x1a\n\x0e\x64\x65st_ip_ranges\x18\x91\xd7\xee\xa0\x01 \x03(\t\x12\x16\n\ndest_ports\x18\xb5\xb0\x93\xb5\x01 \x03(\t\x12\x17\n\x0cip_protocols\x18\xc3\x8f\xcd{ \x03(\t\x12\x13\n\x08src_asns\x18\xf2\xbd\x97\x38 \x03(\r\x12\x19\n\rsrc_ip_ranges\x18\xd3\x80\x87\xce\x01 \x03(\t\x12\x15\n\tsrc_ports\x18\xf7\xbb\x9e\xd4\x01 \x03(\t\x12\x1b\n\x10src_region_codes\x18\x96\xe3\x9f/ \x03(\t\x12n\n\x13user_defined_fields\x18\xa3\x89\xc0\r \x03(\x0b\x32N.google.cloud.compute.v1.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch\"i\n5SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x06values\x18\xa2\xba\x96w \x03(\tB\x07\n\x05_name\"\x8d\x01\n(SecurityPolicyRulePreconfiguredWafConfig\x12\x61\n\nexclusions\x18\xe5\xf8\xbf\x63 \x03(\x0b\x32J.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusion\"\x82\x05\n1SecurityPolicyRulePreconfiguredWafConfigExclusion\x12|\n\x1arequest_cookies_to_exclude\x18\xf6\xde\xdfJ \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12|\n\x1arequest_headers_to_exclude\x18\x9f\xa4\x93\x1e \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12\x82\x01\n\x1frequest_query_params_to_exclude\x18\x88\x9e\xba\xa2\x01 \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12y\n\x17request_uris_to_exclude\x18\x9e\xaa\x9f+ \x03(\x0b\x32U.google.cloud.compute.v1.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams\x12\x1b\n\x0ftarget_rule_ids\x18\xe3\xe3\xd5\xed\x01 \x03(\t\x12 \n\x0ftarget_rule_set\x18\x8d\xaf\xd6\xed\x01 \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_target_rule_set\"\xe7\x01\n.google.cloud.compute.v1.ServiceAttachmentConsumerProjectLimit\x12 \n\x15\x63onsumer_reject_lists\x18\x9e\x99\xa5\x61 \x03(\t\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x17\n\x0c\x64omain_names\x18\x8d\xd8\x89\x03 \x03(\t\x12&\n\x15\x65nable_proxy_protocol\x18\x85\x87\xbc\xad\x01 \x01(\x08H\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12M\n\x08metadata\x18\xaf\xf6\xb5) \x03(\x0b\x32\x38.google.cloud.compute.v1.ServiceAttachment.MetadataEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x17\n\x0bnat_subnets\x18\x98\x8f\xdb\xb2\x01 \x03(\t\x12(\n\x18producer_forwarding_rule\x18\xd1\xa8\x9cv \x01(\tH\x08\x88\x01\x01\x12,\n\x1bpropagated_connection_limit\x18\xfe\xc8\xd3\x9e\x01 \x01(\rH\t\x88\x01\x01\x12L\n\x19psc_service_attachment_id\x18\xee\xfa\xcf\xfb\x01 \x01(\x0b\x32 .google.cloud.compute.v1.Uint128H\n\x88\x01\x01\x12%\n\x15reconcile_connections\x18\xe4\xc3\xeb; \x01(\x08H\x0b\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12\x1d\n\x0etarget_service\x18\x87\xfcN \x01(\tH\x0e\x88\x01\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x95\x01\n\x14\x43onnectionPreference\x12#\n\x1fUNDEFINED_CONNECTION_PREFERENCE\x10\x00\x12\x17\n\x10\x41\x43\x43\x45PT_AUTOMATIC\x10\x94\xf7\xf0#\x12\x15\n\rACCEPT_MANUAL\x10\xdd\xed\xf1\xb1\x01\x12(\n!CONNECTION_PREFERENCE_UNSPECIFIED\x10\xb4\xa0\xbf\x10\x42\x18\n\x16_connection_preferenceB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x18\n\x16_enable_proxy_protocolB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x1b\n\x19_producer_forwarding_ruleB\x1e\n\x1c_propagated_connection_limitB\x1c\n\x1a_psc_service_attachment_idB\x18\n\x16_reconcile_connectionsB\t\n\x07_regionB\x0c\n\n_self_linkB\x11\n\x0f_target_service\"\xd4\x03\n\x1fServiceAttachmentAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12U\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x43.google.cloud.compute.v1.ServiceAttachmentAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x63\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.google.cloud.compute.v1.ServiceAttachmentsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd8\x03\n\"ServiceAttachmentConnectedEndpoint\x12 \n\x10\x63onsumer_network\x18\xe5\xdd\xa4y \x01(\tH\x00\x88\x01\x01\x12\x18\n\x08\x65ndpoint\x18\x95\xbb\x9c> \x01(\tH\x01\x88\x01\x01\x12\x12\n\x07nat_ips\x18\x8e\xf0\x8b\x38 \x03(\t\x12,\n\x1bpropagated_connection_count\x18\xd2\xd3\xe3\x9a\x01 \x01(\rH\x02\x88\x01\x01\x12\"\n\x11psc_connection_id\x18\xdd\xa5\xa3\x8b\x01 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x04\x88\x01\x01\"\x94\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0f\n\x08\x41\x43\x43\x45PTED\x10\xa7\x9f\xd2u\x12\x0e\n\x06\x43LOSED\x10\xec\xaa\xa3\xb5\x01\x12\x17\n\x0fNEEDS_ATTENTION\x10\xbc\x8b\xa2\xa4\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x19\n\x12STATUS_UNSPECIFIED\x10\xca\xcc\x8b\x14\x42\x13\n\x11_consumer_networkB\x0b\n\t_endpointB\x1e\n\x1c_propagated_connection_countB\x14\n\x12_psc_connection_idB\t\n\x07_status\"\xc5\x01\n%ServiceAttachmentConsumerProjectLimit\x12 \n\x10\x63onnection_limit\x18\x9a\x9e\xd4> \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0bnetwork_url\x18\xde\x8f\xe6\x62 \x01(\tH\x01\x88\x01\x01\x12\"\n\x11project_id_or_num\x18\xa8\x8a\xe5\xa6\x01 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_connection_limitB\x0e\n\x0c_network_urlB\x14\n\x12_project_id_or_num\"\xb3\x02\n\x15ServiceAttachmentList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12<\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32*.google.cloud.compute.v1.ServiceAttachment\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x1cServiceAttachmentsScopedList\x12K\n\x13service_attachments\x18\xa6\x92\xba\x92\x01 \x03(\x0b\x32*.google.cloud.compute.v1.ServiceAttachment\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xa6\x02\n&SetBackendServiceTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8a\x01\n7target_ssl_proxies_set_backend_service_request_resource\x18\xa4\xe9\xa8\x42 \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetSslProxiesSetBackendServiceRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n&SetBackendServiceTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8b\x01\n7target_tcp_proxies_set_backend_service_request_resource\x18\xef\xd1\xc2\x82\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetTcpProxiesSetBackendServiceRequestB\x03\xe0\x41\x02\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb1\x02\n\x1aSetBackupTargetPoolRequest\x12\x1e\n\x0e\x66\x61ilover_ratio\x18\xfe\x94\xb4\x65 \x01(\x02H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x12T\n\x19target_reference_resource\x18\xf0\xb7\xdd\xf9\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetReferenceB\x03\xe0\x41\x02\x42\x11\n\x0f_failover_ratioB\r\n\x0b_request_id\"\xae\x02\n(SetCertificateMapTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8f\x01\n9target_https_proxies_set_certificate_map_request_resource\x18\xbb\xb6\xfe\xde\x01 \x01(\x0b\x32\x43.google.cloud.compute.v1.TargetHttpsProxiesSetCertificateMapRequestB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n&SetCertificateMapTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8b\x01\n7target_ssl_proxies_set_certificate_map_request_resource\x18\xba\x96\x83\xa4\x01 \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetSslProxiesSetCertificateMapRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xea\x01\n\x1fSetCloudArmorTierProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12y\n.projects_set_cloud_armor_tier_request_resource\x18\xcf\xfb\xde$ \x01(\x0b\x32\x39.google.cloud.compute.v1.ProjectsSetCloudArmorTierRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x8c\x03\n*SetCommonInstanceMetadataOperationMetadata\x12$\n\x13\x63lient_operation_id\x18\xe7\x8d\xde\x8d\x01 \x01(\tH\x00\x88\x01\x01\x12\x83\x01\n\x17per_location_operations\x18\x94\xd1\x82\xc3\x01 \x03(\x0b\x32^.google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadata.PerLocationOperationsEntry\x1a\x99\x01\n\x1aPerLocationOperationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12j\n\x05value\x18\x02 \x01(\x0b\x32[.google.cloud.compute.v1.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo:\x02\x38\x01\x42\x16\n\x14_client_operation_id\"\xb2\x02\nBSetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo\x12\x36\n\x05\x65rror\x18\x88\xa4\x93. \x01(\x0b\x32\x1f.google.cloud.compute.v1.StatusH\x00\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x01\x88\x01\x01\"\x88\x01\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\tABANDONED\x10\xb4\xc3\x80\'\x12\x0b\n\x04\x44ONE\x10\x82\xb7\x80\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x12\n\nPROPAGATED\x10\xdb\xb4\x82\xf2\x01\x12\x12\n\x0bPROPAGATING\x10\x86\x83\xcbN\x12\x13\n\x0bUNSPECIFIED\x10\x97\xbe\x98\xfb\x01\x42\x08\n\x06_errorB\x08\n\x06_state\"\xbe\x01\n\'SetCommonInstanceMetadataProjectRequest\x12\x45\n\x11metadata_resource\x18\x9e\xbe\xe6\x8a\x01 \x01(\x0b\x32!.google.cloud.compute.v1.MetadataB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xf7\x01\n#SetDefaultNetworkTierProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x81\x01\n2projects_set_default_network_tier_request_resource\x18\x8a\xc0\xa3< \x01(\x0b\x32=.google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe9\x01\n$SetDeletionProtectionInstanceRequest\x12$\n\x13\x64\x65letion_protection\x18\xea\xff\xb2\xda\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x16\n\x14_deletion_protectionB\r\n\x0b_request_id\"\xe2\x01\n SetDiskAutoDeleteInstanceRequest\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\x08\x42\x03\xe0\x41\x02\x12\x1b\n\x0b\x64\x65vice_name\x18\xd4\xb5\x9a \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xff\x01\n)SetEdgeSecurityPolicyBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x82\x02\n*SetEdgeSecurityPolicyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbb\x01\n SetIamPolicyBackendBucketRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xbc\x01\n!SetIamPolicyBackendServiceRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc4\x01\n\x17SetIamPolicyDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xbb\x01\n!SetIamPolicyFirewallPolicyRequest\x12|\n/global_organization_set_policy_request_resource\x18\xde\x94\xccT \x01(\x0b\x32;.google.cloud.compute.v1.GlobalOrganizationSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xb3\x01\n\x18SetIamPolicyImageRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc8\x01\n\x1bSetIamPolicyInstanceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xbe\x01\n#SetIamPolicyInstanceTemplateRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xcf\x01\n\"SetIamPolicyInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xc9\x01\n.SetIamPolicyInterconnectAttachmentGroupRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xbf\x01\n$SetIamPolicyInterconnectGroupRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xb5\x01\n\x1aSetIamPolicyLicenseRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xba\x01\n\x1fSetIamPolicyMachineImageRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xd7\x01\n$SetIamPolicyNetworkAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc3\x01\n(SetIamPolicyNetworkFirewallPolicyRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xc9\x01\n\x1cSetIamPolicyNodeGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xd2\x01\n\x1fSetIamPolicyNodeTemplateRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xda\x01\n\'SetIamPolicyRegionBackendServiceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xd0\x01\n\x1dSetIamPolicyRegionDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xdb\x01\n(SetIamPolicyRegionInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xe1\x01\n.SetIamPolicyRegionNetworkFirewallPolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xcb\x01\n\x1eSetIamPolicyReservationRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xd4\x01\n!SetIamPolicyResourcePolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xd7\x01\n$SetIamPolicyServiceAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xb6\x01\n\x1bSetIamPolicySnapshotRequest\x12\x64\n\"global_set_policy_request_resource\x18\xb2\xe7\xdb\xa0\x01 \x01(\x0b\x32/.google.cloud.compute.v1.GlobalSetPolicyRequestB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xcb\x01\n\x1eSetIamPolicyStoragePoolRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\x12`\n zone_set_policy_request_resource\x18\xbb\xb8\x98\xb6\x01 \x01(\x0b\x32-.google.cloud.compute.v1.ZoneSetPolicyRequestB\x03\xe0\x41\x02\"\xd0\x01\n\x1dSetIamPolicySubnetworkRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"region_set_policy_request_resource\x18\x83\xc7\xeb\x83\x01 \x01(\x0b\x32/.google.cloud.compute.v1.RegionSetPolicyRequestB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\"\xde\x02\n.SetInstanceTemplateInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x98\x01\n>instance_group_managers_set_instance_template_request_resource\x18\xc5\xd9\xd6\x04 \x01(\x0b\x32H.google.cloud.compute.v1.InstanceGroupManagersSetInstanceTemplateRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe4\x02\n4SetInstanceTemplateRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x94\x01\n.google.cloud.compute.v1.TargetSslProxiesSetProxyHeaderRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9d\x02\n#SetProxyHeaderTargetTcpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x84\x01\n4target_tcp_proxies_set_proxy_header_request_resource\x18\xc3\x98\xf1h \x01(\x0b\x32>.google.cloud.compute.v1.TargetTcpProxiesSetProxyHeaderRequestB\x03\xe0\x41\x02\x12!\n\x10target_tcp_proxy\x18\xe2\xd6\xf0\xef\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa7\x02\n&SetQuicOverrideTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8a\x01\n7target_https_proxies_set_quic_override_request_resource\x18\xe2\xf5\xe3\" \x01(\x0b\x32\x41.google.cloud.compute.v1.TargetHttpsProxiesSetQuicOverrideRequestB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xee\x01\n\x1cSetSchedulingInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12I\n\x13scheduling_resource\x18\xd9\xac\xee\xdc\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xfe\x01\n&SetSecurityPolicyBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa3\x02\n SetSecurityPolicyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12z\n.instances_set_security_policy_request_resource\x18\x8a\xd1\xbav \x01(\x0b\x32:.google.cloud.compute.v1.InstancesSetSecurityPolicyRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa5\x02\n,SetSecurityPolicyRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x9b\x02\n&SetSecurityPolicyTargetInstanceRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x12 \n\x0ftarget_instance\x18\x83\x8f\x96\x8a\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x96\x02\n\"SetSecurityPolicyTargetPoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x64\n\"security_policy_reference_resource\x18\xf0\xb4\xab\x61 \x01(\x0b\x32\x30.google.cloud.compute.v1.SecurityPolicyReferenceB\x03\xe0\x41\x02\x12\x1b\n\x0btarget_pool\x18\x8a\xe4\xf8\x1d \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa4\x02\n SetServiceAccountInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12{\n.instances_set_service_account_request_resource\x18\xb8\x9e\xb2\x83\x01 \x01(\x0b\x32:.google.cloud.compute.v1.InstancesSetServiceAccountRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb0\x02\n1SetShieldedInstanceIntegrityPolicyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12v\n+shielded_instance_integrity_policy_resource\x18\xb6\xdc\x8d\xc3\x01 \x01(\x0b\x32\x38.google.cloud.compute.v1.ShieldedInstanceIntegrityPolicyB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe5\x02\n/SetSslCertificatesRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9e\x01\nAregion_target_https_proxies_set_ssl_certificates_request_resource\x18\x87\x84\xa6\xba\x01 \x01(\x0b\x32J.google.cloud.compute.v1.RegionTargetHttpsProxiesSetSslCertificatesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xb0\x02\n)SetSslCertificatesTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x90\x01\n:target_https_proxies_set_ssl_certificates_request_resource\x18\xdc\xab\xb2j \x01(\x0b\x32\x44.google.cloud.compute.v1.TargetHttpsProxiesSetSslCertificatesRequestB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xa9\x02\n\'SetSslCertificatesTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x8c\x01\n8target_ssl_proxies_set_ssl_certificates_request_resource\x18\xbd\xcb\xc5\x46 \x01(\x0b\x32\x42.google.cloud.compute.v1.TargetSslProxiesSetSslCertificatesRequestB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf3\x01\n#SetSslPolicyTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Z\n\x1dssl_policy_reference_resource\x18\xbc\xf4\x9fp \x01(\x0b\x32+.google.cloud.compute.v1.SslPolicyReferenceB\x03\xe0\x41\x02\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf0\x01\n!SetSslPolicyTargetSslProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12Z\n\x1dssl_policy_reference_resource\x18\xbc\xf4\x9fp \x01(\x0b\x32+.google.cloud.compute.v1.SslPolicyReferenceB\x03\xe0\x41\x02\x12!\n\x10target_ssl_proxy\x18\xcd\xba\xc6\xa1\x01 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xdc\x01\n\x16SetTagsInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12=\n\rtags_resource\x18\xf4\x9a\x85\x9e\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x87\x02\n\x1eSetTargetForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x19target_reference_resource\x18\xf0\xb7\xdd\xf9\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xec\x01\n$SetTargetGlobalForwardingRuleRequest\x12 \n\x0f\x66orwarding_rule\x18\xfe\xa5\xdd\x80\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12T\n\x19target_reference_resource\x18\xf0\xb7\xdd\xf9\x01 \x01(\x0b\x32(.google.cloud.compute.v1.TargetReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd0\x02\n)SetTargetPoolsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8f\x01\n9instance_group_managers_set_target_pools_request_resource\x18\x88\x86\x88\x86\x01 \x01(\x0b\x32\x43.google.cloud.compute.v1.InstanceGroupManagersSetTargetPoolsRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe6\x02\n/SetTargetPoolsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9b\x01\n@region_instance_group_managers_set_target_pools_request_resource\x18\xfd\xca\xc5% \x01(\x0b\x32I.google.cloud.compute.v1.RegionInstanceGroupManagersSetTargetPoolsRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x90\x02\n%SetUrlMapRegionTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x92\x02\n&SetUrlMapRegionTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xe9\x01\n\x1fSetUrlMapTargetHttpProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12!\n\x11target_http_proxy\x18\xe5\xbe\xd2\x62 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xeb\x01\n SetUrlMapTargetHttpsProxyRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12target_https_proxy\x18\xec\xb0\xfa\x18 \x01(\tB\x03\xe0\x41\x02\x12U\n\x1aurl_map_reference_resource\x18\x95\xe6\x8e\xbe\x01 \x01(\x0b\x32(.google.cloud.compute.v1.UrlMapReferenceB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xd0\x01\n\"SetUsageExportBucketProjectRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\\\n\x1eusage_export_location_resource\x18\xeb\xcc\xd4\t \x01(\x0b\x32,.google.cloud.compute.v1.UsageExportLocationB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xfa\x02\n\rShareSettings\x12N\n\x0bproject_map\x18\xb6\xd6\xff? \x03(\x0b\x32\x36.google.cloud.compute.v1.ShareSettings.ProjectMapEntry\x12\x1b\n\nshare_type\x18\x9a\x97\xb8\xab\x01 \x01(\tH\x00\x88\x01\x01\x1a\x66\n\x0fProjectMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.ShareSettingsProjectConfig:\x02\x38\x01\"\x84\x01\n\tShareType\x12\x18\n\x14UNDEFINED_SHARE_TYPE\x10\x00\x12\x0c\n\x05LOCAL\x10\xcb\xce\xcf\"\x12\x14\n\x0cORGANIZATION\x10\xb3\xaa\x8f\x83\x01\x12\x1e\n\x16SHARE_TYPE_UNSPECIFIED\x10\x92\xbc\xf6\xeb\x01\x12\x19\n\x11SPECIFIC_PROJECTS\x10\xe7\xb1\xee\xa5\x01\x42\r\n\x0b_share_type\"G\n\x1aShareSettingsProjectConfig\x12\x1a\n\nproject_id\x18\x81\xc8\xd2T \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_project_id\"\xce\x01\n\x16ShieldedInstanceConfig\x12,\n\x1b\x65nable_integrity_monitoring\x18\xb6\xdb\x87\xc3\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x12\x65nable_secure_boot\x18\xfe\x83\xf6: \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x65nable_vtpm\x18\xf7\xe4\xdbV \x01(\x08H\x02\x88\x01\x01\x42\x1e\n\x1c_enable_integrity_monitoringB\x15\n\x13_enable_secure_bootB\x0e\n\x0c_enable_vtpm\"\x8b\x02\n\x18ShieldedInstanceIdentity\x12W\n\x0e\x65ncryption_key\x18\xa3\xc7\xe9\xe8\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.ShieldedInstanceIdentityEntryH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12T\n\x0bsigning_key\x18\xa5\x90\x85\x99\x01 \x01(\x0b\x32\x36.google.cloud.compute.v1.ShieldedInstanceIdentityEntryH\x02\x88\x01\x01\x42\x11\n\x0f_encryption_keyB\x07\n\x05_kindB\x0e\n\x0c_signing_key\"i\n\x1dShieldedInstanceIdentityEntry\x12\x18\n\x07\x65k_cert\x18\x9d\xdc\xd4\xd6\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06\x65k_pub\x18\xe4\xd7\xa8\x93\x01 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_ek_certB\t\n\x07_ek_pub\"h\n\x1fShieldedInstanceIntegrityPolicy\x12(\n\x18update_auto_learn_policy\x18\xa7\xc4\x87u \x01(\x08H\x00\x88\x01\x01\x42\x1b\n\x19_update_auto_learn_policy\"`\n\x0cSignedUrlKey\x12\x19\n\x08key_name\x18\xeb\xf0\xee\xee\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\tkey_value\x18\x91\x9f\xb0\xf0\x01 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_key_nameB\x0c\n\n_key_value\"\xfc\x01\n\'SimulateMaintenanceEventInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12,\n\x1bwith_extended_notifications\x18\xfb\xd7\xc9\xc1\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x1e\n\x1c_with_extended_notifications\"\xc1\x02\n(SimulateMaintenanceEventNodeGroupRequest\x12\x1b\n\nnode_group\x18\x82\xfc\x8b\xe0\x01 \x01(\tB\x03\xe0\x41\x02\x12\x8c\x01\n7node_groups_simulate_maintenance_event_request_resource\x18\xdc\xf9\xcb\xa7\x01 \x01(\x0b\x32\x42.google.cloud.compute.v1.NodeGroupsSimulateMaintenanceEventRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xcd\x14\n\x08Snapshot\x12\x1d\n\x0c\x61rchitecture\x18\xd3\xd2\xb1\x90\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0c\x61uto_created\x18\xd8\xc8\x9b\xdd\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1a\n\nchain_name\x18\xc9\xda\xdd \x01(\tH\x02\x88\x01\x01\x12#\n\x13\x63reation_size_bytes\x18\x8d\xe8\xe5; \x01(\x03H\x03\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x1d\n\x0c\x64isk_size_gb\x18\xb7\x9a\xe7\x96\x01 \x01(\x03H\x06\x88\x01\x01\x12\x1f\n\x0e\x64ownload_bytes\x18\xf4\xcb\xb9\xcf\x01 \x01(\x03H\x07\x88\x01\x01\x12+\n\x1b\x65nable_confidential_compute\x18\xbc\xeb\xd9\x30 \x01(\x08H\x08\x88\x01\x01\x12\x1c\n\x0bguest_flush\x18\xdd\x93\xec\xb7\x01 \x01(\x08H\t\x88\x01\x01\x12\x45\n\x11guest_os_features\x18\xd1\xe0\xe7% \x03(\x0b\x32\'.google.cloud.compute.v1.GuestOsFeature\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\n\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x0b\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x0c\x88\x01\x01\x12\x41\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32-.google.cloud.compute.v1.Snapshot.LabelsEntry\x12\x18\n\rlicense_codes\x18\xa8\x85\xd8\x15 \x03(\x03\x12\x14\n\x08licenses\x18\xd2\x88\x80\xa1\x01 \x03(\t\x12\x1e\n\rlocation_hint\x18\xd1\x81\x92\xa7\x01 \x01(\tH\r\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\rsatisfies_pzi\x18\xa1\xdd\xab\xe5\x01 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\rsatisfies_pzs\x18\xab\xdd\xab\xe5\x01 \x01(\x08H\x10\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x11\x88\x01\x01\x12W\n\x17snapshot_encryption_key\x18\xfe\xf6\xd4\x14 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x12\x88\x01\x01\x12\x1d\n\rsnapshot_type\x18\xd5\xd9\xa5; \x01(\tH\x13\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x14\x88\x01\x01\x12[\n\x1asource_disk_encryption_key\x18\xe1\xa0\xb8\xfd\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x15\x88\x01\x01\x12\x34\n#source_disk_for_recovery_checkpoint\x18\xfe\xe1\xca\xab\x01 \x01(\tH\x16\x88\x01\x01\x12\x1f\n\x0esource_disk_id\x18\xd9\xcd\xc9\xd8\x01 \x01(\tH\x17\x88\x01\x01\x12\'\n\x17source_instant_snapshot\x18\x86\x84\xc3h \x01(\tH\x18\x88\x01\x01\x12g\n&source_instant_snapshot_encryption_key\x18\xfc\x85\x94\xd0\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x19\x88\x01\x01\x12+\n\x1asource_instant_snapshot_id\x18\xf4\xd3\x90\x89\x01 \x01(\tH\x1a\x88\x01\x01\x12/\n\x1fsource_snapshot_schedule_policy\x18\x83\xb6\xb5p \x01(\tH\x1b\x88\x01\x01\x12\x32\n\"source_snapshot_schedule_policy_id\x18\xd7\xa7\xce! \x01(\tH\x1c\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\rstorage_bytes\x18\xa7\xbb\xbd\xca\x01 \x01(\x03H\x1e\x88\x01\x01\x12%\n\x14storage_bytes_status\x18\x8a\xab\x80\xea\x01 \x01(\tH\x1f\x88\x01\x01\x12\x1d\n\x11storage_locations\x18\x9a\xed\xb3\x9c\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"j\n\x0c\x41rchitecture\x12\x1a\n\x16UNDEFINED_ARCHITECTURE\x10\x00\x12 \n\x18\x41RCHITECTURE_UNSPECIFIED\x10\xab\xd4\x9d\xbc\x01\x12\x0c\n\x05\x41RM64\x10\xfa\xcb\xe9\x1d\x12\x0e\n\x06X86_64\x10\xc7\xa4\xe6\xca\x01\"N\n\x0cSnapshotType\x12\x1b\n\x17UNDEFINED_SNAPSHOT_TYPE\x10\x00\x12\x0f\n\x07\x41RCHIVE\x10\xa2\xd9\xd1\xf1\x01\x12\x10\n\x08STANDARD\x10\xbd\x9d\x8c\xe7\x01\"r\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x10\n\tUPLOADING\x10\xa1\x9c\xcd\x7f\"]\n\x12StorageBytesStatus\x12\"\n\x1eUNDEFINED_STORAGE_BYTES_STATUS\x10\x00\x12\x10\n\x08UPDATING\x10\xc6\xee\xec\xeb\x01\x12\x11\n\nUP_TO_DATE\x10\xce\xa2\xa7\x30\x42\x0f\n\r_architectureB\x0f\n\r_auto_createdB\r\n\x0b_chain_nameB\x16\n\x14_creation_size_bytesB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0f\n\r_disk_size_gbB\x11\n\x0f_download_bytesB\x1e\n\x1c_enable_confidential_computeB\x0e\n\x0c_guest_flushB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x10\n\x0e_location_hintB\x07\n\x05_nameB\x10\n\x0e_satisfies_pziB\x10\n\x0e_satisfies_pzsB\x0c\n\n_self_linkB\x1a\n\x18_snapshot_encryption_keyB\x10\n\x0e_snapshot_typeB\x0e\n\x0c_source_diskB\x1d\n\x1b_source_disk_encryption_keyB&\n$_source_disk_for_recovery_checkpointB\x11\n\x0f_source_disk_idB\x1a\n\x18_source_instant_snapshotB)\n\'_source_instant_snapshot_encryption_keyB\x1d\n\x1b_source_instant_snapshot_idB\"\n _source_snapshot_schedule_policyB%\n#_source_snapshot_schedule_policy_idB\t\n\x07_statusB\x10\n\x0e_storage_bytesB\x17\n\x15_storage_bytes_status\"\xa1\x02\n\x0cSnapshotList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32!.google.cloud.compute.v1.Snapshot\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x8c\x01\n\x10SnapshotSettings\x12\x63\n\x10storage_location\x18\xf9\xd1\xe0\xdb\x01 \x01(\x0b\x32@.google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsH\x00\x88\x01\x01\x42\x13\n\x11_storage_location\"\xde\x03\n\'SnapshotSettingsStorageLocationSettings\x12\x66\n\tlocations\x18\xde\xae\x91\xc5\x01 \x03(\x0b\x32O.google.cloud.compute.v1.SnapshotSettingsStorageLocationSettings.LocationsEntry\x12\x16\n\x06policy\x18\xb2\xca\xb6+ \x01(\tH\x00\x88\x01\x01\x1a\x8b\x01\n\x0eLocationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12h\n\x05value\x18\x02 \x01(\x0b\x32Y.google.cloud.compute.v1.SnapshotSettingsStorageLocationSettingsStorageLocationPreference:\x02\x38\x01\"\x99\x01\n\x06Policy\x12\x14\n\x10UNDEFINED_POLICY\x10\x00\x12\x14\n\x0cLOCAL_REGION\x10\xe8\xec\xb5\xc0\x01\x12\x1b\n\x14NEAREST_MULTI_REGION\x10\xbb\xfe\xa7\x65\x12\x1a\n\x12SPECIFIC_LOCATIONS\x10\xf1\xc8\xc7\x85\x01\x12*\n#STORAGE_LOCATION_POLICY_UNSPECIFIED\x10\xf0\x90\xc2wB\t\n\x07_policy\"a\n@SnapshotSettingsStorageLocationSettingsStorageLocationPreference\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xb5\x01\n\x17SourceDiskEncryptionKey\x12T\n\x13\x64isk_encryption_key\x18\x85\xed\xc4\x81\x01 \x01(\x0b\x32..google.cloud.compute.v1.CustomerEncryptionKeyH\x00\x88\x01\x01\x12\x1c\n\x0bsource_disk\x18\xc1\xee\xb4\xd7\x01 \x01(\tH\x01\x88\x01\x01\x42\x16\n\x14_disk_encryption_keyB\x0e\n\x0c_source_disk\"a\n\x14SourceInstanceParams\x12I\n\x0c\x64isk_configs\x18\xcf\xd9\xaap \x03(\x0b\x32\x30.google.cloud.compute.v1.DiskInstantiationConfig\"\xf1\x08\n\x18SourceInstanceProperties\x12\x1f\n\x0e\x63\x61n_ip_forward\x18\xfc\x86\x84\xdf\x01 \x01(\x08H\x00\x88\x01\x01\x12$\n\x13\x64\x65letion_protection\x18\xea\xff\xb2\xda\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12<\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32*.google.cloud.compute.v1.SavedAttachedDisk\x12J\n\x12guest_accelerators\x18\xef\xcc\x87\xdd\x01 \x03(\x0b\x32*.google.cloud.compute.v1.AcceleratorConfig\x12*\n\x1akey_revocation_action_type\x18\xe2\xdc\xc0p \x01(\tH\x03\x88\x01\x01\x12Q\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32=.google.cloud.compute.v1.SourceInstanceProperties.LabelsEntry\x12\x1c\n\x0cmachine_type\x18\xb2\xb0\xcal \x01(\tH\x04\x88\x01\x01\x12;\n\x08metadata\x18\xaf\xf6\xb5) \x01(\x0b\x32!.google.cloud.compute.v1.MetadataH\x05\x88\x01\x01\x12 \n\x10min_cpu_platform\x18\xf7\x9b\xeas \x01(\tH\x06\x88\x01\x01\x12H\n\x12network_interfaces\x18\x8b\xda\x92\x19 \x03(\x0b\x32).google.cloud.compute.v1.NetworkInterface\x12@\n\nscheduling\x18\x94\xcb\xb1\xb8\x01 \x01(\x0b\x32#.google.cloud.compute.v1.SchedulingH\x07\x88\x01\x01\x12\x45\n\x10service_accounts\x18\xb0\xc4\xab\x84\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.ServiceAccount\x12\x33\n\x04tags\x18\x99\xe8\xd8\x01 \x01(\x0b\x32\x1d.google.cloud.compute.v1.TagsH\x08\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8d\x01\n\x17KeyRevocationActionType\x12(\n$UNDEFINED_KEY_REVOCATION_ACTION_TYPE\x10\x00\x12.\n&KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED\x10\xda\x91\xde\xde\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x0b\n\x04STOP\x10\x82\x80\x9c\x01\x42\x11\n\x0f_can_ip_forwardB\x16\n\x14_deletion_protectionB\x0e\n\x0c_descriptionB\x1d\n\x1b_key_revocation_action_typeB\x0f\n\r_machine_typeB\x0b\n\t_metadataB\x13\n\x11_min_cpu_platformB\r\n\x0b_schedulingB\x07\n\x05_tags\"\xa0\x06\n\x0eSslCertificate\x12\x1c\n\x0b\x63\x65rtificate\x18\x97\x83\xfd\xa2\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x65xpire_time\x18\xed\xd3\x91\xd2\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12V\n\x07managed\x18\x9f\x9f\xa4\x8e\x01 \x01(\x0b\x32<.google.cloud.compute.v1.SslCertificateManagedSslCertificateH\x06\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x07\x88\x01\x01\x12\x1c\n\x0bprivate_key\x18\xa3\xf3\xa5\xac\x01 \x01(\tH\x08\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\t\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\n\x88\x01\x01\x12_\n\x0cself_managed\x18\xac\xf3\x81\x9d\x01 \x01(\x0b\x32@.google.cloud.compute.v1.SslCertificateSelfManagedSslCertificateH\x0b\x88\x01\x01\x12%\n\x19subject_alternative_names\x18\xe3\xef\x93\xfc\x01 \x03(\t\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x0c\x88\x01\x01\"[\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x0f\n\x07MANAGED\x10\xff\xb6\xd2\xe4\x01\x12\x14\n\x0cSELF_MANAGED\x10\x8c\xfb\x93\xcf\x01\x12\x18\n\x10TYPE_UNSPECIFIED\x10\x92\xfb\xdb\xd0\x01\x42\x0e\n\x0c_certificateB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_expire_timeB\x05\n\x03_idB\x07\n\x05_kindB\n\n\x08_managedB\x07\n\x05_nameB\x0e\n\x0c_private_keyB\t\n\x07_regionB\x0c\n\n_self_linkB\x0f\n\r_self_managedB\x07\n\x05_type\"\xcb\x03\n\x1cSslCertificateAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.SslCertificateAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a`\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.SslCertificatesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x02\n\x12SslCertificateList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.SslCertificate\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd0\x03\n#SslCertificateManagedSslCertificate\x12i\n\rdomain_status\x18\xcd\xa7\xe7\xab\x01 \x03(\x0b\x32N.google.cloud.compute.v1.SslCertificateManagedSslCertificate.DomainStatusEntry\x12\x12\n\x07\x64omains\x18\xaf\x88\x9bl \x03(\t\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x00\x88\x01\x01\x1a\x33\n\x11\x44omainStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd1\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12.\n&MANAGED_CERTIFICATE_STATUS_UNSPECIFIED\x10\xd2\xc5\xb3\xe2\x01\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x1a\n\x13PROVISIONING_FAILED\x10\xcf\xab\xd0$\x12\'\n\x1fPROVISIONING_FAILED_PERMANENTLY\x10\xab\xf0\x92\x83\x01\x12\x16\n\x0eRENEWAL_FAILED\x10\x84\xbe\xa1\xcf\x01\x42\t\n\x07_status\"\x85\x01\n\'SslCertificateSelfManagedSslCertificate\x12\x1c\n\x0b\x63\x65rtificate\x18\x97\x83\xfd\xa2\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bprivate_key\x18\xa3\xf3\xa5\xac\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_certificateB\x0e\n\x0c_private_key\"\xa9\x01\n\x19SslCertificatesScopedList\x12\x45\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.SslCertificate\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xe0\x03\n\x19SslPoliciesAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.SslPoliciesAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.SslPoliciesScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0fSslPoliciesList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.SslPolicy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"?\n(SslPoliciesListAvailableFeaturesResponse\x12\x13\n\x08\x66\x65\x61tures\x18\xbd\xc8\xb3u \x03(\t\"\x9b\x01\n\x15SslPoliciesScopedList\x12;\n\x0cssl_policies\x18\xa3\xe4\x8d\x64 \x03(\x0b\x32\".google.cloud.compute.v1.SslPolicy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xd9\x05\n\tSslPolicy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x0f\x63ustom_features\x18\xcb\xb2\xcb\x10 \x03(\t\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x10\x65nabled_features\x18\xfb\xc6\xd2\xdf\x01 \x03(\t\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x1f\n\x0fmin_tls_version\x18\xa7\xe6\xf1\x03 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07profile\x18\xa9\x93\xbal \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x37\n\x08warnings\x18\xd7\x88\xc1\xed\x01 \x03(\x0b\x32!.google.cloud.compute.v1.Warnings\"^\n\rMinTlsVersion\x12\x1d\n\x19UNDEFINED_MIN_TLS_VERSION\x10\x00\x12\x0e\n\x07TLS_1_0\x10\xbe\xa4\xe5\x0f\x12\x0e\n\x07TLS_1_1\x10\xbf\xa4\xe5\x0f\x12\x0e\n\x07TLS_1_2\x10\xc0\xa4\xe5\x0f\"e\n\x07Profile\x12\x15\n\x11UNDEFINED_PROFILE\x10\x00\x12\x11\n\nCOMPATIBLE\x10\xd4\x8d\xc3U\x12\x0e\n\x06\x43USTOM\x10\xf1\xfe\xa5\xb9\x01\x12\r\n\x06MODERN\x10\x9f\xbe\xf9>\x12\x11\n\nRESTRICTED\x10\xdb\xe8\xdb|B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_min_tls_versionB\x07\n\x05_nameB\n\n\x08_profileB\t\n\x07_regionB\x0c\n\n_self_link\"@\n\x12SslPolicyReference\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_ssl_policy\"\xa0\x02\n StartAsyncReplicationDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12{\n.disks_start_async_replication_request_resource\x18\xda\x9e\xc0\xe0\x01 \x01(\x0b\x32:.google.cloud.compute.v1.DisksStartAsyncReplicationRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xb8\x02\n&StartAsyncReplicationRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x88\x01\n5region_disks_start_async_replication_request_resource\x18\x85\xc8\x96\xe2\x01 \x01(\x0b\x32@.google.cloud.compute.v1.RegionDisksStartAsyncReplicationRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9b\x01\n\x14StartInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xce\x02\n)StartInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8d\x01\n8instance_group_managers_start_instances_request_resource\x18\xab\xa5\xbf| \x01(\x0b\x32\x43.google.cloud.compute.v1.InstanceGroupManagersStartInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe6\x02\n/StartInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9b\x01\n?region_instance_group_managers_start_instances_request_resource\x18\x96\x9b\xff\xec\x01 \x01(\x0b\x32I.google.cloud.compute.v1.RegionInstanceGroupManagersStartInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xb5\x02\n%StartWithEncryptionKeyInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x86\x01\n4instances_start_with_encryption_key_request_resource\x18\xff\xfe\xcf\xd2\x01 \x01(\x0b\x32?.google.cloud.compute.v1.InstancesStartWithEncryptionKeyRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"|\n\x0eStatefulPolicy\x12V\n\x0fpreserved_state\x18\xaa\xe2\xa0\x01 \x01(\x0b\x32\x35.google.cloud.compute.v1.StatefulPolicyPreservedStateH\x00\x88\x01\x01\x42\x12\n\x10_preserved_state\"\x8e\x05\n\x1cStatefulPolicyPreservedState\x12R\n\x05\x64isks\x18\xf6\xcc\xca- \x03(\x0b\x32@.google.cloud.compute.v1.StatefulPolicyPreservedState.DisksEntry\x12\x61\n\rexternal_i_ps\x18\x8d\xd3\x80\xfe\x01 \x03(\x0b\x32\x46.google.cloud.compute.v1.StatefulPolicyPreservedState.ExternalIPsEntry\x12`\n\rinternal_i_ps\x18\xdb\x9b\xef\x66 \x03(\x0b\x32\x46.google.cloud.compute.v1.StatefulPolicyPreservedState.InternalIPsEntry\x1am\n\nDisksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x05value\x18\x02 \x01(\x0b\x32?.google.cloud.compute.v1.StatefulPolicyPreservedStateDiskDevice:\x02\x38\x01\x1ar\n\x10\x45xternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp:\x02\x38\x01\x1ar\n\x10InternalIPsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12M\n\x05value\x18\x02 \x01(\x0b\x32>.google.cloud.compute.v1.StatefulPolicyPreservedStateNetworkIp:\x02\x38\x01\"\xb4\x01\n&StatefulPolicyPreservedStateDiskDevice\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-B\x0e\n\x0c_auto_delete\"\xb3\x01\n%StatefulPolicyPreservedStateNetworkIp\x12\x1c\n\x0b\x61uto_delete\x18\xbb\xe4\xce\xdd\x01 \x01(\tH\x00\x88\x01\x01\"\\\n\nAutoDelete\x12\x19\n\x15UNDEFINED_AUTO_DELETE\x10\x00\x12\x0c\n\x05NEVER\x10\xec\xa4\xaf#\x12%\n\x1eON_PERMANENT_INSTANCE_DELETION\x10\xe7\xe0\xd2-B\x0e\n\x0c_auto_delete\"x\n\x06Status\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\x05H\x00\x88\x01\x01\x12)\n\x07\x64\x65tails\x18\xc2\xe4\xe3\xe6\x01 \x03(\x0b\x32\x14.google.protobuf.Any\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"\xa2\x01\n\x1fStopAsyncReplicationDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xac\x01\n%StopAsyncReplicationRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9a\x02\n$StopGroupAsyncReplicationDiskRequest\x12\x86\x01\n4disks_stop_group_async_replication_resource_resource\x18\x95\xf8\xaf\xa5\x01 \x01(\x0b\x32?.google.cloud.compute.v1.DisksStopGroupAsyncReplicationResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xa4\x02\n*StopGroupAsyncReplicationRegionDiskRequest\x12\x86\x01\n4disks_stop_group_async_replication_resource_resource\x18\x95\xf8\xaf\xa5\x01 \x01(\x0b\x32?.google.cloud.compute.v1.DisksStopGroupAsyncReplicationResourceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd4\x01\n\x13StopInstanceRequest\x12\"\n\x11\x64iscard_local_ssd\x18\xcf\xe9\xad\x98\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x14\n\x12_discard_local_ssdB\r\n\x0b_request_id\"\xcb\x02\n(StopInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x8b\x01\n7instance_group_managers_stop_instances_request_resource\x18\x8d\xa5\xf4\x11 \x01(\x0b\x32\x42.google.cloud.compute.v1.InstanceGroupManagersStopInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xe3\x02\n.StopInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x99\x01\n>region_instance_group_managers_stop_instances_request_resource\x18\xc2\x9c\xf2\x80\x01 \x01(\x0b\x32H.google.cloud.compute.v1.RegionInstanceGroupManagersStopInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x85\x0b\n\x0bStoragePool\x12*\n\x1a\x63\x61pacity_provisioning_type\x18\x87\x8a\xfdw \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x05\x88\x01\x01\x12\x44\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x30.google.cloud.compute.v1.StoragePool.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12.\n\x1dperformance_provisioning_type\x18\xfd\x9d\xb6\xdf\x01 \x01(\tH\x07\x88\x01\x01\x12-\n\x1cpool_provisioned_capacity_gb\x18\xd2\xcf\x97\xe4\x01 \x01(\x03H\x08\x88\x01\x01\x12%\n\x15pool_provisioned_iops\x18\x97\xc9\xb9\x35 \x01(\x03H\t\x88\x01\x01\x12+\n\x1bpool_provisioned_throughput\x18\x98\x8d\xd8P \x01(\x03H\n\x88\x01\x01\x12S\n\x0fresource_status\x18\xc3\xfa\xf7v \x01(\x0b\x32\x32.google.cloud.compute.v1.StoragePoolResourceStatusH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\r\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x0e\x88\x01\x01\x12J\n\x06status\x18\xf2\x9f\xb7V \x01(\x0b\x32\x32.google.cloud.compute.v1.StoragePoolResourceStatusH\x0f\x88\x01\x01\x12\"\n\x11storage_pool_type\x18\xb9\x81\xb0\x88\x01 \x01(\tH\x10\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x11\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x18\x43\x61pacityProvisioningType\x12(\n$UNDEFINED_CAPACITY_PROVISIONING_TYPE\x10\x00\"J\n\x1bPerformanceProvisioningType\x12+\n\'UNDEFINED_PERFORMANCE_PROVISIONING_TYPE\x10\x00\"^\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x1d\n\x1b_capacity_provisioning_typeB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB \n\x1e_performance_provisioning_typeB\x1f\n\x1d_pool_provisioned_capacity_gbB\x18\n\x16_pool_provisioned_iopsB\x1e\n\x1c_pool_provisioned_throughputB\x12\n\x10_resource_statusB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x08\n\x06_stateB\t\n\x07_statusB\x14\n\x12_storage_pool_typeB\x07\n\x05_zone\"\xe1\x03\n\x19StoragePoolAggregatedList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12O\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32=.google.cloud.compute.v1.StoragePoolAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x1a]\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.compute.v1.StoragePoolsScopedList:\x02\x38\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe0\x04\n\x0fStoragePoolDisk\x12\x1d\n\x12\x61ttached_instances\x18\xa3\xf3\x8e\x1f \x03(\t\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x02\x88\x01\x01\x12 \n\x10provisioned_iops\x18\xd4\xbd\x87Y \x01(\x03H\x03\x88\x01\x01\x12\'\n\x16provisioned_throughput\x18\x95\xbe\x88\xfb\x01 \x01(\x03H\x04\x88\x01\x01\x12\x1c\n\x11resource_policies\x18\xe1\x9c\xcc\n \x03(\t\x12\x18\n\x07size_gb\x18\xd9\x8b\x80\xec\x01 \x01(\x03H\x05\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\nused_bytes\x18\xe9\x9a\xban \x01(\x03H\x08\x88\x01\x01\"\x88\x01\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%\x12\x11\n\tRESTORING\x10\xab\xa7\xe2\xc0\x01\x12\x13\n\x0bUNAVAILABLE\x10\xb0\xd8\xa5\xc5\x01\x42\x15\n\x13_creation_timestampB\x07\n\x05_diskB\x07\n\x05_nameB\x13\n\x11_provisioned_iopsB\x19\n\x17_provisioned_throughputB\n\n\x08_size_gbB\t\n\x07_statusB\x07\n\x05_typeB\r\n\x0b_used_bytes\"\xdf\x02\n\x0fStoragePoolList\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12\x36\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32$.google.cloud.compute.v1.StoragePool\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xe8\x02\n\x14StoragePoolListDisks\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x01\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.StoragePoolDisk\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x03\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x04\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x05\x88\x01\x01\x42\x07\n\x05_etagB\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xed\x05\n\x19StoragePoolResourceStatus\x12\x1a\n\ndisk_count\x18\xed\xaf\x9dW \x01(\x03H\x00\x88\x01\x01\x12&\n\x15last_resize_timestamp\x18\xd4\xfb\xe7\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x36\n&max_total_provisioned_disk_capacity_gb\x18\xdf\xde\x88O \x01(\x03H\x02\x88\x01\x01\x12)\n\x18pool_used_capacity_bytes\x18\xc5\xe9\xb0\xf3\x01 \x01(\x03H\x03\x88\x01\x01\x12\x1e\n\x0epool_used_iops\x18\x88\xc9\xbc/ \x01(\x03H\x04\x88\x01\x01\x12$\n\x14pool_used_throughput\x18\xc9\x9b\xa5\x62 \x01(\x03H\x05\x88\x01\x01\x12\'\n\x17pool_user_written_bytes\x18\xd2\xed\x96m \x01(\x03H\x06\x88\x01\x01\x12\x33\n\"total_provisioned_disk_capacity_gb\x18\xa4\x8d\xb3\xf8\x01 \x01(\x03H\x07\x88\x01\x01\x12+\n\x1btotal_provisioned_disk_iops\x18\x85\xdc\xd2\x0f \x01(\x03H\x08\x88\x01\x01\x12\x32\n!total_provisioned_disk_throughput\x18\x86\x8b\xbc\xd5\x01 \x01(\x03H\t\x88\x01\x01\x42\r\n\x0b_disk_countB\x18\n\x16_last_resize_timestampB)\n\'_max_total_provisioned_disk_capacity_gbB\x1b\n\x19_pool_used_capacity_bytesB\x11\n\x0f_pool_used_iopsB\x17\n\x15_pool_used_throughputB\x1a\n\x18_pool_user_written_bytesB%\n#_total_provisioned_disk_capacity_gbB\x1e\n\x1c_total_provisioned_disk_iopsB$\n\"_total_provisioned_disk_throughput\"\xe7\x07\n\x0fStoragePoolType\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x30\n max_pool_provisioned_capacity_gb\x18\xcd\xf1\xecV \x01(\x03H\x05\x88\x01\x01\x12*\n\x19max_pool_provisioned_iops\x18\xfc\xcf\xd9\xf5\x01 \x01(\x03H\x06\x88\x01\x01\x12/\n\x1fmax_pool_provisioned_throughput\x18\xbd\xd4\x94m \x01(\x03H\x07\x88\x01\x01\x12\x30\n min_pool_provisioned_capacity_gb\x18\x9f\x8d\x8b[ \x01(\x03H\x08\x88\x01\x01\x12*\n\x19min_pool_provisioned_iops\x18\xea\xc4\xcb\xc6\x01 \x01(\x03H\t\x88\x01\x01\x12\x30\n\x1fmin_pool_provisioned_throughput\x18\xab\xb4\xae\xaf\x01 \x01(\x03H\n\x88\x01\x01\x12\x1c\n\x0bmin_size_gb\x18\xec\xc1\xdb\xb7\x01 \x01(\x03H\x0b\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\r\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x0e\x88\x01\x01\x12\x1f\n\x14supported_disk_types\x18\x88\x8f\xe7G \x03(\t\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\x0f\x88\x01\x01\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB#\n!_max_pool_provisioned_capacity_gbB\x1c\n\x1a_max_pool_provisioned_iopsB\"\n _max_pool_provisioned_throughputB#\n!_min_pool_provisioned_capacity_gbB\x1c\n\x1a_min_pool_provisioned_iopsB\"\n _min_pool_provisioned_throughputB\x0e\n\x0c_min_size_gbB\x07\n\x05_nameB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\x07\n\x05_zone\"\xb5\x03\n\x1dStoragePoolTypeAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.StoragePoolTypeAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.StoragePoolTypesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xaf\x02\n\x13StoragePoolTypeList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.StoragePoolType\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x01\n\x1aStoragePoolTypesScopedList\x12H\n\x12storage_pool_types\x18\xda\xad\xd0\x83\x01 \x03(\x0b\x32(.google.cloud.compute.v1.StoragePoolType\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xa0\x01\n\x16StoragePoolsScopedList\x12?\n\rstorage_pools\x18\x93\x92\xc0\xd0\x01 \x03(\x0b\x32$.google.cloud.compute.v1.StoragePool\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xae\x13\n\nSubnetwork\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12 \n\x10\x65nable_flow_logs\x18\xe4\xc4\xa1H \x01(\x08H\x02\x88\x01\x01\x12$\n\x14\x65xternal_ipv6_prefix\x18\xf6\x92\xb6\x42 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12 \n\x0fgateway_address\x18\xf9\x89\xa4\xdb\x01 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12%\n\x14internal_ipv6_prefix\x18\xe8\xa2\xb4\xf1\x01 \x01(\tH\x07\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x08\x88\x01\x01\x12\x1d\n\rip_collection\x18\xb6\x91\xa8T \x01(\tH\t\x88\x01\x01\x12!\n\x10ipv6_access_type\x18\xdd\xf5\xd1\xf0\x01 \x01(\tH\n\x88\x01\x01\x12 \n\x0fipv6_cidr_range\x18\x8a\x9c\x9f\x82\x01 \x01(\tH\x0b\x88\x01\x01\x12\"\n\x11ipv6_gce_endpoint\x18\xe3\xca\xe2\x98\x01 \x01(\tH\x0c\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\r\x88\x01\x01\x12I\n\nlog_config\x18\x9d\xd1\xc1\xa7\x01 \x01(\x0b\x32,.google.cloud.compute.v1.SubnetworkLogConfigH\x0e\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x0f\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x10\x88\x01\x01\x12\x41\n\x06params\x18\x86\xf3\xab% \x01(\x0b\x32).google.cloud.compute.v1.SubnetworkParamsH\x11\x88\x01\x01\x12)\n\x18private_ip_google_access\x18\xce\xe8\xfd\xc8\x01 \x01(\x08H\x12\x88\x01\x01\x12*\n\x1aprivate_ipv6_google_access\x18\x8e\xcc\x82\x17 \x01(\tH\x13\x88\x01\x01\x12\x18\n\x07purpose\x18\x9e\xfa\xef\x96\x01 \x01(\tH\x14\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x15\x88\x01\x01\x12(\n\x17reserved_internal_range\x18\xb2\x9e\xbf\x88\x01 \x01(\tH\x16\x88\x01\x01\x12\x14\n\x04role\x18\xf6\x80\xd6\x01 \x01(\tH\x17\x88\x01\x01\x12Q\n\x13secondary_ip_ranges\x18\xe3\xff\x94\x41 \x03(\x0b\x32\x31.google.cloud.compute.v1.SubnetworkSecondaryRange\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x18\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x19\x88\x01\x01\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x1a\x88\x01\x01\x12/\n$system_reserved_external_ipv6_ranges\x18\xe1\x88\x93\x1f \x03(\t\x12\x30\n$system_reserved_internal_ipv6_ranges\x18\xd3\x98\x91\xce\x01 \x03(\t\"y\n\x0eIpv6AccessType\x12\x1e\n\x1aUNDEFINED_IPV6_ACCESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\x12$\n\x1cUNSPECIFIED_IPV6_ACCESS_TYPE\x10\xa5\xf6\xa4\x95\x01\"T\n\x0fIpv6GceEndpoint\x12\x1f\n\x1bUNDEFINED_IPV6_GCE_ENDPOINT\x10\x00\x12\x10\n\tVM_AND_FR\x10\xdc\x8d\xf9\x13\x12\x0e\n\x07VM_ONLY\x10\xb4\xc0\xf3p\"\xbe\x01\n\x17PrivateIpv6GoogleAccess\x12(\n$UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS\x10\x00\x12\x1d\n\x15\x44ISABLE_GOOGLE_ACCESS\x10\xf3\xa9\x84\xd7\x01\x12-\n%ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE\x10\xba\xca\x89\xcc\x01\x12+\n#ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE\x10\xd7\xfa\xb6\x89\x01\"\xf8\x01\n\x07Purpose\x12\x15\n\x11UNDEFINED_PURPOSE\x10\x00\x12\x1b\n\x14GLOBAL_MANAGED_PROXY\x10\xf2\xcb\xe0p\x12#\n\x1cINTERNAL_HTTPS_LOAD_BALANCER\x10\xd9\xb6\xcev\x12\x16\n\x0ePEER_MIGRATION\x10\x91\xaa\xc7\xea\x01\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\x13\n\x0bPRIVATE_NAT\x10\xa5\xc8\xae\xaf\x01\x12\x17\n\x10PRIVATE_RFC_1918\x10\xdb\xfe\xc5y\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x1d\n\x16REGIONAL_MANAGED_PROXY\x10\xee\xb6\xfdH\":\n\x04Role\x12\x12\n\x0eUNDEFINED_ROLE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x06\x42\x41\x43KUP\x10\xc2\xd3\xcd\xa2\x01\"{\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%\x12\x1e\n\x16UNSPECIFIED_STACK_TYPE\x10\xd9\xd1\x91\x8e\x01\"<\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x10\n\x08\x44RAINING\x10\xea\xd5\x8c\xe5\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x13\n\x11_enable_flow_logsB\x17\n\x15_external_ipv6_prefixB\x0e\n\x0c_fingerprintB\x12\n\x10_gateway_addressB\x05\n\x03_idB\x17\n\x15_internal_ipv6_prefixB\x10\n\x0e_ip_cidr_rangeB\x10\n\x0e_ip_collectionB\x13\n\x11_ipv6_access_typeB\x12\n\x10_ipv6_cidr_rangeB\x14\n\x12_ipv6_gce_endpointB\x07\n\x05_kindB\r\n\x0b_log_configB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_paramsB\x1b\n\x19_private_ip_google_accessB\x1d\n\x1b_private_ipv6_google_accessB\n\n\x08_purposeB\t\n\x07_regionB\x1a\n\x18_reserved_internal_rangeB\x07\n\x05_roleB\x0c\n\n_self_linkB\r\n\x0b_stack_typeB\x08\n\x06_state\"\xbf\x03\n\x18SubnetworkAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.SubnetworkAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.SubnetworksScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0eSubnetworkList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.Subnetwork\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xdd\x04\n\x13SubnetworkLogConfig\x12$\n\x14\x61ggregation_interval\x18\x82\x9b\xb4S \x01(\tH\x00\x88\x01\x01\x12\x17\n\x06\x65nable\x18\x83\xcb\xd4\x94\x01 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0b\x66ilter_expr\x18\xdc\xa4\xb8W \x01(\tH\x02\x88\x01\x01\x12\x1e\n\rflow_sampling\x18\xd8\xe7\xe5\xfc\x01 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x08metadata\x18\xaf\xf6\xb5) \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0fmetadata_fields\x18\xc9\xbb\xbb\xb4\x01 \x03(\t\"\xc8\x01\n\x13\x41ggregationInterval\x12\"\n\x1eUNDEFINED_AGGREGATION_INTERVAL\x10\x00\x12\x17\n\x0fINTERVAL_10_MIN\x10\xcc\xd1\xa5\xe8\x01\x12\x17\n\x0fINTERVAL_15_MIN\x10\xd1\xbc\xbf\xea\x01\x12\x15\n\x0eINTERVAL_1_MIN\x10\xaa\xd2\xf6 \x12\x16\n\x0fINTERVAL_30_SEC\x10\x89\xe0\xcc\x03\x12\x15\n\x0eINTERVAL_5_MIN\x10\xae\x8e\xd8\"\x12\x15\n\x0eINTERVAL_5_SEC\x10\xad\xba\xd8\"\"u\n\x08Metadata\x12\x16\n\x12UNDEFINED_METADATA\x10\x00\x12\x16\n\x0f\x43USTOM_METADATA\x10\xbd\xd8\xe3\x1d\x12\x1c\n\x14\x45XCLUDE_ALL_METADATA\x10\x92\xbd\xc1\x9f\x01\x12\x1b\n\x14INCLUDE_ALL_METADATA\x10\x84\xcd\xbfNB\x17\n\x15_aggregation_intervalB\t\n\x07_enableB\x0e\n\x0c_filter_exprB\x10\n\x0e_flow_samplingB\x0b\n\t_metadata\"\xb5\x01\n\x10SubnetworkParams\x12\x65\n\x15resource_manager_tags\x18\xfc\x9b\x8b\xb4\x01 \x03(\x0b\x32\x42.google.cloud.compute.v1.SubnetworkParams.ResourceManagerTagsEntry\x1a:\n\x18ResourceManagerTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbd\x01\n\x18SubnetworkSecondaryRange\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nrange_name\x18\xcd\xf0\xb4\x9e\x01 \x01(\tH\x01\x88\x01\x01\x12(\n\x17reserved_internal_range\x18\xb2\x9e\xbf\x88\x01 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ip_cidr_rangeB\r\n\x0b_range_nameB\x1a\n\x18_reserved_internal_range\"V\n#SubnetworksExpandIpCidrRangeRequest\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x42\x10\n\x0e_ip_cidr_range\"\x9c\x01\n\x15SubnetworksScopedList\x12<\n\x0bsubnetworks\x18\xc5\xd4\xa5\xc6\x01 \x03(\x0b\x32#.google.cloud.compute.v1.Subnetwork\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8d\x01\n\x18SubnetworksScopedWarning\x12\x1b\n\nscope_name\x18\x96\x93\xe3\xa4\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x01\x88\x01\x01\x42\r\n\x0b_scope_nameB\n\n\x08_warning\"t\n*SubnetworksSetPrivateIpGoogleAccessRequest\x12)\n\x18private_ip_google_access\x18\xce\xe8\xfd\xc8\x01 \x01(\x08H\x00\x88\x01\x01\x42\x1b\n\x19_private_ip_google_access\"\x7f\n\nSubsetting\x12\x16\n\x06policy\x18\xb2\xca\xb6+ \x01(\tH\x00\x88\x01\x01\"N\n\x06Policy\x12\x14\n\x10UNDEFINED_POLICY\x10\x00\x12!\n\x1a\x43ONSISTENT_HASH_SUBSETTING\x10\xb4\x98\xfc\x33\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x42\t\n\x07_policy\"\xd7\x01\n\x16SuspendInstanceRequest\x12\"\n\x11\x64iscard_local_ssd\x18\xcf\xe9\xad\x98\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x14\n\x12_discard_local_ssdB\r\n\x0b_request_id\"\xd4\x02\n+SuspendInstancesInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x91\x01\n:instance_group_managers_suspend_instances_request_resource\x18\xd1\x8d\xa1\x16 \x01(\x0b\x32\x45.google.cloud.compute.v1.InstanceGroupManagersSuspendInstancesRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xeb\x02\n1SuspendInstancesRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9e\x01\nAregion_instance_group_managers_suspend_instances_request_resource\x18\xfc\xe5\x94\x66 \x01(\x0b\x32K.google.cloud.compute.v1.RegionInstanceGroupManagersSuspendInstancesRequestB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x89\x01\n SwitchToCustomModeNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd8\x03\n\x0eTCPHealthCheck\x12\x14\n\x04port\x18\x81\xb1\xd2\x01 \x01(\x05H\x00\x88\x01\x01\x12\x19\n\tport_name\x18\x89\x87\xe7\x13 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12port_specification\x18\xc5\xeb\xcc\x18 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07request\x18\x8f\xe5\xbb\n \x01(\tH\x04\x88\x01\x01\x12\x18\n\x08response\x18\xc1\xa8\xdc] \x01(\tH\x05\x88\x01\x01\"~\n\x11PortSpecification\x12 \n\x1cUNDEFINED_PORT_SPECIFICATION\x10\x00\x12\x15\n\x0eUSE_FIXED_PORT\x10\xe4\x88\xdbZ\x12\x16\n\x0eUSE_NAMED_PORT\x10\xbf\xcf\xc7\xa6\x01\x12\x18\n\x10USE_SERVING_PORT\x10\xcc\xd1\xf5\xac\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x07\n\x05_portB\x0c\n\n_port_nameB\x15\n\x13_port_specificationB\x0f\n\r_proxy_headerB\n\n\x08_requestB\x0b\n\t_response\"E\n\x04Tags\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x00\x88\x01\x01\x12\x10\n\x05items\x18\xc0\xcf\xf7/ \x03(\tB\x0e\n\x0c_fingerprint\"\xca\x03\n\x0fTargetGrpcProxy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x11self_link_with_id\x18\x82\xac\x9d\x15 \x01(\tH\x07\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\x08\x88\x01\x01\x12&\n\x16validate_for_proxyless\x18\xa8\xe3\xc6\x30 \x01(\x08H\t\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0c\n\n_self_linkB\x14\n\x12_self_link_with_idB\n\n\x08_url_mapB\x19\n\x17_validate_for_proxyless\"\xaf\x02\n\x13TargetGrpcProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.TargetGrpcProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xae\x01\n\x1bTargetHttpProxiesScopedList\x12H\n\x13target_http_proxies\x18\xc3\xd5\xa8M \x03(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xeb\x03\n\x0fTargetHttpProxy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x02\x88\x01\x01\x12,\n\x1bhttp_keep_alive_timeout_sec\x18\xde\xce\xa6\xd5\x01 \x01(\x05H\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x1b\n\nproxy_bind\x18\xee\xce\xb1\x88\x01 \x01(\x08H\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\n\x88\x01\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x1e\n\x1c_http_keep_alive_timeout_secB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_proxy_bindB\t\n\x07_regionB\x0c\n\n_self_linkB\n\n\x08_url_map\"\x88\x03\n\x1dTargetHttpProxyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12S\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x41.google.cloud.compute.v1.TargetHttpProxyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x1a\x62\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.TargetHttpProxiesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_link\"\xaf\x02\n\x13TargetHttpProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12:\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32(.google.cloud.compute.v1.TargetHttpProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb2\x01\n\x1cTargetHttpsProxiesScopedList\x12K\n\x14target_https_proxies\x18\x8a\xfc\xe7\xae\x01 \x03(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"a\n*TargetHttpsProxiesSetCertificateMapRequest\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_certificate_map\"\xb6\x01\n(TargetHttpsProxiesSetQuicOverrideRequest\x12\x1e\n\rquic_override\x18\xad\xa1\xdb\xd9\x01 \x01(\tH\x00\x88\x01\x01\"X\n\x0cQuicOverride\x12\x1b\n\x17UNDEFINED_QUIC_OVERRIDE\x10\x00\x12\x0e\n\x07\x44ISABLE\x10\xc8\xdd\xa6s\x12\x0e\n\x06\x45NABLE\x10\x83\xb3\xa0\xd1\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x42\x10\n\x0e_quic_override\"K\n+TargetHttpsProxiesSetSslCertificatesRequest\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\"\x9d\x08\n\x10TargetHttpsProxy\x12$\n\x14\x61uthorization_policy\x18\xb8\xef\x97\x10 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x01\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x04\x88\x01\x01\x12,\n\x1bhttp_keep_alive_timeout_sec\x18\xde\xce\xa6\xd5\x01 \x01(\x05H\x05\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x06\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12\x1b\n\nproxy_bind\x18\xee\xce\xb1\x88\x01 \x01(\x08H\t\x88\x01\x01\x12\x1e\n\rquic_override\x18\xad\xa1\xdb\xd9\x01 \x01(\tH\n\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\"\n\x11server_tls_policy\x18\xf2\xde\x87\x8d\x01 \x01(\tH\r\x88\x01\x01\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tH\x0e\x88\x01\x01\x12\x1e\n\x0etls_early_data\x18\xca\xe1\x91\x1d \x01(\tH\x0f\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\x10\x88\x01\x01\"X\n\x0cQuicOverride\x12\x1b\n\x17UNDEFINED_QUIC_OVERRIDE\x10\x00\x12\x0e\n\x07\x44ISABLE\x10\xc8\xdd\xa6s\x12\x0e\n\x06\x45NABLE\x10\x83\xb3\xa0\xd1\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\"x\n\x0cTlsEarlyData\x12\x1c\n\x18UNDEFINED_TLS_EARLY_DATA\x10\x00\x12\x10\n\x08\x44ISABLED\x10\xfc\xd4\xb0\xf6\x01\x12\x12\n\nPERMISSIVE\x10\x9f\xe5\xbe\xf0\x01\x12\x0e\n\x06STRICT\x10\xc9\xa5\xa1\x93\x01\x12\x14\n\x0cUNRESTRICTED\x10\xb4\xa7\x85\xda\x01\x42\x17\n\x15_authorization_policyB\x12\n\x10_certificate_mapB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x1e\n\x1c_http_keep_alive_timeout_secB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_proxy_bindB\x10\n\x0e_quic_overrideB\t\n\x07_regionB\x0c\n\n_self_linkB\x14\n\x12_server_tls_policyB\r\n\x0b_ssl_policyB\x11\n\x0f_tls_early_dataB\n\n\x08_url_map\"\xd2\x03\n\x1eTargetHttpsProxyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.TargetHttpsProxyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x63\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x44\n\x05value\x18\x02 \x01(\x0b\x32\x35.google.cloud.compute.v1.TargetHttpsProxiesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb1\x02\n\x14TargetHttpsProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.TargetHttpsProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xfc\x03\n\x0eTargetInstance\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\nnat_policy\x18\x90\xc4\x8a\xf3\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tH\n\x88\x01\x01\"4\n\tNatPolicy\x12\x18\n\x14UNDEFINED_NAT_POLICY\x10\x00\x12\r\n\x06NO_NAT\x10\x83\xbb\xfeLB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x0b\n\t_instanceB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_nat_policyB\n\n\x08_networkB\x12\n\x10_security_policyB\x0c\n\n_self_linkB\x07\n\x05_zone\"\xcb\x03\n\x1cTargetInstanceAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.TargetInstanceAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a`\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.compute.v1.TargetInstancesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x02\n\x12TargetInstanceList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.TargetInstance\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa9\x01\n\x19TargetInstancesScopedList\x12\x45\n\x10target_instances\x18\xd0\xd2\xad\xbb\x01 \x03(\x0b\x32\'.google.cloud.compute.v1.TargetInstance\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xa5\x06\n\nTargetPool\x12\x1b\n\x0b\x62\x61\x63kup_pool\x18\xf9\xc8\xf0\x15 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x0e\x66\x61ilover_ratio\x18\xfe\x94\xb4\x65 \x01(\x02H\x03\x88\x01\x01\x12\x19\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x14\n\tinstances\x18\xfe\xfc\xef\r \x03(\t\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1f\n\x0fsecurity_policy\x18\x91\x86\xcaQ \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12!\n\x10session_affinity\x18\xb1\xc1\x99\xdd\x01 \x01(\tH\n\x88\x01\x01\"\x8b\x02\n\x0fSessionAffinity\x12\x1e\n\x1aUNDEFINED_SESSION_AFFINITY\x10\x00\x12\x11\n\tCLIENT_IP\x10\x9b\xdc\xe9\xa4\x01\x12\x1f\n\x18\x43LIENT_IP_NO_DESTINATION\x10\x94\x9a\xcd\x32\x12\x1b\n\x14\x43LIENT_IP_PORT_PROTO\x10\xae\xf2\xdci\x12\x16\n\x0f\x43LIENT_IP_PROTO\x10\xa4\xc5\x89\x0c\x12\x18\n\x10GENERATED_COOKIE\x10\xb4\xce\xca\xb0\x01\x12\x13\n\x0cHEADER_FIELD\x10\xa8\x89\xdc_\x12\x13\n\x0bHTTP_COOKIE\x10\xfb\xa3\x83\xec\x01\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x1e\n\x16STRONG_COOKIE_AFFINITY\x10\xfb\xdd\x93\xd1\x01\x42\x0e\n\x0c_backup_poolB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x11\n\x0f_failover_ratioB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x12\n\x10_security_policyB\x0c\n\n_self_linkB\x13\n\x11_session_affinity\"\xbf\x03\n\x18TargetPoolAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.TargetPoolAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.TargetPoolsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"{\n\x18TargetPoolInstanceHealth\x12@\n\rhealth_status\x18\xb5\xd6\xba\xb5\x01 \x03(\x0b\x32%.google.cloud.compute.v1.HealthStatus\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_kind\"\xa5\x02\n\x0eTargetPoolList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.TargetPool\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"l\n TargetPoolsAddHealthCheckRequest\x12H\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\x0b\x32-.google.cloud.compute.v1.HealthCheckReference\"a\n\x1dTargetPoolsAddInstanceRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"o\n#TargetPoolsRemoveHealthCheckRequest\x12H\n\rhealth_checks\x18\xae\xaf\xe6\xd5\x01 \x03(\x0b\x32-.google.cloud.compute.v1.HealthCheckReference\"d\n TargetPoolsRemoveInstanceRequest\x12@\n\tinstances\x18\xfe\xfc\xef\r \x03(\x0b\x32*.google.cloud.compute.v1.InstanceReference\"\x9d\x01\n\x15TargetPoolsScopedList\x12=\n\x0ctarget_pools\x18\xa9\x9f\xa0\xa0\x01 \x03(\x0b\x32#.google.cloud.compute.v1.TargetPool\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"4\n\x0fTargetReference\x12\x16\n\x06target\x18\x91\xe3\xf9[ \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_target\"P\n(TargetSslProxiesSetBackendServiceRequest\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_service\"_\n(TargetSslProxiesSetCertificateMapRequest\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x00\x88\x01\x01\x42\x12\n\x10_certificate_map\"\xa0\x01\n%TargetSslProxiesSetProxyHeaderRequest\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x00\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x0f\n\r_proxy_header\"I\n)TargetSslProxiesSetSslCertificatesRequest\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\"\x98\x04\n\x0eTargetSslProxy\x12\x1f\n\x0f\x63\x65rtificate_map\x18\xb4\xe5\xcdJ \x01(\tH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x10ssl_certificates\x18\x8f\xa2\xc3\xae\x01 \x03(\t\x12\x1b\n\nssl_policy\x18\xc5\xfd\xe0\x8c\x01 \x01(\tH\t\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x12\n\x10_certificate_mapB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\x0f\n\r_proxy_headerB\x0c\n\n_self_linkB\n\n\x08_serviceB\r\n\x0b_ssl_policy\"\xad\x02\n\x12TargetSslProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.TargetSslProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xab\x01\n\x1aTargetTcpProxiesScopedList\x12\x46\n\x12target_tcp_proxies\x18\x80\xd7\xfa| \x03(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxy\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"P\n(TargetTcpProxiesSetBackendServiceRequest\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_service\"\xa0\x01\n%TargetTcpProxiesSetProxyHeaderRequest\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x00\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x0f\n\r_proxy_header\"\xe8\x03\n\x0eTargetTcpProxy\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\nproxy_bind\x18\xee\xce\xb1\x88\x01 \x01(\x08H\x05\x88\x01\x01\x12\x1c\n\x0cproxy_header\x18\xfe\xba\xbcL \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\t\x88\x01\x01\"H\n\x0bProxyHeader\x12\x1a\n\x16UNDEFINED_PROXY_HEADER\x10\x00\x12\x0b\n\x04NONE\x10\xb8\xce\x92\x01\x12\x10\n\x08PROXY_V1\x10\xac\xa4\xb7\x9f\x01\x42\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\r\n\x0b_proxy_bindB\x0f\n\r_proxy_headerB\t\n\x07_regionB\x0c\n\n_self_linkB\n\n\x08_service\"\xcc\x03\n\x1cTargetTcpProxyAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12R\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32@.google.cloud.compute.v1.TargetTcpProxyAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x61\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.google.cloud.compute.v1.TargetTcpProxiesScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xad\x02\n\x12TargetTcpProxyList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x39\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\'.google.cloud.compute.v1.TargetTcpProxy\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xae\x05\n\x10TargetVpnGateway\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x10\x66orwarding_rules\x18\xb5\x9a\xcc\x96\x01 \x03(\t\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x03\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x04\x88\x01\x01\x12I\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x35.google.cloud.compute.v1.TargetVpnGateway.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x06\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x07\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x08\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\t\x88\x01\x01\x12\x12\n\x07tunnels\x18\x8b\xfa\xed\x31 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"`\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x10\n\x08\x43REATING\x10\xb9\xbd\x9d\xd9\x01\x12\x10\n\x08\x44\x45LETING\x10\xa8\xa7\x87\xfc\x01\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x0c\n\x05READY\x10\x83\xc3\x8f%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_status\"\xd1\x03\n\x1eTargetVpnGatewayAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12T\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x42.google.cloud.compute.v1.TargetVpnGatewayAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\x62\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32\x34.google.cloud.compute.v1.TargetVpnGatewaysScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb1\x02\n\x14TargetVpnGatewayList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.TargetVpnGateway\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xb0\x01\n\x1bTargetVpnGatewaysScopedList\x12J\n\x13target_vpn_gateways\x18\x88\x93\xca\xbf\x01 \x03(\x0b\x32).google.cloud.compute.v1.TargetVpnGateway\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x93\x04\n\x0bTestFailure\x12\"\n\x11\x61\x63tual_output_url\x18\x82\xd9\xf1\x88\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x1d\x61\x63tual_redirect_response_code\x18\xd9\x83\xbc\x14 \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x0e\x61\x63tual_service\x18\x84\xd2\xfe\xd1\x01 \x01(\tH\x02\x88\x01\x01\x12$\n\x13\x65xpected_output_url\x18\x98\xa2\xf7\xce\x01 \x01(\tH\x03\x88\x01\x01\x12/\n\x1f\x65xpected_redirect_response_code\x18\xef\xea\x80\t \x01(\x05H\x04\x88\x01\x01\x12 \n\x10\x65xpected_service\x18\xae\xf8\xf1? \x01(\tH\x05\x88\x01\x01\x12=\n\x07headers\x18\x86\xdf\x9d{ \x03(\x0b\x32).google.cloud.compute.v1.UrlMapTestHeader\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x06\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x07\x88\x01\x01\x42\x14\n\x12_actual_output_urlB \n\x1e_actual_redirect_response_codeB\x11\n\x0f_actual_serviceB\x16\n\x14_expected_output_urlB\"\n _expected_redirect_response_codeB\x13\n\x11_expected_serviceB\x07\n\x05_hostB\x07\n\x05_path\"\xd2\x01\n TestIamPermissionsAddressRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xc0\x01\n&TestIamPermissionsBackendBucketRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xc1\x01\n\'TestIamPermissionsBackendServiceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xcd\x01\n\x1dTestIamPermissionsDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xc5\x01\n+TestIamPermissionsExternalVpnGatewayRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xa8\x01\n\'TestIamPermissionsFirewallPolicyRequest\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xc0\x01\n&TestIamPermissionsGlobalAddressRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xb8\x01\n\x1eTestIamPermissionsImageRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd6\x01\n&TestIamPermissionsInstanceGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd1\x01\n!TestIamPermissionsInstanceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xc3\x01\n)TestIamPermissionsInstanceTemplateRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd8\x01\n(TestIamPermissionsInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xce\x01\n4TestIamPermissionsInterconnectAttachmentGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xc4\x01\n*TestIamPermissionsInterconnectGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xbe\x01\n$TestIamPermissionsLicenseCodeRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xba\x01\n TestIamPermissionsLicenseRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xbf\x01\n%TestIamPermissionsMachineImageRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdc\x01\n*TestIamPermissionsNetworkAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdd\x01\n-TestIamPermissionsNetworkEndpointGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xc8\x01\n.TestIamPermissionsNetworkFirewallPolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd2\x01\n\"TestIamPermissionsNodeGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd7\x01\n%TestIamPermissionsNodeTemplateRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xda\x01\n(TestIamPermissionsPacketMirroringRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdf\x01\n-TestIamPermissionsRegionBackendServiceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsRegionDiskRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xde\x01\n,TestIamPermissionsRegionInstanceGroupRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xe0\x01\n.TestIamPermissionsRegionInstantSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xe6\x01\n4TestIamPermissionsRegionNetworkFirewallPolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd4\x01\n$TestIamPermissionsReservationRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd9\x01\n\'TestIamPermissionsResourcePolicyRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xdc\x01\n*TestIamPermissionsServiceAttachmentRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xbb\x01\n!TestIamPermissionsSnapshotRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd4\x01\n$TestIamPermissionsStoragePoolRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsSubnetworkRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd7\x01\n\'TestIamPermissionsTargetInstanceRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsTargetPoolRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"\xd5\x01\n#TestIamPermissionsVpnGatewayRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x08resource\x18\x8e\x88\xaf] \x01(\tB\x03\xe0\x41\x02\x12\x63\n!test_permissions_request_resource\x18\xa6\xc5\xb7\xd1\x01 \x01(\x0b\x32/.google.cloud.compute.v1.TestPermissionsRequestB\x03\xe0\x41\x02\"0\n\x16TestPermissionsRequest\x12\x16\n\x0bpermissions\x18\x84\xe9\xcb\x1c \x03(\t\"1\n\x17TestPermissionsResponse\x12\x16\n\x0bpermissions\x18\x84\xe9\xcb\x1c \x03(\t\"D\n\x07Uint128\x12\x14\n\x04high\x18\xa2\xbb\xc3\x01 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\x03low\x18\xd4\xc6\x06 \x01(\x04H\x01\x88\x01\x01\x42\x07\n\x05_highB\x06\n\x04_low\"\xbe\t\n\x13UpcomingMaintenance\x12\x1e\n\x0e\x63\x61n_reschedule\x18\x99\xa3\xe2- \x01(\x08H\x00\x88\x01\x01\x12(\n\x18latest_window_start_time\x18\x81\xbb\x86= \x01(\tH\x01\x88\x01\x01\x12\'\n\x17maintenance_on_shutdown\x18\x8a\xc3\x96n \x01(\x08H\x02\x88\x01\x01\x12\x1e\n\x13maintenance_reasons\x18\x83\x9b\xf2\x42 \x03(\t\x12\"\n\x12maintenance_status\x18\x9e\x9d\xf7& \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x04\x88\x01\x01\x12 \n\x0fwindow_end_time\x18\xa0\xae\xce\x81\x01 \x01(\tH\x05\x88\x01\x01\x12\"\n\x11window_start_time\x18\xb9\xb0\xc9\xe1\x01 \x01(\tH\x06\x88\x01\x01\"\xa8\x04\n\x12MaintenanceReasons\x12!\n\x1dUNDEFINED_MAINTENANCE_REASONS\x10\x00\x12\x13\n\x0c\x46\x41ILURE_DISK\x10\xd2\xa6\x8b\x04\x12\x13\n\x0b\x46\x41ILURE_GPU\x10\xb7\xf8\x8c\xdf\x01\x12:\n3FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED\x10\xdf\x9d\xbcj\x12\x32\n+FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED\x10\x9e\xef\x98*\x12\x1e\n\x17\x46\x41ILURE_GPU_TEMPERATURE\x10\xcc\xb2\xf1\x0b\x12\x16\n\x0f\x46\x41ILURE_GPU_XID\x10\xeb\x96\xe3\x18\x12\x15\n\rFAILURE_INFRA\x10\x9b\xc5\x80\x81\x01\x12\x19\n\x11\x46\x41ILURE_INTERFACE\x10\x84\xf1\xff\xb9\x01\x12\x16\n\x0e\x46\x41ILURE_MEMORY\x10\xf6\xca\xef\xd1\x01\x12\x16\n\x0f\x46\x41ILURE_NETWORK\x10\xb9\x80\xb5\x14\x12\x16\n\x0e\x46\x41ILURE_NVLINK\x10\xb7\x84\xff\xe6\x01\x12\'\n FAILURE_REDUNDANT_HARDWARE_FAULT\x10\xd2\x8f\xe4\x0e\x12!\n\x19INFRASTRUCTURE_RELOCATION\x10\x84\x9e\xcb\xab\x01\x12!\n\x1aMAINTENANCE_REASON_UNKNOWN\x10\xfb\xc7\x8e\x18\x12\x1d\n\x16PLANNED_NETWORK_UPDATE\x10\x95\xf8\xcd@\x12\x15\n\x0ePLANNED_UPDATE\x10\xc4\xb7\x8fM\"g\n\x11MaintenanceStatus\x12 \n\x1cUNDEFINED_MAINTENANCE_STATUS\x10\x00\x12\x0f\n\x07ONGOING\x10\xdb\xa6\xcf\xe1\x01\x12\x0e\n\x07PENDING\x10\xf7\xaa\xf0\x10\x12\x0f\n\x07UNKNOWN\x10\xaa\xf0\xc4\xce\x01\"j\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x10\n\x08MULTIPLE\x10\x90\xac\xfa\xac\x01\x12\x11\n\tSCHEDULED\x10\x8d\xa1\x8f\xe4\x01\x12\x14\n\x0cUNKNOWN_TYPE\x10\xaf\xa4\xfe\xe9\x01\x12\x13\n\x0bUNSCHEDULED\x10\x94\xc4\xce\xd6\x01\x42\x11\n\x0f_can_rescheduleB\x1b\n\x19_latest_window_start_timeB\x1a\n\x18_maintenance_on_shutdownB\x15\n\x13_maintenance_statusB\x07\n\x05_typeB\x12\n\x10_window_end_timeB\x14\n\x12_window_start_time\"\x9c\x02\n!UpdateAccessConfigInstanceRequest\x12N\n\x16\x61\x63\x63\x65ss_config_resource\x18\x90\xff\xf6\xb8\x01 \x01(\x0b\x32%.google.cloud.compute.v1.AccessConfigB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xfa\x01\n\x17UpdateAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\xdc\x01\n\x1aUpdateBackendBucketRequest\x12\x1e\n\x0e\x62\x61\x63kend_bucket\x18\xf5\xe3\xdd+ \x01(\tB\x03\xe0\x41\x02\x12P\n\x17\x62\x61\x63kend_bucket_resource\x18\x98\xce\xc7\xb5\x01 \x01(\x0b\x32&.google.cloud.compute.v1.BackendBucketB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe1\x01\n\x1bUpdateBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xa1\x02\n\x11UpdateDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xfb\x01\n\"UpdateDisplayDeviceInstanceRequest\x12P\n\x17\x64isplay_device_resource\x18\xda\x84\x91\x8a\x01 \x01(\x0b\x32&.google.cloud.compute.v1.DisplayDeviceB\x03\xe0\x41\x02\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xc6\x01\n\x15UpdateFirewallRequest\x12\x19\n\x08\x66irewall\x18\x80\xfa\xd5\xf3\x01 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x11\x66irewall_resource\x18\xed\xb0\xe0\x13 \x01(\x0b\x32!.google.cloud.compute.v1.FirewallB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xd4\x01\n\x18UpdateHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe5\x03\n\x15UpdateInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\x44\n\x11instance_resource\x18\xf8\xf0\xfe\x66 \x01(\x0b\x32!.google.cloud.compute.v1.InstanceB\x03\xe0\x41\x02\x12\x1f\n\x0eminimal_action\x18\x94\x8d\x82\x81\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x1emost_disruptive_allowed_action\x18\x8d\xce\xc2\x1f \x01(\tH\x01\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zone\"-\n\rMinimalAction\x12\x1c\n\x18UNDEFINED_MINIMAL_ACTION\x10\x00\"K\n\x1bMostDisruptiveAllowedAction\x12,\n(UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION\x10\x00\x42\x11\n\x0f_minimal_actionB!\n\x1f_most_disruptive_allowed_actionB\r\n\x0b_request_id\"\xf0\x01\n\x14UpdateLicenseRequest\x12\x17\n\x07license\x18\xc1\x88\xc2O \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x10license_resource\x18\xcc\xd4\xea\xd0\x01 \x01(\x0b\x32 .google.cloud.compute.v1.LicenseB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xa8\x02\n%UpdateNetworkInterfaceInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12\"\n\x11network_interface\x18\xe8\xc0\x9d\xae\x01 \x01(\tB\x03\xe0\x41\x02\x12V\n\x1anetwork_interface_resource\x18\x85\x94\xae\x9b\x01 \x01(\x0b\x32).google.cloud.compute.v1.NetworkInterfaceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf5\x01\n\x1bUpdatePeeringNetworkRequest\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tB\x03\xe0\x41\x02\x12o\n(networks_update_peering_request_resource\x18\xd9\xaa\x82k \x01(\x0b\x32\x35.google.cloud.compute.v1.NetworksUpdatePeeringRequestB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe6\x02\n3UpdatePerInstanceConfigsInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12\x9b\x01\n@instance_group_managers_update_per_instance_configs_req_resource\x18\xbe\xc1\xb6\x43 \x01(\x0b\x32I.google.cloud.compute.v1.InstanceGroupManagersUpdatePerInstanceConfigsReqB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\xf2\x02\n9UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest\x12&\n\x16instance_group_manager\x18\xc3\xf7\xf3v \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x9d\x01\nAregion_instance_group_manager_update_instance_config_req_resource\x18\xa7\xae\xba* \x01(\x0b\x32J.google.cloud.compute.v1.RegionInstanceGroupManagerUpdateInstanceConfigReqB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x84\x02\n\x1dUpdateRegionAutoscalerRequest\x12\x1b\n\nautoscaler\x18\xd7\xfd\xd2\xf6\x01 \x01(\tH\x00\x88\x01\x01\x12H\n\x13\x61utoscaler_resource\x18\xf6\xf0\xff\x62 \x01(\x0b\x32#.google.cloud.compute.v1.AutoscalerB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_autoscalerB\r\n\x0b_request_id\"\x88\x02\n!UpdateRegionBackendServiceRequest\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tB\x03\xe0\x41\x02\x12R\n\x18\x62\x61\x63kend_service_resource\x18\xa3\x81\xdf\xa5\x01 \x01(\x0b\x32\'.google.cloud.compute.v1.BackendServiceB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xc4\x02\n\x1dUpdateRegionCommitmentRequest\x12\x1b\n\ncommitment\x18\x95\x96\xf3\xe5\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x13\x63ommitment_resource\x18\xf8\xa3\xbbt \x01(\x0b\x32#.google.cloud.compute.v1.CommitmentB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xab\x02\n\x17UpdateRegionDiskRequest\x12\x14\n\x04\x64isk\x18\x9d\x9b\xbc\x01 \x01(\tB\x03\xe0\x41\x02\x12<\n\rdisk_resource\x18\xf0\xd0\xab\x0c \x01(\x0b\x32\x1d.google.cloud.compute.v1.DiskB\x03\xe0\x41\x02\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x42\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xfb\x01\n\x1eUpdateRegionHealthCheckRequest\x12\x1d\n\x0chealth_check\x18\xe5\xaa\xa4\x93\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15health_check_resource\x18\xa8\xc3\xa4` \x01(\x0b\x32$.google.cloud.compute.v1.HealthCheckB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xe7\x01\n\x19UpdateRegionUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xbe\x02\n\x18UpdateReservationRequest\x12\x15\n\x05paths\x18\xee\xc1\xe0\x32 \x01(\tH\x00\x88\x01\x01\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0breservation\x18\xcc\x87\xd5\x16 \x01(\tB\x03\xe0\x41\x02\x12K\n\x14reservation_resource\x18\xa1\xee\xf4\x87\x01 \x01(\x0b\x32$.google.cloud.compute.v1.ReservationB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\x08\n\x06_pathsB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xf4\x01\n\x1eUpdateRoutePolicyRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12K\n\x15route_policy_resource\x18\x85\xbd\xb5\x37 \x01(\x0b\x32$.google.cloud.compute.v1.RoutePolicyB\x03\xe0\x41\x02\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xde\x01\n\x13UpdateRouterRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tB\x03\xe0\x41\x02\x12@\n\x0frouter_resource\x18\xc4\x80\x82J \x01(\x0b\x32\x1f.google.cloud.compute.v1.RouterB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\x97\x02\n+UpdateShieldedInstanceConfigInstanceRequest\x12\x18\n\x08instance\x18\x95\xa9\xda\x08 \x01(\tB\x03\xe0\x41\x02\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x63\n!shielded_instance_config_resource\x18\xd8\x96\xdd\x81\x01 \x01(\x0b\x32/.google.cloud.compute.v1.ShieldedInstanceConfigB\x03\xe0\x41\x02\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_id\"\x9f\x02\n\x18UpdateStoragePoolRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x0cstorage_pool\x18\xe0\xc6\xf1\xab\x01 \x01(\tB\x03\xe0\x41\x02\x12K\n\x15storage_pool_resource\x18\x8d\xbc\xf9J \x01(\x0b\x32$.google.cloud.compute.v1.StoragePoolB\x03\xe0\x41\x02\x12\x1c\n\x0bupdate_mask\x18\xa2\xb9\xba\xee\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\n\xe0\x41\x02\xf2G\x04zoneB\r\n\x0b_request_idB\x0e\n\x0c_update_mask\"\xc0\x01\n\x13UpdateUrlMapRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x10url_map_resource\x18\xe1\x90\xb7P \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapB\x03\xe0\x41\x02\x42\r\n\x0b_request_id\"\xf2\x07\n\x06UrlMap\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12h\n$default_custom_error_response_policy\x18\xa9\x8b\xe0& \x01(\x0b\x32\x32.google.cloud.compute.v1.CustomErrorResponsePolicyH\x01\x88\x01\x01\x12O\n\x14\x64\x65\x66\x61ult_route_action\x18\xaa\xb4\xd7\xb4\x01 \x01(\x0b\x32(.google.cloud.compute.v1.HttpRouteActionH\x02\x88\x01\x01\x12 \n\x0f\x64\x65\x66\x61ult_service\x18\xb7\xe5\xc5\xb0\x01 \x01(\tH\x03\x88\x01\x01\x12R\n\x14\x64\x65\x66\x61ult_url_redirect\x18\xea\xab\xb6\xab\x01 \x01(\x0b\x32+.google.cloud.compute.v1.HttpRedirectActionH\x04\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0b\x66ingerprint\x18\xe4\xd1\xf3o \x01(\tH\x06\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x07\x88\x01\x01\x12\x39\n\nhost_rules\x18\xa0\x87\xd7\x94\x01 \x03(\x0b\x32!.google.cloud.compute.v1.HostRule\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x08\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\t\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\n\x88\x01\x01\x12?\n\rpath_matchers\x18\xdb\x88\xc5\x81\x01 \x03(\x0b\x32$.google.cloud.compute.v1.PathMatcher\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x0b\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0c\x88\x01\x01\x12\x35\n\x05tests\x18\xa1\x9c\xc9\x34 \x03(\x0b\x32#.google.cloud.compute.v1.UrlMapTestB\x15\n\x13_creation_timestampB\'\n%_default_custom_error_response_policyB\x17\n\x15_default_route_actionB\x12\n\x10_default_serviceB\x17\n\x15_default_url_redirectB\x0e\n\x0c_descriptionB\x0e\n\x0c_fingerprintB\x10\n\x0e_header_actionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_link\"\x9d\x02\n\nUrlMapList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x31\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1f.google.cloud.compute.v1.UrlMap\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"7\n\x0fUrlMapReference\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_url_map\"\xf0\x02\n\nUrlMapTest\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x00\x88\x01\x01\x12$\n\x13\x65xpected_output_url\x18\x98\xa2\xf7\xce\x01 \x01(\tH\x01\x88\x01\x01\x12/\n\x1f\x65xpected_redirect_response_code\x18\xef\xea\x80\t \x01(\x05H\x02\x88\x01\x01\x12=\n\x07headers\x18\x86\xdf\x9d{ \x03(\x0b\x32).google.cloud.compute.v1.UrlMapTestHeader\x12\x14\n\x04host\x18\xa8\xeb\xc3\x01 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x04path\x18\xa5\xc8\xd1\x01 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x07service\x18\xb5\x8d\x8f\xb2\x01 \x01(\tH\x05\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x16\n\x14_expected_output_urlB\"\n _expected_redirect_response_codeB\x07\n\x05_hostB\x07\n\x05_pathB\n\n\x08_service\"R\n\x10UrlMapTestHeader\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x05value\x18\xf1\xa2\xb2\x35 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xd2\x01\n\x16UrlMapValidationResult\x12\x17\n\x0bload_errors\x18\xe4\xf1\xf1\x93\x01 \x03(\t\x12\x1e\n\x0eload_succeeded\x18\xc8\xb4\x98= \x01(\x08H\x00\x88\x01\x01\x12?\n\rtest_failures\x18\xb6\xe2\x9f\xf1\x01 \x03(\x0b\x32$.google.cloud.compute.v1.TestFailure\x12\x1b\n\x0btest_passed\x18\xbd\x81\xf2[ \x01(\x08H\x01\x88\x01\x01\x42\x11\n\x0f_load_succeededB\x0e\n\x0c_test_passed\"\xb5\x03\n\x15UrlMapsAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12K\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x39.google.cloud.compute.v1.UrlMapsAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1aX\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.google.cloud.compute.v1.UrlMapsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x90\x01\n\x11UrlMapsScopedList\x12\x34\n\x08url_maps\x18\xe7\x8e\xa4\x31 \x03(\x0b\x32\x1f.google.cloud.compute.v1.UrlMap\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x98\x02\n\x16UrlMapsValidateRequest\x12!\n\x16load_balancing_schemes\x18\xaf\x85\x81\x03 \x03(\t\x12\x39\n\x08resource\x18\x8e\x88\xaf] \x01(\x0b\x32\x1f.google.cloud.compute.v1.UrlMapH\x00\x88\x01\x01\"\x92\x01\n\x14LoadBalancingSchemes\x12$\n UNDEFINED_LOAD_BALANCING_SCHEMES\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x18\n\x10\x45XTERNAL_MANAGED\x10\x8b\xb6\x92\xf4\x01\x12)\n!LOAD_BALANCING_SCHEME_UNSPECIFIED\x10\xbc\xbb\x87\xfb\x01\x42\x0b\n\t_resource\"m\n\x17UrlMapsValidateResponse\x12G\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32/.google.cloud.compute.v1.UrlMapValidationResultH\x00\x88\x01\x01\x42\t\n\x07_result\"\xba\x01\n\nUrlRewrite\x12\x1c\n\x0chost_rewrite\x18\xf5\xcb\x9aL \x01(\tH\x00\x88\x01\x01\x12#\n\x13path_prefix_rewrite\x18\xb9\xe8\xd1\x13 \x01(\tH\x01\x88\x01\x01\x12&\n\x15path_template_rewrite\x18\xa1\xef\xf2\xc9\x01 \x01(\tH\x02\x88\x01\x01\x42\x0f\n\r_host_rewriteB\x16\n\x14_path_prefix_rewriteB\x18\n\x16_path_template_rewrite\"\xfe\x07\n\x10UsableSubnetwork\x12$\n\x14\x65xternal_ipv6_prefix\x18\xf6\x92\xb6\x42 \x01(\tH\x00\x88\x01\x01\x12%\n\x14internal_ipv6_prefix\x18\xe8\xa2\xb4\xf1\x01 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x02\x88\x01\x01\x12!\n\x10ipv6_access_type\x18\xdd\xf5\xd1\xf0\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x04\x88\x01\x01\x12\x18\n\x07purpose\x18\x9e\xfa\xef\x96\x01 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x04role\x18\xf6\x80\xd6\x01 \x01(\tH\x06\x88\x01\x01\x12W\n\x13secondary_ip_ranges\x18\xe3\xff\x94\x41 \x03(\x0b\x32\x37.google.cloud.compute.v1.UsableSubnetworkSecondaryRange\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\x07\x88\x01\x01\x12\x1b\n\nsubnetwork\x18\xee\xa7\xe4\x92\x01 \x01(\tH\x08\x88\x01\x01\"S\n\x0eIpv6AccessType\x12\x1e\n\x1aUNDEFINED_IPV6_ACCESS_TYPE\x10\x00\x12\x0f\n\x08\x45XTERNAL\x10\xcb\xa7\xfd\x10\x12\x10\n\x08INTERNAL\x10\xbd\xed\x96\x85\x01\"\xf8\x01\n\x07Purpose\x12\x15\n\x11UNDEFINED_PURPOSE\x10\x00\x12\x1b\n\x14GLOBAL_MANAGED_PROXY\x10\xf2\xcb\xe0p\x12#\n\x1cINTERNAL_HTTPS_LOAD_BALANCER\x10\xd9\xb6\xcev\x12\x16\n\x0ePEER_MIGRATION\x10\x91\xaa\xc7\xea\x01\x12\x0f\n\x07PRIVATE\x10\xe3\xe2\xb2\xc0\x01\x12\x13\n\x0bPRIVATE_NAT\x10\xa5\xc8\xae\xaf\x01\x12\x17\n\x10PRIVATE_RFC_1918\x10\xdb\xfe\xc5y\x12\x1e\n\x17PRIVATE_SERVICE_CONNECT\x10\xc4\xf4\xf9\x16\x12\x1d\n\x16REGIONAL_MANAGED_PROXY\x10\xee\xb6\xfdH\":\n\x04Role\x12\x12\n\x0eUNDEFINED_ROLE\x10\x00\x12\x0e\n\x06\x41\x43TIVE\x10\x86\xe6\x89\x96\x01\x12\x0e\n\x06\x42\x41\x43KUP\x10\xc2\xd3\xcd\xa2\x01\"[\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%B\x17\n\x15_external_ipv6_prefixB\x17\n\x15_internal_ipv6_prefixB\x10\n\x0e_ip_cidr_rangeB\x13\n\x11_ipv6_access_typeB\n\n\x08_networkB\n\n\x08_purposeB\x07\n\x05_roleB\r\n\x0b_stack_typeB\r\n\x0b_subnetwork\"}\n\x1eUsableSubnetworkSecondaryRange\x12\x1d\n\rip_cidr_range\x18\xca\xcd\xe4. \x01(\tH\x00\x88\x01\x01\x12\x1b\n\nrange_name\x18\xcd\xf0\xb4\x9e\x01 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_ip_cidr_rangeB\r\n\x0b_range_name\"\xa4\x03\n\x1fUsableSubnetworksAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12;\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32).google.cloud.compute.v1.UsableSubnetwork\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12M\n\x0fscoped_warnings\x18\xa6\x96\xf8\x66 \x03(\x0b\x32\x31.google.cloud.compute.v1.SubnetworksScopedWarning\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x7f\n\x13UsageExportLocation\x12\x1c\n\x0b\x62ucket_name\x18\xc0\x97\x9e\x87\x01 \x01(\tH\x00\x88\x01\x01\x12#\n\x12report_name_prefix\x18\xbb\xb0\xd7\x98\x01 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0c_bucket_nameB\x15\n\x13_report_name_prefix\"\xda\x01\n\x1bValidateRegionUrlMapRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\x12p\n)region_url_maps_validate_request_resource\x18\x9a\xcc\x80\x1b \x01(\x0b\x32\x35.google.cloud.compute.v1.RegionUrlMapsValidateRequestB\x03\xe0\x41\x02\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\"\xb0\x01\n\x15ValidateUrlMapRequest\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x07url_map\x18\x8c\x95\x81\xaf\x01 \x01(\tB\x03\xe0\x41\x02\x12\x64\n\"url_maps_validate_request_resource\x18\xef\xd1\xe4\xbc\x01 \x01(\x0b\x32/.google.cloud.compute.v1.UrlMapsValidateRequestB\x03\xe0\x41\x02\"\xaf\x01\n\x15VmEndpointNatMappings\x12\x1d\n\rinstance_name\x18\xf5\xe7\xd8l \x01(\tH\x00\x88\x01\x01\x12\x65\n\x16interface_nat_mappings\x18\x89\x80\x95z \x03(\x0b\x32\x42.google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsB\x10\n\x0e_instance_name\"\xe2\x03\n)VmEndpointNatMappingsInterfaceNatMappings\x12$\n\x18\x64rain_nat_ip_port_ranges\x18\xc1\xe3\xc7\xbc\x01 \x03(\t\x12\x1e\n\x12nat_ip_port_ranges\x18\x9a\xb0\xcc\xfd\x01 \x03(\t\x12*\n\x19num_total_drain_nat_ports\x18\xf9\xa5\xff\x9f\x01 \x01(\x05H\x00\x88\x01\x01\x12$\n\x13num_total_nat_ports\x18\x80\xdb\x80\x8f\x01 \x01(\x05H\x01\x88\x01\x01\x12l\n\rrule_mappings\x18\xc8\xee\xea\xe7\x01 \x03(\x0b\x32Q.google.cloud.compute.v1.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings\x12&\n\x15source_alias_ip_range\x18\xd8\xa3\xfc\xd1\x01 \x01(\tH\x02\x88\x01\x01\x12!\n\x11source_virtual_ip\x18\xff\xa2\xb9G \x01(\tH\x03\x88\x01\x01\x42\x1c\n\x1a_num_total_drain_nat_portsB\x16\n\x14_num_total_nat_portsB\x18\n\x16_source_alias_ip_rangeB\x14\n\x12_source_virtual_ip\"\xb6\x02\n8VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings\x12$\n\x18\x64rain_nat_ip_port_ranges\x18\xc1\xe3\xc7\xbc\x01 \x03(\t\x12\x1e\n\x12nat_ip_port_ranges\x18\x9a\xb0\xcc\xfd\x01 \x03(\t\x12*\n\x19num_total_drain_nat_ports\x18\xf9\xa5\xff\x9f\x01 \x01(\x05H\x00\x88\x01\x01\x12$\n\x13num_total_nat_ports\x18\x80\xdb\x80\x8f\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0brule_number\x18\xec\xdb\x9a\xff\x01 \x01(\x05H\x02\x88\x01\x01\x42\x1c\n\x1a_num_total_drain_nat_portsB\x16\n\x14_num_total_nat_portsB\x0e\n\x0c_rule_number\"\xbc\x02\n\x19VmEndpointNatMappingsList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x41\n\x06result\x18\x9d\x90\xb7\x42 \x03(\x0b\x32..google.cloud.compute.v1.VmEndpointNatMappings\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xd2\x06\n\nVpnGateway\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x01\x88\x01\x01\x12\"\n\x12gateway_ip_version\x18\x9b\xed\x83\x1f \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x05\x88\x01\x01\x12\x43\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32/.google.cloud.compute.v1.VpnGateway.LabelsEntry\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x06\x88\x01\x01\x12\x17\n\x07network\x18\xae\xb4\x85o \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x08\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\t\x88\x01\x01\x12\x1b\n\nstack_type\x18\x91\xb5\x8b\xcb\x01 \x01(\tH\n\x88\x01\x01\x12Q\n\x0evpn_interfaces\x18\x85\xcd\xe5+ \x03(\x0b\x32\x36.google.cloud.compute.v1.VpnGatewayVpnGatewayInterface\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"N\n\x10GatewayIpVersion\x12 \n\x1cUNDEFINED_GATEWAY_IP_VERSION\x10\x00\x12\x0b\n\x04IPV4\x10\x85\xcc\x89\x01\x12\x0b\n\x04IPV6\x10\x87\xcc\x89\x01\"[\n\tStackType\x12\x18\n\x14UNDEFINED_STACK_TYPE\x10\x00\x12\x10\n\tIPV4_IPV6\x10\x81\xe8\xca\n\x12\x10\n\tIPV4_ONLY\x10\xa6\xcb\xd5\n\x12\x10\n\tIPV6_ONLY\x10\xe4\xad\xfc%B\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x15\n\x13_gateway_ip_versionB\x05\n\x03_idB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\n\n\x08_networkB\t\n\x07_regionB\x0c\n\n_self_linkB\r\n\x0b_stack_type\"\xbf\x03\n\x18VpnGatewayAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12N\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32<.google.cloud.compute.v1.VpnGatewayAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a\\\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12=\n\x05value\x18\x02 \x01(\x0b\x32..google.cloud.compute.v1.VpnGatewaysScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xa5\x02\n\x0eVpnGatewayList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x35\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32#.google.cloud.compute.v1.VpnGateway\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"g\n\x10VpnGatewayStatus\x12S\n\x0fvpn_connections\x18\x8a\xed\xbe\xd1\x01 \x03(\x0b\x32\x36.google.cloud.compute.v1.VpnGatewayStatusVpnConnection\"\xd1\x02\n0VpnGatewayStatusHighAvailabilityRequirementState\x12\x15\n\x05state\x18\x91\x89\xab\x34 \x01(\tH\x00\x88\x01\x01\x12\"\n\x12unsatisfied_reason\x18\x8a\xf7\x9d\x1a \x01(\tH\x01\x88\x01\x01\"f\n\x05State\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12!\n\x19\x43ONNECTION_REDUNDANCY_MET\x10\x9b\xca\xf5\xf0\x01\x12%\n\x1d\x43ONNECTION_REDUNDANCY_NOT_MET\x10\x8f\xd4\x89\xf4\x01\"Y\n\x11UnsatisfiedReason\x12 \n\x1cUNDEFINED_UNSATISFIED_REASON\x10\x00\x12\"\n\x1bINCOMPLETE_TUNNELS_COVERAGE\x10\xfd\xf6\xd4\x1a\x42\x08\n\x06_stateB\x15\n\x13_unsatisfied_reason\"\xcb\x01\n\x16VpnGatewayStatusTunnel\x12\'\n\x17local_gateway_interface\x18\xaa\x9a\xdaK \x01(\rH\x00\x88\x01\x01\x12&\n\x16peer_gateway_interface\x18\xe1\xde\x9c\x66 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ntunnel_url\x18\x98\xa2\xd4% \x01(\tH\x02\x88\x01\x01\x42\x1a\n\x18_local_gateway_interfaceB\x19\n\x17_peer_gateway_interfaceB\r\n\x0b_tunnel_url\"\xca\x02\n\x1dVpnGatewayStatusVpnConnection\x12&\n\x15peer_external_gateway\x18\x8d\xee\xc7\xb7\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x10peer_gcp_gateway\x18\xbc\xe9\xb3\x86\x01 \x01(\tH\x01\x88\x01\x01\x12`\n\x05state\x18\x91\x89\xab\x34 \x01(\x0b\x32I.google.cloud.compute.v1.VpnGatewayStatusHighAvailabilityRequirementStateH\x02\x88\x01\x01\x12\x43\n\x07tunnels\x18\x8b\xfa\xed\x31 \x03(\x0b\x32/.google.cloud.compute.v1.VpnGatewayStatusTunnelB\x18\n\x16_peer_external_gatewayB\x13\n\x11_peer_gcp_gatewayB\x08\n\x06_state\"\xda\x01\n\x1dVpnGatewayVpnGatewayInterface\x12\x10\n\x02id\x18\x9b\x1a \x01(\rH\x00\x88\x01\x01\x12(\n\x17interconnect_attachment\x18\xf4\x8a\xf7\x92\x01 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\nip_address\x18\xdc\xf1\xdc\xc1\x01 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x0cipv6_address\x18\x9c\xb3\xef\xa2\x01 \x01(\tH\x03\x88\x01\x01\x42\x05\n\x03_idB\x1a\n\x18_interconnect_attachmentB\r\n\x0b_ip_addressB\x0f\n\r_ipv6_address\"l\n\x1cVpnGatewaysGetStatusResponse\x12\x41\n\x06result\x18\x9d\x90\xb7\x42 \x01(\x0b\x32).google.cloud.compute.v1.VpnGatewayStatusH\x00\x88\x01\x01\x42\t\n\x07_result\"\x9c\x01\n\x15VpnGatewaysScopedList\x12<\n\x0cvpn_gateways\x18\x9a\xfb\xca{ \x03(\x0b\x32#.google.cloud.compute.v1.VpnGateway\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\xfa\x0c\n\tVpnTunnel\x12L\n\x0c\x63ipher_suite\x18\xc4\xd7\xce\xd3\x01 \x01(\x0b\x32-.google.cloud.compute.v1.VpnTunnelCipherSuiteH\x00\x88\x01\x01\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12 \n\x0f\x64\x65tailed_status\x18\xe1\xa4\x83\x9f\x01 \x01(\tH\x03\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x04\x88\x01\x01\x12\x1b\n\x0bike_version\x18\x9c\xd0\x90h \x01(\x05H\x05\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x06\x88\x01\x01\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x07\x88\x01\x01\x12\x42\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32..google.cloud.compute.v1.VpnTunnel.LabelsEntry\x12\"\n\x16local_traffic_selector\x18\xb5\xac\xa7\x97\x01 \x03(\t\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x08\x88\x01\x01\x12&\n\x15peer_external_gateway\x18\x8d\xee\xc7\xb7\x01 \x01(\tH\t\x88\x01\x01\x12\x30\n\x1fpeer_external_gateway_interface\x18\x87\xe5\xf2\xd7\x01 \x01(\x05H\n\x88\x01\x01\x12!\n\x10peer_gcp_gateway\x18\xbc\xe9\xb3\x86\x01 \x01(\tH\x0b\x88\x01\x01\x12\x18\n\x07peer_ip\x18\xa4\xda\xdf\xb6\x01 \x01(\tH\x0c\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\r\x88\x01\x01\x12#\n\x17remote_traffic_selector\x18\xba\xdd\x90\xab\x01 \x03(\t\x12\x16\n\x06router\x18\xc9\xae\xee\x46 \x01(\tH\x0e\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x0f\x88\x01\x01\x12\x1e\n\rshared_secret\x18\xca\xa7\x8f\xb6\x01 \x01(\tH\x10\x88\x01\x01\x12#\n\x12shared_secret_hash\x18\xe3\xe8\x99\xbe\x01 \x01(\tH\x11\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x12\x88\x01\x01\x12#\n\x12target_vpn_gateway\x18\xcb\x80\xf6\xfd\x01 \x01(\tH\x13\x88\x01\x01\x12\x1c\n\x0bvpn_gateway\x18\xf9\x83\xf6\xc1\x01 \x01(\tH\x14\x88\x01\x01\x12%\n\x15vpn_gateway_interface\x18\xf3\x8c\xe2- \x01(\x05H\x15\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd3\x02\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x1c\n\x14\x41LLOCATING_RESOURCES\x10\xc0\xc9\x83\x99\x01\x12\x1a\n\x13\x41UTHORIZATION_ERROR\x10\x82\x9d\x9f\x0b\x12\x16\n\x0e\x44\x45PROVISIONING\x10\xee\x93\xc4\xcc\x01\x12\x12\n\x0b\x45STABLISHED\x10\xf8\x8e\xaf*\x12\x0e\n\x06\x46\x41ILED\x10\xbd\x90\xa6\xd9\x01\x12\x16\n\x0f\x46IRST_HANDSHAKE\x10\xe8\xd9\xa1[\x12\x1b\n\x13NEGOTIATION_FAILURE\x10\xec\xc5\xe8\xab\x01\x12\x14\n\rNETWORK_ERROR\x10\xf7\xc0\xbb\\\x12\x1a\n\x13NO_INCOMING_PACKETS\x10\xf0\x98\x9b\x39\x12\x14\n\x0cPROVISIONING\x10\xed\xf5\xda\x8a\x01\x12\x0f\n\x08REJECTED\x10\xfe\x88\x84S\x12\x0f\n\x07STOPPED\x10\xad\xbb\xec\xd3\x01\x12\x1e\n\x17WAITING_FOR_FULL_CONFIG\x10\xca\xc4\xed\x13\x42\x0f\n\r_cipher_suiteB\x15\n\x13_creation_timestampB\x0e\n\x0c_descriptionB\x12\n\x10_detailed_statusB\x05\n\x03_idB\x0e\n\x0c_ike_versionB\x07\n\x05_kindB\x14\n\x12_label_fingerprintB\x07\n\x05_nameB\x18\n\x16_peer_external_gatewayB\"\n _peer_external_gateway_interfaceB\x13\n\x11_peer_gcp_gatewayB\n\n\x08_peer_ipB\t\n\x07_regionB\t\n\x07_routerB\x0c\n\n_self_linkB\x10\n\x0e_shared_secretB\x15\n\x13_shared_secret_hashB\t\n\x07_statusB\x15\n\x13_target_vpn_gatewayB\x0e\n\x0c_vpn_gatewayB\x18\n\x16_vpn_gateway_interface\"\xbc\x03\n\x17VpnTunnelAggregatedList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12M\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32;.google.cloud.compute.v1.VpnTunnelAggregatedList.ItemsEntry\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x17\n\x0cunreachables\x18\x9f\xa0\x86t \x03(\t\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x1a[\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x05value\x18\x02 \x01(\x0b\x32-.google.cloud.compute.v1.VpnTunnelsScopedList:\x02\x38\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xc4\x01\n\x14VpnTunnelCipherSuite\x12J\n\x06phase1\x18\x96\xcc\x98( \x01(\x0b\x32\x32.google.cloud.compute.v1.VpnTunnelPhase1AlgorithmsH\x00\x88\x01\x01\x12J\n\x06phase2\x18\x97\xcc\x98( \x01(\x0b\x32\x32.google.cloud.compute.v1.VpnTunnelPhase2AlgorithmsH\x01\x88\x01\x01\x42\t\n\x07_phase1B\t\n\x07_phase2\"\xa3\x02\n\rVpnTunnelList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x34\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\".google.cloud.compute.v1.VpnTunnel\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"e\n\x19VpnTunnelPhase1Algorithms\x12\x0b\n\x02\x64h\x18\x84\x19 \x03(\t\x12\x15\n\nencryption\x18\x83\x9f\xdc. \x03(\t\x12\x15\n\tintegrity\x18\xcd\xfe\xff\xea\x01 \x03(\t\x12\r\n\x03prf\x18\xa4\xe5\x06 \x03(\t\"X\n\x19VpnTunnelPhase2Algorithms\x12\x15\n\nencryption\x18\x83\x9f\xdc. \x03(\t\x12\x15\n\tintegrity\x18\xcd\xfe\xff\xea\x01 \x03(\t\x12\r\n\x03pfs\x18\xbd\xe2\x06 \x03(\t\"\x99\x01\n\x14VpnTunnelsScopedList\x12:\n\x0bvpn_tunnels\x18\xc0\xf1\xfaM \x03(\x0b\x32\".google.cloud.compute.v1.VpnTunnel\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x00\x88\x01\x01\x42\n\n\x08_warning\"\x8c\x01\n\x10WafExpressionSet\x12\x12\n\x07\x61liases\x18\xfe\x9d\xf5K \x03(\t\x12K\n\x0b\x65xpressions\x18\xdb\x81\xdbS \x03(\x0b\x32\x33.google.cloud.compute.v1.WafExpressionSetExpression\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"b\n\x1aWafExpressionSetExpression\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0bsensitivity\x18\x9f\xbd\x90\r \x01(\x05H\x01\x88\x01\x01\x42\x05\n\x03_idB\x0e\n\x0c_sensitivity\"P\n\x1aWaitGlobalOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\"h\n\x1aWaitRegionOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x03\xe0\x41\x02\"d\n\x18WaitZoneOperationRequest\x12\x19\n\toperation\x18\xe7\xaa\xeb\x18 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\x07project\x18\x99\x96\xc1l \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x04zone\x18\xac\xc7\xe4\x01 \x01(\tB\x03\xe0\x41\x02\"\xfd\x08\n\x07Warning\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Data\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\"\xfc\x07\n\x04\x43ode\x12\x12\n\x0eUNDEFINED_CODE\x10\x00\x12\x15\n\x0e\x43LEANUP_FAILED\x10\xd8\x8c\xd6G\x12 \n\x18\x44\x45PRECATED_RESOURCE_USED\x10\xc2\xdf\xeb\xba\x01\x12\x1c\n\x14\x44\x45PRECATED_TYPE_USED\x10\x96\xa4\x9e\xa5\x01\x12(\n DISK_SIZE_LARGER_THAN_IMAGE_SIZE\x10\x97\x81\x95\xb0\x01\x12\x1e\n\x16\x45XPERIMENTAL_TYPE_USED\x10\x8b\x8e\xc1\xd7\x01\x12\x1b\n\x14\x45XTERNAL_API_WARNING\x10\xc3\xbf\xdaS\x12\x1d\n\x15\x46IELD_VALUE_OVERRIDEN\x10\xaf\xb6\x99\x9d\x01\x12#\n\x1bINJECTED_KERNELS_DEPRECATED\x10\x8b\xd9\x82\xc7\x01\x12\x34\n,INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB\x10\xce\x9b\xbc\xbf\x01\x12 \n\x18LARGE_DEPLOYMENT_WARNING\x10\xa6\xe7\xc8\xe5\x01\x12!\n\x1aLIST_OVERHEAD_QUOTA_EXCEED\x10\xc5\xb0\xda\x16\x12\x1f\n\x17MISSING_TYPE_DEPENDENCY\x10\xf7\xf8\xa2\xa4\x01\x12%\n\x1dNEXT_HOP_ADDRESS_NOT_ASSIGNED\x10\x87\xa5\xfa\x9a\x01\x12\"\n\x1aNEXT_HOP_CANNOT_IP_FORWARD\x10\xe7\xea\xe7\xb6\x01\x12.\n\'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE\x10\x92\xe8\xfc\x45\x12#\n\x1bNEXT_HOP_INSTANCE_NOT_FOUND\x10\xce\xcc\xaf\xdd\x01\x12\'\n NEXT_HOP_INSTANCE_NOT_ON_NETWORK\x10\xc2\xe8\x9dt\x12\x1c\n\x14NEXT_HOP_NOT_RUNNING\x10\xb1\xcf\xf0\xc6\x01\x12\x19\n\x12NOT_CRITICAL_ERROR\x10\xd4\xa8\xb7\x32\x12\x19\n\x12NO_RESULTS_ON_PAGE\x10\x88\xa6\xa9\x0e\x12\x16\n\x0fPARTIAL_SUCCESS\x10\x85\xae\x87\x13\x12\x1e\n\x16QUOTA_INFO_UNAVAILABLE\x10\xa6\xd2\x8c\x91\x01\x12\x1d\n\x16REQUIRED_TOS_AGREEMENT\x10\x83\xce\xe4\x01\x12\x31\n)RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING\x10\xc1\xf4\xed\xec\x01\x12\x1b\n\x14RESOURCE_NOT_DELETED\x10\xbc\xb7\xb2P\x12!\n\x19SCHEMA_VALIDATION_IGNORED\x10\xca\xd4\x9f\x83\x01\x12(\n!SINGLE_INSTANCE_PROPERTY_TEMPLATE\x10\xd1\x89\xf8\x7f\x12\x1d\n\x15UNDECLARED_PROPERTIES\x10\x9f\x86\x9b\xba\x01\x12\x12\n\x0bUNREACHABLE\x10\xb4\xbd\xad\x06\x42\x07\n\x05_codeB\n\n\x08_message\"\xfe\x08\n\x08Warnings\x12\x14\n\x04\x63ode\x18\xed\xdb\xba\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x04\x64\x61ta\x18\xaa\xdf\xbb\x01 \x03(\x0b\x32\x1d.google.cloud.compute.v1.Data\x12\x18\n\x07message\x18\x87\x80\xac\xc7\x01 \x01(\tH\x01\x88\x01\x01\"\xfc\x07\n\x04\x43ode\x12\x12\n\x0eUNDEFINED_CODE\x10\x00\x12\x15\n\x0e\x43LEANUP_FAILED\x10\xd8\x8c\xd6G\x12 \n\x18\x44\x45PRECATED_RESOURCE_USED\x10\xc2\xdf\xeb\xba\x01\x12\x1c\n\x14\x44\x45PRECATED_TYPE_USED\x10\x96\xa4\x9e\xa5\x01\x12(\n DISK_SIZE_LARGER_THAN_IMAGE_SIZE\x10\x97\x81\x95\xb0\x01\x12\x1e\n\x16\x45XPERIMENTAL_TYPE_USED\x10\x8b\x8e\xc1\xd7\x01\x12\x1b\n\x14\x45XTERNAL_API_WARNING\x10\xc3\xbf\xdaS\x12\x1d\n\x15\x46IELD_VALUE_OVERRIDEN\x10\xaf\xb6\x99\x9d\x01\x12#\n\x1bINJECTED_KERNELS_DEPRECATED\x10\x8b\xd9\x82\xc7\x01\x12\x34\n,INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB\x10\xce\x9b\xbc\xbf\x01\x12 \n\x18LARGE_DEPLOYMENT_WARNING\x10\xa6\xe7\xc8\xe5\x01\x12!\n\x1aLIST_OVERHEAD_QUOTA_EXCEED\x10\xc5\xb0\xda\x16\x12\x1f\n\x17MISSING_TYPE_DEPENDENCY\x10\xf7\xf8\xa2\xa4\x01\x12%\n\x1dNEXT_HOP_ADDRESS_NOT_ASSIGNED\x10\x87\xa5\xfa\x9a\x01\x12\"\n\x1aNEXT_HOP_CANNOT_IP_FORWARD\x10\xe7\xea\xe7\xb6\x01\x12.\n\'NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE\x10\x92\xe8\xfc\x45\x12#\n\x1bNEXT_HOP_INSTANCE_NOT_FOUND\x10\xce\xcc\xaf\xdd\x01\x12\'\n NEXT_HOP_INSTANCE_NOT_ON_NETWORK\x10\xc2\xe8\x9dt\x12\x1c\n\x14NEXT_HOP_NOT_RUNNING\x10\xb1\xcf\xf0\xc6\x01\x12\x19\n\x12NOT_CRITICAL_ERROR\x10\xd4\xa8\xb7\x32\x12\x19\n\x12NO_RESULTS_ON_PAGE\x10\x88\xa6\xa9\x0e\x12\x16\n\x0fPARTIAL_SUCCESS\x10\x85\xae\x87\x13\x12\x1e\n\x16QUOTA_INFO_UNAVAILABLE\x10\xa6\xd2\x8c\x91\x01\x12\x1d\n\x16REQUIRED_TOS_AGREEMENT\x10\x83\xce\xe4\x01\x12\x31\n)RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING\x10\xc1\xf4\xed\xec\x01\x12\x1b\n\x14RESOURCE_NOT_DELETED\x10\xbc\xb7\xb2P\x12!\n\x19SCHEMA_VALIDATION_IGNORED\x10\xca\xd4\x9f\x83\x01\x12(\n!SINGLE_INSTANCE_PROPERTY_TEMPLATE\x10\xd1\x89\xf8\x7f\x12\x1d\n\x15UNDECLARED_PROPERTIES\x10\x9f\x86\x9b\xba\x01\x12\x12\n\x0bUNREACHABLE\x10\xb4\xbd\xad\x06\x42\x07\n\x05_codeB\n\n\x08_message\"\xcf\x01\n\x16WeightedBackendService\x12 \n\x0f\x62\x61\x63kend_service\x18\x8a\xc0\xae\x92\x01 \x01(\tH\x00\x88\x01\x01\x12I\n\rheader_action\x18\xa8\xa0\xb8\x9c\x01 \x01(\x0b\x32).google.cloud.compute.v1.HttpHeaderActionH\x01\x88\x01\x01\x12\x17\n\x06weight\x18\xf8\x84\xc5\x86\x01 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_backend_serviceB\x10\n\x0e_header_actionB\t\n\x07_weight\"\xa0\x01\n&WithdrawPublicAdvertisedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12(\n\x18public_advertised_prefix\x18\x9e\xf7\xc9\x30 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\xbf\x01\n%WithdrawPublicDelegatedPrefixeRequest\x12!\n\x07project\x18\x99\x96\xc1l \x01(\tB\r\xe0\x41\x02\xf2G\x07project\x12\'\n\x17public_delegated_prefix\x18\xe8\xdc\xb1\x61 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tB\x0c\xe0\x41\x02\xf2G\x06region\x12\x1a\n\nrequest_id\x18\xcb\x81\xd9\x11 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_request_id\"\x9f\x02\n\x0bXpnHostList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x32\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32 .google.cloud.compute.v1.Project\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\x9a\x01\n\rXpnResourceId\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12\x14\n\x04type\x18\xba\x9e\xda\x01 \x01(\tH\x01\x88\x01\x01\"Q\n\x04Type\x12\x12\n\x0eUNDEFINED_TYPE\x10\x00\x12\x0f\n\x07PROJECT\x10\xf9\xad\xef\xc2\x01\x12$\n\x1dXPN_RESOURCE_TYPE_UNSPECIFIED\x10\xfa\xad\xa5HB\x05\n\x03_idB\x07\n\x05_type\"\x97\x04\n\x04Zone\x12\"\n\x17\x61vailable_cpu_platforms\x18\x93\xf3\xd9S \x03(\t\x12\"\n\x12\x63reation_timestamp\x18\xb6\x8f\xc7\x0e \x01(\tH\x00\x88\x01\x01\x12G\n\ndeprecated\x18\xb3\xcb\xd1\xf5\x01 \x01(\x0b\x32*.google.cloud.compute.v1.DeprecationStatusH\x01\x88\x01\x01\x12\x1c\n\x0b\x64\x65scription\x18\xfc\x87\xd6\xc9\x01 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x02id\x18\x9b\x1a \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x04name\x18\x8b\xf5\xcd\x01 \x01(\tH\x05\x88\x01\x01\x12\x16\n\x06region\x18\xf4\xcd\xa0\x42 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x07\x88\x01\x01\x12\x16\n\x06status\x18\xf2\x9f\xb7V \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0csupports_pzs\x18\xee\xf6\x85( \x01(\x08H\t\x88\x01\x01\"4\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\x0b\n\x04\x44OWN\x10\xa2\xb9\x80\x01\x12\x07\n\x02UP\x10\x9b\x15\x42\x15\n\x13_creation_timestampB\r\n\x0b_deprecatedB\x0e\n\x0c_descriptionB\x05\n\x03_idB\x07\n\x05_kindB\x07\n\x05_nameB\t\n\x07_regionB\x0c\n\n_self_linkB\t\n\x07_statusB\x0f\n\r_supports_pzs\"\x99\x02\n\x08ZoneList\x12\x10\n\x02id\x18\x9b\x1a \x01(\tH\x00\x88\x01\x01\x12/\n\x05items\x18\xc0\xcf\xf7/ \x03(\x0b\x32\x1d.google.cloud.compute.v1.Zone\x12\x14\n\x04kind\x18\x94\xf7\xc8\x01 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x0fnext_page_token\x18\x95\xba\x86& \x01(\tH\x02\x88\x01\x01\x12\x1a\n\tself_link\x18\x8d\x92\xc5\xd9\x01 \x01(\tH\x03\x88\x01\x01\x12\x39\n\x07warning\x18\x9c\xdf\x96\x18 \x01(\x0b\x32 .google.cloud.compute.v1.WarningH\x04\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_kindB\x12\n\x10_next_page_tokenB\x0c\n\n_self_linkB\n\n\x08_warning\"\xcd\x01\n\x14ZoneSetLabelsRequest\x12!\n\x11label_fingerprint\x18\x99\xf0\xf7T \x01(\tH\x00\x88\x01\x01\x12M\n\x06labels\x18\xff\xbf\xc1\xee\x01 \x03(\x0b\x32\x39.google.cloud.compute.v1.ZoneSetLabelsRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_label_fingerprint\"\xb1\x01\n\x14ZoneSetPolicyRequest\x12\x36\n\x08\x62indings\x18\x8e\xc5\xa4\xc0\x01 \x03(\x0b\x32 .google.cloud.compute.v1.Binding\x12\x14\n\x04\x65tag\x18\x95\xd2\xbe\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06policy\x18\xb2\xca\xb6+ \x01(\x0b\x32\x1f.google.cloud.compute.v1.PolicyH\x01\x88\x01\x01\x42\x07\n\x05_etagB\t\n\x07_policy2\xb3\x06\n\x10\x41\x63\x63\x65leratorTypes\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListAcceleratorTypesRequest\x1a\x36.google.cloud.compute.v1.AcceleratorTypeAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/acceleratorTypes\x12\xdc\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetAcceleratorTypeRequest\x1a(.google.cloud.compute.v1.AcceleratorType\"w\xda\x41\x1dproject,zone,accelerator_type\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/zones/{zone}/acceleratorTypes/{accelerator_type}\x12\xbf\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListAcceleratorTypesRequest\x1a,.google.cloud.compute.v1.AcceleratorTypeList\"S\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02>\x12project,zone,disk,disks_add_resource_policies_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02|\"L/compute/v1/projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies:,disks_add_resource_policies_request_resource\x12\xb5\x01\n\x0e\x41ggregatedList\x12\x33.google.cloud.compute.v1.AggregatedListDisksRequest\x1a+.google.cloud.compute.v1.DiskAggregatedList\"A\xda\x41\x07project\x82\xd3\xe4\x93\x02\x31\x12//compute/v1/projects/{project}/aggregated/disks\x12\x8e\x02\n\nBulkInsert\x12..google.cloud.compute.v1.BulkInsertDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x01\xda\x41/project,zone,bulk_insert_disk_resource_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x62\".google.cloud.compute.v1.ListAssociationsFirewallPolicyRequest\x1a\x41.google.cloud.compute.v1.FirewallPoliciesListAssociationsResponse\"I\xda\x41\x00\x82\xd3\xe4\x93\x02@\x12>/compute/v1/locations/global/firewallPolicies/listAssociations\x12\xe8\x01\n\x04Move\x12\x32.google.cloud.compute.v1.MoveFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x19\x66irewall_policy,parent_id\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02\x46\"D/compute/v1/locations/global/firewallPolicies/{firewall_policy}/move\x12\x8e\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x01\xda\x41(firewall_policy,firewall_policy_resource\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02[2?/compute/v1/locations/global/firewallPolicies/{firewall_policy}:\x18\x66irewall_policy_resource\x12\xaa\x02\n\tPatchRule\x12\x37.google.cloud.compute.v1.PatchRuleFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xbf\x01\xda\x41-firewall_policy,firewall_policy_rule_resource\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02j\"I/compute/v1/locations/global/firewallPolicies/{firewall_policy}/patchRule:\x1d\x66irewall_policy_rule_resource\x12\x85\x02\n\x11RemoveAssociation\x12?.google.cloud.compute.v1.RemoveAssociationFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x01\xda\x41\x0f\x66irewall_policy\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02S\"Q/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeAssociation\x12\xf0\x01\n\nRemoveRule\x12\x38.google.cloud.compute.v1.RemoveRuleFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x83\x01\xda\x41\x0f\x66irewall_policy\x8aN\x1cGlobalOrganizationOperations\x82\xd3\xe4\x93\x02L\"J/compute/v1/locations/global/firewallPolicies/{firewall_policy}/removeRule\x12\xa7\x02\n\x0cSetIamPolicy\x12:.google.cloud.compute.v1.SetIamPolicyFirewallPolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb9\x01\xda\x41\x38resource,global_organization_set_policy_request_resource\x82\xd3\xe4\x93\x02x\"E/compute/v1/locations/global/firewallPolicies/{resource}/setIamPolicy:/global_organization_set_policy_request_resource\x12\xae\x02\n\x12TestIamPermissions\x12@.google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xa3\x01\xda\x41*resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02p\"K/compute/v1/locations/global/firewallPolicies/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xcf\n\n\tFirewalls\x12\xc6\x01\n\x06\x44\x65lete\x12..google.cloud.compute.v1.DeleteFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"h\xda\x41\x10project,firewall\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02<*:/compute/v1/projects/{project}/global/firewalls/{firewall}\x12\xac\x01\n\x03Get\x12+.google.cloud.compute.v1.GetFirewallRequest\x1a!.google.cloud.compute.v1.Firewall\"U\xda\x41\x10project,firewall\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/global/firewalls/{firewall}\x12\xd7\x01\n\x06Insert\x12..google.cloud.compute.v1.InsertFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"y\xda\x41\x19project,firewall_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x44\"//compute/v1/projects/{project}/global/firewalls:\x11\x66irewall_resource\x12\x9f\x01\n\x04List\x12-.google.cloud.compute.v1.ListFirewallsRequest\x1a%.google.cloud.compute.v1.FirewallList\"A\xda\x41\x07project\x82\xd3\xe4\x93\x02\x31\x12//compute/v1/projects/{project}/global/firewalls\x12\xea\x01\n\x05Patch\x12-.google.cloud.compute.v1.PatchFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\"project,firewall,firewall_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02O2:/compute/v1/projects/{project}/global/firewalls/{firewall}:\x11\x66irewall_resource\x12\xec\x01\n\x06Update\x12..google.cloud.compute.v1.UpdateFirewallRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\"project,firewall,firewall_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02O\x1a:/compute/v1/projects/{project}/global/firewalls/{firewall}:\x11\x66irewall_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x99\x11\n\x0f\x46orwardingRules\x12\xd3\x01\n\x0e\x41ggregatedList\x12=.google.cloud.compute.v1.AggregatedListForwardingRulesRequest\x1a\x35.google.cloud.compute.v1.ForwardingRuleAggregatedList\"K\xda\x41\x07project\x82\xd3\xe4\x93\x02;\x12\x39/compute/v1/projects/{project}/aggregated/forwardingRules\x12\xf2\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\x1eproject,region,forwarding_rule\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S*Q/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\x12\xdd\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetForwardingRuleRequest\x1a\'.google.cloud.compute.v1.ForwardingRule\"z\xda\x41\x1eproject,region,forwarding_rule\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}\x12\x83\x02\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x01\xda\x41\'project,region,forwarding_rule_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02[\"?/compute/v1/projects/{project}/regions/{region}/forwardingRules:\x18\x66orwarding_rule_resource\x12\xc2\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListForwardingRulesRequest\x1a+.google.cloud.compute.v1.ForwardingRuleList\"X\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/regions/{region}/forwardingRules\x12\xa3\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x37project,region,forwarding_rule,forwarding_rule_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02m2Q/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}:\x18\x66orwarding_rule_resource\x12\xbb\x02\n\tSetLabels\x12\x37.google.cloud.compute.v1.SetLabelsForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xd0\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02z\"T/compute/v1/projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels:\"region_set_labels_request_resource\x12\xb7\x02\n\tSetTarget\x12\x37.google.cloud.compute.v1.SetTargetForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xcc\x01\xda\x41\x38project,region,forwarding_rule,target_reference_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02x\"[/compute/v1/projects/{project}/regions/{region}/forwardingRules/{forwarding_rule}/setTarget:\x19target_reference_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\x0e\n\x0fGlobalAddresses\x12\xc9\x01\n\x06\x44\x65lete\x12\x33.google.cloud.compute.v1.DeleteGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"f\xda\x41\x0fproject,address\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02;*9/compute/v1/projects/{project}/global/addresses/{address}\x12\xae\x01\n\x03Get\x12\x30.google.cloud.compute.v1.GetGlobalAddressRequest\x1a .google.cloud.compute.v1.Address\"S\xda\x41\x0fproject,address\x82\xd3\xe4\x93\x02;\x12\x39/compute/v1/projects/{project}/global/addresses/{address}\x12\xda\x01\n\x06Insert\x12\x33.google.cloud.compute.v1.InsertGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"w\xda\x41\x18project,address_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x43\"//compute/v1/projects/{project}/global/addresses:\x10\x61\x64\x64ress_resource\x12\xa4\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListGlobalAddressesRequest\x1a$.google.cloud.compute.v1.AddressList\"A\xda\x41\x07project\x82\xd3\xe4\x93\x02\x31\x12//compute/v1/projects/{project}/global/addresses\x12\x9a\x02\n\x04Move\x12\x31.google.cloud.compute.v1.MoveGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"\xba\x01\xda\x41\x36project,address,global_addresses_move_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02h\">/compute/v1/projects/{project}/global/addresses/{address}/move:&global_addresses_move_request_resource\x12\xa3\x02\n\tSetLabels\x12\x36.google.cloud.compute.v1.SetLabelsGlobalAddressRequest\x1a\".google.cloud.compute.v1.Operation\"\xb9\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02j\"D/compute/v1/projects/{project}/global/addresses/{resource}/setLabels:\"global_set_labels_request_resource\x12\xb7\x02\n\x12TestIamPermissions\x12?.google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xad\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02r\"M/compute/v1/projects/{project}/global/addresses/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xfb\x0e\n\x15GlobalForwardingRules\x12\xe6\x01\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"|\xda\x41\x17project,forwarding_rule\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02I*G/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}\x12\xd2\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetGlobalForwardingRuleRequest\x1a\'.google.cloud.compute.v1.ForwardingRule\"i\xda\x41\x17project,forwarding_rule\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}\x12\xf8\x01\n\x06Insert\x12:.google.cloud.compute.v1.InsertGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41 project,forwarding_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Q\"5/compute/v1/projects/{project}/global/forwardingRules:\x18\x66orwarding_rule_resource\x12\xb7\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListGlobalForwardingRulesRequest\x1a+.google.cloud.compute.v1.ForwardingRuleList\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/global/forwardingRules\x12\x98\x02\n\x05Patch\x12\x39.google.cloud.compute.v1.PatchGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xaf\x01\xda\x41\x30project,forwarding_rule,forwarding_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x63\x32G/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}:\x18\x66orwarding_rule_resource\x12\xb0\x02\n\tSetLabels\x12=.google.cloud.compute.v1.SetLabelsGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xbf\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02p\"J/compute/v1/projects/{project}/global/forwardingRules/{resource}/setLabels:\"global_set_labels_request_resource\x12\xac\x02\n\tSetTarget\x12=.google.cloud.compute.v1.SetTargetGlobalForwardingRuleRequest\x1a\".google.cloud.compute.v1.Operation\"\xbb\x01\xda\x41\x31project,forwarding_rule,target_reference_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02n\"Q/compute/v1/projects/{project}/global/forwardingRules/{forwarding_rule}/setTarget:\x19target_reference_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xac\x12\n\x1bGlobalNetworkEndpointGroups\x12\xbc\x03\n\x16\x41ttachNetworkEndpoints\x12P.google.cloud.compute.v1.AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x02\xda\x41_project,network_endpoint_group,global_network_endpoint_groups_attach_endpoints_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\xaf\x01\"k/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints:@global_network_endpoint_groups_attach_endpoints_request_resource\x12\x81\x02\n\x06\x44\x65lete\x12@.google.cloud.compute.v1.DeleteGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\x1eproject,network_endpoint_group\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02V*T/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}\x12\xbc\x03\n\x16\x44\x65tachNetworkEndpoints\x12P.google.cloud.compute.v1.DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x02\xda\x41_project,network_endpoint_group,global_network_endpoint_groups_detach_endpoints_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\xaf\x01\"k/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints:@global_network_endpoint_groups_detach_endpoints_request_resource\x12\xf2\x01\n\x03Get\x12=.google.cloud.compute.v1.GetGlobalNetworkEndpointGroupRequest\x1a-.google.cloud.compute.v1.NetworkEndpointGroup\"}\xda\x41\x1eproject,network_endpoint_group\x82\xd3\xe4\x93\x02V\x12T/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}\x12\x92\x02\n\x06Insert\x12@.google.cloud.compute.v1.InsertGlobalNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41\'project,network_endpoint_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02^\";/compute/v1/projects/{project}/global/networkEndpointGroups:\x1fnetwork_endpoint_group_resource\x12\xc9\x01\n\x04List\x12?.google.cloud.compute.v1.ListGlobalNetworkEndpointGroupsRequest\x1a\x31.google.cloud.compute.v1.NetworkEndpointGroupList\"M\xda\x41\x07project\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/global/networkEndpointGroups\x12\xc0\x02\n\x14ListNetworkEndpoints\x12O.google.cloud.compute.v1.ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest\x1a\x42.google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints\"\x92\x01\xda\x41\x1eproject,network_endpoint_group\x82\xd3\xe4\x93\x02k\"i/compute/v1/projects/{project}/global/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd0\x08\n\x10GlobalOperations\x12\xca\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListGlobalOperationsRequest\x1a\x30.google.cloud.compute.v1.OperationAggregatedList\"F\xda\x41\x07project\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/aggregated/operations\x12\xd1\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeleteGlobalOperationRequest\x1a\x36.google.cloud.compute.v1.DeleteGlobalOperationResponse\"X\xda\x41\x11project,operation\x82\xd3\xe4\x93\x02>*\x12.google.cloud.compute.v1.GetGlobalOrganizationOperationRequest\x1a\".google.cloud.compute.v1.Operation\"J\xda\x41\toperation\x90N\x01\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/locations/global/operations/{operation}\x12\xa4\x01\n\x04List\x12@.google.cloud.compute.v1.ListGlobalOrganizationOperationsRequest\x1a&.google.cloud.compute.v1.OperationList\"2\xda\x41\x00\x82\xd3\xe4\x93\x02)\x12\'/compute/v1/locations/global/operations\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd1\x0b\n\x1dGlobalPublicDelegatedPrefixes\x12\x87\x02\n\x06\x44\x65lete\x12\x42.google.cloud.compute.v1.DeleteGlobalPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\x94\x01\xda\x41\x1fproject,public_delegated_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Y*W/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}\x12\xfa\x01\n\x03Get\x12?.google.cloud.compute.v1.GetGlobalPublicDelegatedPrefixeRequest\x1a..google.cloud.compute.v1.PublicDelegatedPrefix\"\x81\x01\xda\x41\x1fproject,public_delegated_prefix\x82\xd3\xe4\x93\x02Y\x12W/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}\x12\x98\x02\n\x06Insert\x12\x42.google.cloud.compute.v1.InsertGlobalPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41(project,public_delegated_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x61\"=/compute/v1/projects/{project}/global/publicDelegatedPrefixes: public_delegated_prefix_resource\x12\xce\x01\n\x04List\x12\x41.google.cloud.compute.v1.ListGlobalPublicDelegatedPrefixesRequest\x1a\x32.google.cloud.compute.v1.PublicDelegatedPrefixList\"O\xda\x41\x07project\x82\xd3\xe4\x93\x02?\x12=/compute/v1/projects/{project}/global/publicDelegatedPrefixes\x12\xc8\x02\n\x05Patch\x12\x41.google.cloud.compute.v1.PatchGlobalPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xd7\x01\xda\x41@project,public_delegated_prefix,public_delegated_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02{2W/compute/v1/projects/{project}/global/publicDelegatedPrefixes/{public_delegated_prefix}: public_delegated_prefix_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\r\n\x0cHealthChecks\x12\xcb\x01\n\x0e\x41ggregatedList\x12:.google.cloud.compute.v1.AggregatedListHealthChecksRequest\x1a\x33.google.cloud.compute.v1.HealthChecksAggregatedList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/aggregated/healthChecks\x12\xd4\x01\n\x06\x44\x65lete\x12\x31.google.cloud.compute.v1.DeleteHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"s\xda\x41\x14project,health_check\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x43*A/compute/v1/projects/{project}/global/healthChecks/{health_check}\x12\xbd\x01\n\x03Get\x12..google.cloud.compute.v1.GetHealthCheckRequest\x1a$.google.cloud.compute.v1.HealthCheck\"`\xda\x41\x14project,health_check\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/global/healthChecks/{health_check}\x12\xe6\x01\n\x06Insert\x12\x31.google.cloud.compute.v1.InsertHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x1dproject,health_check_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K\"2/compute/v1/projects/{project}/global/healthChecks:\x15health_check_resource\x12\xa8\x01\n\x04List\x12\x30.google.cloud.compute.v1.ListHealthChecksRequest\x1a(.google.cloud.compute.v1.HealthCheckList\"D\xda\x41\x07project\x82\xd3\xe4\x93\x02\x34\x12\x32/compute/v1/projects/{project}/global/healthChecks\x12\x80\x02\n\x05Patch\x12\x30.google.cloud.compute.v1.PatchHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41*project,health_check,health_check_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Z2A/compute/v1/projects/{project}/global/healthChecks/{health_check}:\x15health_check_resource\x12\x82\x02\n\x06Update\x12\x31.google.cloud.compute.v1.UpdateHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41*project,health_check,health_check_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02Z\x1a\x41/compute/v1/projects/{project}/global/healthChecks/{health_check}:\x15health_check_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x84\x03\n\x10ImageFamilyViews\x12\xc8\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetImageFamilyViewRequest\x1a(.google.cloud.compute.v1.ImageFamilyView\"c\xda\x41\x13project,zone,family\x82\xd3\xe4\x93\x02G\x12\x45/compute/v1/projects/{project}/zones/{zone}/imageFamilyViews/{family}\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xfc\x13\n\x06Images\x12\xba\x01\n\x06\x44\x65lete\x12+.google.cloud.compute.v1.DeleteImageRequest\x1a\".google.cloud.compute.v1.Operation\"_\xda\x41\rproject,image\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x36*4/compute/v1/projects/{project}/global/images/{image}\x12\x84\x02\n\tDeprecate\x12..google.cloud.compute.v1.DeprecateImageRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x01\xda\x41)project,image,deprecation_status_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02]\">/compute/v1/projects/{project}/global/images/{image}/deprecate:\x1b\x64\x65precation_status_resource\x12\x9d\x01\n\x03Get\x12(.google.cloud.compute.v1.GetImageRequest\x1a\x1e.google.cloud.compute.v1.Image\"L\xda\x41\rproject,image\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/global/images/{image}\x12\xba\x01\n\rGetFromFamily\x12\x32.google.cloud.compute.v1.GetFromFamilyImageRequest\x1a\x1e.google.cloud.compute.v1.Image\"U\xda\x41\x0eproject,family\x82\xd3\xe4\x93\x02>\x12\",/compute/v1/projects/{project}/global/images:\x0eimage_resource\x12\x96\x01\n\x04List\x12*.google.cloud.compute.v1.ListImagesRequest\x1a\".google.cloud.compute.v1.ImageList\">\xda\x41\x07project\x82\xd3\xe4\x93\x02.\x12,/compute/v1/projects/{project}/global/images\x12\xd7\x01\n\x05Patch\x12*.google.cloud.compute.v1.PatchImageRequest\x1a\".google.cloud.compute.v1.Operation\"~\xda\x41\x1cproject,image,image_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x46\x32\x34/compute/v1/projects/{project}/global/images/{image}:\x0eimage_resource\x12\x8b\x02\n\x0cSetIamPolicy\x12\x31.google.cloud.compute.v1.SetIamPolicyImageRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xa6\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02j\"D/compute/v1/projects/{project}/global/images/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\x98\x02\n\tSetLabels\x12..google.cloud.compute.v1.SetLabelsImageRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02g\"A/compute/v1/projects/{project}/global/images/{resource}/setLabels:\"global_set_labels_request_resource\x12\xac\x02\n\x12TestIamPermissions\x12\x37.google.cloud.compute.v1.TestIamPermissionsImageRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xaa\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02o\"J/compute/v1/projects/{project}/global/images/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xa2\x0e\n\"InstanceGroupManagerResizeRequests\x12\xc9\x02\n\x06\x43\x61ncel\x12G.google.cloud.compute.v1.CancelInstanceGroupManagerResizeRequestRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41\x32project,zone,instance_group_manager,resize_request\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x84\x01\"\x81\x01/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}/cancel\x12\xc0\x02\n\x06\x44\x65lete\x12G.google.cloud.compute.v1.DeleteInstanceGroupManagerResizeRequestRequest\x1a\".google.cloud.compute.v1.Operation\"\xc8\x01\xda\x41\x32project,zone,instance_group_manager,resize_request\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02|*z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}\x12\xc1\x02\n\x03Get\x12\x44.google.cloud.compute.v1.GetInstanceGroupManagerResizeRequestRequest\x1a:.google.cloud.compute.v1.InstanceGroupManagerResizeRequest\"\xb7\x01\xda\x41\x32project,zone,instance_group_manager,resize_request\x82\xd3\xe4\x93\x02|\x12z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests/{resize_request}\x12\x80\x03\n\x06Insert\x12G.google.cloud.compute.v1.InsertInstanceGroupManagerResizeRequestRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x02\xda\x41Rproject,zone,instance_group_manager,instance_group_manager_resize_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x9b\x01\"i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests:.instance_group_manager_resize_request_resource\x12\xb1\x02\n\x04List\x12\x46.google.cloud.compute.v1.ListInstanceGroupManagerResizeRequestsRequest\x1aG.google.cloud.compute.v1.InstanceGroupManagerResizeRequestsListResponse\"\x97\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02k\x12i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resizeRequests\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd5\x45\n\x15InstanceGroupManagers\x12\xa1\x03\n\x10\x41\x62\x61ndonInstances\x12\x44.google.cloud.compute.v1.AbandonInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x02\xda\x41^project,zone,instance_group_manager,instance_group_managers_abandon_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa9\x01\"k/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/abandonInstances::instance_group_managers_abandon_instances_request_resource\x12\xe5\x01\n\x0e\x41ggregatedList\x12\x43.google.cloud.compute.v1.AggregatedListInstanceGroupManagersRequest\x1a;.google.cloud.compute.v1.InstanceGroupManagerAggregatedList\"Q\xda\x41\x07project\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/aggregated/instanceGroupManagers\x12\xae\x03\n\x17\x41pplyUpdatesToInstances\x12K.google.cloud.compute.v1.ApplyUpdatesToInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x02\xda\x41Zproject,zone,instance_group_manager,instance_group_managers_apply_updates_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xac\x01\"r/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/applyUpdatesToInstances:6instance_group_managers_apply_updates_request_resource\x12\x9c\x03\n\x0f\x43reateInstances\x12\x43.google.cloud.compute.v1.CreateInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_create_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa7\x01\"j/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/createInstances:9instance_group_managers_create_instances_request_resource\x12\x84\x02\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x01\xda\x41#project,zone,instance_group_manager\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\\*Z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}\x12\x9c\x03\n\x0f\x44\x65leteInstances\x12\x43.google.cloud.compute.v1.DeleteInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_delete_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa7\x01\"j/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deleteInstances:9instance_group_managers_delete_instances_request_resource\x12\xc5\x03\n\x18\x44\x65letePerInstanceConfigs\x12L.google.cloud.compute.v1.DeletePerInstanceConfigsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x02\xda\x41\x64project,zone,instance_group_manager,instance_group_managers_delete_per_instance_configs_req_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb7\x01\"s/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/deletePerInstanceConfigs:@instance_group_managers_delete_per_instance_configs_req_resource\x12\xf8\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetInstanceGroupManagerRequest\x1a-.google.cloud.compute.v1.InstanceGroupManager\"\x88\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}\x12\x95\x02\n\x06Insert\x12:.google.cloud.compute.v1.InsertInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xaa\x01\xda\x41,project,zone,instance_group_manager_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x64\"A/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers:\x1finstance_group_manager_resource\x12\xce\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListInstanceGroupManagersRequest\x1a\x31.google.cloud.compute.v1.InstanceGroupManagerList\"X\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers\x12\xa5\x02\n\nListErrors\x12?.google.cloud.compute.v1.ListErrorsInstanceGroupManagersRequest\x1a@.google.cloud.compute.v1.InstanceGroupManagersListErrorsResponse\"\x93\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02g\x12\x65/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listErrors\x12\xcd\x02\n\x14ListManagedInstances\x12I.google.cloud.compute.v1.ListManagedInstancesInstanceGroupManagersRequest\x1aJ.google.cloud.compute.v1.InstanceGroupManagersListManagedInstancesResponse\"\x9d\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02q\"o/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listManagedInstances\x12\xd1\x02\n\x16ListPerInstanceConfigs\x12K.google.cloud.compute.v1.ListPerInstanceConfigsInstanceGroupManagersRequest\x1aH.google.cloud.compute.v1.InstanceGroupManagersListPerInstanceConfigsResp\"\x9f\x01\xda\x41#project,zone,instance_group_manager\x82\xd3\xe4\x93\x02s\"q/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/listPerInstanceConfigs\x12\xc3\x02\n\x05Patch\x12\x39.google.cloud.compute.v1.PatchInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xda\x01\xda\x41\x43project,zone,instance_group_manager,instance_group_manager_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02}2Z/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}:\x1finstance_group_manager_resource\x12\xc0\x03\n\x17PatchPerInstanceConfigs\x12K.google.cloud.compute.v1.PatchPerInstanceConfigsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb3\x02\xda\x41\x63project,zone,instance_group_manager,instance_group_managers_patch_per_instance_configs_req_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb5\x01\"r/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/patchPerInstanceConfigs:?instance_group_managers_patch_per_instance_configs_req_resource\x12\xa6\x03\n\x11RecreateInstances\x12\x45.google.cloud.compute.v1.RecreateInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x02\xda\x41_project,zone,instance_group_manager,instance_group_managers_recreate_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xab\x01\"l/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/recreateInstances:;instance_group_managers_recreate_instances_request_resource\x12\x90\x02\n\x06Resize\x12:.google.cloud.compute.v1.ResizeInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41(project,zone,instance_group_manager,size\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x63\"a/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resize\x12\x9c\x03\n\x0fResumeInstances\x12\x43.google.cloud.compute.v1.ResumeInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_resume_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa7\x01\"j/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/resumeInstances:9instance_group_managers_resume_instances_request_resource\x12\xb2\x03\n\x13SetInstanceTemplate\x12G.google.cloud.compute.v1.SetInstanceTemplateInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xad\x02\xda\x41\x62project,zone,instance_group_manager,instance_group_managers_set_instance_template_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb0\x01\"n/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setInstanceTemplate:>instance_group_managers_set_instance_template_request_resource\x12\x99\x03\n\x0eSetTargetPools\x12\x42.google.cloud.compute.v1.SetTargetPoolsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x02\xda\x41]project,zone,instance_group_manager,instance_group_managers_set_target_pools_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa6\x01\"i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/setTargetPools:9instance_group_managers_set_target_pools_request_resource\x12\x97\x03\n\x0eStartInstances\x12\x42.google.cloud.compute.v1.StartInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x9c\x02\xda\x41\\project,zone,instance_group_manager,instance_group_managers_start_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa5\x01\"i/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/startInstances:8instance_group_managers_start_instances_request_resource\x12\x92\x03\n\rStopInstances\x12\x41.google.cloud.compute.v1.StopInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x02\xda\x41[project,zone,instance_group_manager,instance_group_managers_stop_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa3\x01\"h/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/stopInstances:7instance_group_managers_stop_instances_request_resource\x12\xa1\x03\n\x10SuspendInstances\x12\x44.google.cloud.compute.v1.SuspendInstancesInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x02\xda\x41^project,zone,instance_group_manager,instance_group_managers_suspend_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xa9\x01\"k/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/suspendInstances::instance_group_managers_suspend_instances_request_resource\x12\xc5\x03\n\x18UpdatePerInstanceConfigs\x12L.google.cloud.compute.v1.UpdatePerInstanceConfigsInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x02\xda\x41\x64project,zone,instance_group_manager,instance_group_managers_update_per_instance_configs_req_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\xb7\x01\"s/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs:@instance_group_managers_update_per_instance_configs_req_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xba\x17\n\x0eInstanceGroups\x12\xdf\x02\n\x0c\x41\x64\x64Instances\x12\x39.google.cloud.compute.v1.AddInstancesInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xef\x01\xda\x41Jproject,zone,instance_group,instance_groups_add_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8a\x01\"X/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/addInstances:.instance_groups_add_instances_request_resource\x12\xd0\x01\n\x0e\x41ggregatedList\x12<.google.cloud.compute.v1.AggregatedListInstanceGroupsRequest\x1a\x34.google.cloud.compute.v1.InstanceGroupAggregatedList\"J\xda\x41\x07project\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/aggregated/instanceGroups\x12\xe6\x01\n\x06\x44\x65lete\x12\x33.google.cloud.compute.v1.DeleteInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x1bproject,zone,instance_group\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02M*K/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}\x12\xd2\x01\n\x03Get\x12\x30.google.cloud.compute.v1.GetInstanceGroupRequest\x1a&.google.cloud.compute.v1.InstanceGroup\"q\xda\x41\x1bproject,zone,instance_group\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}\x12\xf7\x01\n\x06Insert\x12\x33.google.cloud.compute.v1.InsertInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x93\x01\xda\x41$project,zone,instance_group_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\":/compute/v1/projects/{project}/zones/{zone}/instanceGroups:\x17instance_group_resource\x12\xb9\x01\n\x04List\x12\x32.google.cloud.compute.v1.ListInstanceGroupsRequest\x1a*.google.cloud.compute.v1.InstanceGroupList\"Q\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/zones/{zone}/instanceGroups\x12\xe6\x02\n\rListInstances\x12;.google.cloud.compute.v1.ListInstancesInstanceGroupsRequest\x1a\x34.google.cloud.compute.v1.InstanceGroupsListInstances\"\xe1\x01\xda\x41Kproject,zone,instance_group,instance_groups_list_instances_request_resource\x82\xd3\xe4\x93\x02\x8c\x01\"Y/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/listInstances:/instance_groups_list_instances_request_resource\x12\xee\x02\n\x0fRemoveInstances\x12<.google.cloud.compute.v1.RemoveInstancesInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xf8\x01\xda\x41Mproject,zone,instance_group,instance_groups_remove_instances_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x90\x01\"[/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/removeInstances:1instance_groups_remove_instances_request_resource\x12\xe6\x02\n\rSetNamedPorts\x12:.google.cloud.compute.v1.SetNamedPortsInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xf4\x01\xda\x41Lproject,zone,instance_group,instance_groups_set_named_ports_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8d\x01\"Y/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{instance_group}/setNamedPorts:0instance_groups_set_named_ports_request_resource\x12\xc7\x02\n\x12TestIamPermissions\x12?.google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xbd\x01\xda\x41\x37project,zone,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02}\"X/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xcb\x04\n\x17InstanceSettingsService\x12\xb9\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetInstanceSettingRequest\x1a).google.cloud.compute.v1.InstanceSettings\"S\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02>\x12project,zone,instance,network_interface,access_config_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02j\"P/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig:\x16\x61\x63\x63\x65ss_config_resource\x12\xb5\x02\n\x13\x41\x64\x64NetworkInterface\x12;.google.cloud.compute.v1.AddNetworkInterfaceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xbc\x01\xda\x41\x30project,zone,instance,network_interface_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02r\"T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface:\x1anetwork_interface_resource\x12\xe2\x02\n\x13\x41\x64\x64ResourcePolicies\x12;.google.cloud.compute.v1.AddResourcePoliciesInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41\x46project,zone,instance,instances_add_resource_policies_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x88\x01\"T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies:0instances_add_resource_policies_request_resource\x12\xc1\x01\n\x0e\x41ggregatedList\x12\x37.google.cloud.compute.v1.AggregatedListInstancesRequest\x1a/.google.cloud.compute.v1.InstanceAggregatedList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/aggregated/instances\x12\x92\x02\n\nAttachDisk\x12\x32.google.cloud.compute.v1.AttachDiskInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xab\x01\xda\x41,project,zone,instance,attached_disk_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x65\"K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/attachDisk:\x16\x61ttached_disk_resource\x12\x9e\x02\n\nBulkInsert\x12\x32.google.cloud.compute.v1.BulkInsertInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xb7\x01\xda\x41\x33project,zone,bulk_insert_instance_resource_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02j\"@/compute/v1/projects/{project}/zones/{zone}/instances/bulkInsert:&bulk_insert_instance_resource_resource\x12\xcf\x01\n\x06\x44\x65lete\x12..google.cloud.compute.v1.DeleteInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"q\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x42*@/compute/v1/projects/{project}/zones/{zone}/instances/{instance}\x12\x9b\x02\n\x12\x44\x65leteAccessConfig\x12:.google.cloud.compute.v1.DeleteAccessConfigInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xa4\x01\xda\x41\x35project,zone,instance,access_config,network_interface\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig\x12\x9e\x02\n\x16\x44\x65leteNetworkInterface\x12>.google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41,project,zone,instance,network_interface_name\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Y\"W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface\x12\xef\x01\n\nDetachDisk\x12\x32.google.cloud.compute.v1.DetachDiskInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41!project,zone,instance,device_name\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02M\"K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/detachDisk\x12\xb7\x01\n\x03Get\x12+.google.cloud.compute.v1.GetInstanceRequest\x1a!.google.cloud.compute.v1.Instance\"`\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/zones/{zone}/instances/{instance}\x12\xa2\x02\n\x15GetEffectiveFirewalls\x12=.google.cloud.compute.v1.GetEffectiveFirewallsInstanceRequest\x1a?.google.cloud.compute.v1.InstancesGetEffectiveFirewallsResponse\"\x88\x01\xda\x41\'project,zone,instance,network_interface\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls\x12\xef\x01\n\x12GetGuestAttributes\x12:.google.cloud.compute.v1.GetGuestAttributesInstanceRequest\x1a(.google.cloud.compute.v1.GuestAttributes\"s\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes\x12\xd4\x01\n\x0cGetIamPolicy\x12\x34.google.cloud.compute.v1.GetIamPolicyInstanceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"m\xda\x41\x15project,zone,resource\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy\x12\xd8\x01\n\rGetScreenshot\x12\x35.google.cloud.compute.v1.GetScreenshotInstanceRequest\x1a#.google.cloud.compute.v1.Screenshot\"k\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/screenshot\x12\xea\x01\n\x13GetSerialPortOutput\x12;.google.cloud.compute.v1.GetSerialPortOutputInstanceRequest\x1a).google.cloud.compute.v1.SerialPortOutput\"k\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/serialPort\x12\x93\x02\n\x1bGetShieldedInstanceIdentity\x12\x43.google.cloud.compute.v1.GetShieldedInstanceIdentityInstanceRequest\x1a\x31.google.cloud.compute.v1.ShieldedInstanceIdentity\"|\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02^\x12\\/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity\x12\xe1\x01\n\x06Insert\x12..google.cloud.compute.v1.InsertInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x1eproject,zone,instance_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02J\"5/compute/v1/projects/{project}/zones/{zone}/instances:\x11instance_resource\x12\xaa\x01\n\x04List\x12-.google.cloud.compute.v1.ListInstancesRequest\x1a%.google.cloud.compute.v1.InstanceList\"L\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/zones/{zone}/instances\x12\xe3\x01\n\rListReferrers\x12\x36.google.cloud.compute.v1.ListReferrersInstancesRequest\x1a..google.cloud.compute.v1.InstanceListReferrers\"j\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02L\x12J/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/referrers\x12\xfb\x01\n\x12PerformMaintenance\x12:.google.cloud.compute.v1.PerformMaintenanceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/performMaintenance\x12\xf1\x02\n\x16RemoveResourcePolicies\x12>.google.cloud.compute.v1.RemoveResourcePoliciesInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xf2\x01\xda\x41Iproject,zone,instance,instances_remove_resource_policies_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8e\x01\"W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies:3instances_remove_resource_policies_request_resource\x12\xdf\x02\n\x12ReportHostAsFaulty\x12:.google.cloud.compute.v1.ReportHostAsFaultyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe8\x01\xda\x41\x46project,zone,instance,instances_report_host_as_faulty_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x87\x01\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty:0instances_report_host_as_faulty_request_resource\x12\xd3\x01\n\x05Reset\x12-.google.cloud.compute.v1.ResetInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"w\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02H\"F/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/reset\x12\xd6\x01\n\x06Resume\x12..google.cloud.compute.v1.ResumeInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"x\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02I\"G/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/resume\x12\x96\x02\n\x17SendDiagnosticInterrupt\x12?.google.cloud.compute.v1.SendDiagnosticInterruptInstanceRequest\x1a@.google.cloud.compute.v1.SendDiagnosticInterruptInstanceResponse\"x\xda\x41\x15project,zone,instance\x82\xd3\xe4\x93\x02Z\"X/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt\x12\x84\x02\n\x15SetDeletionProtection\x12=.google.cloud.compute.v1.SetDeletionProtectionInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x15project,zone,resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02X\"V/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection\x12\x90\x02\n\x11SetDiskAutoDelete\x12\x39.google.cloud.compute.v1.SetDiskAutoDeleteInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9b\x01\xda\x41-project,zone,instance,auto_delete,device_name\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02T\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete\x12\x98\x02\n\x0cSetIamPolicy\x12\x34.google.cloud.compute.v1.SetIamPolicyInstanceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb0\x01\xda\x41\x36project,zone,resource,zone_set_policy_request_resource\x82\xd3\xe4\x93\x02q\"M/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy: zone_set_policy_request_resource\x12\xad\x02\n\tSetLabels\x12\x31.google.cloud.compute.v1.SetLabelsInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc8\x01\xda\x41;project,zone,instance,instances_set_labels_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02s\"J/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setLabels:%instances_set_labels_request_resource\x12\xe2\x02\n\x13SetMachineResources\x12;.google.cloud.compute.v1.SetMachineResourcesInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41\x46project,zone,instance,instances_set_machine_resources_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x88\x01\"T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineResources:0instances_set_machine_resources_request_resource\x12\xc8\x02\n\x0eSetMachineType\x12\x36.google.cloud.compute.v1.SetMachineTypeInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd9\x01\xda\x41\x41project,zone,instance,instances_set_machine_type_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02~\"O/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMachineType:+instances_set_machine_type_request_resource\x12\x8b\x02\n\x0bSetMetadata\x12\x33.google.cloud.compute.v1.SetMetadataInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xa2\x01\xda\x41\'project,zone,instance,metadata_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x61\"L/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMetadata:\x11metadata_resource\x12\xda\x02\n\x11SetMinCpuPlatform\x12\x39.google.cloud.compute.v1.SetMinCpuPlatformInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe5\x01\xda\x41\x45project,zone,instance,instances_set_min_cpu_platform_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x85\x01\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform:/instances_set_min_cpu_platform_request_resource\x12\xa3\x02\n\x07SetName\x12/.google.cloud.compute.v1.SetNameInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc2\x01\xda\x41\x39project,zone,instance,instances_set_name_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02o\"H/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setName:#instances_set_name_request_resource\x12\x95\x02\n\rSetScheduling\x12\x35.google.cloud.compute.v1.SetSchedulingInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41)project,zone,instance,scheduling_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x65\"N/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setScheduling:\x13scheduling_resource\x12\xd8\x02\n\x11SetSecurityPolicy\x12\x39.google.cloud.compute.v1.SetSecurityPolicyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe3\x01\xda\x41\x44project,zone,instance,instances_set_security_policy_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x84\x01\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy:.instances_set_security_policy_request_resource\x12\xd8\x02\n\x11SetServiceAccount\x12\x39.google.cloud.compute.v1.SetServiceAccountInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe3\x01\xda\x41\x44project,zone,instance,instances_set_service_account_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x84\x01\"R/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount:.instances_set_service_account_request_resource\x12\x85\x03\n\"SetShieldedInstanceIntegrityPolicy\x12J.google.cloud.compute.v1.SetShieldedInstanceIntegrityPolicyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xee\x01\xda\x41\x41project,zone,instance,shielded_instance_integrity_policy_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x92\x01\x32\x63/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy:+shielded_instance_integrity_policy_resource\x12\xf7\x01\n\x07SetTags\x12/.google.cloud.compute.v1.SetTagsInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41#project,zone,instance,tags_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Y\"H/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/setTags:\rtags_resource\x12\x8d\x02\n\x18SimulateMaintenanceEvent\x12@.google.cloud.compute.v1.SimulateMaintenanceEventInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x01\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02[\"Y/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent\x12\xd3\x01\n\x05Start\x12-.google.cloud.compute.v1.StartInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"w\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02H\"F/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/start\x12\xf3\x02\n\x16StartWithEncryptionKey\x12>.google.cloud.compute.v1.StartWithEncryptionKeyInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xf4\x01\xda\x41Jproject,zone,instance,instances_start_with_encryption_key_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8f\x01\"W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey:4instances_start_with_encryption_key_request_resource\x12\xd0\x01\n\x04Stop\x12,.google.cloud.compute.v1.StopInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02G\"E/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/stop\x12\xd9\x01\n\x07Suspend\x12/.google.cloud.compute.v1.SuspendInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"y\xda\x41\x15project,zone,instance\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02J\"H/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/suspend\x12\xbd\x02\n\x12TestIamPermissions\x12:.google.cloud.compute.v1.TestIamPermissionsInstanceRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb8\x01\xda\x41\x37project,zone,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02x\"S/compute/v1/projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xf5\x01\n\x06Update\x12..google.cloud.compute.v1.UpdateInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41\'project,zone,instance,instance_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02U\x1a@/compute/v1/projects/{project}/zones/{zone}/instances/{instance}:\x11instance_resource\x12\xbc\x02\n\x12UpdateAccessConfig\x12:.google.cloud.compute.v1.UpdateAccessConfigInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc5\x01\xda\x41>project,zone,instance,network_interface,access_config_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02m\"S/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig:\x16\x61\x63\x63\x65ss_config_resource\x12\xaf\x02\n\x13UpdateDisplayDevice\x12;.google.cloud.compute.v1.UpdateDisplayDeviceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41-project,zone,instance,display_device_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02o2T/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice:\x17\x64isplay_device_resource\x12\xd0\x02\n\x16UpdateNetworkInterface\x12>.google.cloud.compute.v1.UpdateNetworkInterfaceInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41\x42project,zone,instance,network_interface,network_interface_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02u2W/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface:\x1anetwork_interface_resource\x12\xdf\x02\n\x1cUpdateShieldedInstanceConfig\x12\x44.google.cloud.compute.v1.UpdateShieldedInstanceConfigInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd4\x01\xda\x41\x37project,zone,instance,shielded_instance_config_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x82\x01\x32]/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig:!shielded_instance_config_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\x13\n\x10InstantSnapshots\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListInstantSnapshotsRequest\x1a\x36.google.cloud.compute.v1.InstantSnapshotAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/instantSnapshots\x12\xee\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeleteInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41\x1dproject,zone,instant_snapshot\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Q*O/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}\x12\xdc\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetInstantSnapshotRequest\x1a(.google.cloud.compute.v1.InstantSnapshot\"w\xda\x41\x1dproject,zone,instant_snapshot\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{instant_snapshot}\x12\xe2\x01\n\x0cGetIamPolicy\x12;.google.cloud.compute.v1.GetIamPolicyInstantSnapshotRequest\x1a\x1f.google.cloud.compute.v1.Policy\"t\xda\x41\x15project,zone,resource\x82\xd3\xe4\x93\x02V\x12T/compute/v1/projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy\x12\xff\x01\n\x06Insert\x12\x35.google.cloud.compute.v1.InsertInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x01\xda\x41&project,zone,instant_snapshot_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Y\"\x12.google.cloud.compute.v1.GetInterconnectAttachmentGroupRequest\x1a\x34.google.cloud.compute.v1.InterconnectAttachmentGroup\"\x92\x01\xda\x41%project,interconnect_attachment_group\x82\xd3\xe4\x93\x02\x64\x12\x62/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{interconnect_attachment_group}\x12\xef\x01\n\x0cGetIamPolicy\x12G.google.cloud.compute.v1.GetIamPolicyInterconnectAttachmentGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"u\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy\x12\xe4\x02\n\x14GetOperationalStatus\x12O.google.cloud.compute.v1.GetOperationalStatusInterconnectAttachmentGroupRequest\x1aQ.google.cloud.compute.v1.InterconnectAttachmentGroupsGetOperationalStatusResponse\"\xa7\x01\xda\x41%project,interconnect_attachment_group\x82\xd3\xe4\x93\x02y\x12w/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{interconnect_attachment_group}/getOperationalStatus\x12\xa8\x02\n\x06Insert\x12\x41.google.cloud.compute.v1.InsertInterconnectAttachmentGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41.project,interconnect_attachment_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02l\"B/compute/v1/projects/{project}/global/interconnectAttachmentGroups:&interconnect_attachment_group_resource\x12\xe1\x01\n\x04List\x12@.google.cloud.compute.v1.ListInterconnectAttachmentGroupsRequest\x1a\x41.google.cloud.compute.v1.InterconnectAttachmentGroupsListResponse\"T\xda\x41\x07project\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/global/interconnectAttachmentGroups\x12\xe5\x02\n\x05Patch\x12@.google.cloud.compute.v1.PatchInterconnectAttachmentGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xf5\x01\xda\x41Lproject,interconnect_attachment_group,interconnect_attachment_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x8c\x01\x32\x62/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{interconnect_attachment_group}:&interconnect_attachment_group_resource\x12\xb8\x02\n\x0cSetIamPolicy\x12G.google.cloud.compute.v1.SetIamPolicyInterconnectAttachmentGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xbd\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02\x80\x01\"Z/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xd9\x02\n\x12TestIamPermissions\x12M.google.cloud.compute.v1.TestIamPermissionsInterconnectAttachmentGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc1\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x85\x01\"`/compute/v1/projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc2\x10\n\x17InterconnectAttachments\x12\xeb\x01\n\x0e\x41ggregatedList\x12\x45.google.cloud.compute.v1.AggregatedListInterconnectAttachmentsRequest\x1a=.google.cloud.compute.v1.InterconnectAttachmentAggregatedList\"S\xda\x41\x07project\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/aggregated/interconnectAttachments\x12\x92\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeleteInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41&project,region,interconnect_attachment\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x63*a/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}\x12\x86\x02\n\x03Get\x12\x39.google.cloud.compute.v1.GetInterconnectAttachmentRequest\x1a/.google.cloud.compute.v1.InterconnectAttachment\"\x92\x01\xda\x41&project,region,interconnect_attachment\x82\xd3\xe4\x93\x02\x63\x12\x61/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}\x12\xa3\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41/project,region,interconnect_attachment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02k\"G/compute/v1/projects/{project}/regions/{region}/interconnectAttachments: interconnect_attachment_resource\x12\xda\x01\n\x04List\x12;.google.cloud.compute.v1.ListInterconnectAttachmentsRequest\x1a\x33.google.cloud.compute.v1.InterconnectAttachmentList\"`\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/regions/{region}/interconnectAttachments\x12\xd4\x02\n\x05Patch\x12;.google.cloud.compute.v1.PatchInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41Gproject,region,interconnect_attachment,interconnect_attachment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x85\x01\x32\x61/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{interconnect_attachment}: interconnect_attachment_resource\x12\xcc\x02\n\tSetLabels\x12?.google.cloud.compute.v1.SetLabelsInterconnectAttachmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xd9\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x82\x01\"\\/compute/v1/projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb8\x16\n\x12InterconnectGroups\x12\xf3\x02\n\rCreateMembers\x12>.google.cloud.compute.v1.CreateMembersInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xfd\x01\xda\x41Nproject,interconnect_group,interconnect_groups_create_members_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x92\x01\"[/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}/createMembers:3interconnect_groups_create_members_request_resource\x12\xed\x01\n\x06\x44\x65lete\x12\x37.google.cloud.compute.v1.DeleteInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x85\x01\xda\x41\x1aproject,interconnect_group\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02O*M/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}\x12\xdb\x01\n\x03Get\x12\x34.google.cloud.compute.v1.GetInterconnectGroupRequest\x1a*.google.cloud.compute.v1.InterconnectGroup\"r\xda\x41\x1aproject,interconnect_group\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}\x12\xdb\x01\n\x0cGetIamPolicy\x12=.google.cloud.compute.v1.GetIamPolicyInterconnectGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"k\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/global/interconnectGroups/{resource}/getIamPolicy\x12\xb0\x02\n\x14GetOperationalStatus\x12\x45.google.cloud.compute.v1.GetOperationalStatusInterconnectGroupRequest\x1aG.google.cloud.compute.v1.InterconnectGroupsGetOperationalStatusResponse\"\x87\x01\xda\x41\x1aproject,interconnect_group\x82\xd3\xe4\x93\x02\x64\x12\x62/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}/getOperationalStatus\x12\xfe\x01\n\x06Insert\x12\x37.google.cloud.compute.v1.InsertInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41#project,interconnect_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02W\"8/compute/v1/projects/{project}/global/interconnectGroups:\x1binterconnect_group_resource\x12\xc3\x01\n\x04List\x12\x36.google.cloud.compute.v1.ListInterconnectGroupsRequest\x1a\x37.google.cloud.compute.v1.InterconnectGroupsListResponse\"J\xda\x41\x07project\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/global/interconnectGroups\x12\xa4\x02\n\x05Patch\x12\x36.google.cloud.compute.v1.PatchInterconnectGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xbe\x01\xda\x41\x36project,interconnect_group,interconnect_group_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02l2M/compute/v1/projects/{project}/global/interconnectGroups/{interconnect_group}:\x1binterconnect_group_resource\x12\xa3\x02\n\x0cSetIamPolicy\x12=.google.cloud.compute.v1.SetIamPolicyInterconnectGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb2\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02v\"P/compute/v1/projects/{project}/global/interconnectGroups/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xc4\x02\n\x12TestIamPermissions\x12\x43.google.cloud.compute.v1.TestIamPermissionsInterconnectGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb6\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02{\"V/compute/v1/projects/{project}/global/interconnectGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf1\x04\n\x15InterconnectLocations\x12\xea\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetInterconnectLocationRequest\x1a-.google.cloud.compute.v1.InterconnectLocation\"{\xda\x41\x1dproject,interconnect_location\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/global/interconnectLocations/{interconnect_location}\x12\xc3\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListInterconnectLocationsRequest\x1a\x31.google.cloud.compute.v1.InterconnectLocationList\"M\xda\x41\x07project\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/global/interconnectLocations\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xaa\x05\n\x1bInterconnectRemoteLocations\x12\x8b\x02\n\x03Get\x12=.google.cloud.compute.v1.GetInterconnectRemoteLocationRequest\x1a\x33.google.cloud.compute.v1.InterconnectRemoteLocation\"\x8f\x01\xda\x41$project,interconnect_remote_location\x82\xd3\xe4\x93\x02\x62\x12`/compute/v1/projects/{project}/global/interconnectRemoteLocations/{interconnect_remote_location}\x12\xd5\x01\n\x04List\x12?.google.cloud.compute.v1.ListInterconnectRemoteLocationsRequest\x1a\x37.google.cloud.compute.v1.InterconnectRemoteLocationList\"S\xda\x41\x07project\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/global/interconnectRemoteLocations\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xe8\x0f\n\rInterconnects\x12\xd6\x01\n\x06\x44\x65lete\x12\x32.google.cloud.compute.v1.DeleteInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"t\xda\x41\x14project,interconnect\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x44*B/compute/v1/projects/{project}/global/interconnects/{interconnect}\x12\xc0\x01\n\x03Get\x12/.google.cloud.compute.v1.GetInterconnectRequest\x1a%.google.cloud.compute.v1.Interconnect\"a\xda\x41\x14project,interconnect\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/global/interconnects/{interconnect}\x12\xfc\x01\n\x0eGetDiagnostics\x12:.google.cloud.compute.v1.GetDiagnosticsInterconnectRequest\x1a<.google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse\"p\xda\x41\x14project,interconnect\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/global/interconnects/{interconnect}/getDiagnostics\x12\x80\x02\n\x0fGetMacsecConfig\x12;.google.cloud.compute.v1.GetMacsecConfigInterconnectRequest\x1a=.google.cloud.compute.v1.InterconnectsGetMacsecConfigResponse\"q\xda\x41\x14project,interconnect\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/global/interconnects/{interconnect}/getMacsecConfig\x12\xe8\x01\n\x06Insert\x12\x32.google.cloud.compute.v1.InsertInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"\x85\x01\xda\x41\x1dproject,interconnect_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02L\"3/compute/v1/projects/{project}/global/interconnects:\x15interconnect_resource\x12\xab\x01\n\x04List\x12\x31.google.cloud.compute.v1.ListInterconnectsRequest\x1a).google.cloud.compute.v1.InterconnectList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/global/interconnects\x12\x82\x02\n\x05Patch\x12\x31.google.cloud.compute.v1.PatchInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41*project,interconnect,interconnect_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02[2B/compute/v1/projects/{project}/global/interconnects/{interconnect}:\x15interconnect_resource\x12\xa6\x02\n\tSetLabels\x12\x35.google.cloud.compute.v1.SetLabelsInterconnectRequest\x1a\".google.cloud.compute.v1.Operation\"\xbd\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02n\"H/compute/v1/projects/{project}/global/interconnects/{resource}/setLabels:\"global_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb0\x05\n\x0cLicenseCodes\x12\xbd\x01\n\x03Get\x12..google.cloud.compute.v1.GetLicenseCodeRequest\x1a$.google.cloud.compute.v1.LicenseCode\"`\xda\x41\x14project,license_code\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/global/licenseCodes/{license_code}\x12\xb8\x02\n\x12TestIamPermissions\x12=.google.cloud.compute.v1.TestIamPermissionsLicenseCodeRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb0\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02u\"P/compute/v1/projects/{project}/global/licenseCodes/{resource}/testIamPermissions:!test_permissions_request_resource\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xe3\x0e\n\x08Licenses\x12\xc2\x01\n\x06\x44\x65lete\x12-.google.cloud.compute.v1.DeleteLicenseRequest\x1a\".google.cloud.compute.v1.Operation\"e\xda\x41\x0fproject,license\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02:*8/compute/v1/projects/{project}/global/licenses/{license}\x12\xa7\x01\n\x03Get\x12*.google.cloud.compute.v1.GetLicenseRequest\x1a .google.cloud.compute.v1.License\"R\xda\x41\x0fproject,license\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/global/licenses/{license}\x12\xc7\x01\n\x0cGetIamPolicy\x12\x33.google.cloud.compute.v1.GetIamPolicyLicenseRequest\x1a\x1f.google.cloud.compute.v1.Policy\"a\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02H\x12\x46/compute/v1/projects/{project}/global/licenses/{resource}/getIamPolicy\x12\xd3\x01\n\x06Insert\x12-.google.cloud.compute.v1.InsertLicenseRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x18project,license_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x42\"./compute/v1/projects/{project}/global/licenses:\x10license_resource\x12\xa5\x01\n\x04List\x12,.google.cloud.compute.v1.ListLicensesRequest\x1a-.google.cloud.compute.v1.LicensesListResponse\"@\xda\x41\x07project\x82\xd3\xe4\x93\x02\x30\x12./compute/v1/projects/{project}/global/licenses\x12\x8f\x02\n\x0cSetIamPolicy\x12\x33.google.cloud.compute.v1.SetIamPolicyLicenseRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xa8\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02l\"F/compute/v1/projects/{project}/global/licenses/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xb0\x02\n\x12TestIamPermissions\x12\x39.google.cloud.compute.v1.TestIamPermissionsLicenseRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xac\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02q\"L/compute/v1/projects/{project}/global/licenses/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xe6\x01\n\x06Update\x12-.google.cloud.compute.v1.UpdateLicenseRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41 project,license,license_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02L28/compute/v1/projects/{project}/global/licenses/{license}:\x10license_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x94\x10\n\rMachineImages\x12\xd8\x01\n\x06\x44\x65lete\x12\x32.google.cloud.compute.v1.DeleteMachineImageRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x15project,machine_image\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x45*C/compute/v1/projects/{project}/global/machineImages/{machine_image}\x12\xc2\x01\n\x03Get\x12/.google.cloud.compute.v1.GetMachineImageRequest\x1a%.google.cloud.compute.v1.MachineImage\"c\xda\x41\x15project,machine_image\x82\xd3\xe4\x93\x02\x45\x12\x43/compute/v1/projects/{project}/global/machineImages/{machine_image}\x12\xd1\x01\n\x0cGetIamPolicy\x12\x38.google.cloud.compute.v1.GetIamPolicyMachineImageRequest\x1a\x1f.google.cloud.compute.v1.Policy\"f\xda\x41\x10project,resource\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/global/machineImages/{resource}/getIamPolicy\x12\xea\x01\n\x06Insert\x12\x32.google.cloud.compute.v1.InsertMachineImageRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x1eproject,machine_image_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"3/compute/v1/projects/{project}/global/machineImages:\x16machine_image_resource\x12\xab\x01\n\x04List\x12\x31.google.cloud.compute.v1.ListMachineImagesRequest\x1a).google.cloud.compute.v1.MachineImageList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/global/machineImages\x12\x99\x02\n\x0cSetIamPolicy\x12\x38.google.cloud.compute.v1.SetIamPolicyMachineImageRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xad\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02q\"K/compute/v1/projects/{project}/global/machineImages/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xa6\x02\n\tSetLabels\x12\x35.google.cloud.compute.v1.SetLabelsMachineImageRequest\x1a\".google.cloud.compute.v1.Operation\"\xbd\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02n\"H/compute/v1/projects/{project}/global/machineImages/{resource}/setLabels:\"global_set_labels_request_resource\x12\xba\x02\n\x12TestIamPermissions\x12>.google.cloud.compute.v1.TestIamPermissionsMachineImageRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb1\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02v\"Q/compute/v1/projects/{project}/global/machineImages/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x83\x06\n\x0cMachineTypes\x12\xca\x01\n\x0e\x41ggregatedList\x12:.google.cloud.compute.v1.AggregatedListMachineTypesRequest\x1a\x32.google.cloud.compute.v1.MachineTypeAggregatedList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/aggregated/machineTypes\x12\xc8\x01\n\x03Get\x12..google.cloud.compute.v1.GetMachineTypeRequest\x1a$.google.cloud.compute.v1.MachineType\"k\xda\x41\x19project,zone,machine_type\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/zones/{zone}/machineTypes/{machine_type}\x12\xb3\x01\n\x04List\x12\x30.google.cloud.compute.v1.ListMachineTypesRequest\x1a(.google.cloud.compute.v1.MachineTypeList\"O\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/zones/{zone}/machineTypes\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x13\n\x12NetworkAttachments\x12\xdc\x01\n\x0e\x41ggregatedList\x12@.google.cloud.compute.v1.AggregatedListNetworkAttachmentsRequest\x1a\x38.google.cloud.compute.v1.NetworkAttachmentAggregatedList\"N\xda\x41\x07project\x82\xd3\xe4\x93\x02>\x12.google.cloud.compute.v1.PatchRuleNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc4\x01\xda\x41\x35project,firewall_policy,firewall_policy_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02s\"R/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/patchRule:\x1d\x66irewall_policy_rule_resource\x12\x91\x02\n\x11RemoveAssociation\x12\x46.google.cloud.compute.v1.RemoveAssociationNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8f\x01\xda\x41\x17project,firewall_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\\\"Z/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeAssociation\x12\xa9\x02\n\x19RemovePacketMirroringRule\x12N.google.cloud.compute.v1.RemovePacketMirroringRuleNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41\x17project,firewall_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\"b/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removePacketMirroringRule\x12\xfc\x01\n\nRemoveRule\x12?.google.cloud.compute.v1.RemoveRuleNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41\x17project,firewall_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/global/firewallPolicies/{firewall_policy}/removeRule\x12\xa5\x02\n\x0cSetIamPolicy\x12\x41.google.cloud.compute.v1.SetIamPolicyNetworkFirewallPolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb0\x01\xda\x41\x33project,resource,global_set_policy_request_resource\x82\xd3\xe4\x93\x02t\"N/compute/v1/projects/{project}/global/firewallPolicies/{resource}/setIamPolicy:\"global_set_policy_request_resource\x12\xc6\x02\n\x12TestIamPermissions\x12G.google.cloud.compute.v1.TestIamPermissionsNetworkFirewallPolicyRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb4\x01\xda\x41\x32project,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02y\"T/compute/v1/projects/{project}/global/firewallPolicies/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc4\x04\n\x0fNetworkProfiles\x12\xcc\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetNetworkProfileRequest\x1a\'.google.cloud.compute.v1.NetworkProfile\"i\xda\x41\x17project,network_profile\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/global/networkProfiles/{network_profile}\x12\xba\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListNetworkProfilesRequest\x1a\x34.google.cloud.compute.v1.NetworkProfilesListResponse\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/global/networkProfiles\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x92\x18\n\x08Networks\x12\xa3\x02\n\nAddPeering\x12\x31.google.cloud.compute.v1.AddPeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xbd\x01\xda\x41\x35project,network,networks_add_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02l\"C/compute/v1/projects/{project}/global/networks/{network}/addPeering:%networks_add_peering_request_resource\x12\xc2\x01\n\x06\x44\x65lete\x12-.google.cloud.compute.v1.DeleteNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"e\xda\x41\x0fproject,network\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02:*8/compute/v1/projects/{project}/global/networks/{network}\x12\xa7\x01\n\x03Get\x12*.google.cloud.compute.v1.GetNetworkRequest\x1a .google.cloud.compute.v1.Network\"R\xda\x41\x0fproject,network\x82\xd3\xe4\x93\x02:\x12\x38/compute/v1/projects/{project}/global/networks/{network}\x12\xff\x01\n\x15GetEffectiveFirewalls\x12<.google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest\x1a>.google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse\"h\xda\x41\x0fproject,network\x82\xd3\xe4\x93\x02P\x12N/compute/v1/projects/{project}/global/networks/{network}/getEffectiveFirewalls\x12\xd3\x01\n\x06Insert\x12-.google.cloud.compute.v1.InsertNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x18project,network_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x42\"./compute/v1/projects/{project}/global/networks:\x10network_resource\x12\x9c\x01\n\x04List\x12,.google.cloud.compute.v1.ListNetworksRequest\x1a$.google.cloud.compute.v1.NetworkList\"@\xda\x41\x07project\x82\xd3\xe4\x93\x02\x30\x12./compute/v1/projects/{project}/global/networks\x12\xe9\x01\n\x11ListPeeringRoutes\x12\x39.google.cloud.compute.v1.ListPeeringRoutesNetworksRequest\x1a\x33.google.cloud.compute.v1.ExchangedPeeringRoutesList\"d\xda\x41\x0fproject,network\x82\xd3\xe4\x93\x02L\x12J/compute/v1/projects/{project}/global/networks/{network}/listPeeringRoutes\x12\xe4\x01\n\x05Patch\x12,.google.cloud.compute.v1.PatchNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41 project,network,network_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02L28/compute/v1/projects/{project}/global/networks/{network}:\x10network_resource\x12\xb2\x02\n\rRemovePeering\x12\x34.google.cloud.compute.v1.RemovePeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xc6\x01\xda\x41\x38project,network,networks_remove_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02r\"F/compute/v1/projects/{project}/global/networks/{network}/removePeering:(networks_remove_peering_request_resource\x12\xd8\x02\n\x14RequestRemovePeering\x12;.google.cloud.compute.v1.RequestRemovePeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xde\x01\xda\x41@project,network,networks_request_remove_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x81\x01\"M/compute/v1/projects/{project}/global/networks/{network}/requestRemovePeering:0networks_request_remove_peering_request_resource\x12\xed\x01\n\x12SwitchToCustomMode\x12\x39.google.cloud.compute.v1.SwitchToCustomModeNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"x\xda\x41\x0fproject,network\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"K/compute/v1/projects/{project}/global/networks/{network}/switchToCustomMode\x12\xb2\x02\n\rUpdatePeering\x12\x34.google.cloud.compute.v1.UpdatePeeringNetworkRequest\x1a\".google.cloud.compute.v1.Operation\"\xc6\x01\xda\x41\x38project,network,networks_update_peering_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02r2F/compute/v1/projects/{project}/global/networks/{network}/updatePeering:(networks_update_peering_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xeb \n\nNodeGroups\x12\xb2\x02\n\x08\x41\x64\x64Nodes\x12\x31.google.cloud.compute.v1.AddNodesNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xce\x01\xda\x41>project,zone,node_group,node_groups_add_nodes_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02v\"L/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/addNodes:&node_groups_add_nodes_request_resource\x12\xc4\x01\n\x0e\x41ggregatedList\x12\x38.google.cloud.compute.v1.AggregatedListNodeGroupsRequest\x1a\x30.google.cloud.compute.v1.NodeGroupAggregatedList\"F\xda\x41\x07project\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/aggregated/nodeGroups\x12\xd5\x01\n\x06\x44\x65lete\x12/.google.cloud.compute.v1.DeleteNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"v\xda\x41\x17project,zone,node_group\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x45*C/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}\x12\xc1\x02\n\x0b\x44\x65leteNodes\x12\x34.google.cloud.compute.v1.DeleteNodesNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xd7\x01\xda\x41\x41project,zone,node_group,node_groups_delete_nodes_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02|\"O/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/deleteNodes:)node_groups_delete_nodes_request_resource\x12\xbe\x01\n\x03Get\x12,.google.cloud.compute.v1.GetNodeGroupRequest\x1a\".google.cloud.compute.v1.NodeGroup\"e\xda\x41\x17project,zone,node_group\x82\xd3\xe4\x93\x02\x45\x12\x43/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}\x12\xd6\x01\n\x0cGetIamPolicy\x12\x35.google.cloud.compute.v1.GetIamPolicyNodeGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"n\xda\x41\x15project,zone,resource\x82\xd3\xe4\x93\x02P\x12N/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy\x12\xfa\x01\n\x06Insert\x12/.google.cloud.compute.v1.InsertNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x9a\x01\xda\x41\x33project,zone,initial_node_count,node_group_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02M\"6/compute/v1/projects/{project}/zones/{zone}/nodeGroups:\x13node_group_resource\x12\xad\x01\n\x04List\x12..google.cloud.compute.v1.ListNodeGroupsRequest\x1a&.google.cloud.compute.v1.NodeGroupList\"M\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/zones/{zone}/nodeGroups\x12\xdf\x01\n\tListNodes\x12\x33.google.cloud.compute.v1.ListNodesNodeGroupsRequest\x1a,.google.cloud.compute.v1.NodeGroupsListNodes\"o\xda\x41\x17project,zone,node_group\x82\xd3\xe4\x93\x02O\"M/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/listNodes\x12\xfd\x01\n\x05Patch\x12..google.cloud.compute.v1.PatchNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41+project,zone,node_group,node_group_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02Z2C/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}:\x13node_group_resource\x12\xe5\x02\n\x12PerformMaintenance\x12;.google.cloud.compute.v1.PerformMaintenanceNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xed\x01\xda\x41Hproject,zone,node_group,node_groups_perform_maintenance_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x8a\x01\"V/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/performMaintenance:0node_groups_perform_maintenance_request_resource\x12\x9a\x02\n\x0cSetIamPolicy\x12\x35.google.cloud.compute.v1.SetIamPolicyNodeGroupRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xb1\x01\xda\x41\x36project,zone,resource,zone_set_policy_request_resource\x82\xd3\xe4\x93\x02r\"N/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy: zone_set_policy_request_resource\x12\xd8\x02\n\x0fSetNodeTemplate\x12\x38.google.cloud.compute.v1.SetNodeTemplateNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xe6\x01\xda\x41\x46project,zone,node_group,node_groups_set_node_template_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x85\x01\"S/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/setNodeTemplate:.node_groups_set_node_template_request_resource\x12\x85\x03\n\x18SimulateMaintenanceEvent\x12\x41.google.cloud.compute.v1.SimulateMaintenanceEventNodeGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x81\x02\xda\x41Oproject,zone,node_group,node_groups_simulate_maintenance_event_request_resource\x8aN\x0eZoneOperations\x82\xd3\xe4\x93\x02\x97\x01\"\\/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{node_group}/simulateMaintenanceEvent:7node_groups_simulate_maintenance_event_request_resource\x12\xbf\x02\n\x12TestIamPermissions\x12;.google.cloud.compute.v1.TestIamPermissionsNodeGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xb9\x01\xda\x41\x37project,zone,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02y\"T/compute/v1/projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb4\x10\n\rNodeTemplates\x12\xcd\x01\n\x0e\x41ggregatedList\x12;.google.cloud.compute.v1.AggregatedListNodeTemplatesRequest\x1a\x33.google.cloud.compute.v1.NodeTemplateAggregatedList\"I\xda\x41\x07project\x82\xd3\xe4\x93\x02\x39\x12\x37/compute/v1/projects/{project}/aggregated/nodeTemplates\x12\xea\x01\n\x06\x44\x65lete\x12\x32.google.cloud.compute.v1.DeleteNodeTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41\x1cproject,region,node_template\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02O*M/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}\x12\xd3\x01\n\x03Get\x12/.google.cloud.compute.v1.GetNodeTemplateRequest\x1a%.google.cloud.compute.v1.NodeTemplate\"t\xda\x41\x1cproject,region,node_template\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{node_template}\x12\xe2\x01\n\x0cGetIamPolicy\x12\x38.google.cloud.compute.v1.GetIamPolicyNodeTemplateRequest\x1a\x1f.google.cloud.compute.v1.Policy\"w\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02W\x12U/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy\x12\xfb\x01\n\x06Insert\x12\x32.google.cloud.compute.v1.InsertNodeTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\x98\x01\xda\x41%project,region,node_template_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02W\"=/compute/v1/projects/{project}/regions/{region}/nodeTemplates:\x16node_template_resource\x12\xbc\x01\n\x04List\x12\x31.google.cloud.compute.v1.ListNodeTemplatesRequest\x1a).google.cloud.compute.v1.NodeTemplateList\"V\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02?\x12=/compute/v1/projects/{project}/regions/{region}/nodeTemplates\x12\xaa\x02\n\x0cSetIamPolicy\x12\x38.google.cloud.compute.v1.SetIamPolicyNodeTemplateRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xbe\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02{\"U/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xcc\x02\n\x12TestIamPermissions\x12>.google.cloud.compute.v1.TestIamPermissionsNodeTemplateRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc3\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x80\x01\"[/compute/v1/projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xdf\x05\n\tNodeTypes\x12\xc1\x01\n\x0e\x41ggregatedList\x12\x37.google.cloud.compute.v1.AggregatedListNodeTypesRequest\x1a/.google.cloud.compute.v1.NodeTypeAggregatedList\"E\xda\x41\x07project\x82\xd3\xe4\x93\x02\x35\x12\x33/compute/v1/projects/{project}/aggregated/nodeTypes\x12\xb9\x01\n\x03Get\x12+.google.cloud.compute.v1.GetNodeTypeRequest\x1a!.google.cloud.compute.v1.NodeType\"b\xda\x41\x16project,zone,node_type\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/zones/{zone}/nodeTypes/{node_type}\x12\xaa\x01\n\x04List\x12-.google.cloud.compute.v1.ListNodeTypesRequest\x1a%.google.cloud.compute.v1.NodeTypeList\"L\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/zones/{zone}/nodeTypes\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x90\x0f\n\x10PacketMirrorings\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListPacketMirroringsRequest\x1a\x36.google.cloud.compute.v1.PacketMirroringAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/packetMirrorings\x12\xf6\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeletePacketMirroringRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\x1fproject,region,packet_mirroring\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02U*S/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}\x12\xe2\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetPacketMirroringRequest\x1a(.google.cloud.compute.v1.PacketMirroring\"}\xda\x41\x1fproject,region,packet_mirroring\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}\x12\x87\x02\n\x06Insert\x12\x35.google.cloud.compute.v1.InsertPacketMirroringRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41(project,region,packet_mirroring_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02]\"@/compute/v1/projects/{project}/regions/{region}/packetMirrorings:\x19packet_mirroring_resource\x12\xc5\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListPacketMirroringsRequest\x1a,.google.cloud.compute.v1.PacketMirroringList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/packetMirrorings\x12\xa9\x02\n\x05Patch\x12\x34.google.cloud.compute.v1.PatchPacketMirroringRequest\x1a\".google.cloud.compute.v1.Operation\"\xc5\x01\xda\x41\x39project,region,packet_mirroring,packet_mirroring_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02p2S/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{packet_mirroring}:\x19packet_mirroring_resource\x12\xd2\x02\n\x12TestIamPermissions\x12\x41.google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc6\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x83\x01\"^/compute/v1/projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xab\x1b\n\x08Projects\x12\xbf\x01\n\x0e\x44isableXpnHost\x12\x35.google.cloud.compute.v1.DisableXpnHostProjectRequest\x1a\".google.cloud.compute.v1.Operation\"R\xda\x41\x07project\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02/\"-/compute/v1/projects/{project}/disableXpnHost\x12\xab\x02\n\x12\x44isableXpnResource\x12\x39.google.cloud.compute.v1.DisableXpnResourceProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xb5\x01\xda\x41\x36project,projects_disable_xpn_resource_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x63\"1/compute/v1/projects/{project}/disableXpnResource:.projects_disable_xpn_resource_request_resource\x12\xbc\x01\n\rEnableXpnHost\x12\x34.google.cloud.compute.v1.EnableXpnHostProjectRequest\x1a\".google.cloud.compute.v1.Operation\"Q\xda\x41\x07project\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02.\",/compute/v1/projects/{project}/enableXpnHost\x12\xa6\x02\n\x11\x45nableXpnResource\x12\x38.google.cloud.compute.v1.EnableXpnResourceProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xb2\x01\xda\x41\x35project,projects_enable_xpn_resource_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x61\"0/compute/v1/projects/{project}/enableXpnResource:-projects_enable_xpn_resource_request_resource\x12\x85\x01\n\x03Get\x12*.google.cloud.compute.v1.GetProjectRequest\x1a .google.cloud.compute.v1.Project\"0\xda\x41\x07project\x82\xd3\xe4\x93\x02 \x12\x1e/compute/v1/projects/{project}\x12\x9e\x01\n\nGetXpnHost\x12\x31.google.cloud.compute.v1.GetXpnHostProjectRequest\x1a .google.cloud.compute.v1.Project\";\xda\x41\x07project\x82\xd3\xe4\x93\x02+\x12)/compute/v1/projects/{project}/getXpnHost\x12\xbe\x01\n\x0fGetXpnResources\x12\x37.google.cloud.compute.v1.GetXpnResourcesProjectsRequest\x1a\x30.google.cloud.compute.v1.ProjectsGetXpnResources\"@\xda\x41\x07project\x82\xd3\xe4\x93\x02\x30\x12./compute/v1/projects/{project}/getXpnResources\x12\xfd\x01\n\x0cListXpnHosts\x12\x34.google.cloud.compute.v1.ListXpnHostsProjectsRequest\x1a$.google.cloud.compute.v1.XpnHostList\"\x90\x01\xda\x41\x30project,projects_list_xpn_hosts_request_resource\x82\xd3\xe4\x93\x02W\"+/compute/v1/projects/{project}/listXpnHosts:(projects_list_xpn_hosts_request_resource\x12\xe5\x01\n\x08MoveDisk\x12/.google.cloud.compute.v1.MoveDiskProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x83\x01\xda\x41\"project,disk_move_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x45\"\'/compute/v1/projects/{project}/moveDisk:\x1a\x64isk_move_request_resource\x12\xf9\x01\n\x0cMoveInstance\x12\x33.google.cloud.compute.v1.MoveInstanceProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x8f\x01\xda\x41&project,instance_move_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"+/compute/v1/projects/{project}/moveInstance:\x1einstance_move_request_resource\x12\xa8\x02\n\x11SetCloudArmorTier\x12\x38.google.cloud.compute.v1.SetCloudArmorTierProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xb4\x01\xda\x41\x36project,projects_set_cloud_armor_tier_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x62\"0/compute/v1/projects/{project}/setCloudArmorTier:.projects_set_cloud_armor_tier_request_resource\x12\x86\x02\n\x19SetCommonInstanceMetadata\x12@.google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x19project,metadata_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02M\"8/compute/v1/projects/{project}/setCommonInstanceMetadata:\x11metadata_resource\x12\xbc\x02\n\x15SetDefaultNetworkTier\x12<.google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41:project,projects_set_default_network_tier_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02j\"4/compute/v1/projects/{project}/setDefaultNetworkTier:2projects_set_default_network_tier_request_resource\x12\x91\x02\n\x14SetUsageExportBucket\x12;.google.cloud.compute.v1.SetUsageExportBucketProjectRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41&project,usage_export_location_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U\"3/compute/v1/projects/{project}/setUsageExportBucket:\x1eusage_export_location_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xee\x0f\n\x18PublicAdvertisedPrefixes\x12\x92\x02\n\x08\x41nnounce\x12?.google.cloud.compute.v1.AnnouncePublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41 project,public_advertised_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\"b/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}/announce\x12\x85\x02\n\x06\x44\x65lete\x12=.google.cloud.compute.v1.DeletePublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41 project,public_advertised_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02[*Y/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}\x12\xf9\x01\n\x03Get\x12:.google.cloud.compute.v1.GetPublicAdvertisedPrefixeRequest\x1a/.google.cloud.compute.v1.PublicAdvertisedPrefix\"\x84\x01\xda\x41 project,public_advertised_prefix\x82\xd3\xe4\x93\x02[\x12Y/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}\x12\x96\x02\n\x06Insert\x12=.google.cloud.compute.v1.InsertPublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41)project,public_advertised_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x63\">/compute/v1/projects/{project}/global/publicAdvertisedPrefixes:!public_advertised_prefix_resource\x12\xcb\x01\n\x04List\x12<.google.cloud.compute.v1.ListPublicAdvertisedPrefixesRequest\x1a\x33.google.cloud.compute.v1.PublicAdvertisedPrefixList\"P\xda\x41\x07project\x82\xd3\xe4\x93\x02@\x12>/compute/v1/projects/{project}/global/publicAdvertisedPrefixes\x12\xc8\x02\n\x05Patch\x12<.google.cloud.compute.v1.PatchPublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xdc\x01\xda\x41\x42project,public_advertised_prefix,public_advertised_prefix_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02~2Y/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}:!public_advertised_prefix_resource\x12\x92\x02\n\x08Withdraw\x12?.google.cloud.compute.v1.WithdrawPublicAdvertisedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa0\x01\xda\x41 project,public_advertised_prefix\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\"b/compute/v1/projects/{project}/global/publicAdvertisedPrefixes/{public_advertised_prefix}/withdraw\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb4\x12\n\x17PublicDelegatedPrefixes\x12\xea\x01\n\x0e\x41ggregatedList\x12\x45.google.cloud.compute.v1.AggregatedListPublicDelegatedPrefixesRequest\x1a<.google.cloud.compute.v1.PublicDelegatedPrefixAggregatedList\"S\xda\x41\x07project\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/aggregated/publicDelegatedPrefixes\x12\x9f\x02\n\x08\x41nnounce\x12>.google.cloud.compute.v1.AnnouncePublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xae\x01\xda\x41&project,region,public_delegated_prefix\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02l\"j/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}/announce\x12\x92\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeletePublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xa5\x01\xda\x41&project,region,public_delegated_prefix\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x63*a/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}\x12\x85\x02\n\x03Get\x12\x39.google.cloud.compute.v1.GetPublicDelegatedPrefixeRequest\x1a..google.cloud.compute.v1.PublicDelegatedPrefix\"\x92\x01\xda\x41&project,region,public_delegated_prefix\x82\xd3\xe4\x93\x02\x63\x12\x61/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}\x12\xa3\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xb6\x01\xda\x41/project,region,public_delegated_prefix_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02k\"G/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes: public_delegated_prefix_resource\x12\xd9\x01\n\x04List\x12;.google.cloud.compute.v1.ListPublicDelegatedPrefixesRequest\x1a\x32.google.cloud.compute.v1.PublicDelegatedPrefixList\"`\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes\x12\xd4\x02\n\x05Patch\x12;.google.cloud.compute.v1.PatchPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41Gproject,region,public_delegated_prefix,public_delegated_prefix_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x85\x01\x32\x61/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}: public_delegated_prefix_resource\x12\x9f\x02\n\x08Withdraw\x12>.google.cloud.compute.v1.WithdrawPublicDelegatedPrefixeRequest\x1a\".google.cloud.compute.v1.Operation\"\xae\x01\xda\x41&project,region,public_delegated_prefix\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02l\"j/compute/v1/projects/{project}/regions/{region}/publicDelegatedPrefixes/{public_delegated_prefix}/withdraw\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x0b\n\x11RegionAutoscalers\x12\xe5\x01\n\x06\x44\x65lete\x12\x36.google.cloud.compute.v1.DeleteRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x19project,region,autoscaler\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02J*H/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}\x12\xcd\x01\n\x03Get\x12\x33.google.cloud.compute.v1.GetRegionAutoscalerRequest\x1a#.google.cloud.compute.v1.Autoscaler\"l\xda\x41\x19project,region,autoscaler\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/regions/{region}/autoscalers/{autoscaler}\x12\xf7\x01\n\x06Insert\x12\x36.google.cloud.compute.v1.InsertRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,autoscaler_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\";/compute/v1/projects/{project}/regions/{region}/autoscalers:\x13\x61utoscaler_resource\x12\xc2\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListRegionAutoscalersRequest\x1a-.google.cloud.compute.v1.RegionAutoscalerList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/autoscalers\x12\xf5\x01\n\x05Patch\x12\x35.google.cloud.compute.v1.PatchRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,autoscaler_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R2;/compute/v1/projects/{project}/regions/{region}/autoscalers:\x13\x61utoscaler_resource\x12\xf7\x01\n\x06Update\x12\x36.google.cloud.compute.v1.UpdateRegionAutoscalerRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,autoscaler_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\x1a;/compute/v1/projects/{project}/regions/{region}/autoscalers:\x13\x61utoscaler_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xbd\x1b\n\x15RegionBackendServices\x12\xf8\x01\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\x1eproject,region,backend_service\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S*Q/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}\x12\xe3\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetRegionBackendServiceRequest\x1a\'.google.cloud.compute.v1.BackendService\"z\xda\x41\x1eproject,region,backend_service\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}\x12\xcb\x02\n\tGetHealth\x12=.google.cloud.compute.v1.GetHealthRegionBackendServiceRequest\x1a\x32.google.cloud.compute.v1.BackendServiceGroupHealth\"\xca\x01\xda\x41@project,region,backend_service,resource_group_reference_resource\x82\xd3\xe4\x93\x02\x80\x01\"[/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}/getHealth:!resource_group_reference_resource\x12\xec\x01\n\x0cGetIamPolicy\x12@.google.cloud.compute.v1.GetIamPolicyRegionBackendServiceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"y\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Y\x12W/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy\x12\x89\x02\n\x06Insert\x12:.google.cloud.compute.v1.InsertRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x01\xda\x41\'project,region,backend_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02[\"?/compute/v1/projects/{project}/regions/{region}/backendServices:\x18\x62\x61\x63kend_service_resource\x12\xc8\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListRegionBackendServicesRequest\x1a+.google.cloud.compute.v1.BackendServiceList\"X\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/regions/{region}/backendServices\x12\xe5\x01\n\nListUsable\x12?.google.cloud.compute.v1.ListUsableRegionBackendServicesRequest\x1a\x31.google.cloud.compute.v1.BackendServiceListUsable\"c\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02L\x12J/compute/v1/projects/{project}/regions/{region}/backendServices/listUsable\x12\xa9\x02\n\x05Patch\x12\x39.google.cloud.compute.v1.PatchRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x37project,region,backend_service,backend_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02m2Q/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}:\x18\x62\x61\x63kend_service_resource\x12\xb4\x02\n\x0cSetIamPolicy\x12@.google.cloud.compute.v1.SetIamPolicyRegionBackendServiceRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xc0\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02}\"W/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xe8\x02\n\x11SetSecurityPolicy\x12\x45.google.cloud.compute.v1.SetSecurityPolicyRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xe7\x01\xda\x41\x41project,region,backend_service,security_policy_reference_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x89\x01\"c/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}/setSecurityPolicy:\"security_policy_reference_resource\x12\xd6\x02\n\x12TestIamPermissions\x12\x46.google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc5\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x82\x01\"]/compute/v1/projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xab\x02\n\x06Update\x12:.google.cloud.compute.v1.UpdateRegionBackendServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x37project,region,backend_service,backend_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02m\x1aQ/compute/v1/projects/{project}/regions/{region}/backendServices/{backend_service}:\x18\x62\x61\x63kend_service_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf2\t\n\x11RegionCommitments\x12\xcd\x01\n\x0e\x41ggregatedList\x12?.google.cloud.compute.v1.AggregatedListRegionCommitmentsRequest\x1a\x31.google.cloud.compute.v1.CommitmentAggregatedList\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/aggregated/commitments\x12\xcd\x01\n\x03Get\x12\x33.google.cloud.compute.v1.GetRegionCommitmentRequest\x1a#.google.cloud.compute.v1.Commitment\"l\xda\x41\x19project,region,commitment\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}\x12\xf7\x01\n\x06Insert\x12\x36.google.cloud.compute.v1.InsertRegionCommitmentRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,commitment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\";/compute/v1/projects/{project}/regions/{region}/commitments:\x13\x63ommitment_resource\x12\xbc\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListRegionCommitmentsRequest\x1a\'.google.cloud.compute.v1.CommitmentList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/commitments\x12\x8f\x02\n\x06Update\x12\x36.google.cloud.compute.v1.UpdateRegionCommitmentRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41-project,region,commitment,commitment_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_2H/compute/v1/projects/{project}/regions/{region}/commitments/{commitment}:\x13\x63ommitment_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xbf\x04\n\x0fRegionDiskTypes\x12\xc5\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetRegionDiskTypeRequest\x1a!.google.cloud.compute.v1.DiskType\"h\xda\x41\x18project,region,disk_type\x82\xd3\xe4\x93\x02G\x12\x45/compute/v1/projects/{project}/regions/{region}/diskTypes/{disk_type}\x12\xbc\x01\n\x04List\x12\x33.google.cloud.compute.v1.ListRegionDiskTypesRequest\x1a+.google.cloud.compute.v1.RegionDiskTypeList\"R\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02;\x12\x39/compute/v1/projects/{project}/regions/{region}/diskTypes\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x8f&\n\x0bRegionDisks\x12\xe6\x02\n\x13\x41\x64\x64ResourcePolicies\x12=.google.cloud.compute.v1.AddResourcePoliciesRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xeb\x01\xda\x41Gproject,region,disk,region_disks_add_resource_policies_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x87\x01\"P/compute/v1/projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies:3region_disks_add_resource_policies_request_resource\x12\x9c\x02\n\nBulkInsert\x12\x34.google.cloud.compute.v1.BulkInsertRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xb3\x01\xda\x41\x31project,region,bulk_insert_disk_resource_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x66\"@/compute/v1/projects/{project}/regions/{region}/disks/bulkInsert:\"bulk_insert_disk_resource_resource\x12\x92\x02\n\x0e\x43reateSnapshot\x12\x38.google.cloud.compute.v1.CreateSnapshotRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41%project,region,disk,snapshot_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02`\"K/compute/v1/projects/{project}/regions/{region}/disks/{disk}/createSnapshot:\x11snapshot_resource\x12\xcd\x01\n\x06\x44\x65lete\x12\x30.google.cloud.compute.v1.DeleteRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"m\xda\x41\x13project,region,disk\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02>*\x12.google.cloud.compute.v1.StopAsyncReplicationRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\x82\x01\xda\x41\x13project,region,disk\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S\"Q/compute/v1/projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication\x12\xee\x02\n\x19StopGroupAsyncReplication\x12\x43.google.cloud.compute.v1.StopGroupAsyncReplicationRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\xe7\x01\xda\x41\x43project,region,disks_stop_group_async_replication_resource_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x87\x01\"O/compute/v1/projects/{project}/regions/{region}/disks/stopGroupAsyncReplication:4disks_stop_group_async_replication_resource_resource\x12\xc1\x02\n\x12TestIamPermissions\x12<.google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xba\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02x\"S/compute/v1/projects/{project}/regions/{region}/disks/{resource}/testIamPermissions:!test_permissions_request_resource\x12\xeb\x01\n\x06Update\x12\x30.google.cloud.compute.v1.UpdateRegionDiskRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x01\xda\x41!project,region,disk,disk_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02M2.google.cloud.compute.v1.DeleteRegionHealthCheckServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\x9b\x01\xda\x41#project,region,health_check_service\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\\*Z/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}\x12\xfa\x01\n\x03Get\x12;.google.cloud.compute.v1.GetRegionHealthCheckServiceRequest\x1a+.google.cloud.compute.v1.HealthCheckService\"\x88\x01\xda\x41#project,region,health_check_service\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}\x12\x9b\x02\n\x06Insert\x12>.google.cloud.compute.v1.InsertRegionHealthCheckServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xac\x01\xda\x41,project,region,health_check_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x64\"C/compute/v1/projects/{project}/regions/{region}/healthCheckServices:\x1dhealth_check_service_resource\x12\xd5\x01\n\x04List\x12=.google.cloud.compute.v1.ListRegionHealthCheckServicesRequest\x1a\x30.google.cloud.compute.v1.HealthCheckServicesList\"\\\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x45\x12\x43/compute/v1/projects/{project}/regions/{region}/healthCheckServices\x12\xc5\x02\n\x05Patch\x12=.google.cloud.compute.v1.PatchRegionHealthCheckServiceRequest\x1a\".google.cloud.compute.v1.Operation\"\xd8\x01\xda\x41\x41project,region,health_check_service,health_check_service_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02{2Z/compute/v1/projects/{project}/regions/{region}/healthCheckServices/{health_check_service}:\x1dhealth_check_service_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc6\x0c\n\x12RegionHealthChecks\x12\xec\x01\n\x06\x44\x65lete\x12\x37.google.cloud.compute.v1.DeleteRegionHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x1bproject,region,health_check\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02M*K/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}\x12\xd4\x01\n\x03Get\x12\x34.google.cloud.compute.v1.GetRegionHealthCheckRequest\x1a$.google.cloud.compute.v1.HealthCheck\"q\xda\x41\x1bproject,region,health_check\x82\xd3\xe4\x93\x02M\x12K/compute/v1/projects/{project}/regions/{region}/healthChecks/{health_check}\x12\xfd\x01\n\x06Insert\x12\x37.google.cloud.compute.v1.InsertRegionHealthCheckRequest\x1a\".google.cloud.compute.v1.Operation\"\x95\x01\xda\x41$project,region,health_check_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02U\"\x12region_instance_group_managers_stop_instances_request_resource\x12\xbd\x03\n\x10SuspendInstances\x12J.google.cloud.compute.v1.SuspendInstancesRegionInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xb8\x02\xda\x41gproject,region,instance_group_manager,region_instance_group_managers_suspend_instances_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xb4\x01\"o/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/suspendInstances:Aregion_instance_group_managers_suspend_instances_request_resource\x12\xd5\x03\n\x18UpdatePerInstanceConfigs\x12R.google.cloud.compute.v1.UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x02\xda\x41gproject,region,instance_group_manager,region_instance_group_manager_update_instance_config_req_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xbc\x01\"w/compute/v1/projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}/updatePerInstanceConfigs:Aregion_instance_group_manager_update_instance_config_req_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9e\r\n\x14RegionInstanceGroups\x12\xde\x01\n\x03Get\x12\x36.google.cloud.compute.v1.GetRegionInstanceGroupRequest\x1a&.google.cloud.compute.v1.InstanceGroup\"w\xda\x41\x1dproject,region,instance_group\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}\x12\xcb\x01\n\x04List\x12\x38.google.cloud.compute.v1.ListRegionInstanceGroupsRequest\x1a\x30.google.cloud.compute.v1.RegionInstanceGroupList\"W\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02@\x12>/compute/v1/projects/{project}/regions/{region}/instanceGroups\x12\x86\x03\n\rListInstances\x12\x41.google.cloud.compute.v1.ListInstancesRegionInstanceGroupsRequest\x1a:.google.cloud.compute.v1.RegionInstanceGroupsListInstances\"\xf5\x01\xda\x41Tproject,region,instance_group,region_instance_groups_list_instances_request_resource\x82\xd3\xe4\x93\x02\x97\x01\"]/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/listInstances:6region_instance_groups_list_instances_request_resource\x12\x82\x03\n\rSetNamedPorts\x12@.google.cloud.compute.v1.SetNamedPortsRegionInstanceGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\x8a\x02\xda\x41Uproject,region,instance_group,region_instance_groups_set_named_ports_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x98\x01\"]/compute/v1/projects/{project}/regions/{region}/instanceGroups/{instance_group}/setNamedPorts:7region_instance_groups_set_named_ports_request_resource\x12\xd4\x02\n\x12TestIamPermissions\x12\x45.google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc4\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x81\x01\"\\/compute/v1/projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xe6\x08\n\x17RegionInstanceTemplates\x12\x80\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeleteRegionInstanceTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\x93\x01\xda\x41 project,region,instance_template\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02W*U/compute/v1/projects/{project}/regions/{region}/instanceTemplates/{instance_template}\x12\xee\x01\n\x03Get\x12\x39.google.cloud.compute.v1.GetRegionInstanceTemplateRequest\x1a).google.cloud.compute.v1.InstanceTemplate\"\x80\x01\xda\x41 project,region,instance_template\x82\xd3\xe4\x93\x02W\x12U/compute/v1/projects/{project}/regions/{region}/instanceTemplates/{instance_template}\x12\x91\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertRegionInstanceTemplateRequest\x1a\".google.cloud.compute.v1.Operation\"\xa4\x01\xda\x41)project,region,instance_template_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_\"A/compute/v1/projects/{project}/regions/{region}/instanceTemplates:\x1ainstance_template_resource\x12\xce\x01\n\x04List\x12;.google.cloud.compute.v1.ListRegionInstanceTemplatesRequest\x1a-.google.cloud.compute.v1.InstanceTemplateList\"Z\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/regions/{region}/instanceTemplates\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb4\x03\n\x0fRegionInstances\x12\xac\x02\n\nBulkInsert\x12\x38.google.cloud.compute.v1.BulkInsertRegionInstanceRequest\x1a\".google.cloud.compute.v1.Operation\"\xbf\x01\xda\x41\x35project,region,bulk_insert_instance_resource_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02n\"D/compute/v1/projects/{project}/regions/{region}/instances/bulkInsert:&bulk_insert_instance_resource_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9f\x12\n\x16RegionInstantSnapshots\x12\xfc\x01\n\x06\x44\x65lete\x12;.google.cloud.compute.v1.DeleteRegionInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\x1fproject,region,instant_snapshot\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02U*S/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}\x12\xe8\x01\n\x03Get\x12\x38.google.cloud.compute.v1.GetRegionInstantSnapshotRequest\x1a(.google.cloud.compute.v1.InstantSnapshot\"}\xda\x41\x1fproject,region,instant_snapshot\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{instant_snapshot}\x12\xee\x01\n\x0cGetIamPolicy\x12\x41.google.cloud.compute.v1.GetIamPolicyRegionInstantSnapshotRequest\x1a\x1f.google.cloud.compute.v1.Policy\"z\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Z\x12X/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy\x12\x8d\x02\n\x06Insert\x12;.google.cloud.compute.v1.InsertRegionInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41(project,region,instant_snapshot_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02]\"@/compute/v1/projects/{project}/regions/{region}/instantSnapshots:\x19instant_snapshot_resource\x12\xcb\x01\n\x04List\x12:.google.cloud.compute.v1.ListRegionInstantSnapshotsRequest\x1a,.google.cloud.compute.v1.InstantSnapshotList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/instantSnapshots\x12\xb6\x02\n\x0cSetIamPolicy\x12\x41.google.cloud.compute.v1.SetIamPolicyRegionInstantSnapshotRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xc1\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02~\"X/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xc3\x02\n\tSetLabels\x12>.google.cloud.compute.v1.SetLabelsRegionInstantSnapshotRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02{\"U/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels:\"region_set_labels_request_resource\x12\xd8\x02\n\x12TestIamPermissions\x12G.google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc6\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x83\x01\"^/compute/v1/projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xa4\x13\n\x1bRegionNetworkEndpointGroups\x12\xcd\x03\n\x16\x41ttachNetworkEndpoints\x12P.google.cloud.compute.v1.AttachNetworkEndpointsRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xbc\x02\xda\x41\x66project,region,network_endpoint_group,region_network_endpoint_groups_attach_endpoints_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xb9\x01\"u/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}/attachNetworkEndpoints:@region_network_endpoint_groups_attach_endpoints_request_resource\x12\x92\x02\n\x06\x44\x65lete\x12@.google.cloud.compute.v1.DeleteRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xa1\x01\xda\x41%project,region,network_endpoint_group\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02`*^/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}\x12\xcd\x03\n\x16\x44\x65tachNetworkEndpoints\x12P.google.cloud.compute.v1.DetachNetworkEndpointsRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xbc\x02\xda\x41\x66project,region,network_endpoint_group,region_network_endpoint_groups_detach_endpoints_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xb9\x01\"u/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}/detachNetworkEndpoints:@region_network_endpoint_groups_detach_endpoints_request_resource\x12\x84\x02\n\x03Get\x12=.google.cloud.compute.v1.GetRegionNetworkEndpointGroupRequest\x1a-.google.cloud.compute.v1.NetworkEndpointGroup\"\x8e\x01\xda\x41%project,region,network_endpoint_group\x82\xd3\xe4\x93\x02`\x12^/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}\x12\xa3\x02\n\x06Insert\x12@.google.cloud.compute.v1.InsertRegionNetworkEndpointGroupRequest\x1a\".google.cloud.compute.v1.Operation\"\xb2\x01\xda\x41.project,region,network_endpoint_group_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02h\"E/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups:\x1fnetwork_endpoint_group_resource\x12\xda\x01\n\x04List\x12?.google.cloud.compute.v1.ListRegionNetworkEndpointGroupsRequest\x1a\x31.google.cloud.compute.v1.NetworkEndpointGroupList\"^\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02G\x12\x45/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups\x12\xd1\x02\n\x14ListNetworkEndpoints\x12O.google.cloud.compute.v1.ListNetworkEndpointsRegionNetworkEndpointGroupsRequest\x1a\x42.google.cloud.compute.v1.NetworkEndpointGroupsListNetworkEndpoints\"\xa3\x01\xda\x41%project,region,network_endpoint_group\x82\xd3\xe4\x93\x02u\"s/compute/v1/projects/{project}/regions/{region}/networkEndpointGroups/{network_endpoint_group}/listNetworkEndpoints\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf2\'\n\x1dRegionNetworkFirewallPolicies\x12\xeb\x02\n\x0e\x41\x64\x64\x41ssociation\x12I.google.cloud.compute.v1.AddAssociationRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xe9\x01\xda\x41\x43project,region,firewall_policy,firewall_policy_association_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x89\x01\"a/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/addAssociation:$firewall_policy_association_resource\x12\xc7\x02\n\x07\x41\x64\x64Rule\x12\x42.google.cloud.compute.v1.AddRuleRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd3\x01\xda\x41.google.cloud.compute.v1.GetRegionNetworkFirewallPolicyRequest\x1a\'.google.cloud.compute.v1.FirewallPolicy\"{\xda\x41\x1eproject,region,firewall_policy\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}\x12\x9c\x02\n\x0eGetAssociation\x12I.google.cloud.compute.v1.GetAssociationRegionNetworkFirewallPolicyRequest\x1a\x32.google.cloud.compute.v1.FirewallPolicyAssociation\"\x8a\x01\xda\x41\x1eproject,region,firewall_policy\x82\xd3\xe4\x93\x02\x63\x12\x61/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getAssociation\x12\xb7\x02\n\x15GetEffectiveFirewalls\x12P.google.cloud.compute.v1.GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest\x1aS.google.cloud.compute.v1.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse\"w\xda\x41\x16project,region,network\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls\x12\xf4\x01\n\x0cGetIamPolicy\x12G.google.cloud.compute.v1.GetIamPolicyRegionNetworkFirewallPolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"z\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Z\x12X/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy\x12\x80\x02\n\x07GetRule\x12\x42.google.cloud.compute.v1.GetRuleRegionNetworkFirewallPolicyRequest\x1a+.google.cloud.compute.v1.FirewallPolicyRule\"\x83\x01\xda\x41\x1eproject,region,firewall_policy\x82\xd3\xe4\x93\x02\\\x12Z/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}/getRule\x12\x91\x02\n\x06Insert\x12\x41.google.cloud.compute.v1.InsertRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41\'project,region,firewall_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\\\"@/compute/v1/projects/{project}/regions/{region}/firewallPolicies:\x18\x66irewall_policy_resource\x12\xd1\x01\n\x04List\x12\x41.google.cloud.compute.v1.ListRegionNetworkFirewallPoliciesRequest\x1a+.google.cloud.compute.v1.FirewallPolicyList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/firewallPolicies\x12\xb1\x02\n\x05Patch\x12@.google.cloud.compute.v1.PatchRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc1\x01\xda\x41\x37project,region,firewall_policy,firewall_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02n2R/compute/v1/projects/{project}/regions/{region}/firewallPolicies/{firewall_policy}:\x18\x66irewall_policy_resource\x12\xcd\x02\n\tPatchRule\x12\x44.google.cloud.compute.v1.PatchRuleRegionNetworkFirewallPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd5\x01\xda\x41.google.cloud.compute.v1.RemoveRuleRegionSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x99\x01\xda\x41\x1eproject,region,security_policy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_\"]/compute/v1/projects/{project}/regions/{region}/securityPolicies/{security_policy}/removeRule\x12\xc2\x02\n\tSetLabels\x12=.google.cloud.compute.v1.SetLabelsRegionSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd1\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02{\"U/compute/v1/projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc3\x08\n\x15RegionSslCertificates\x12\xf8\x01\n\x06\x44\x65lete\x12:.google.cloud.compute.v1.DeleteRegionSslCertificateRequest\x1a\".google.cloud.compute.v1.Operation\"\x8d\x01\xda\x41\x1eproject,region,ssl_certificate\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S*Q/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}\x12\xe3\x01\n\x03Get\x12\x37.google.cloud.compute.v1.GetRegionSslCertificateRequest\x1a\'.google.cloud.compute.v1.SslCertificate\"z\xda\x41\x1eproject,region,ssl_certificate\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/sslCertificates/{ssl_certificate}\x12\x89\x02\n\x06Insert\x12:.google.cloud.compute.v1.InsertRegionSslCertificateRequest\x1a\".google.cloud.compute.v1.Operation\"\x9e\x01\xda\x41\'project,region,ssl_certificate_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02[\"?/compute/v1/projects/{project}/regions/{region}/sslCertificates:\x18ssl_certificate_resource\x12\xc8\x01\n\x04List\x12\x39.google.cloud.compute.v1.ListRegionSslCertificatesRequest\x1a+.google.cloud.compute.v1.SslCertificateList\"X\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x41\x12?/compute/v1/projects/{project}/regions/{region}/sslCertificates\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x95\x0c\n\x11RegionSslPolicies\x12\xe4\x01\n\x06\x44\x65lete\x12\x35.google.cloud.compute.v1.DeleteRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x19project,region,ssl_policy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02J*H/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}\x12\xcb\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.SslPolicy\"l\xda\x41\x19project,region,ssl_policy\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}\x12\xf6\x01\n\x06Insert\x12\x35.google.cloud.compute.v1.InsertRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41\"project,region,ssl_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02R\";/compute/v1/projects/{project}/regions/{region}/sslPolicies:\x13ssl_policy_resource\x12\xbd\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListRegionSslPoliciesRequest\x1a(.google.cloud.compute.v1.SslPoliciesList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/sslPolicies\x12\x8e\x02\n\x15ListAvailableFeatures\x12\x46.google.cloud.compute.v1.ListAvailableFeaturesRegionSslPoliciesRequest\x1a\x41.google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse\"j\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02S\x12Q/compute/v1/projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures\x12\x8c\x02\n\x05Patch\x12\x34.google.cloud.compute.v1.PatchRegionSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xa8\x01\xda\x41-project,region,ssl_policy,ssl_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_2H/compute/v1/projects/{project}/regions/{region}/sslPolicies/{ssl_policy}:\x13ssl_policy_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xaa\x0b\n\x17RegionTargetHttpProxies\x12\xff\x01\n\x06\x44\x65lete\x12;.google.cloud.compute.v1.DeleteRegionTargetHttpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x93\x01\xda\x41 project,region,target_http_proxy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02W*U/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}\x12\xec\x01\n\x03Get\x12\x38.google.cloud.compute.v1.GetRegionTargetHttpProxyRequest\x1a(.google.cloud.compute.v1.TargetHttpProxy\"\x80\x01\xda\x41 project,region,target_http_proxy\x82\xd3\xe4\x93\x02W\x12U/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}\x12\x90\x02\n\x06Insert\x12;.google.cloud.compute.v1.InsertRegionTargetHttpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xa4\x01\xda\x41)project,region,target_http_proxy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02_\"A/compute/v1/projects/{project}/regions/{region}/targetHttpProxies:\x1atarget_http_proxy_resource\x12\xcd\x01\n\x04List\x12;.google.cloud.compute.v1.ListRegionTargetHttpProxiesRequest\x1a,.google.cloud.compute.v1.TargetHttpProxyList\"Z\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/regions/{region}/targetHttpProxies\x12\xc6\x02\n\tSetUrlMap\x12>.google.cloud.compute.v1.SetUrlMapRegionTargetHttpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd4\x01\xda\x41;project,region,target_http_proxy,url_map_reference_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02}\"_/compute/v1/projects/{project}/regions/{region}/targetHttpProxies/{target_http_proxy}/setUrlMap:\x1aurl_map_reference_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb3\x11\n\x18RegionTargetHttpsProxies\x12\x83\x02\n\x06\x44\x65lete\x12<.google.cloud.compute.v1.DeleteRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x96\x01\xda\x41!project,region,target_https_proxy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02Y*W/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}\x12\xf1\x01\n\x03Get\x12\x39.google.cloud.compute.v1.GetRegionTargetHttpsProxyRequest\x1a).google.cloud.compute.v1.TargetHttpsProxy\"\x83\x01\xda\x41!project,region,target_https_proxy\x82\xd3\xe4\x93\x02Y\x12W/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}\x12\x94\x02\n\x06Insert\x12<.google.cloud.compute.v1.InsertRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xa7\x01\xda\x41*project,region,target_https_proxy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x61\"B/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies:\x1btarget_https_proxy_resource\x12\xd0\x01\n\x04List\x12<.google.cloud.compute.v1.ListRegionTargetHttpsProxiesRequest\x1a-.google.cloud.compute.v1.TargetHttpsProxyList\"[\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies\x12\xba\x02\n\x05Patch\x12;.google.cloud.compute.v1.PatchRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xcf\x01\xda\x41=project,region,target_https_proxy,target_https_proxy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02v2W/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}:\x1btarget_https_proxy_resource\x12\xb4\x03\n\x12SetSslCertificates\x12H.google.cloud.compute.v1.SetSslCertificatesRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xaf\x02\xda\x41\x63project,region,target_https_proxy,region_target_https_proxies_set_ssl_certificates_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\xaf\x01\"j/compute/v1/projects/{project}/regions/{region}/targetHttpsProxies/{target_https_proxy}/setSslCertificates:Aregion_target_https_proxies_set_ssl_certificates_request_resource\x12\xca\x02\n\tSetUrlMap\x12?.google.cloud.compute.v1.SetUrlMapRegionTargetHttpsProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xd7\x01\xda\x41.google.cloud.compute.v1.AggregatedListResourcePoliciesRequest\x1a\x35.google.cloud.compute.v1.ResourcePolicyAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/resourcePolicies\x12\xf3\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteResourcePolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8e\x01\xda\x41\x1eproject,region,resource_policy\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02T*R/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}\x12\xde\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetResourcePolicyRequest\x1a\'.google.cloud.compute.v1.ResourcePolicy\"{\xda\x41\x1eproject,region,resource_policy\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}\x12\xe7\x01\n\x0cGetIamPolicy\x12:.google.cloud.compute.v1.GetIamPolicyResourcePolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"z\xda\x41\x17project,region,resource\x82\xd3\xe4\x93\x02Z\x12X/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy\x12\x84\x02\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertResourcePolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x9f\x01\xda\x41\'project,region,resource_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\\\"@/compute/v1/projects/{project}/regions/{region}/resourcePolicies:\x18resource_policy_resource\x12\xc4\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListResourcePoliciesRequest\x1a+.google.cloud.compute.v1.ResourcePolicyList\"Y\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/resourcePolicies\x12\xa4\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchResourcePolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc1\x01\xda\x41\x37project,region,resource_policy,resource_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02n2R/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource_policy}:\x18resource_policy_resource\x12\xaf\x02\n\x0cSetIamPolicy\x12:.google.cloud.compute.v1.SetIamPolicyResourcePolicyRequest\x1a\x1f.google.cloud.compute.v1.Policy\"\xc1\x01\xda\x41:project,region,resource,region_set_policy_request_resource\x82\xd3\xe4\x93\x02~\"X/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy:\"region_set_policy_request_resource\x12\xd1\x02\n\x12TestIamPermissions\x12@.google.cloud.compute.v1.TestIamPermissionsResourcePolicyRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc6\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02\x83\x01\"^/compute/v1/projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x8e \n\x07Routers\x12\xbb\x01\n\x0e\x41ggregatedList\x12\x35.google.cloud.compute.v1.AggregatedListRoutersRequest\x1a-.google.cloud.compute.v1.RouterAggregatedList\"C\xda\x41\x07project\x82\xd3\xe4\x93\x02\x33\x12\x31/compute/v1/projects/{project}/aggregated/routers\x12\xcf\x01\n\x06\x44\x65lete\x12,.google.cloud.compute.v1.DeleteRouterRequest\x1a\".google.cloud.compute.v1.Operation\"s\xda\x41\x15project,region,router\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02\x42*@/compute/v1/projects/{project}/regions/{region}/routers/{router}\x12\xf8\x01\n\x11\x44\x65leteRoutePolicy\x12\x37.google.cloud.compute.v1.DeleteRoutePolicyRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x85\x01\xda\x41\x15project,region,router\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02T\"R/compute/v1/projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy\x12\xb3\x01\n\x03Get\x12).google.cloud.compute.v1.GetRouterRequest\x1a\x1f.google.cloud.compute.v1.Router\"`\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02\x42\x12@/compute/v1/projects/{project}/regions/{region}/routers/{router}\x12\xdd\x01\n\x0cGetNatIpInfo\x12\x32.google.cloud.compute.v1.GetNatIpInfoRouterRequest\x1a*.google.cloud.compute.v1.NatIpInfoResponse\"m\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02O\x12M/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatIpInfo\x12\xf5\x01\n\x11GetNatMappingInfo\x12\x38.google.cloud.compute.v1.GetNatMappingInfoRoutersRequest\x1a\x32.google.cloud.compute.v1.VmEndpointNatMappingsList\"r\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo\x12\xef\x01\n\x0eGetRoutePolicy\x12\x34.google.cloud.compute.v1.GetRoutePolicyRouterRequest\x1a\x36.google.cloud.compute.v1.RoutersGetRoutePolicyResponse\"o\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02Q\x12O/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRoutePolicy\x12\xe9\x01\n\x0fGetRouterStatus\x12\x35.google.cloud.compute.v1.GetRouterStatusRouterRequest\x1a-.google.cloud.compute.v1.RouterStatusResponse\"p\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/regions/{region}/routers/{router}/getRouterStatus\x12\xe1\x01\n\x06Insert\x12,.google.cloud.compute.v1.InsertRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x84\x01\xda\x41\x1eproject,region,router_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02J\"7/compute/v1/projects/{project}/regions/{region}/routers:\x0frouter_resource\x12\xaa\x01\n\x04List\x12+.google.cloud.compute.v1.ListRoutersRequest\x1a#.google.cloud.compute.v1.RouterList\"P\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x39\x12\x37/compute/v1/projects/{project}/regions/{region}/routers\x12\xe4\x01\n\rListBgpRoutes\x12\x34.google.cloud.compute.v1.ListBgpRoutesRoutersRequest\x1a-.google.cloud.compute.v1.RoutersListBgpRoutes\"n\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02P\x12N/compute/v1/projects/{project}/regions/{region}/routers/{router}/listBgpRoutes\x12\xf4\x01\n\x11ListRoutePolicies\x12\x38.google.cloud.compute.v1.ListRoutePoliciesRoutersRequest\x1a\x31.google.cloud.compute.v1.RoutersListRoutePolicies\"r\xda\x41\x15project,region,router\x82\xd3\xe4\x93\x02T\x12R/compute/v1/projects/{project}/regions/{region}/routers/{router}/listRoutePolicies\x12\xef\x01\n\x05Patch\x12+.google.cloud.compute.v1.PatchRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x94\x01\xda\x41%project,region,router,router_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S2@/compute/v1/projects/{project}/regions/{region}/routers/{router}:\x0frouter_resource\x12\xa2\x02\n\x10PatchRoutePolicy\x12\x36.google.cloud.compute.v1.PatchRoutePolicyRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\xb1\x01\xda\x41+project,region,router,route_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02j\"Q/compute/v1/projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy:\x15route_policy_resource\x12\xf5\x01\n\x07Preview\x12-.google.cloud.compute.v1.PreviewRouterRequest\x1a/.google.cloud.compute.v1.RoutersPreviewResponse\"\x89\x01\xda\x41%project,region,router,router_resource\x82\xd3\xe4\x93\x02[\"H/compute/v1/projects/{project}/regions/{region}/routers/{router}/preview:\x0frouter_resource\x12\xf1\x01\n\x06Update\x12,.google.cloud.compute.v1.UpdateRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\x94\x01\xda\x41%project,region,router,router_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S\x1a@/compute/v1/projects/{project}/regions/{region}/routers/{router}:\x0frouter_resource\x12\xa5\x02\n\x11UpdateRoutePolicy\x12\x37.google.cloud.compute.v1.UpdateRoutePolicyRouterRequest\x1a\".google.cloud.compute.v1.Operation\"\xb2\x01\xda\x41+project,region,router,route_policy_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02k\"R/compute/v1/projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy:\x15route_policy_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xc0\x06\n\x06Routes\x12\xba\x01\n\x06\x44\x65lete\x12+.google.cloud.compute.v1.DeleteRouteRequest\x1a\".google.cloud.compute.v1.Operation\"_\xda\x41\rproject,route\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x36*4/compute/v1/projects/{project}/global/routes/{route}\x12\x9d\x01\n\x03Get\x12(.google.cloud.compute.v1.GetRouteRequest\x1a\x1e.google.cloud.compute.v1.Route\"L\xda\x41\rproject,route\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/global/routes/{route}\x12\xcb\x01\n\x06Insert\x12+.google.cloud.compute.v1.InsertRouteRequest\x1a\".google.cloud.compute.v1.Operation\"p\xda\x41\x16project,route_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02>\",/compute/v1/projects/{project}/global/routes:\x0eroute_resource\x12\x96\x01\n\x04List\x12*.google.cloud.compute.v1.ListRoutesRequest\x1a\".google.cloud.compute.v1.RouteList\">\xda\x41\x07project\x82\xd3\xe4\x93\x02.\x12,/compute/v1/projects/{project}/global/routes\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xef\x18\n\x10SecurityPolicies\x12\xa9\x02\n\x07\x41\x64\x64Rule\x12\x35.google.cloud.compute.v1.AddRuleSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc2\x01\xda\x41\x35project,security_policy,security_policy_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02q\"P/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/addRule:\x1dsecurity_policy_rule_resource\x12\xd7\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListSecurityPoliciesRequest\x1a\x37.google.cloud.compute.v1.SecurityPoliciesAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/securityPolicies\x12\xe1\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"}\xda\x41\x17project,security_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02J*H/compute/v1/projects/{project}/global/securityPolicies/{security_policy}\x12\xcd\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetSecurityPolicyRequest\x1a\'.google.cloud.compute.v1.SecurityPolicy\"j\xda\x41\x17project,security_policy\x82\xd3\xe4\x93\x02J\x12H/compute/v1/projects/{project}/global/securityPolicies/{security_policy}\x12\xe1\x01\n\x07GetRule\x12\x35.google.cloud.compute.v1.GetRuleSecurityPolicyRequest\x1a+.google.cloud.compute.v1.SecurityPolicyRule\"r\xda\x41\x17project,security_policy\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/getRule\x12\xf3\x01\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x8e\x01\xda\x41 project,security_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02R\"6/compute/v1/projects/{project}/global/securityPolicies:\x18security_policy_resource\x12\xb3\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListSecurityPoliciesRequest\x1a+.google.cloud.compute.v1.SecurityPolicyList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/global/securityPolicies\x12\xae\x02\n\x1fListPreconfiguredExpressionSets\x12O.google.cloud.compute.v1.ListPreconfiguredExpressionSetsSecurityPoliciesRequest\x1aP.google.cloud.compute.v1.SecurityPoliciesListPreconfiguredExpressionSetsResponse\"h\xda\x41\x07project\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets\x12\x93\x02\n\x05Patch\x12\x33.google.cloud.compute.v1.PatchSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xb0\x01\xda\x41\x30project,security_policy,security_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x64\x32H/compute/v1/projects/{project}/global/securityPolicies/{security_policy}:\x18security_policy_resource\x12\xaf\x02\n\tPatchRule\x12\x37.google.cloud.compute.v1.PatchRuleSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc4\x01\xda\x41\x35project,security_policy,security_policy_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02s\"R/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/patchRule:\x1dsecurity_policy_rule_resource\x12\xf5\x01\n\nRemoveRule\x12\x38.google.cloud.compute.v1.RemoveRuleSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x88\x01\xda\x41\x17project,security_policy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U\"S/compute/v1/projects/{project}/global/securityPolicies/{security_policy}/removeRule\x12\xab\x02\n\tSetLabels\x12\x37.google.cloud.compute.v1.SetLabelsSecurityPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\xc0\x01\xda\x41\x33project,resource,global_set_labels_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02q\"K/compute/v1/projects/{project}/global/securityPolicies/{resource}/setLabels:\"global_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xf0\x13\n\x12ServiceAttachments\x12\xdc\x01\n\x0e\x41ggregatedList\x12@.google.cloud.compute.v1.AggregatedListServiceAttachmentsRequest\x1a\x38.google.cloud.compute.v1.ServiceAttachmentAggregatedList\"N\xda\x41\x07project\x82\xd3\xe4\x93\x02>\x12/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}\x12\xb4\x01\n\x03Get\x12,.google.cloud.compute.v1.GetSslPolicyRequest\x1a\".google.cloud.compute.v1.SslPolicy\"[\xda\x41\x12project,ssl_policy\x82\xd3\xe4\x93\x02@\x12>/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}\x12\xde\x01\n\x06Insert\x12/.google.cloud.compute.v1.InsertSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x1bproject,ssl_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02H\"1/compute/v1/projects/{project}/global/sslPolicies:\x13ssl_policy_resource\x12\xa6\x01\n\x04List\x12/.google.cloud.compute.v1.ListSslPoliciesRequest\x1a(.google.cloud.compute.v1.SslPoliciesList\"C\xda\x41\x07project\x82\xd3\xe4\x93\x02\x33\x12\x31/compute/v1/projects/{project}/global/sslPolicies\x12\xf7\x01\n\x15ListAvailableFeatures\x12@.google.cloud.compute.v1.ListAvailableFeaturesSslPoliciesRequest\x1a\x41.google.cloud.compute.v1.SslPoliciesListAvailableFeaturesResponse\"Y\xda\x41\x07project\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/global/sslPolicies/listAvailableFeatures\x12\xf5\x01\n\x05Patch\x12..google.cloud.compute.v1.PatchSslPolicyRequest\x1a\".google.cloud.compute.v1.Operation\"\x97\x01\xda\x41&project,ssl_policy,ssl_policy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02U2>/compute/v1/projects/{project}/global/sslPolicies/{ssl_policy}:\x13ssl_policy_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xb5\x06\n\x10StoragePoolTypes\x12\xd6\x01\n\x0e\x41ggregatedList\x12>.google.cloud.compute.v1.AggregatedListStoragePoolTypesRequest\x1a\x36.google.cloud.compute.v1.StoragePoolTypeAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/storagePoolTypes\x12\xde\x01\n\x03Get\x12\x32.google.cloud.compute.v1.GetStoragePoolTypeRequest\x1a(.google.cloud.compute.v1.StoragePoolType\"y\xda\x41\x1eproject,zone,storage_pool_type\x82\xd3\xe4\x93\x02R\x12P/compute/v1/projects/{project}/zones/{zone}/storagePoolTypes/{storage_pool_type}\x12\xbf\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListStoragePoolTypesRequest\x1a,.google.cloud.compute.v1.StoragePoolTypeList\"S\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02>\x12\x12.google.cloud.compute.v1.AggregatedListTargetTcpProxiesRequest\x1a\x35.google.cloud.compute.v1.TargetTcpProxyAggregatedList\"L\xda\x41\x07project\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/aggregated/targetTcpProxies\x12\xe3\x01\n\x06\x44\x65lete\x12\x34.google.cloud.compute.v1.DeleteTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x7f\xda\x41\x18project,target_tcp_proxy\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K*I/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}\x12\xcf\x01\n\x03Get\x12\x31.google.cloud.compute.v1.GetTargetTcpProxyRequest\x1a\'.google.cloud.compute.v1.TargetTcpProxy\"l\xda\x41\x18project,target_tcp_proxy\x82\xd3\xe4\x93\x02K\x12I/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}\x12\xf5\x01\n\x06Insert\x12\x34.google.cloud.compute.v1.InsertTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x90\x01\xda\x41!project,target_tcp_proxy_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02S\"6/compute/v1/projects/{project}/global/targetTcpProxies:\x19target_tcp_proxy_resource\x12\xb3\x01\n\x04List\x12\x34.google.cloud.compute.v1.ListTargetTcpProxiesRequest\x1a+.google.cloud.compute.v1.TargetTcpProxyList\"H\xda\x41\x07project\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/global/targetTcpProxies\x12\xfe\x02\n\x11SetBackendService\x12?.google.cloud.compute.v1.SetBackendServiceTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\x83\x02\xda\x41Pproject,target_tcp_proxy,target_tcp_proxies_set_backend_service_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x96\x01\"[/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setBackendService:7target_tcp_proxies_set_backend_service_request_resource\x12\xef\x02\n\x0eSetProxyHeader\x12<.google.cloud.compute.v1.SetProxyHeaderTargetTcpProxyRequest\x1a\".google.cloud.compute.v1.Operation\"\xfa\x01\xda\x41Mproject,target_tcp_proxy,target_tcp_proxies_set_proxy_header_request_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x90\x01\"X/compute/v1/projects/{project}/global/targetTcpProxies/{target_tcp_proxy}/setProxyHeader:4target_tcp_proxies_set_proxy_header_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xec\x0c\n\x11TargetVpnGateways\x12\xd9\x01\n\x0e\x41ggregatedList\x12?.google.cloud.compute.v1.AggregatedListTargetVpnGatewaysRequest\x1a\x37.google.cloud.compute.v1.TargetVpnGatewayAggregatedList\"M\xda\x41\x07project\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/aggregated/targetVpnGateways\x12\xfc\x01\n\x06\x44\x65lete\x12\x36.google.cloud.compute.v1.DeleteTargetVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\x95\x01\xda\x41!project,region,target_vpn_gateway\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02X*V/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}\x12\xea\x01\n\x03Get\x12\x33.google.cloud.compute.v1.GetTargetVpnGatewayRequest\x1a).google.cloud.compute.v1.TargetVpnGateway\"\x82\x01\xda\x41!project,region,target_vpn_gateway\x82\xd3\xe4\x93\x02X\x12V/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{target_vpn_gateway}\x12\x8d\x02\n\x06Insert\x12\x36.google.cloud.compute.v1.InsertTargetVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\xa6\x01\xda\x41*project,region,target_vpn_gateway_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02`\"A/compute/v1/projects/{project}/regions/{region}/targetVpnGateways:\x1btarget_vpn_gateway_resource\x12\xc8\x01\n\x04List\x12\x35.google.cloud.compute.v1.ListTargetVpnGatewaysRequest\x1a-.google.cloud.compute.v1.TargetVpnGatewayList\"Z\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02\x43\x12\x41/compute/v1/projects/{project}/regions/{region}/targetVpnGateways\x12\xbf\x02\n\tSetLabels\x12\x39.google.cloud.compute.v1.SetLabelsTargetVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\xd2\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02|\"V/compute/v1/projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9e\x10\n\x07UrlMaps\x12\xbc\x01\n\x0e\x41ggregatedList\x12\x35.google.cloud.compute.v1.AggregatedListUrlMapsRequest\x1a..google.cloud.compute.v1.UrlMapsAggregatedList\"C\xda\x41\x07project\x82\xd3\xe4\x93\x02\x33\x12\x31/compute/v1/projects/{project}/aggregated/urlMaps\x12\xc0\x01\n\x06\x44\x65lete\x12,.google.cloud.compute.v1.DeleteUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"d\xda\x41\x0fproject,url_map\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x39*7/compute/v1/projects/{project}/global/urlMaps/{url_map}\x12\xa4\x01\n\x03Get\x12).google.cloud.compute.v1.GetUrlMapRequest\x1a\x1f.google.cloud.compute.v1.UrlMap\"Q\xda\x41\x0fproject,url_map\x82\xd3\xe4\x93\x02\x39\x12\x37/compute/v1/projects/{project}/global/urlMaps/{url_map}\x12\xd1\x01\n\x06Insert\x12,.google.cloud.compute.v1.InsertUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"u\xda\x41\x18project,url_map_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02\x41\"-/compute/v1/projects/{project}/global/urlMaps:\x10url_map_resource\x12\xa6\x02\n\x0fInvalidateCache\x12\x35.google.cloud.compute.v1.InvalidateCacheUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"\xb7\x01\xda\x41\x30project,url_map,cache_invalidation_rule_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02k\"G/compute/v1/projects/{project}/global/urlMaps/{url_map}/invalidateCache: cache_invalidation_rule_resource\x12\x99\x01\n\x04List\x12+.google.cloud.compute.v1.ListUrlMapsRequest\x1a#.google.cloud.compute.v1.UrlMapList\"?\xda\x41\x07project\x82\xd3\xe4\x93\x02/\x12-/compute/v1/projects/{project}/global/urlMaps\x12\xe2\x01\n\x05Patch\x12+.google.cloud.compute.v1.PatchUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41 project,url_map,url_map_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K27/compute/v1/projects/{project}/global/urlMaps/{url_map}:\x10url_map_resource\x12\xe4\x01\n\x06Update\x12,.google.cloud.compute.v1.UpdateUrlMapRequest\x1a\".google.cloud.compute.v1.Operation\"\x87\x01\xda\x41 project,url_map,url_map_resource\x8aN\x10GlobalOperations\x82\xd3\xe4\x93\x02K\x1a\x37/compute/v1/projects/{project}/global/urlMaps/{url_map}:\x10url_map_resource\x12\x90\x02\n\x08Validate\x12..google.cloud.compute.v1.ValidateUrlMapRequest\x1a\x30.google.cloud.compute.v1.UrlMapsValidateResponse\"\xa1\x01\xda\x41\x32project,url_map,url_maps_validate_request_resource\x82\xd3\xe4\x93\x02\x66\"@/compute/v1/projects/{project}/global/urlMaps/{url_map}/validate:\"url_maps_validate_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\x9f\x10\n\x0bVpnGateways\x12\xc7\x01\n\x0e\x41ggregatedList\x12\x39.google.cloud.compute.v1.AggregatedListVpnGatewaysRequest\x1a\x31.google.cloud.compute.v1.VpnGatewayAggregatedList\"G\xda\x41\x07project\x82\xd3\xe4\x93\x02\x37\x12\x35/compute/v1/projects/{project}/aggregated/vpnGateways\x12\xe2\x01\n\x06\x44\x65lete\x12\x30.google.cloud.compute.v1.DeleteVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\x81\x01\xda\x41\x1aproject,region,vpn_gateway\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02K*I/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}\x12\xc9\x01\n\x03Get\x12-.google.cloud.compute.v1.GetVpnGatewayRequest\x1a#.google.cloud.compute.v1.VpnGateway\"n\xda\x41\x1aproject,region,vpn_gateway\x82\xd3\xe4\x93\x02K\x12I/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}\x12\xf1\x01\n\tGetStatus\x12\x33.google.cloud.compute.v1.GetStatusVpnGatewayRequest\x1a\x35.google.cloud.compute.v1.VpnGatewaysGetStatusResponse\"x\xda\x41\x1aproject,region,vpn_gateway\x82\xd3\xe4\x93\x02U\x12S/compute/v1/projects/{project}/regions/{region}/vpnGateways/{vpn_gateway}/getStatus\x12\xf3\x01\n\x06Insert\x12\x30.google.cloud.compute.v1.InsertVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\x92\x01\xda\x41#project,region,vpn_gateway_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02S\";/compute/v1/projects/{project}/regions/{region}/vpnGateways:\x14vpn_gateway_resource\x12\xb6\x01\n\x04List\x12/.google.cloud.compute.v1.ListVpnGatewaysRequest\x1a\'.google.cloud.compute.v1.VpnGatewayList\"T\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02=\x12;/compute/v1/projects/{project}/regions/{region}/vpnGateways\x12\xb3\x02\n\tSetLabels\x12\x33.google.cloud.compute.v1.SetLabelsVpnGatewayRequest\x1a\".google.cloud.compute.v1.Operation\"\xcc\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02v\"P/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels:\"region_set_labels_request_resource\x12\xc7\x02\n\x12TestIamPermissions\x12<.google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest\x1a\x30.google.cloud.compute.v1.TestPermissionsResponse\"\xc0\x01\xda\x41\x39project,region,resource,test_permissions_request_resource\x82\xd3\xe4\x93\x02~\"Y/compute/v1/projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions:!test_permissions_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xca\x0b\n\nVpnTunnels\x12\xc4\x01\n\x0e\x41ggregatedList\x12\x38.google.cloud.compute.v1.AggregatedListVpnTunnelsRequest\x1a\x30.google.cloud.compute.v1.VpnTunnelAggregatedList\"F\xda\x41\x07project\x82\xd3\xe4\x93\x02\x36\x12\x34/compute/v1/projects/{project}/aggregated/vpnTunnels\x12\xdd\x01\n\x06\x44\x65lete\x12/.google.cloud.compute.v1.DeleteVpnTunnelRequest\x1a\".google.cloud.compute.v1.Operation\"~\xda\x41\x19project,region,vpn_tunnel\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02I*G/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}\x12\xc4\x01\n\x03Get\x12,.google.cloud.compute.v1.GetVpnTunnelRequest\x1a\".google.cloud.compute.v1.VpnTunnel\"k\xda\x41\x19project,region,vpn_tunnel\x82\xd3\xe4\x93\x02I\x12G/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{vpn_tunnel}\x12\xef\x01\n\x06Insert\x12/.google.cloud.compute.v1.InsertVpnTunnelRequest\x1a\".google.cloud.compute.v1.Operation\"\x8f\x01\xda\x41\"project,region,vpn_tunnel_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02Q\":/compute/v1/projects/{project}/regions/{region}/vpnTunnels:\x13vpn_tunnel_resource\x12\xb3\x01\n\x04List\x12..google.cloud.compute.v1.ListVpnTunnelsRequest\x1a&.google.cloud.compute.v1.VpnTunnelList\"S\xda\x41\x0eproject,region\x82\xd3\xe4\x93\x02<\x12:/compute/v1/projects/{project}/regions/{region}/vpnTunnels\x12\xb1\x02\n\tSetLabels\x12\x32.google.cloud.compute.v1.SetLabelsVpnTunnelRequest\x1a\".google.cloud.compute.v1.Operation\"\xcb\x01\xda\x41:project,region,resource,region_set_labels_request_resource\x8aN\x10RegionOperations\x82\xd3\xe4\x93\x02u\"O/compute/v1/projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels:\"region_set_labels_request_resource\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xa3\x07\n\x0eZoneOperations\x12\xd8\x01\n\x06\x44\x65lete\x12\x33.google.cloud.compute.v1.DeleteZoneOperationRequest\x1a\x34.google.cloud.compute.v1.DeleteZoneOperationResponse\"c\xda\x41\x16project,zone,operation\x82\xd3\xe4\x93\x02\x44*B/compute/v1/projects/{project}/zones/{zone}/operations/{operation}\x12\xc3\x01\n\x03Get\x12\x30.google.cloud.compute.v1.GetZoneOperationRequest\x1a\".google.cloud.compute.v1.Operation\"f\xda\x41\x16project,zone,operation\x90N\x01\x82\xd3\xe4\x93\x02\x44\x12\x42/compute/v1/projects/{project}/zones/{zone}/operations/{operation}\x12\xb1\x01\n\x04List\x12\x32.google.cloud.compute.v1.ListZoneOperationsRequest\x1a&.google.cloud.compute.v1.OperationList\"M\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02\x38\x12\x36/compute/v1/projects/{project}/zones/{zone}/operations\x12\xc7\x01\n\x04Wait\x12\x31.google.cloud.compute.v1.WaitZoneOperationRequest\x1a\".google.cloud.compute.v1.Operation\"h\xda\x41\x16project,zone,operation\x82\xd3\xe4\x93\x02I\"G/compute/v1/projects/{project}/zones/{zone}/operations/{operation}/wait\x1ar\xca\x41\x16\x63ompute.googleapis.com\xd2\x41Vhttps://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platform2\xd1\x03\n\x05Zones\x12\x91\x01\n\x03Get\x12\'.google.cloud.compute.v1.GetZoneRequest\x1a\x1d.google.cloud.compute.v1.Zone\"B\xda\x41\x0cproject,zone\x82\xd3\xe4\x93\x02-\x12+/compute/v1/projects/{project}/zones/{zone}\x12\x8c\x01\n\x04List\x12).google.cloud.compute.v1.ListZonesRequest\x1a!.google.cloud.compute.v1.ZoneList\"6\xda\x41\x07project\x82\xd3\xe4\x93\x02&\x12$/compute/v1/projects/{project}/zones\x1a\xa4\x01\xca\x41\x16\x63ompute.googleapis.com\xd2\x41\x87\x01https://www.googleapis.com/auth/compute.readonly,https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/cloud-platformB\xa7\x01\n\x1b\x63om.google.cloud.compute.v1P\x01Z5cloud.google.com/go/compute/apiv1/computepb;computepb\xaa\x02\x17Google.Cloud.Compute.V1\xca\x02\x17Google\\Cloud\\Compute\\V1\xea\x02\x1aGoogle::Cloud::Compute::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -62,6 +62,7 @@ module V1 AddHealthCheckTargetPoolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddHealthCheckTargetPoolRequest").msgclass AddInstanceTargetPoolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddInstanceTargetPoolRequest").msgclass AddInstancesInstanceGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddInstancesInstanceGroupRequest").msgclass + AddNetworkInterfaceInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddNetworkInterfaceInstanceRequest").msgclass AddNodesNodeGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddNodesNodeGroupRequest").msgclass AddPacketMirroringRuleNetworkFirewallPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddPacketMirroringRuleNetworkFirewallPolicyRequest").msgclass AddPeeringNetworkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.AddPeeringNetworkRequest").msgclass @@ -335,6 +336,7 @@ module V1 DeleteNetworkEdgeSecurityServiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNetworkEdgeSecurityServiceRequest").msgclass DeleteNetworkEndpointGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNetworkEndpointGroupRequest").msgclass DeleteNetworkFirewallPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNetworkFirewallPolicyRequest").msgclass + DeleteNetworkInterfaceInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNetworkInterfaceInstanceRequest").msgclass DeleteNetworkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNetworkRequest").msgclass DeleteNodeGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNodeGroupRequest").msgclass DeleteNodeTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.DeleteNodeTemplateRequest").msgclass @@ -1268,6 +1270,11 @@ module V1 NetworkProfileNetworkFeatures::SubnetworkPurposes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileNetworkFeatures.SubnetworkPurposes").enummodule NetworkProfileNetworkFeatures::SubnetworkStackTypes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileNetworkFeatures.SubnetworkStackTypes").enummodule NetworkProfileNetworkFeatures::Unicast = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileNetworkFeatures.Unicast").enummodule + NetworkProfileProfileType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileProfileType").msgclass + NetworkProfileProfileType::NetworkType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileProfileType.NetworkType").enummodule + NetworkProfileProfileType::RdmaSubtype = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileProfileType.RdmaSubtype").enummodule + NetworkProfileProfileType::UllSubtype = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileProfileType.UllSubtype").enummodule + NetworkProfileProfileType::VpcSubtype = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfileProfileType.VpcSubtype").enummodule NetworkProfilesListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkProfilesListResponse").msgclass NetworkRoutingConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkRoutingConfig").msgclass NetworkRoutingConfig::BgpBestPathSelectionMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.NetworkRoutingConfig.BgpBestPathSelectionMode").enummodule @@ -1578,6 +1585,7 @@ module V1 ResourcePolicyWorkloadPolicy::MaxTopologyDistance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResourcePolicyWorkloadPolicy.MaxTopologyDistance").enummodule ResourcePolicyWorkloadPolicy::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResourcePolicyWorkloadPolicy.Type").enummodule ResourceStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResourceStatus").msgclass + ResourceStatusEffectiveInstanceMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResourceStatusEffectiveInstanceMetadata").msgclass ResourceStatusPhysicalHostTopology = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResourceStatusPhysicalHostTopology").msgclass ResourceStatusScheduling = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResourceStatusScheduling").msgclass ResumeInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.ResumeInstanceRequest").msgclass @@ -1627,6 +1635,7 @@ module V1 RouterNatSubnetworkToNat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterNatSubnetworkToNat").msgclass RouterNatSubnetworkToNat::SourceIpRangesToNat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterNatSubnetworkToNat.SourceIpRangesToNat").enummodule RouterNatSubnetworkToNat64 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterNatSubnetworkToNat64").msgclass + RouterParams = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterParams").msgclass RouterStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterStatus").msgclass RouterStatusBgpPeerStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterStatusBgpPeerStatus").msgclass RouterStatusBgpPeerStatus::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.RouterStatusBgpPeerStatus.Status").enummodule @@ -1975,12 +1984,15 @@ module V1 TargetVpnGatewayList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TargetVpnGatewayList").msgclass TargetVpnGatewaysScopedList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TargetVpnGatewaysScopedList").msgclass TestFailure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestFailure").msgclass + TestIamPermissionsAddressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsAddressRequest").msgclass TestIamPermissionsBackendBucketRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsBackendBucketRequest").msgclass TestIamPermissionsBackendServiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsBackendServiceRequest").msgclass TestIamPermissionsDiskRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsDiskRequest").msgclass TestIamPermissionsExternalVpnGatewayRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsExternalVpnGatewayRequest").msgclass TestIamPermissionsFirewallPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsFirewallPolicyRequest").msgclass + TestIamPermissionsGlobalAddressRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsGlobalAddressRequest").msgclass TestIamPermissionsImageRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsImageRequest").msgclass + TestIamPermissionsInstanceGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsInstanceGroupRequest").msgclass TestIamPermissionsInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsInstanceRequest").msgclass TestIamPermissionsInstanceTemplateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsInstanceTemplateRequest").msgclass TestIamPermissionsInstantSnapshotRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsInstantSnapshotRequest").msgclass @@ -1997,6 +2009,7 @@ module V1 TestIamPermissionsPacketMirroringRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsPacketMirroringRequest").msgclass TestIamPermissionsRegionBackendServiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsRegionBackendServiceRequest").msgclass TestIamPermissionsRegionDiskRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsRegionDiskRequest").msgclass + TestIamPermissionsRegionInstanceGroupRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsRegionInstanceGroupRequest").msgclass TestIamPermissionsRegionInstantSnapshotRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsRegionInstantSnapshotRequest").msgclass TestIamPermissionsRegionNetworkFirewallPolicyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsRegionNetworkFirewallPolicyRequest").msgclass TestIamPermissionsReservationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsReservationRequest").msgclass @@ -2005,6 +2018,8 @@ module V1 TestIamPermissionsSnapshotRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsSnapshotRequest").msgclass TestIamPermissionsStoragePoolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsStoragePoolRequest").msgclass TestIamPermissionsSubnetworkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsSubnetworkRequest").msgclass + TestIamPermissionsTargetInstanceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsTargetInstanceRequest").msgclass + TestIamPermissionsTargetPoolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsTargetPoolRequest").msgclass TestIamPermissionsVpnGatewayRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestIamPermissionsVpnGatewayRequest").msgclass TestPermissionsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestPermissionsRequest").msgclass TestPermissionsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.TestPermissionsResponse").msgclass @@ -2084,7 +2099,10 @@ module V1 VpnTunnel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnel").msgclass VpnTunnel::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnel.Status").enummodule VpnTunnelAggregatedList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnelAggregatedList").msgclass + VpnTunnelCipherSuite = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnelCipherSuite").msgclass VpnTunnelList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnelList").msgclass + VpnTunnelPhase1Algorithms = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnelPhase1Algorithms").msgclass + VpnTunnelPhase2Algorithms = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnelPhase2Algorithms").msgclass VpnTunnelsScopedList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.VpnTunnelsScopedList").msgclass WafExpressionSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.WafExpressionSet").msgclass WafExpressionSetExpression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.compute.v1.WafExpressionSetExpression").msgclass diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/client.rb index 4f52d1f00dd9..fa7e1b7d0fd9 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/client.rb @@ -89,6 +89,8 @@ def self.configure default_config.rpcs.set_labels.timeout = 600.0 + default_config.rpcs.test_iam_permissions.timeout = 600.0 + default_config end yield @configure if block_given? @@ -743,6 +745,88 @@ def set_labels request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Returns permissions that a caller has on the specified resource. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(project: nil, resource: nil, test_permissions_request_resource: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param project [::String] + # Project ID for this request. + # @param resource [::String] + # Name or id of the resource for this request. + # @param test_permissions_request_resource [::Google::Cloud::Compute::V1::TestPermissionsRequest, ::Hash] + # The body resource for this request + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::GlobalAddresses::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Cloud::Compute::V1::TestPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @global_addresses_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the GlobalAddresses REST API. # @@ -919,6 +1003,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :set_labels + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -934,6 +1023,8 @@ def initialize parent_rpcs = nil @move = ::Gapic::Config::Method.new move_config set_labels_config = parent_rpcs.set_labels if parent_rpcs.respond_to? :set_labels @set_labels = ::Gapic::Config::Method.new set_labels_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/service_stub.rb index 7d1781fbf6e6..9815757adc6a 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/global_addresses/rest/service_stub.rb @@ -313,6 +313,46 @@ def set_labels request_pb, options = nil end end + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -445,6 +485,29 @@ def self.transcode_set_labels_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/global/addresses/{resource}/testIamPermissions", + body: "test_permissions_request_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["resource", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/client.rb index 1b687c197db2..b21cdf42c8f8 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/client.rb @@ -98,6 +98,8 @@ def self.configure default_config.rpcs.set_named_ports.timeout = 600.0 + default_config.rpcs.test_iam_permissions.timeout = 600.0 + default_config end yield @configure if block_given? @@ -1056,6 +1058,90 @@ def set_named_ports request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Returns permissions that a caller has on the specified resource. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(project: nil, resource: nil, test_permissions_request_resource: nil, zone: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param project [::String] + # Project ID for this request. + # @param resource [::String] + # Name or id of the resource for this request. + # @param test_permissions_request_resource [::Google::Cloud::Compute::V1::TestPermissionsRequest, ::Hash] + # The body resource for this request + # @param zone [::String] + # The name of the zone for this request. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::InstanceGroups::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Cloud::Compute::V1::TestPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @instance_groups_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the InstanceGroups REST API. # @@ -1247,6 +1333,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :set_named_ports + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -1268,6 +1359,8 @@ def initialize parent_rpcs = nil @remove_instances = ::Gapic::Config::Method.new remove_instances_config set_named_ports_config = parent_rpcs.set_named_ports if parent_rpcs.respond_to? :set_named_ports @set_named_ports = ::Gapic::Config::Method.new set_named_ports_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/service_stub.rb index 348393f1eceb..590ab36cfbcf 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instance_groups/rest/service_stub.rb @@ -433,6 +433,46 @@ def set_named_ports request_pb, options = nil end end + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -640,6 +680,30 @@ def self.transcode_set_named_ports_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions", + body: "test_permissions_request_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["zone", %r{^[^/]+/?$}, false], + ["resource", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/client.rb index e0b8ffa355bc..53ca3e310ed8 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/client.rb @@ -73,6 +73,8 @@ def self.configure default_config.rpcs.add_access_config.timeout = 600.0 + default_config.rpcs.add_network_interface.timeout = 600.0 + default_config.rpcs.add_resource_policies.timeout = 600.0 default_config.rpcs.aggregated_list.timeout = 600.0 @@ -88,6 +90,8 @@ def self.configure default_config.rpcs.delete_access_config.timeout = 600.0 + default_config.rpcs.delete_network_interface.timeout = 600.0 + default_config.rpcs.detach_disk.timeout = 600.0 default_config.rpcs.get.timeout = 600.0 @@ -415,6 +419,102 @@ def add_access_config request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Adds one dynamic network interface to an active instance. + # + # @overload add_network_interface(request, options = nil) + # Pass arguments to `add_network_interface` via a request object, either of type + # {::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload add_network_interface(instance: nil, network_interface_resource: nil, project: nil, request_id: nil, zone: nil) + # Pass arguments to `add_network_interface` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param instance [::String] + # The instance name for this request stored as resource_id. Name should conform to RFC1035 or be an unsigned long integer. + # @param network_interface_resource [::Google::Cloud::Compute::V1::NetworkInterface, ::Hash] + # The body resource for this request + # @param project [::String] + # Project ID for this request. + # @param request_id [::String] + # 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. 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). + # @param zone [::String] + # The name of the zone for this request. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::GenericLRO::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::GenericLRO::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::Instances::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest.new + # + # # Call the add_network_interface method. + # result = client.add_network_interface request + # + # # The returned object is of type Google::Cloud::Compute::V1::Operation. + # p result + # + def add_network_interface request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.add_network_interface.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.add_network_interface.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.add_network_interface.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @instances_stub.add_network_interface request, options do |result, response| + result = ::Google::Cloud::Compute::V1::ZoneOperations::Rest::NonstandardLro.create_operation( + operation: result, + client: zone_operations, + request_values: { + "project" => request.project, + "zone" => request.zone + }, + options: options + ) + yield result, response if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations. # @@ -989,6 +1089,102 @@ def delete_access_config request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Deletes one dynamic network interface from an active instance. InstancesDeleteNetworkInterfaceRequest indicates: - instance from which to delete, using project+zone+resource_id fields; - dynamic network interface to be deleted, using network_interface_name field; + # + # @overload delete_network_interface(request, options = nil) + # Pass arguments to `delete_network_interface` via a request object, either of type + # {::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_network_interface(instance: nil, network_interface_name: nil, project: nil, request_id: nil, zone: nil) + # Pass arguments to `delete_network_interface` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param instance [::String] + # The instance name for this request stored as resource_id. Name should conform to RFC1035 or be an unsigned long integer. + # @param network_interface_name [::String] + # The name of the dynamic network interface to be deleted from the instance. + # @param project [::String] + # Project ID for this request. + # @param request_id [::String] + # 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. 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). + # @param zone [::String] + # The name of the zone for this request. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::GenericLRO::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::GenericLRO::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::Instances::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest.new + # + # # Call the delete_network_interface method. + # result = client.delete_network_interface request + # + # # The returned object is of type Google::Cloud::Compute::V1::Operation. + # p result + # + def delete_network_interface request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_network_interface.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_network_interface.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_network_interface.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @instances_stub.delete_network_interface request, options do |result, response| + result = ::Google::Cloud::Compute::V1::ZoneOperations::Rest::NonstandardLro.create_operation( + operation: result, + client: zone_operations, + request_values: { + "project" => request.project, + "zone" => request.zone + }, + options: options + ) + yield result, response if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Detaches a disk from an instance. # @@ -5049,6 +5245,11 @@ class Rpcs # attr_reader :add_access_config ## + # RPC-specific configuration for `add_network_interface` + # @return [::Gapic::Config::Method] + # + attr_reader :add_network_interface + ## # RPC-specific configuration for `add_resource_policies` # @return [::Gapic::Config::Method] # @@ -5079,6 +5280,11 @@ class Rpcs # attr_reader :delete_access_config ## + # RPC-specific configuration for `delete_network_interface` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_network_interface + ## # RPC-specific configuration for `detach_disk` # @return [::Gapic::Config::Method] # @@ -5293,6 +5499,8 @@ class Rpcs def initialize parent_rpcs = nil add_access_config_config = parent_rpcs.add_access_config if parent_rpcs.respond_to? :add_access_config @add_access_config = ::Gapic::Config::Method.new add_access_config_config + add_network_interface_config = parent_rpcs.add_network_interface if parent_rpcs.respond_to? :add_network_interface + @add_network_interface = ::Gapic::Config::Method.new add_network_interface_config add_resource_policies_config = parent_rpcs.add_resource_policies if parent_rpcs.respond_to? :add_resource_policies @add_resource_policies = ::Gapic::Config::Method.new add_resource_policies_config aggregated_list_config = parent_rpcs.aggregated_list if parent_rpcs.respond_to? :aggregated_list @@ -5305,6 +5513,8 @@ def initialize parent_rpcs = nil @delete = ::Gapic::Config::Method.new delete_config delete_access_config_config = parent_rpcs.delete_access_config if parent_rpcs.respond_to? :delete_access_config @delete_access_config = ::Gapic::Config::Method.new delete_access_config_config + delete_network_interface_config = parent_rpcs.delete_network_interface if parent_rpcs.respond_to? :delete_network_interface + @delete_network_interface = ::Gapic::Config::Method.new delete_network_interface_config detach_disk_config = parent_rpcs.detach_disk if parent_rpcs.respond_to? :detach_disk @detach_disk = ::Gapic::Config::Method.new detach_disk_config get_config = parent_rpcs.get if parent_rpcs.respond_to? :get diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/service_stub.rb index 2d17ef86d12c..b8acbd778f8c 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/instances/rest/service_stub.rb @@ -113,6 +113,46 @@ def add_access_config request_pb, options = nil end end + ## + # Baseline implementation for the add_network_interface REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::Operation] + # A result object deserialized from the server's reply + def add_network_interface request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_add_network_interface_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "add_network_interface", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the add_resource_policies REST call # @@ -353,6 +393,46 @@ def delete_access_config request_pb, options = nil end end + ## + # Baseline implementation for the delete_network_interface REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::Operation] + # A result object deserialized from the server's reply + def delete_network_interface request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_network_interface_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_network_interface", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the detach_disk REST call # @@ -2057,6 +2137,30 @@ def self.transcode_add_access_config_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the add_network_interface REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_add_network_interface_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface", + body: "network_interface_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["zone", %r{^[^/]+/?$}, false], + ["instance", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # @@ -2195,6 +2299,29 @@ def self.transcode_delete_access_config_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the delete_network_interface REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_network_interface_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["zone", %r{^[^/]+/?$}, false], + ["instance", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/client.rb index 92b054e44d26..baea64f46794 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/client.rb @@ -85,6 +85,8 @@ def self.configure default_config.rpcs.set_named_ports.timeout = 600.0 + default_config.rpcs.test_iam_permissions.timeout = 600.0 + default_config end yield @configure if block_given? @@ -569,6 +571,90 @@ def set_named_ports request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Returns permissions that a caller has on the specified resource. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(project: nil, region: nil, resource: nil, test_permissions_request_resource: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param project [::String] + # Project ID for this request. + # @param region [::String] + # The name of the region for this request. + # @param resource [::String] + # Name or id of the resource for this request. + # @param test_permissions_request_resource [::Google::Cloud::Compute::V1::TestPermissionsRequest, ::Hash] + # The body resource for this request + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::RegionInstanceGroups::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Cloud::Compute::V1::TestPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @region_instance_groups_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the RegionInstanceGroups REST API. # @@ -735,6 +821,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :set_named_ports + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -746,6 +837,8 @@ def initialize parent_rpcs = nil @list_instances = ::Gapic::Config::Method.new list_instances_config set_named_ports_config = parent_rpcs.set_named_ports if parent_rpcs.respond_to? :set_named_ports @set_named_ports = ::Gapic::Config::Method.new set_named_ports_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/service_stub.rb index f18d7ca6e843..5314723c0ada 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/region_instance_groups/rest/service_stub.rb @@ -233,6 +233,46 @@ def set_named_ports request_pb, options = nil end end + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -325,6 +365,30 @@ def self.transcode_set_named_ports_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions", + body: "test_permissions_request_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["region", %r{^[^/]+/?$}, false], + ["resource", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/service_attachments/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/service_attachments/rest/client.rb index 0a675ca43137..3d9a782319fa 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/service_attachments/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/service_attachments/rest/client.rb @@ -420,7 +420,7 @@ def delete request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload get(project: nil, region: nil, service_attachment: nil) + # @overload get(project: nil, region: nil, service_attachment: nil, show_nat_ips: nil) # Pass arguments to `get` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -431,6 +431,8 @@ def delete request, options = nil # Name of the region of this request. # @param service_attachment [::String] # Name of the ServiceAttachment resource to return. + # @param show_nat_ips [::Boolean] + # Indicates whether NAT IPs should be included in the response. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Google::Cloud::Compute::V1::ServiceAttachment] # @yieldparam operation [::Gapic::Rest::TransportOperation] diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/client.rb index 724f9add2886..7399415c89b9 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/client.rb @@ -92,6 +92,8 @@ def self.configure default_config.rpcs.set_security_policy.timeout = 600.0 + default_config.rpcs.test_iam_permissions.timeout = 600.0 + default_config end yield @configure if block_given? @@ -762,6 +764,90 @@ def set_security_policy request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Returns permissions that a caller has on the specified resource. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(project: nil, resource: nil, test_permissions_request_resource: nil, zone: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param project [::String] + # Project ID for this request. + # @param resource [::String] + # Name or id of the resource for this request. + # @param test_permissions_request_resource [::Google::Cloud::Compute::V1::TestPermissionsRequest, ::Hash] + # The body resource for this request + # @param zone [::String] + # The name of the zone for this request. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::TargetInstances::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Cloud::Compute::V1::TestPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @target_instances_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the TargetInstances REST API. # @@ -938,6 +1024,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :set_security_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -953,6 +1044,8 @@ def initialize parent_rpcs = nil @list = ::Gapic::Config::Method.new list_config set_security_policy_config = parent_rpcs.set_security_policy if parent_rpcs.respond_to? :set_security_policy @set_security_policy = ::Gapic::Config::Method.new set_security_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/service_stub.rb index 3d2d114b1ae3..b70a927da683 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_instances/rest/service_stub.rb @@ -313,6 +313,46 @@ def set_security_policy request_pb, options = nil end end + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -448,6 +488,30 @@ def self.transcode_set_security_policy_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions", + body: "test_permissions_request_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["zone", %r{^[^/]+/?$}, false], + ["resource", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/client.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/client.rb index 259a1fe92b04..eab62401c9dc 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/client.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/client.rb @@ -104,6 +104,8 @@ def self.configure default_config.rpcs.set_security_policy.timeout = 600.0 + default_config.rpcs.test_iam_permissions.timeout = 600.0 + default_config end yield @configure if block_given? @@ -1340,6 +1342,90 @@ def set_security_policy request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Returns permissions that a caller has on the specified resource. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(project: nil, region: nil, resource: nil, test_permissions_request_resource: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param project [::String] + # Project ID for this request. + # @param region [::String] + # The name of the region for this request. + # @param resource [::String] + # Name or id of the resource for this request. + # @param test_permissions_request_resource [::Google::Cloud::Compute::V1::TestPermissionsRequest, ::Hash] + # The body resource for this request + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/compute/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Compute::V1::TargetPools::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Cloud::Compute::V1::TestPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Compute::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @target_pools_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the TargetPools REST API. # @@ -1546,6 +1632,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :set_security_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -1573,6 +1664,8 @@ def initialize parent_rpcs = nil @set_backup = ::Gapic::Config::Method.new set_backup_config set_security_policy_config = parent_rpcs.set_security_policy if parent_rpcs.respond_to? :set_security_policy @set_security_policy = ::Gapic::Config::Method.new set_security_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/service_stub.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/service_stub.rb index 7e083945858c..1536a2bd7584 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/service_stub.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/target_pools/rest/service_stub.rb @@ -553,6 +553,46 @@ def set_security_policy request_pb, options = nil end end + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Compute::V1::TestPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -832,6 +872,30 @@ def self.transcode_set_security_policy_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/compute/v1/projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions", + body: "test_permissions_request_resource", + matches: [ + ["project", %r{^[^/]+/?$}, false], + ["region", %r{^[^/]+/?$}, false], + ["resource", %r{^[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-compute-v1/lib/google/cloud/compute/v1/version.rb b/google-cloud-compute-v1/lib/google/cloud/compute/v1/version.rb index dae0c8285e08..9d3d0ecfdb55 100644 --- a/google-cloud-compute-v1/lib/google/cloud/compute/v1/version.rb +++ b/google-cloud-compute-v1/lib/google/cloud/compute/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Compute module V1 - VERSION = "3.1.0" + VERSION = "3.4.0" end end end diff --git a/google-cloud-compute-v1/proto_docs/google/cloud/compute/v1/compute.rb b/google-cloud-compute-v1/proto_docs/google/cloud/compute/v1/compute.rb index c863d7774776..269a1b96cf64 100644 --- a/google-cloud-compute-v1/proto_docs/google/cloud/compute/v1/compute.rb +++ b/google-cloud-compute-v1/proto_docs/google/cloud/compute/v1/compute.rb @@ -425,6 +425,27 @@ class AddInstancesInstanceGroupRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for Instances.AddNetworkInterface. See the method description for details. + # @!attribute [rw] instance + # @return [::String] + # The instance name for this request stored as resource_id. Name should conform to RFC1035 or be an unsigned long integer. + # @!attribute [rw] network_interface_resource + # @return [::Google::Cloud::Compute::V1::NetworkInterface] + # The body resource for this request + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] request_id + # @return [::String] + # 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. 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). + # @!attribute [rw] zone + # @return [::String] + # The name of the zone for this request. + class AddNetworkInterfaceInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for NodeGroups.AddNodes. See the method description for details. # @!attribute [rw] node_group # @return [::String] @@ -3595,7 +3616,7 @@ module LoadBalancingScheme # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. # @!attribute [rw] negative_caching # @return [::Boolean] - # Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. + # Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. # @!attribute [rw] negative_caching_policy # @return [::Array<::Google::Cloud::Compute::V1::BackendBucketCdnPolicyNegativeCachingPolicy>] # Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. @@ -3991,6 +4012,9 @@ module LocalityLbPolicy # This is a simple policy in which each healthy backend is selected in round robin order. This is the default. ROUND_ROBIN = 153_895_801 + # Per-instance weighted Load Balancing via health check reported weights. In internal passthrough network load balancing, it is weighted rendezvous hashing. This option is only supported in internal passthrough network load balancing. + WEIGHTED_GCP_RENDEZVOUS = 82_501_640 + # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing. WEIGHTED_MAGLEV = 254_930_962 @@ -4121,7 +4145,7 @@ class ItemsEntry # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL. # @!attribute [rw] negative_caching # @return [::Boolean] - # Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. + # Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy. # @!attribute [rw] negative_caching_policy # @return [::Array<::Google::Cloud::Compute::V1::BackendServiceCdnPolicyNegativeCachingPolicy>] # Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists. @@ -4452,6 +4476,9 @@ module Name # This is a simple policy in which each healthy backend is selected in round robin order. This is the default. ROUND_ROBIN = 153_895_801 + # Per-instance weighted Load Balancing via health check reported weights. In internal passthrough network load balancing, it is weighted rendezvous hashing. This option is only supported in internal passthrough network load balancing. + WEIGHTED_GCP_RENDEZVOUS = 82_501_640 + # Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing. WEIGHTED_MAGLEV = 254_930_962 @@ -6348,6 +6375,27 @@ class DeleteNetworkFirewallPolicyRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for Instances.DeleteNetworkInterface. See the method description for details. + # @!attribute [rw] instance + # @return [::String] + # The instance name for this request stored as resource_id. Name should conform to RFC1035 or be an unsigned long integer. + # @!attribute [rw] network_interface_name + # @return [::String] + # The name of the dynamic network interface to be deleted from the instance. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] request_id + # @return [::String] + # 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. 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). + # @!attribute [rw] zone + # @return [::String] + # The name of the zone for this request. + class DeleteNetworkInterfaceInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for Networks.Delete. See the method description for details. # @!attribute [rw] network # @return [::String] @@ -11251,6 +11299,9 @@ class GetSerialPortOutputInstanceRequest # @!attribute [rw] service_attachment # @return [::String] # Name of the ServiceAttachment resource to return. + # @!attribute [rw] show_nat_ips + # @return [::Boolean] + # Indicates whether NAT IPs should be included in the response. class GetServiceAttachmentRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -14401,6 +14452,9 @@ module Status # The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc. DEPROVISIONING = 428_935_662 + # For Flex Start provisioning instance is waiting for available capacity from Dynamic Workload Scheduler (DWS). + PENDING = 35_394_935 + # Resources are being allocated for the instance. PROVISIONING = 290_896_621 @@ -15632,6 +15686,9 @@ class InstanceMoveRequest end # Additional instance params. + # @!attribute [rw] request_valid_for_duration + # @return [::Google::Cloud::Compute::V1::Duration] + # Relative deadline for waiting for capacity. Relevant only for Instances.Insert API. # @!attribute [rw] resource_manager_tags # @return [::Google::Protobuf::Map{::String => ::String}] # Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. @@ -15969,6 +16026,9 @@ module Status # The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc. DEPROVISIONING = 428_935_662 + # For Flex Start provisioning instance is waiting for available capacity from Dynamic Workload Scheduler (DWS). + PENDING = 35_394_935 + # Resources are being allocated for the instance. PROVISIONING = 290_896_621 @@ -17332,7 +17392,7 @@ module GroupStatus # Check the IsActive enum for the list of possible values. # @!attribute [rw] status # @return [::String] - # Whether this Attachment is active, and if so, whether BGP is up. This is based on the statuses available in the Pantheon UI here: http://google3/java/com/google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto + # Whether this Attachment is active, and if so, whether BGP is up. # Check the Status enum for the list of possible values. class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus include ::Google::Protobuf::MessageExts @@ -17350,7 +17410,7 @@ module IsActive UNSPECIFIED = 526_786_327 end - # Whether this Attachment is active, and if so, whether BGP is up. This is based on the statuses available in the Pantheon UI here: http://google3/java/com/google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto + # Whether this Attachment is active, and if so, whether BGP is up. module Status # A value indicating that the enum field is not set. UNDEFINED_STATUS = 0 @@ -22507,6 +22567,9 @@ module InstanceStatus # The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc. DEPROVISIONING = 428_935_662 + # For Flex Start provisioning instance is waiting for available capacity from Dynamic Workload Scheduler (DWS). + PENDING = 35_394_935 + # Resources are being allocated for the instance. PROVISIONING = 290_896_621 @@ -23588,6 +23651,9 @@ class ItemsEntry # @return [::String] # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. # Check the NicType enum for the list of possible values. + # @!attribute [rw] parent_nic_name + # @return [::String] + # Name of the parent network interface of a dynamic network interface. # @!attribute [rw] queue_count # @return [::Integer] # The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users. @@ -23598,6 +23664,9 @@ class ItemsEntry # @!attribute [rw] subnetwork # @return [::String] # The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork + # @!attribute [rw] vlan + # @return [::Integer] + # VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively. class NetworkInterface include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -23942,6 +24011,9 @@ module TotalEgressBandwidthTier # @!attribute [rw] name # @return [::String] # [Output Only] Name of the resource. + # @!attribute [rw] profile_type + # @return [::Google::Cloud::Compute::V1::NetworkProfileProfileType] + # [Output Only] Type of the network profile. # @!attribute [rw] self_link # @return [::String] # [Output Only] Server-defined URL for the resource. @@ -24427,6 +24499,68 @@ module Unicast end end + # @!attribute [rw] network_type + # @return [::String] + # Check the NetworkType enum for the list of possible values. + # @!attribute [rw] rdma_subtype + # @return [::String] + # Check the RdmaSubtype enum for the list of possible values. + # @!attribute [rw] ull_subtype + # @return [::String] + # Check the UllSubtype enum for the list of possible values. + # @!attribute [rw] vpc_subtype + # @return [::String] + # Check the VpcSubtype enum for the list of possible values. + class NetworkProfileProfileType + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + + module NetworkType + # A value indicating that the enum field is not set. + UNDEFINED_NETWORK_TYPE = 0 + + # RDMA network. + RDMA = 2_510_662 + + # ULL network. + ULL = 84_117 + + # VPC network. + VPC = 85_193 + end + + module RdmaSubtype + # A value indicating that the enum field is not set. + UNDEFINED_RDMA_SUBTYPE = 0 + + # RDMA over Falcon. + FALCON = 455_787_729 + + # RDMA over Converged Ethernet (RoCE). + ROCE = 2_520_927 + end + + module UllSubtype + # A value indicating that the enum field is not set. + UNDEFINED_ULL_SUBTYPE = 0 + + # Exchange operator. + OPERATOR = 282_073_252 + + # Exchange participant. + PARTICIPANT = 236_028_691 + end + + module VpcSubtype + # A value indicating that the enum field is not set. + UNDEFINED_VPC_SUBTYPE = 0 + + # Regionally bound VPC network. + REGIONAL = 92_288_543 + end + end + # Contains a list of network profiles. # @!attribute [rw] etag # @return [::String] @@ -30643,6 +30777,9 @@ module Type end # Contains output only fields. Use this sub-message for actual values set on Instance attributes as compared to the value requested by the user (intent) in their instance CRUD calls. + # @!attribute [rw] effective_instance_metadata + # @return [::Google::Cloud::Compute::V1::ResourceStatusEffectiveInstanceMetadata] + # [Output Only] Effective metadata is a field that consolidates project, zonal instance settings, and instance-level predefined metadata keys to provide the overridden value for those metadata keys at the instance level. # @!attribute [rw] physical_host # @return [::String] # [Output Only] The precise location of your instance within the zone's data center, including the block, sub-block, and host. The field is formatted as follows: blockId/subBlockId/hostId. @@ -30658,6 +30795,36 @@ class ResourceStatus extend ::Google::Protobuf::MessageExts::ClassMethods end + # Effective values of predefined metadata keys for an instance. + # @!attribute [rw] block_project_ssh_keys_metadata_value + # @return [::Boolean] + # Effective block-project-ssh-keys value at Instance level. + # @!attribute [rw] enable_guest_attributes_metadata_value + # @return [::Boolean] + # Effective enable-guest-attributes value at Instance level. + # @!attribute [rw] enable_os_inventory_metadata_value + # @return [::Boolean] + # Effective enable-os-inventory value at Instance level. + # @!attribute [rw] enable_osconfig_metadata_value + # @return [::Boolean] + # Effective enable-osconfig value at Instance level. + # @!attribute [rw] enable_oslogin_metadata_value + # @return [::Boolean] + # Effective enable-oslogin value at Instance level. + # @!attribute [rw] serial_port_enable_metadata_value + # @return [::Boolean] + # Effective serial-port-enable value at Instance level. + # @!attribute [rw] serial_port_logging_enable_metadata_value + # @return [::Boolean] + # Effective serial-port-logging-enable value at Instance level. + # @!attribute [rw] vm_dns_setting_metadata_value + # @return [::String] + # Effective VM DNS setting at Instance level. + class ResourceStatusEffectiveInstanceMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Represents the physical host topology of the host on which the VM is running. # @!attribute [rw] block # @return [::String] @@ -31026,6 +31193,9 @@ class RoutePolicyPolicyTerm # @!attribute [rw] network # @return [::String] # URI of the network to which this router belongs. + # @!attribute [rw] params + # @return [::Google::Cloud::Compute::V1::RouterParams] + # Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload. # @!attribute [rw] region # @return [::String] # [Output Only] URI of the region where the router resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body. @@ -31640,6 +31810,24 @@ class RouterNatSubnetworkToNat64 extend ::Google::Protobuf::MessageExts::ClassMethods end + # Additional router parameters. + # @!attribute [rw] resource_manager_tags + # @return [::Google::Protobuf::Map{::String => ::String}] + # Tag keys/values directly bound to this resource. The field is allowed for INSERT only. The keys/values to set on the resource should be specified in either ID { : } or Namespaced format { : }. For example the following are valid inputs: * \\{"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} * \\{"123/environment" : "production", "345/abc" : "xyz"} Note: * Invalid combinations of ID & namespaced format is not supported. For instance: \\{"123/environment" : "tagValues/444"} is invalid. * Inconsistent format is not supported. For instance: \\{"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + class RouterParams + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class ResourceManagerTagsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + # @!attribute [rw] best_routes # @return [::Array<::Google::Cloud::Compute::V1::Route>] # A list of the best dynamic routes for this Cloud Router's Virtual Private Cloud (VPC) network in the same region as this Cloud Router. Lists all of the best routes per prefix that are programmed into this region's VPC data plane. When global dynamic routing mode is turned on in the VPC network, this list can include cross-region dynamic routes from Cloud Routers in other regions. @@ -32172,6 +32360,9 @@ module State # @return [::String] # Specifies the provisioning model of the instance. # Check the ProvisioningModel enum for the list of possible values. + # @!attribute [rw] skip_guest_os_shutdown + # @return [::Boolean] + # Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs. # @!attribute [rw] termination_time # @return [::String] # Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time. @@ -32211,6 +32402,9 @@ module ProvisioningModel # A value indicating that the enum field is not set. UNDEFINED_PROVISIONING_MODEL = 0 + # Instance is provisioned using the Flex Start provisioning model and has a limited runtime. + FLEX_START = 101_746_812 + # Bound to the lifecycle of the reservation in which it is provisioned. RESERVATION_BOUND = 293_538_571 @@ -32379,7 +32573,7 @@ class SecurityPoliciesWafConfig # [Output Only] Server-defined URL for the resource. # @!attribute [rw] type # @return [::String] - # The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time. + # The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE (preview only): Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time. # Check the Type enum for the list of possible values. # @!attribute [rw] user_defined_fields # @return [::Array<::Google::Cloud::Compute::V1::SecurityPolicyUserDefinedField>] @@ -32397,7 +32591,7 @@ class LabelsEntry extend ::Google::Protobuf::MessageExts::ClassMethods end - # The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time. + # The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE (preview only): Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time. module Type # A value indicating that the enum field is not set. UNDEFINED_TYPE = 0 @@ -32602,7 +32796,7 @@ class SecurityPolicyReference # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny). # @!attribute [rw] action # @return [::String] - # The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. + # The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. - fairshare (preview only): when traffic reaches the threshold limit, requests from the clients matching this rule begin to be rate-limited using the Fair Share algorithm. This action is only allowed in security policies of type `CLOUD_ARMOR_INTERNAL_SERVICE`. # @!attribute [rw] description # @return [::String] # An optional description of this resource. Provide this property when you create the resource. @@ -32629,7 +32823,7 @@ class SecurityPolicyReference # An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority. # @!attribute [rw] rate_limit_options # @return [::Google::Cloud::Compute::V1::SecurityPolicyRuleRateLimitOptions] - # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions. + # Must be specified if the action is "rate_based_ban" or "throttle" or "fairshare". Cannot be specified for any other actions. # @!attribute [rw] redirect_options # @return [::Google::Cloud::Compute::V1::SecurityPolicyRuleRedirectOptions] # Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR. @@ -32663,7 +32857,7 @@ class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption # The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified. # @!attribute [rw] expr # @return [::Google::Cloud::Compute::V1::Expr] - # User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require Cloud Armor Managed Protection Plus tier and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed Protection Plus tier and are only supported in Global Security Policies. + # User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require a Cloud Armor Enterprise subscription and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require a Cloud Armor Enterprise subscription and are only supported in Global Security Policies. # @!attribute [rw] expr_options # @return [::Google::Cloud::Compute::V1::SecurityPolicyRuleMatcherExprOptions] # The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). @@ -32828,7 +33022,7 @@ module Op # Action to take for requests that are under the configured rate limit threshold. Valid option is "allow" only. # @!attribute [rw] enforce_on_key # @return [::String] - # Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + # Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. For "fairshare" action, this value is limited to ALL i.e. a single rate limit threshold is enforced for all the requests matching the rule. # Check the EnforceOnKey enum for the list of possible values. # @!attribute [rw] enforce_on_key_configs # @return [::Array<::Google::Cloud::Compute::V1::SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig>] @@ -32849,7 +33043,7 @@ class SecurityPolicyRuleRateLimitOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. + # Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if "enforceOnKey" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under "enforceOnKeyName". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. For "fairshare" action, this value is limited to ALL i.e. a single rate limit threshold is enforced for all the requests matching the rule. module EnforceOnKey # A value indicating that the enum field is not set. UNDEFINED_ENFORCE_ON_KEY = 0 @@ -33211,6 +33405,9 @@ class ItemsEntry # @!attribute [rw] endpoint # @return [::String] # The url of a connected endpoint. + # @!attribute [rw] nat_ips + # @return [::Array<::String>] + # NAT IPs of the connected PSC endpoint and those of other endpoints propagated from it. # @!attribute [rw] propagated_connection_count # @return [::Integer] # The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to. @@ -38463,6 +38660,24 @@ class TestFailure extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for Addresses.TestIamPermissions. See the method description for details. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] region + # @return [::String] + # The name of the region for this request. + # @!attribute [rw] resource + # @return [::String] + # Name or id of the resource for this request. + # @!attribute [rw] test_permissions_request_resource + # @return [::Google::Cloud::Compute::V1::TestPermissionsRequest] + # The body resource for this request + class TestIamPermissionsAddressRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for BackendBuckets.TestIamPermissions. See the method description for details. # @!attribute [rw] project # @return [::String] @@ -38538,6 +38753,21 @@ class TestIamPermissionsFirewallPolicyRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for GlobalAddresses.TestIamPermissions. See the method description for details. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] resource + # @return [::String] + # Name or id of the resource for this request. + # @!attribute [rw] test_permissions_request_resource + # @return [::Google::Cloud::Compute::V1::TestPermissionsRequest] + # The body resource for this request + class TestIamPermissionsGlobalAddressRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for Images.TestIamPermissions. See the method description for details. # @!attribute [rw] project # @return [::String] @@ -38553,6 +38783,24 @@ class TestIamPermissionsImageRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for InstanceGroups.TestIamPermissions. See the method description for details. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] resource + # @return [::String] + # Name or id of the resource for this request. + # @!attribute [rw] test_permissions_request_resource + # @return [::Google::Cloud::Compute::V1::TestPermissionsRequest] + # The body resource for this request + # @!attribute [rw] zone + # @return [::String] + # The name of the zone for this request. + class TestIamPermissionsInstanceGroupRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for Instances.TestIamPermissions. See the method description for details. # @!attribute [rw] project # @return [::String] @@ -38820,6 +39068,24 @@ class TestIamPermissionsRegionDiskRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for RegionInstanceGroups.TestIamPermissions. See the method description for details. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] region + # @return [::String] + # The name of the region for this request. + # @!attribute [rw] resource + # @return [::String] + # Name or id of the resource for this request. + # @!attribute [rw] test_permissions_request_resource + # @return [::Google::Cloud::Compute::V1::TestPermissionsRequest] + # The body resource for this request + class TestIamPermissionsRegionInstanceGroupRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for RegionInstantSnapshots.TestIamPermissions. See the method description for details. # @!attribute [rw] project # @return [::String] @@ -38961,6 +39227,42 @@ class TestIamPermissionsSubnetworkRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request message for TargetInstances.TestIamPermissions. See the method description for details. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] resource + # @return [::String] + # Name or id of the resource for this request. + # @!attribute [rw] test_permissions_request_resource + # @return [::Google::Cloud::Compute::V1::TestPermissionsRequest] + # The body resource for this request + # @!attribute [rw] zone + # @return [::String] + # The name of the zone for this request. + class TestIamPermissionsTargetInstanceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A request message for TargetPools.TestIamPermissions. See the method description for details. + # @!attribute [rw] project + # @return [::String] + # Project ID for this request. + # @!attribute [rw] region + # @return [::String] + # The name of the region for this request. + # @!attribute [rw] resource + # @return [::String] + # Name or id of the resource for this request. + # @!attribute [rw] test_permissions_request_resource + # @return [::Google::Cloud::Compute::V1::TestPermissionsRequest] + # The body resource for this request + class TestIamPermissionsTargetPoolRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # A request message for VpnGateways.TestIamPermissions. See the method description for details. # @!attribute [rw] project # @return [::String] @@ -39046,6 +39348,12 @@ module MaintenanceReasons # Maintenance due to GPU errors. FAILURE_GPU = 467_876_919 + # Maintenance due to customer reported multiple faulty hosts via R&R Subblock API. + FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED = 223_284_959 + + # Maintenance due to customer reported NVLink switch failure via R&R Subblock API. + FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED = 88_487_838 + # Maintenance due to high GPU temperature. FAILURE_GPU_TEMPERATURE = 24_926_540 @@ -40468,6 +40776,9 @@ class VpnGatewaysScopedList end # Represents a Cloud VPN Tunnel resource. For more information about VPN, read the the Cloud VPN Overview. + # @!attribute [rw] cipher_suite + # @return [::Google::Cloud::Compute::V1::VpnTunnelCipherSuite] + # User specified list of ciphers to use for the phase 1 and phase 2 of the IKE protocol. # @!attribute [rw] creation_timestamp # @return [::String] # [Output Only] Creation timestamp in RFC3339 text format. @@ -40635,6 +40946,15 @@ class ItemsEntry end end + # @!attribute [rw] phase1 + # @return [::Google::Cloud::Compute::V1::VpnTunnelPhase1Algorithms] + # @!attribute [rw] phase2 + # @return [::Google::Cloud::Compute::V1::VpnTunnelPhase2Algorithms] + class VpnTunnelCipherSuite + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Contains a list of VpnTunnel resources. # @!attribute [rw] id # @return [::String] @@ -40659,6 +40979,30 @@ class VpnTunnelList extend ::Google::Protobuf::MessageExts::ClassMethods end + # @!attribute [rw] dh + # @return [::Array<::String>] + # @!attribute [rw] encryption + # @return [::Array<::String>] + # @!attribute [rw] integrity + # @return [::Array<::String>] + # @!attribute [rw] prf + # @return [::Array<::String>] + class VpnTunnelPhase1Algorithms + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] encryption + # @return [::Array<::String>] + # @!attribute [rw] integrity + # @return [::Array<::String>] + # @!attribute [rw] pfs + # @return [::Array<::String>] + class VpnTunnelPhase2Algorithms + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # @!attribute [rw] vpn_tunnels # @return [::Array<::Google::Cloud::Compute::V1::VpnTunnel>] # A list of VPN tunnels contained in this scope. diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/addresses_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/addresses_rest_test.rb index daf6056bcef3..783a73888b15 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/addresses_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/addresses_rest_test.rb @@ -485,6 +485,63 @@ def test_set_labels end end + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + project = "hello world" + region = "hello world" + resource = "hello world" + test_permissions_request_resource = {} + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::Addresses::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::Addresses::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest.new(project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Cloud::Compute::V1::TestIamPermissionsAddressRequest.new(project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/global_addresses_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/global_addresses_rest_test.rb index a6a9030cbccc..94d6c4e7b374 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/global_addresses_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/global_addresses_rest_test.rb @@ -417,6 +417,62 @@ def test_set_labels end end + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + project = "hello world" + resource = "hello world" + test_permissions_request_resource = {} + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::GlobalAddresses::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::GlobalAddresses::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest.new(project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Cloud::Compute::V1::TestIamPermissionsGlobalAddressRequest.new(project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/instance_groups_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/instance_groups_rest_test.rb index 13cf644ae924..cf2a55d6bc88 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/instance_groups_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/instance_groups_rest_test.rb @@ -605,6 +605,63 @@ def test_set_named_ports end end + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + project = "hello world" + resource = "hello world" + test_permissions_request_resource = {} + zone = "hello world" + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::InstanceGroups::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::InstanceGroups::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest.new(project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Cloud::Compute::V1::TestIamPermissionsInstanceGroupRequest.new(project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/instances_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/instances_rest_test.rb index 582a24c15bd9..c698bfc9e2df 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/instances_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/instances_rest_test.rb @@ -137,6 +137,64 @@ def test_add_access_config end end + def test_add_network_interface + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + instance = "hello world" + network_interface_resource = {} + project = "hello world" + request_id = "hello world" + zone = "hello world" + + add_network_interface_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::Instances::Rest::ServiceStub.stub :transcode_add_network_interface_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, add_network_interface_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::Instances::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.add_network_interface({ instance: instance, network_interface_resource: network_interface_resource, project: project, request_id: request_id, zone: zone }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.add_network_interface instance: instance, network_interface_resource: network_interface_resource, project: project, request_id: request_id, zone: zone do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.add_network_interface ::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest.new(instance: instance, network_interface_resource: network_interface_resource, project: project, request_id: request_id, zone: zone) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.add_network_interface({ instance: instance, network_interface_resource: network_interface_resource, project: project, request_id: request_id, zone: zone }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.add_network_interface(::Google::Cloud::Compute::V1::AddNetworkInterfaceInstanceRequest.new(instance: instance, network_interface_resource: network_interface_resource, project: project, request_id: request_id, zone: zone), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, add_network_interface_client_stub.call_count + end + end + end + def test_add_resource_policies # Create test objects. client_result = ::Google::Cloud::Compute::V1::Operation.new @@ -488,6 +546,64 @@ def test_delete_access_config end end + def test_delete_network_interface + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + instance = "hello world" + network_interface_name = "hello world" + project = "hello world" + request_id = "hello world" + zone = "hello world" + + delete_network_interface_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::Instances::Rest::ServiceStub.stub :transcode_delete_network_interface_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_network_interface_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::Instances::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_network_interface({ instance: instance, network_interface_name: network_interface_name, project: project, request_id: request_id, zone: zone }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_network_interface instance: instance, network_interface_name: network_interface_name, project: project, request_id: request_id, zone: zone do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_network_interface ::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest.new(instance: instance, network_interface_name: network_interface_name, project: project, request_id: request_id, zone: zone) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_network_interface({ instance: instance, network_interface_name: network_interface_name, project: project, request_id: request_id, zone: zone }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_network_interface(::Google::Cloud::Compute::V1::DeleteNetworkInterfaceInstanceRequest.new(instance: instance, network_interface_name: network_interface_name, project: project, request_id: request_id, zone: zone), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_network_interface_client_stub.call_count + end + end + end + def test_detach_disk # Create test objects. client_result = ::Google::Cloud::Compute::V1::Operation.new diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/region_instance_groups_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/region_instance_groups_rest_test.rb index 30d8b0f97144..3ec34e769ede 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/region_instance_groups_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/region_instance_groups_rest_test.rb @@ -314,6 +314,63 @@ def test_set_named_ports end end + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + project = "hello world" + region = "hello world" + resource = "hello world" + test_permissions_request_resource = {} + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::RegionInstanceGroups::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::RegionInstanceGroups::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest.new(project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Cloud::Compute::V1::TestIamPermissionsRegionInstanceGroupRequest.new(project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/service_attachments_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/service_attachments_rest_test.rb index ea475aaf1e46..0baddb4c4305 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/service_attachments_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/service_attachments_rest_test.rb @@ -207,6 +207,7 @@ def test_get project = "hello world" region = "hello world" service_attachment = "hello world" + show_nat_ips = true get_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| assert options.metadata.key? :"x-goog-api-client" @@ -222,27 +223,27 @@ def test_get end # Use hash object - client.get({ project: project, region: region, service_attachment: service_attachment }) do |_result, response| + client.get({ project: project, region: region, service_attachment: service_attachment, show_nat_ips: show_nat_ips }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - client.get project: project, region: region, service_attachment: service_attachment do |_result, response| + client.get project: project, region: region, service_attachment: service_attachment, show_nat_ips: show_nat_ips do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - client.get ::Google::Cloud::Compute::V1::GetServiceAttachmentRequest.new(project: project, region: region, service_attachment: service_attachment) do |_result, response| + client.get ::Google::Cloud::Compute::V1::GetServiceAttachmentRequest.new(project: project, region: region, service_attachment: service_attachment, show_nat_ips: show_nat_ips) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - client.get({ project: project, region: region, service_attachment: service_attachment }, call_options) do |_result, response| + client.get({ project: project, region: region, service_attachment: service_attachment, show_nat_ips: show_nat_ips }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - client.get(::Google::Cloud::Compute::V1::GetServiceAttachmentRequest.new(project: project, region: region, service_attachment: service_attachment), call_options) do |_result, response| + client.get(::Google::Cloud::Compute::V1::GetServiceAttachmentRequest.new(project: project, region: region, service_attachment: service_attachment, show_nat_ips: show_nat_ips), call_options) do |_result, response| assert_equal http_response, response.underlying_op end diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/target_instances_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/target_instances_rest_test.rb index ab3240dba91a..cd04a7d8ab56 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/target_instances_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/target_instances_rest_test.rb @@ -427,6 +427,63 @@ def test_set_security_policy end end + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + project = "hello world" + resource = "hello world" + test_permissions_request_resource = {} + zone = "hello world" + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::TargetInstances::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::TargetInstances::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest.new(project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Cloud::Compute::V1::TestIamPermissionsTargetInstanceRequest.new(project: project, resource: resource, test_permissions_request_resource: test_permissions_request_resource, zone: zone), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-compute-v1/test/google/cloud/compute/v1/target_pools_rest_test.rb b/google-cloud-compute-v1/test/google/cloud/compute/v1/target_pools_rest_test.rb index 824806eddd73..ed3713478306 100644 --- a/google-cloud-compute-v1/test/google/cloud/compute/v1/target_pools_rest_test.rb +++ b/google-cloud-compute-v1/test/google/cloud/compute/v1/target_pools_rest_test.rb @@ -775,6 +775,63 @@ def test_set_security_policy end end + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Cloud::Compute::V1::TestPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + project = "hello world" + region = "hello world" + resource = "hello world" + test_permissions_request_resource = {} + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Compute::V1::TargetPools::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Compute::V1::TargetPools::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest.new(project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Cloud::Compute::V1::TestIamPermissionsTargetPoolRequest.new(project: project, region: region, resource: resource, test_permissions_request_resource: test_permissions_request_resource), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-compute/CHANGELOG.md b/google-cloud-compute/CHANGELOG.md index 7d21874ddeff..5cb27aa55241 100644 --- a/google-cloud-compute/CHANGELOG.md +++ b/google-cloud-compute/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.11.2 (2025-09-12) + +#### Documentation + +* Update README in wrapper libraries ([#31309](https://github.com/googleapis/google-cloud-ruby/issues/31309)) + ### 1.11.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-compute/README.md b/google-cloud-compute/README.md index fc3b145d1029..99c7a733ef5a 100755 --- a/google-cloud-compute/README.md +++ b/google-cloud-compute/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/compute.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/compute" + +client = Google::Cloud::Compute.accelerator_types +request = ::Google::Cloud::Compute::V1::AggregatedListAcceleratorTypesRequest.new # (request fields as keyword arguments...) +response = client.aggregated_list request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-compute/lib/google/cloud/compute.rb b/google-cloud-compute/lib/google/cloud/compute.rb index 6348a780b49a..59b230879ee6 100755 --- a/google-cloud-compute/lib/google/cloud/compute.rb +++ b/google-cloud-compute/lib/google/cloud/compute.rb @@ -1747,6 +1747,69 @@ def self.instant_snapshots_available? version: :v1 false end + ## + # Create a new client object for InterconnectAttachmentGroups. + # + # By default, this returns an instance of + # [Google::Cloud::Compute::V1::InterconnectAttachmentGroups::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-compute-v1/latest/Google-Cloud-Compute-V1-InterconnectAttachmentGroups-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the InterconnectAttachmentGroups service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the InterconnectAttachmentGroups service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Compute.interconnect_attachment_groups_available?}. + # + # ## About InterconnectAttachmentGroups + # + # The InterconnectAttachmentGroups API. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.interconnect_attachment_groups version: :v1, &block + require "google/cloud/compute/#{version.to_s.downcase}" + + package_name = Google::Cloud::Compute + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Compute.const_get(package_name).const_get(:InterconnectAttachmentGroups) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the InterconnectAttachmentGroups service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Compute.interconnect_attachment_groups}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the InterconnectAttachmentGroups service, + # or if the versioned client gem needs an update to support the InterconnectAttachmentGroups service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.interconnect_attachment_groups_available? version: :v1 + require "google/cloud/compute/#{version.to_s.downcase}" + package_name = Google::Cloud::Compute + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Compute.const_get package_name + return false unless service_module.const_defined? :InterconnectAttachmentGroups + service_module = service_module.const_get :InterconnectAttachmentGroups + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for InterconnectAttachments. # @@ -1810,6 +1873,69 @@ def self.interconnect_attachments_available? version: :v1 false end + ## + # Create a new client object for InterconnectGroups. + # + # By default, this returns an instance of + # [Google::Cloud::Compute::V1::InterconnectGroups::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-compute-v1/latest/Google-Cloud-Compute-V1-InterconnectGroups-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the InterconnectGroups service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the InterconnectGroups service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Compute.interconnect_groups_available?}. + # + # ## About InterconnectGroups + # + # The InterconnectGroups API. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.interconnect_groups version: :v1, &block + require "google/cloud/compute/#{version.to_s.downcase}" + + package_name = Google::Cloud::Compute + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Compute.const_get(package_name).const_get(:InterconnectGroups) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the InterconnectGroups service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Compute.interconnect_groups}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the InterconnectGroups service, + # or if the versioned client gem needs an update to support the InterconnectGroups service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.interconnect_groups_available? version: :v1 + require "google/cloud/compute/#{version.to_s.downcase}" + package_name = Google::Cloud::Compute + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Compute.const_get package_name + return false unless service_module.const_defined? :InterconnectGroups + service_module = service_module.const_get :InterconnectGroups + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for InterconnectLocations. # @@ -4708,6 +4834,69 @@ def self.reservation_blocks_available? version: :v1 false end + ## + # Create a new client object for ReservationSubBlocks. + # + # By default, this returns an instance of + # [Google::Cloud::Compute::V1::ReservationSubBlocks::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-compute-v1/latest/Google-Cloud-Compute-V1-ReservationSubBlocks-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the ReservationSubBlocks service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the ReservationSubBlocks service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Compute.reservation_sub_blocks_available?}. + # + # ## About ReservationSubBlocks + # + # The ReservationSubBlocks API. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.reservation_sub_blocks version: :v1, &block + require "google/cloud/compute/#{version.to_s.downcase}" + + package_name = Google::Cloud::Compute + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Compute.const_get(package_name).const_get(:ReservationSubBlocks) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the ReservationSubBlocks service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Compute.reservation_sub_blocks}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ReservationSubBlocks service, + # or if the versioned client gem needs an update to support the ReservationSubBlocks service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.reservation_sub_blocks_available? version: :v1 + require "google/cloud/compute/#{version.to_s.downcase}" + package_name = Google::Cloud::Compute + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Compute.const_get package_name + return false unless service_module.const_defined? :ReservationSubBlocks + service_module = service_module.const_get :ReservationSubBlocks + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for Reservations. # diff --git a/google-cloud-compute/lib/google/cloud/compute/version.rb b/google-cloud-compute/lib/google/cloud/compute/version.rb index 6cb377115da5..db85842f46e8 100644 --- a/google-cloud-compute/lib/google/cloud/compute/version.rb +++ b/google-cloud-compute/lib/google/cloud/compute/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Compute - VERSION = "1.11.1" + VERSION = "1.11.2" end end end diff --git a/google-cloud-compute/test/google/cloud/compute/client_test.rb b/google-cloud-compute/test/google/cloud/compute/client_test.rb index 7dc25806fa27..2a8a2781966d 100755 --- a/google-cloud-compute/test/google/cloud/compute/client_test.rb +++ b/google-cloud-compute/test/google/cloud/compute/client_test.rb @@ -310,6 +310,16 @@ def test_instant_snapshots_rest end end + def test_interconnect_attachment_groups_rest + skip unless Google::Cloud::Compute.interconnect_attachment_groups_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Compute.interconnect_attachment_groups do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Compute::V1::InterconnectAttachmentGroups::Rest::Client, client + end + end + def test_interconnect_attachments_rest skip unless Google::Cloud::Compute.interconnect_attachments_available? Gapic::Rest::ClientStub.stub :new, DummyStub.new do @@ -320,6 +330,16 @@ def test_interconnect_attachments_rest end end + def test_interconnect_groups_rest + skip unless Google::Cloud::Compute.interconnect_groups_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Compute.interconnect_groups do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Compute::V1::InterconnectGroups::Rest::Client, client + end + end + def test_interconnect_locations_rest skip unless Google::Cloud::Compute.interconnect_locations_available? Gapic::Rest::ClientStub.stub :new, DummyStub.new do @@ -780,6 +800,16 @@ def test_reservation_blocks_rest end end + def test_reservation_sub_blocks_rest + skip unless Google::Cloud::Compute.reservation_sub_blocks_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Compute.reservation_sub_blocks do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Compute::V1::ReservationSubBlocks::Rest::Client, client + end + end + def test_reservations_rest skip unless Google::Cloud::Compute.reservations_available? Gapic::Rest::ClientStub.stub :new, DummyStub.new do diff --git a/google-cloud-confidential_computing-v1/.owlbot-manifest.json b/google-cloud-confidential_computing-v1/.owlbot-manifest.json index fa2ec081df6d..5a80e8ca4143 100644 --- a/google-cloud-confidential_computing-v1/.owlbot-manifest.json +++ b/google-cloud-confidential_computing-v1/.owlbot-manifest.json @@ -40,6 +40,8 @@ "snippets/Gemfile", "snippets/confidential_computing/create_challenge.rb", "snippets/confidential_computing/verify_attestation.rb", + "snippets/confidential_computing/verify_confidential_gke.rb", + "snippets/confidential_computing/verify_confidential_space.rb", "snippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json", "test/google/cloud/confidential_computing/v1/confidential_computing_paths_test.rb", "test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb", diff --git a/google-cloud-confidential_computing-v1/gapic_metadata.json b/google-cloud-confidential_computing-v1/gapic_metadata.json index 0310e880ebdd..25632010ad78 100644 --- a/google-cloud-confidential_computing-v1/gapic_metadata.json +++ b/google-cloud-confidential_computing-v1/gapic_metadata.json @@ -19,6 +19,16 @@ "methods": [ "verify_attestation" ] + }, + "VerifyConfidentialSpace": { + "methods": [ + "verify_confidential_space" + ] + }, + "VerifyConfidentialGke": { + "methods": [ + "verify_confidential_gke" + ] } } } diff --git a/google-cloud-confidential_computing-v1/google-cloud-confidential_computing-v1.gemspec b/google-cloud-confidential_computing-v1/google-cloud-confidential_computing-v1.gemspec index ee782d10029f..41166b943558 100644 --- a/google-cloud-confidential_computing-v1/google-cloud-confidential_computing-v1.gemspec +++ b/google-cloud-confidential_computing-v1/google-cloud-confidential_computing-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb index bce26ff1d55d..2bc935a869c1 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/client.rb @@ -83,6 +83,16 @@ def self.configure initial_delay: 1.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14] } + default_config.rpcs.verify_confidential_space.timeout = 60.0 + default_config.rpcs.verify_confidential_space.retry_policy = { + initial_delay: 1.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.verify_confidential_gke.timeout = 60.0 + default_config.rpcs.verify_confidential_gke.retry_policy = { + initial_delay: 1.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14] + } + default_config end yield @configure if block_given? @@ -301,7 +311,8 @@ def create_challenge request, options = nil end ## - # Verifies the provided attestation info, returning a signed OIDC token. + # Verifies the provided attestation info, returning a signed attestation + # token. # # @overload verify_attestation(request, options = nil) # Pass arguments to `verify_attestation` via a request object, either of type @@ -409,6 +420,206 @@ def verify_attestation request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Verifies whether the provided attestation info is valid, returning a signed + # attestation token if so. + # + # @overload verify_confidential_space(request, options = nil) + # Pass arguments to `verify_confidential_space` via a request object, either of type + # {::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload verify_confidential_space(td_ccel: nil, tpm_attestation: nil, challenge: nil, gcp_credentials: nil, signed_entities: nil, gce_shielded_identity: nil, options: nil) + # Pass arguments to `verify_confidential_space` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param td_ccel [::Google::Cloud::ConfidentialComputing::V1::TdxCcelAttestation, ::Hash] + # Input only. A TDX with CCEL and RTMR Attestation Quote. + # + # Note: The following parameters are mutually exclusive: `td_ccel`, `tpm_attestation`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one. + # @param tpm_attestation [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation, ::Hash] + # Input only. The TPM-specific data provided by the attesting platform, + # used to populate any of the claims regarding platform state. + # + # Note: The following parameters are mutually exclusive: `tpm_attestation`, `td_ccel`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one. + # @param challenge [::String] + # Required. The name of the Challenge whose nonce was used to generate the + # attestation, in the format `projects/*/locations/*/challenges/*`. The + # provided Challenge will be consumed, and cannot be used again. + # @param gcp_credentials [::Google::Cloud::ConfidentialComputing::V1::GcpCredentials, ::Hash] + # Optional. Credentials used to populate the "emails" claim in the + # claims_token. If not present, token will not contain the "emails" claim. + # @param signed_entities [::Array<::Google::Cloud::ConfidentialComputing::V1::SignedEntity, ::Hash>] + # Optional. A list of signed entities containing container image signatures + # that can be used for server-side signature verification. + # @param gce_shielded_identity [::Google::Cloud::ConfidentialComputing::V1::GceShieldedIdentity, ::Hash] + # Optional. Information about the associated Compute Engine instance. + # Required for td_ccel requests only - tpm_attestation requests will provide + # this information in the attestation. + # @param options [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest::ConfidentialSpaceOptions, ::Hash] + # Optional. A collection of fields that modify the token output. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/confidential_computing/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new + # + # # Call the verify_confidential_space method. + # result = client.verify_confidential_space request + # + # # The returned object is of type Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse. + # p result + # + def verify_confidential_space request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.verify_confidential_space.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ConfidentialComputing::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.challenge + header_params["challenge"] = request.challenge + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.verify_confidential_space.timeout, + metadata: metadata, + retry_policy: @config.rpcs.verify_confidential_space.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @confidential_computing_stub.call_rpc :verify_confidential_space, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Verifies the provided Confidential GKE attestation info, returning a signed + # OIDC token. + # + # @overload verify_confidential_gke(request, options = nil) + # Pass arguments to `verify_confidential_gke` via a request object, either of type + # {::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload verify_confidential_gke(tpm_attestation: nil, challenge: nil) + # Pass arguments to `verify_confidential_gke` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param tpm_attestation [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation, ::Hash] + # The TPM-specific data provided by the attesting platform, used to + # populate any of the claims regarding platform state. + # @param challenge [::String] + # Required. The name of the Challenge whose nonce was used to generate the + # attestation, in the format projects/*/locations/*/challenges/*. The + # provided Challenge will be consumed, and cannot be used again. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/confidential_computing/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new + # + # # Call the verify_confidential_gke method. + # result = client.verify_confidential_gke request + # + # # The returned object is of type Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse. + # p result + # + def verify_confidential_gke request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.verify_confidential_gke.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ConfidentialComputing::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.challenge + header_params["challenge"] = request.challenge + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.verify_confidential_gke.timeout, + metadata: metadata, + retry_policy: @config.rpcs.verify_confidential_gke.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @confidential_computing_stub.call_rpc :verify_confidential_gke, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the ConfidentialComputing API. # @@ -585,6 +796,16 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :verify_attestation + ## + # RPC-specific configuration for `verify_confidential_space` + # @return [::Gapic::Config::Method] + # + attr_reader :verify_confidential_space + ## + # RPC-specific configuration for `verify_confidential_gke` + # @return [::Gapic::Config::Method] + # + attr_reader :verify_confidential_gke # @private def initialize parent_rpcs = nil @@ -592,6 +813,10 @@ def initialize parent_rpcs = nil @create_challenge = ::Gapic::Config::Method.new create_challenge_config verify_attestation_config = parent_rpcs.verify_attestation if parent_rpcs.respond_to? :verify_attestation @verify_attestation = ::Gapic::Config::Method.new verify_attestation_config + verify_confidential_space_config = parent_rpcs.verify_confidential_space if parent_rpcs.respond_to? :verify_confidential_space + @verify_confidential_space = ::Gapic::Config::Method.new verify_confidential_space_config + verify_confidential_gke_config = parent_rpcs.verify_confidential_gke if parent_rpcs.respond_to? :verify_confidential_gke + @verify_confidential_gke = ::Gapic::Config::Method.new verify_confidential_gke_config yield self if block_given? end diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb index 2a9cd17f8ca4..b3246e544c87 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/client.rb @@ -85,6 +85,16 @@ def self.configure initial_delay: 1.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14] } + default_config.rpcs.verify_confidential_space.timeout = 60.0 + default_config.rpcs.verify_confidential_space.retry_policy = { + initial_delay: 1.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.verify_confidential_gke.timeout = 60.0 + default_config.rpcs.verify_confidential_gke.retry_policy = { + initial_delay: 1.0, max_delay: 60.0, multiplier: 1.3, retry_codes: [14] + } + default_config end yield @configure if block_given? @@ -288,7 +298,8 @@ def create_challenge request, options = nil end ## - # Verifies the provided attestation info, returning a signed OIDC token. + # Verifies the provided attestation info, returning a signed attestation + # token. # # @overload verify_attestation(request, options = nil) # Pass arguments to `verify_attestation` via a request object, either of type @@ -389,6 +400,192 @@ def verify_attestation request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Verifies whether the provided attestation info is valid, returning a signed + # attestation token if so. + # + # @overload verify_confidential_space(request, options = nil) + # Pass arguments to `verify_confidential_space` via a request object, either of type + # {::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload verify_confidential_space(td_ccel: nil, tpm_attestation: nil, challenge: nil, gcp_credentials: nil, signed_entities: nil, gce_shielded_identity: nil, options: nil) + # Pass arguments to `verify_confidential_space` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param td_ccel [::Google::Cloud::ConfidentialComputing::V1::TdxCcelAttestation, ::Hash] + # Input only. A TDX with CCEL and RTMR Attestation Quote. + # + # Note: The following parameters are mutually exclusive: `td_ccel`, `tpm_attestation`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one. + # @param tpm_attestation [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation, ::Hash] + # Input only. The TPM-specific data provided by the attesting platform, + # used to populate any of the claims regarding platform state. + # + # Note: The following parameters are mutually exclusive: `tpm_attestation`, `td_ccel`. At most one of these parameters can be set. If more than one is set, only one will be used, and it is not defined which one. + # @param challenge [::String] + # Required. The name of the Challenge whose nonce was used to generate the + # attestation, in the format `projects/*/locations/*/challenges/*`. The + # provided Challenge will be consumed, and cannot be used again. + # @param gcp_credentials [::Google::Cloud::ConfidentialComputing::V1::GcpCredentials, ::Hash] + # Optional. Credentials used to populate the "emails" claim in the + # claims_token. If not present, token will not contain the "emails" claim. + # @param signed_entities [::Array<::Google::Cloud::ConfidentialComputing::V1::SignedEntity, ::Hash>] + # Optional. A list of signed entities containing container image signatures + # that can be used for server-side signature verification. + # @param gce_shielded_identity [::Google::Cloud::ConfidentialComputing::V1::GceShieldedIdentity, ::Hash] + # Optional. Information about the associated Compute Engine instance. + # Required for td_ccel requests only - tpm_attestation requests will provide + # this information in the attestation. + # @param options [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest::ConfidentialSpaceOptions, ::Hash] + # Optional. A collection of fields that modify the token output. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/confidential_computing/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new + # + # # Call the verify_confidential_space method. + # result = client.verify_confidential_space request + # + # # The returned object is of type Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse. + # p result + # + def verify_confidential_space request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.verify_confidential_space.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ConfidentialComputing::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.verify_confidential_space.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.verify_confidential_space.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @confidential_computing_stub.verify_confidential_space request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Verifies the provided Confidential GKE attestation info, returning a signed + # OIDC token. + # + # @overload verify_confidential_gke(request, options = nil) + # Pass arguments to `verify_confidential_gke` via a request object, either of type + # {::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload verify_confidential_gke(tpm_attestation: nil, challenge: nil) + # Pass arguments to `verify_confidential_gke` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param tpm_attestation [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation, ::Hash] + # The TPM-specific data provided by the attesting platform, used to + # populate any of the claims regarding platform state. + # @param challenge [::String] + # Required. The name of the Challenge whose nonce was used to generate the + # attestation, in the format projects/*/locations/*/challenges/*. The + # provided Challenge will be consumed, and cannot be used again. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/confidential_computing/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new + # + # # Call the verify_confidential_gke method. + # result = client.verify_confidential_gke request + # + # # The returned object is of type Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse. + # p result + # + def verify_confidential_gke request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.verify_confidential_gke.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::ConfidentialComputing::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.verify_confidential_gke.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.verify_confidential_gke.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @confidential_computing_stub.verify_confidential_gke request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the ConfidentialComputing REST API. # @@ -552,6 +749,16 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :verify_attestation + ## + # RPC-specific configuration for `verify_confidential_space` + # @return [::Gapic::Config::Method] + # + attr_reader :verify_confidential_space + ## + # RPC-specific configuration for `verify_confidential_gke` + # @return [::Gapic::Config::Method] + # + attr_reader :verify_confidential_gke # @private def initialize parent_rpcs = nil @@ -559,6 +766,10 @@ def initialize parent_rpcs = nil @create_challenge = ::Gapic::Config::Method.new create_challenge_config verify_attestation_config = parent_rpcs.verify_attestation if parent_rpcs.respond_to? :verify_attestation @verify_attestation = ::Gapic::Config::Method.new verify_attestation_config + verify_confidential_space_config = parent_rpcs.verify_confidential_space if parent_rpcs.respond_to? :verify_confidential_space + @verify_confidential_space = ::Gapic::Config::Method.new verify_confidential_space_config + verify_confidential_gke_config = parent_rpcs.verify_confidential_gke if parent_rpcs.respond_to? :verify_confidential_gke + @verify_confidential_gke = ::Gapic::Config::Method.new verify_confidential_gke_config yield self if block_given? end diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/service_stub.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/service_stub.rb index f92aa3261673..c4d874928697 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/service_stub.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidential_computing/v1/confidential_computing/rest/service_stub.rb @@ -153,6 +153,86 @@ def verify_attestation request_pb, options = nil end end + ## + # Baseline implementation for the verify_confidential_space REST call + # + # @param request_pb [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse] + # A result object deserialized from the server's reply + def verify_confidential_space request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_verify_confidential_space_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "verify_confidential_space", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the verify_confidential_gke REST call + # + # @param request_pb [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse] + # A result object deserialized from the server's reply + def verify_confidential_gke request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_verify_confidential_gke_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "verify_confidential_gke", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -196,6 +276,50 @@ def self.transcode_verify_attestation_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the verify_confidential_space REST call + # + # @param request_pb [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_verify_confidential_space_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{challenge}:verifyConfidentialSpace", + body: "*", + matches: [ + ["challenge", %r{^projects/[^/]+/locations/[^/]+/challenges/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the verify_confidential_gke REST call + # + # @param request_pb [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_verify_confidential_gke_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{challenge}:verifyConfidentialGke", + body: "*", + matches: [ + ["challenge", %r{^projects/[^/]+/locations/[^/]+/challenges/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb index 37eb85a969af..34d54ef07bd9 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_pb.rb @@ -12,7 +12,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n3google/cloud/confidentialcomputing/v1/service.proto\x12%google.cloud.confidentialcomputing.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xa5\x02\n\tChallenge\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04used\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03\x12\x16\n\ttpm_nonce\x18\x06 \x01(\tB\x03\xe0\x41\x03:n\xea\x41k\n.confidentialcomputing.googleapis.com/Challenge\x12\x39projects/{project}/locations/{location}/challenges/{uuid}\"\x9d\x01\n\x16\x43reateChallengeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12H\n\tchallenge\x18\x02 \x01(\x0b\x32\x30.google.cloud.confidentialcomputing.v1.ChallengeB\x03\xe0\x41\x02\"\x9f\x05\n\x18VerifyAttestationRequest\x12Q\n\x07td_ccel\x18\x06 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x01H\x00\x12\\\n\x13sev_snp_attestation\x18\x07 \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.SevSnpAttestationB\x03\xe0\x41\x01H\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12S\n\x0ftpm_attestation\x18\x03 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x02\x12\x62\n\x17\x63onfidential_space_info\x18\x04 \x01(\x0b\x32<.google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfoB\x03\xe0\x41\x01\x12O\n\rtoken_options\x18\x05 \x01(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.TokenOptionsB\x03\xe0\x41\x01\x12\x15\n\x08\x61ttester\x18\x08 \x01(\tB\x03\xe0\x41\x01\x42\x11\n\x0ftee_attestation\"\x83\x01\n\x12TdxCcelAttestation\x12\x1c\n\x0f\x63\x63\x65l_acpi_table\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tccel_data\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12 \n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08td_quote\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\"?\n\x11SevSnpAttestation\x12\x13\n\x06report\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08\x61ux_blob\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\"l\n\x19VerifyAttestationResponse\x12\x1e\n\x11oidc_claims_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x03 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"3\n\x0eGcpCredentials\x12!\n\x19service_account_id_tokens\x18\x02 \x03(\t\"\xa6\x05\n\x0cTokenOptions\x12v\n\x1a\x61ws_principal_tags_options\x18\x04 \x01(\x0b\x32K.google.cloud.confidentialcomputing.v1.TokenOptions.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12I\n\ntoken_type\x18\x03 \x01(\x0e\x32\x30.google.cloud.confidentialcomputing.v1.TokenTypeB\x03\xe0\x41\x01\x1a\x91\x03\n\x17\x41wsPrincipalTagsOptions\x12\x85\x01\n\x16\x61llowed_principal_tags\x18\x01 \x01(\x0b\x32`.google.cloud.confidentialcomputing.v1.TokenOptions.AwsPrincipalTagsOptions.AllowedPrincipalTagsB\x03\xe0\x41\x01\x1a\xed\x01\n\x14\x41llowedPrincipalTags\x12\xa2\x01\n\x1a\x63ontainer_image_signatures\x18\x01 \x01(\x0b\x32y.google.cloud.confidentialcomputing.v1.TokenOptions.AwsPrincipalTagsOptions.AllowedPrincipalTags.ContainerImageSignaturesB\x03\xe0\x41\x01\x1a\x30\n\x18\x43ontainerImageSignatures\x12\x14\n\x07key_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01\x42\x14\n\x12token_type_options\"\x8f\x03\n\x0eTpmAttestation\x12K\n\x06quotes\x18\x01 \x03(\x0b\x32;.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote\x12\x15\n\rtcg_event_log\x18\x02 \x01(\x0c\x12\x1b\n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61k_cert\x18\x04 \x01(\x0c\x12\x12\n\ncert_chain\x18\x05 \x03(\x0c\x1a\xd6\x01\n\x05Quote\x12\x11\n\thash_algo\x18\x01 \x01(\x05\x12^\n\npcr_values\x18\x02 \x03(\x0b\x32J.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry\x12\x11\n\traw_quote\x18\x03 \x01(\x0c\x12\x15\n\rraw_signature\x18\x04 \x01(\x0c\x1a\x30\n\x0ePcrValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"j\n\x15\x43onfidentialSpaceInfo\x12Q\n\x0fsigned_entities\x18\x01 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\"w\n\x0cSignedEntity\x12g\n\x1a\x63ontainer_image_signatures\x18\x01 \x03(\x0b\x32>.google.cloud.confidentialcomputing.v1.ContainerImageSignatureB\x03\xe0\x41\x01\"\xaf\x01\n\x17\x43ontainerImageSignature\x12\x14\n\x07payload\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tsignature\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x17\n\npublic_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12M\n\x07sig_alg\x18\x04 \x01(\x0e\x32\x37.google.cloud.confidentialcomputing.v1.SigningAlgorithmB\x03\xe0\x41\x01*\x7f\n\x10SigningAlgorithm\x12!\n\x1dSIGNING_ALGORITHM_UNSPECIFIED\x10\x00\x12\x15\n\x11RSASSA_PSS_SHA256\x10\x01\x12\x1a\n\x16RSASSA_PKCS1V15_SHA256\x10\x02\x12\x15\n\x11\x45\x43\x44SA_P256_SHA256\x10\x03*\x8e\x01\n\tTokenType\x12\x1a\n\x16TOKEN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fTOKEN_TYPE_OIDC\x10\x01\x12\x12\n\x0eTOKEN_TYPE_PKI\x10\x02\x12\x1a\n\x16TOKEN_TYPE_LIMITED_AWS\x10\x03\x12 \n\x1cTOKEN_TYPE_AWS_PRINCIPALTAGS\x10\x04\x32\xb7\x04\n\x15\x43onfidentialComputing\x12\xd8\x01\n\x0f\x43reateChallenge\x12=.google.cloud.confidentialcomputing.v1.CreateChallengeRequest\x1a\x30.google.cloud.confidentialcomputing.v1.Challenge\"T\xda\x41\x10parent,challenge\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/challenges:\tchallenge\x12\xe8\x01\n\x11VerifyAttestation\x12?.google.cloud.confidentialcomputing.v1.VerifyAttestationRequest\x1a@.google.cloud.confidentialcomputing.v1.VerifyAttestationResponse\"P\x82\xd3\xe4\x93\x02J\"E/v1/{challenge=projects/*/locations/*/challenges/*}:verifyAttestation:\x01*\x1aX\xca\x41$confidentialcomputing.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x97\x02\n)com.google.cloud.confidentialcomputing.v1B\x0cServiceProtoP\x01Z_cloud.google.com/go/confidentialcomputing/apiv1/confidentialcomputingpb;confidentialcomputingpb\xaa\x02%Google.Cloud.ConfidentialComputing.V1\xca\x02%Google\\Cloud\\ConfidentialComputing\\V1\xea\x02(Google::Cloud::ConfidentialComputing::V1b\x06proto3" +descriptor_data = "\n3google/cloud/confidentialcomputing/v1/service.proto\x12%google.cloud.confidentialcomputing.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xa5\x02\n\tChallenge\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04used\x18\x04 \x01(\x08\x42\x03\xe0\x41\x03\x12\x16\n\ttpm_nonce\x18\x06 \x01(\tB\x03\xe0\x41\x03:n\xea\x41k\n.confidentialcomputing.googleapis.com/Challenge\x12\x39projects/{project}/locations/{location}/challenges/{uuid}\"\x9d\x01\n\x16\x43reateChallengeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12H\n\tchallenge\x18\x02 \x01(\x0b\x32\x30.google.cloud.confidentialcomputing.v1.ChallengeB\x03\xe0\x41\x02\"\x9f\x05\n\x18VerifyAttestationRequest\x12Q\n\x07td_ccel\x18\x06 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x01H\x00\x12\\\n\x13sev_snp_attestation\x18\x07 \x01(\x0b\x32\x38.google.cloud.confidentialcomputing.v1.SevSnpAttestationB\x03\xe0\x41\x01H\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12S\n\x0ftpm_attestation\x18\x03 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x02\x12\x62\n\x17\x63onfidential_space_info\x18\x04 \x01(\x0b\x32<.google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfoB\x03\xe0\x41\x01\x12O\n\rtoken_options\x18\x05 \x01(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.TokenOptionsB\x03\xe0\x41\x01\x12\x15\n\x08\x61ttester\x18\x08 \x01(\tB\x03\xe0\x41\x01\x42\x11\n\x0ftee_attestation\"\x83\x01\n\x12TdxCcelAttestation\x12\x1c\n\x0f\x63\x63\x65l_acpi_table\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tccel_data\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12 \n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08td_quote\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\"?\n\x11SevSnpAttestation\x12\x13\n\x06report\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x15\n\x08\x61ux_blob\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\"l\n\x19VerifyAttestationResponse\x12\x1e\n\x11oidc_claims_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x03 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"3\n\x0eGcpCredentials\x12!\n\x19service_account_id_tokens\x18\x02 \x03(\t\"\x85\x02\n\x0cTokenOptions\x12i\n\x1a\x61ws_principal_tags_options\x18\x04 \x01(\x0b\x32>.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12I\n\ntoken_type\x18\x03 \x01(\x0e\x32\x30.google.cloud.confidentialcomputing.v1.TokenTypeB\x03\xe0\x41\x01\x42\x14\n\x12token_type_options\"\xf6\x02\n\x17\x41wsPrincipalTagsOptions\x12x\n\x16\x61llowed_principal_tags\x18\x01 \x01(\x0b\x32S.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTagsB\x03\xe0\x41\x01\x1a\xe0\x01\n\x14\x41llowedPrincipalTags\x12\x95\x01\n\x1a\x63ontainer_image_signatures\x18\x01 \x01(\x0b\x32l.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTags.ContainerImageSignaturesB\x03\xe0\x41\x01\x1a\x30\n\x18\x43ontainerImageSignatures\x12\x14\n\x07key_ids\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\x8f\x03\n\x0eTpmAttestation\x12K\n\x06quotes\x18\x01 \x03(\x0b\x32;.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote\x12\x15\n\rtcg_event_log\x18\x02 \x01(\x0c\x12\x1b\n\x13\x63\x61nonical_event_log\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61k_cert\x18\x04 \x01(\x0c\x12\x12\n\ncert_chain\x18\x05 \x03(\x0c\x1a\xd6\x01\n\x05Quote\x12\x11\n\thash_algo\x18\x01 \x01(\x05\x12^\n\npcr_values\x18\x02 \x03(\x0b\x32J.google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry\x12\x11\n\traw_quote\x18\x03 \x01(\x0c\x12\x15\n\rraw_signature\x18\x04 \x01(\x0c\x1a\x30\n\x0ePcrValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"j\n\x15\x43onfidentialSpaceInfo\x12Q\n\x0fsigned_entities\x18\x01 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\"w\n\x0cSignedEntity\x12g\n\x1a\x63ontainer_image_signatures\x18\x01 \x03(\x0b\x32>.google.cloud.confidentialcomputing.v1.ContainerImageSignatureB\x03\xe0\x41\x01\"\xaf\x01\n\x17\x43ontainerImageSignature\x12\x14\n\x07payload\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tsignature\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x17\n\npublic_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12M\n\x07sig_alg\x18\x04 \x01(\x0e\x32\x37.google.cloud.confidentialcomputing.v1.SigningAlgorithmB\x03\xe0\x41\x01\"\x96\x08\n\x1eVerifyConfidentialSpaceRequest\x12Q\n\x07td_ccel\x18\x03 \x01(\x0b\x32\x39.google.cloud.confidentialcomputing.v1.TdxCcelAttestationB\x03\xe0\x41\x04H\x00\x12U\n\x0ftpm_attestation\x18\x04 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationB\x03\xe0\x41\x04H\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/Challenge\x12S\n\x0fgcp_credentials\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.GcpCredentialsB\x03\xe0\x41\x01\x12Q\n\x0fsigned_entities\x18\x05 \x03(\x0b\x32\x33.google.cloud.confidentialcomputing.v1.SignedEntityB\x03\xe0\x41\x01\x12^\n\x15gce_shielded_identity\x18\x06 \x01(\x0b\x32:.google.cloud.confidentialcomputing.v1.GceShieldedIdentityB\x03\xe0\x41\x01\x12t\n\x07options\x18\x07 \x01(\x0b\x32^.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest.ConfidentialSpaceOptionsB\x03\xe0\x41\x01\x1a\xed\x02\n\x18\x43onfidentialSpaceOptions\x12i\n\x1a\x61ws_principal_tags_options\x18\x05 \x01(\x0b\x32>.google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptionsB\x03\xe0\x41\x01H\x00\x12\x15\n\x08\x61udience\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12O\n\rtoken_profile\x18\x02 \x01(\x0e\x32\x33.google.cloud.confidentialcomputing.v1.TokenProfileB\x03\xe0\x41\x01\x12\x12\n\x05nonce\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12Q\n\x0esignature_type\x18\x04 \x01(\x0e\x32\x34.google.cloud.confidentialcomputing.v1.SignatureTypeB\x03\xe0\x41\x01\x42\x17\n\x15token_profile_optionsB\x11\n\x0ftee_attestation\"G\n\x13GceShieldedIdentity\x12\x14\n\x07\x61k_cert\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x1a\n\rak_cert_chain\x18\x02 \x03(\x0c\x42\x03\xe0\x41\x01\"r\n\x1fVerifyConfidentialSpaceResponse\x12\x1e\n\x11\x61ttestation_token\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12/\n\x0epartial_errors\x18\x02 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"\xce\x01\n\x1cVerifyConfidentialGkeRequest\x12P\n\x0ftpm_attestation\x18\x02 \x01(\x0b\x32\x35.google.cloud.confidentialcomputing.v1.TpmAttestationH\x00\x12I\n\tchallenge\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.confidentialcomputing.googleapis.com/ChallengeB\x11\n\x0ftee_attestation\"?\n\x1dVerifyConfidentialGkeResponse\x12\x1e\n\x11\x61ttestation_token\x18\x01 \x01(\tB\x03\xe0\x41\x03*\x7f\n\x10SigningAlgorithm\x12!\n\x1dSIGNING_ALGORITHM_UNSPECIFIED\x10\x00\x12\x15\n\x11RSASSA_PSS_SHA256\x10\x01\x12\x1a\n\x16RSASSA_PKCS1V15_SHA256\x10\x02\x12\x15\n\x11\x45\x43\x44SA_P256_SHA256\x10\x03*\x8e\x01\n\tTokenType\x12\x1a\n\x16TOKEN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fTOKEN_TYPE_OIDC\x10\x01\x12\x12\n\x0eTOKEN_TYPE_PKI\x10\x02\x12\x1a\n\x16TOKEN_TYPE_LIMITED_AWS\x10\x03\x12 \n\x1cTOKEN_TYPE_AWS_PRINCIPALTAGS\x10\x04*`\n\rSignatureType\x12\x1e\n\x1aSIGNATURE_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13SIGNATURE_TYPE_OIDC\x10\x01\x12\x16\n\x12SIGNATURE_TYPE_PKI\x10\x02*c\n\x0cTokenProfile\x12\x1d\n\x19TOKEN_PROFILE_UNSPECIFIED\x10\x00\x12\x1d\n\x19TOKEN_PROFILE_DEFAULT_EAT\x10\x01\x12\x15\n\x11TOKEN_PROFILE_AWS\x10\x02\x32\xb5\x08\n\x15\x43onfidentialComputing\x12\xd8\x01\n\x0f\x43reateChallenge\x12=.google.cloud.confidentialcomputing.v1.CreateChallengeRequest\x1a\x30.google.cloud.confidentialcomputing.v1.Challenge\"T\xda\x41\x10parent,challenge\x82\xd3\xe4\x93\x02;\"./v1/{parent=projects/*/locations/*}/challenges:\tchallenge\x12\xe8\x01\n\x11VerifyAttestation\x12?.google.cloud.confidentialcomputing.v1.VerifyAttestationRequest\x1a@.google.cloud.confidentialcomputing.v1.VerifyAttestationResponse\"P\x82\xd3\xe4\x93\x02J\"E/v1/{challenge=projects/*/locations/*/challenges/*}:verifyAttestation:\x01*\x12\x80\x02\n\x17VerifyConfidentialSpace\x12\x45.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest\x1a\x46.google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{challenge=projects/*/locations/*/challenges/*}:verifyConfidentialSpace:\x01*\x12\xf8\x01\n\x15VerifyConfidentialGke\x12\x43.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest\x1a\x44.google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{challenge=projects/*/locations/*/challenges/*}:verifyConfidentialGke:\x01*\x1aX\xca\x41$confidentialcomputing.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x97\x02\n)com.google.cloud.confidentialcomputing.v1B\x0cServiceProtoP\x01Z_cloud.google.com/go/confidentialcomputing/apiv1/confidentialcomputingpb;confidentialcomputingpb\xaa\x02%Google.Cloud.ConfidentialComputing.V1\xca\x02%Google\\Cloud\\ConfidentialComputing\\V1\xea\x02(Google::Cloud::ConfidentialComputing::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -52,16 +52,24 @@ module V1 VerifyAttestationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyAttestationResponse").msgclass GcpCredentials = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.GcpCredentials").msgclass TokenOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenOptions").msgclass - TokenOptions::AwsPrincipalTagsOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenOptions.AwsPrincipalTagsOptions").msgclass - TokenOptions::AwsPrincipalTagsOptions::AllowedPrincipalTags = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenOptions.AwsPrincipalTagsOptions.AllowedPrincipalTags").msgclass - TokenOptions::AwsPrincipalTagsOptions::AllowedPrincipalTags::ContainerImageSignatures = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenOptions.AwsPrincipalTagsOptions.AllowedPrincipalTags.ContainerImageSignatures").msgclass + AwsPrincipalTagsOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions").msgclass + AwsPrincipalTagsOptions::AllowedPrincipalTags = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTags").msgclass + AwsPrincipalTagsOptions::AllowedPrincipalTags::ContainerImageSignatures = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.AwsPrincipalTagsOptions.AllowedPrincipalTags.ContainerImageSignatures").msgclass TpmAttestation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TpmAttestation").msgclass TpmAttestation::Quote = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TpmAttestation.Quote").msgclass ConfidentialSpaceInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo").msgclass SignedEntity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.SignedEntity").msgclass ContainerImageSignature = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.ContainerImageSignature").msgclass + VerifyConfidentialSpaceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest").msgclass + VerifyConfidentialSpaceRequest::ConfidentialSpaceOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceRequest.ConfidentialSpaceOptions").msgclass + GceShieldedIdentity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.GceShieldedIdentity").msgclass + VerifyConfidentialSpaceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialSpaceResponse").msgclass + VerifyConfidentialGkeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeRequest").msgclass + VerifyConfidentialGkeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.VerifyConfidentialGkeResponse").msgclass SigningAlgorithm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.SigningAlgorithm").enummodule TokenType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenType").enummodule + SignatureType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.SignatureType").enummodule + TokenProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.confidentialcomputing.v1.TokenProfile").enummodule end end end diff --git a/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_services_pb.rb b/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_services_pb.rb index 66768d9f6ed4..f8dbfe3ee79c 100644 --- a/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_services_pb.rb +++ b/google-cloud-confidential_computing-v1/lib/google/cloud/confidentialcomputing/v1/service_services_pb.rb @@ -35,8 +35,15 @@ class Service # Creates a new Challenge in a given project and location. rpc :CreateChallenge, ::Google::Cloud::ConfidentialComputing::V1::CreateChallengeRequest, ::Google::Cloud::ConfidentialComputing::V1::Challenge - # Verifies the provided attestation info, returning a signed OIDC token. + # Verifies the provided attestation info, returning a signed attestation + # token. rpc :VerifyAttestation, ::Google::Cloud::ConfidentialComputing::V1::VerifyAttestationRequest, ::Google::Cloud::ConfidentialComputing::V1::VerifyAttestationResponse + # Verifies whether the provided attestation info is valid, returning a signed + # attestation token if so. + rpc :VerifyConfidentialSpace, ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest, ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse + # Verifies the provided Confidential GKE attestation info, returning a signed + # OIDC token. + rpc :VerifyConfidentialGke, ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest, ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse end Stub = Service.rpc_stub_class diff --git a/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb b/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb index c1456248c50e..c15d060c888b 100644 --- a/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb +++ b/google-cloud-confidential_computing-v1/proto_docs/google/cloud/confidentialcomputing/v1/service.rb @@ -58,8 +58,8 @@ class CreateChallengeRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # A request for an OIDC token, providing all the necessary information needed - # for this service to verify the platform state of the requestor. + # A request for an attestation token, providing all the necessary information + # needed for this service to verify the platform state of the requestor. # @!attribute [rw] td_ccel # @return [::Google::Cloud::ConfidentialComputing::V1::TdxCcelAttestation] # Optional. A TDX with CCEL and RTMR Attestation Quote. @@ -141,7 +141,7 @@ class SevSnpAttestation end # A response once an attestation has been successfully verified, containing a - # signed OIDC token. + # signed attestation token. # @!attribute [r] oidc_claims_token # @return [::String] # Output only. Same as claims_token, but as a string. @@ -166,8 +166,8 @@ class GcpCredentials # Options to modify claims in the token to generate custom-purpose tokens. # @!attribute [rw] aws_principal_tags_options - # @return [::Google::Cloud::ConfidentialComputing::V1::TokenOptions::AwsPrincipalTagsOptions] - # Optional. Options for the Limited AWS token type. + # @return [::Google::Cloud::ConfidentialComputing::V1::AwsPrincipalTagsOptions] + # Optional. Options for AWS token type. # @!attribute [rw] audience # @return [::String] # Optional. Optional string to issue the token with a custom audience claim. @@ -183,35 +183,35 @@ class GcpCredentials class TokenOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + end - # Token options that only apply to the AWS Principal Tags token type. - # @!attribute [rw] allowed_principal_tags - # @return [::Google::Cloud::ConfidentialComputing::V1::TokenOptions::AwsPrincipalTagsOptions::AllowedPrincipalTags] - # Optional. Principal tags to allow in the token. - class AwsPrincipalTagsOptions + # Token options that only apply to the AWS Principal Tags token type. + # @!attribute [rw] allowed_principal_tags + # @return [::Google::Cloud::ConfidentialComputing::V1::AwsPrincipalTagsOptions::AllowedPrincipalTags] + # Optional. Principal tags to allow in the token. + class AwsPrincipalTagsOptions + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Allowed principal tags is used to define what principal tags will be + # placed in the token. + # @!attribute [rw] container_image_signatures + # @return [::Google::Cloud::ConfidentialComputing::V1::AwsPrincipalTagsOptions::AllowedPrincipalTags::ContainerImageSignatures] + # Optional. Container image signatures allowed in the token. + class AllowedPrincipalTags include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Allowed principal tags is used to define what principal tags will be - # placed in the token. - # @!attribute [rw] container_image_signatures - # @return [::Google::Cloud::ConfidentialComputing::V1::TokenOptions::AwsPrincipalTagsOptions::AllowedPrincipalTags::ContainerImageSignatures] - # Optional. Container image signatures allowed in the token. - class AllowedPrincipalTags + # Allowed Container Image Signatures. Key IDs are required to allow + # this claim to fit within the narrow AWS IAM restrictions. + # @!attribute [rw] key_ids + # @return [::Array<::String>] + # Optional. List of key ids to filter into the Principal tags. Only keys + # that have been validated and added to the token will be filtered into + # principal tags. Unrecognized key ids will be ignored. + class ContainerImageSignatures include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - - # Allowed Container Image Signatures. Key IDs are required to allow this - # claim to fit within the narrow AWS IAM restrictions. - # @!attribute [rw] key_ids - # @return [::Array<::String>] - # Optional. List of key ids to filter into the Principal tags. Only - # keys that have been validated and added to the token will be filtered - # into principal tags. Unrecognized key ids will be ignored. - class ContainerImageSignatures - include ::Google::Protobuf::MessageExts - extend ::Google::Protobuf::MessageExts::ClassMethods - end end end end @@ -321,6 +321,133 @@ class ContainerImageSignature extend ::Google::Protobuf::MessageExts::ClassMethods end + # A request for an attestation token, providing all the necessary information + # needed for this service to verify the platform state of the requestor. + # @!attribute [rw] td_ccel + # @return [::Google::Cloud::ConfidentialComputing::V1::TdxCcelAttestation] + # Input only. A TDX with CCEL and RTMR Attestation Quote. + # + # Note: The following fields are mutually exclusive: `td_ccel`, `tpm_attestation`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] tpm_attestation + # @return [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation] + # Input only. The TPM-specific data provided by the attesting platform, + # used to populate any of the claims regarding platform state. + # + # Note: The following fields are mutually exclusive: `tpm_attestation`, `td_ccel`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] challenge + # @return [::String] + # Required. The name of the Challenge whose nonce was used to generate the + # attestation, in the format `projects/*/locations/*/challenges/*`. The + # provided Challenge will be consumed, and cannot be used again. + # @!attribute [rw] gcp_credentials + # @return [::Google::Cloud::ConfidentialComputing::V1::GcpCredentials] + # Optional. Credentials used to populate the "emails" claim in the + # claims_token. If not present, token will not contain the "emails" claim. + # @!attribute [rw] signed_entities + # @return [::Array<::Google::Cloud::ConfidentialComputing::V1::SignedEntity>] + # Optional. A list of signed entities containing container image signatures + # that can be used for server-side signature verification. + # @!attribute [rw] gce_shielded_identity + # @return [::Google::Cloud::ConfidentialComputing::V1::GceShieldedIdentity] + # Optional. Information about the associated Compute Engine instance. + # Required for td_ccel requests only - tpm_attestation requests will provide + # this information in the attestation. + # @!attribute [rw] options + # @return [::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest::ConfidentialSpaceOptions] + # Optional. A collection of fields that modify the token output. + class VerifyConfidentialSpaceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Token options for Confidential Space attestation. + # @!attribute [rw] aws_principal_tags_options + # @return [::Google::Cloud::ConfidentialComputing::V1::AwsPrincipalTagsOptions] + # Optional. Options for the AWS token type. + # @!attribute [rw] audience + # @return [::String] + # Optional. Optional string to issue the token with a custom audience + # claim. Required if custom nonces are specified. + # @!attribute [rw] token_profile + # @return [::Google::Cloud::ConfidentialComputing::V1::TokenProfile] + # Optional. Optional specification for token claims profile. + # @!attribute [rw] nonce + # @return [::Array<::String>] + # Optional. Optional parameter to place one or more nonces in the eat_nonce + # claim in the output token. The minimum size for JSON-encoded EATs is 10 + # bytes and the maximum size is 74 bytes. + # @!attribute [rw] signature_type + # @return [::Google::Cloud::ConfidentialComputing::V1::SignatureType] + # Optional. Optional specification for how to sign the attestation token. + # Defaults to SIGNATURE_TYPE_OIDC if unspecified. + class ConfidentialSpaceOptions + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # GceShieldedIdentity contains information about a Compute Engine instance. + # @!attribute [rw] ak_cert + # @return [::String] + # Optional. DER-encoded X.509 certificate of the Attestation Key (otherwise + # known as an AK or a TPM restricted signing key) used to generate the + # quotes. + # @!attribute [rw] ak_cert_chain + # @return [::Array<::String>] + # Optional. List of DER-encoded X.509 certificates which, together with the + # ak_cert, chain back to a trusted Root Certificate. + class GceShieldedIdentity + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # VerifyConfidentialSpaceResponse is returned once a Confidential Space + # attestation has been successfully verified, containing a signed token. + # @!attribute [r] attestation_token + # @return [::String] + # Output only. The attestation token issued by this service. It contains + # specific platform claims based on the contents of the provided attestation. + # @!attribute [r] partial_errors + # @return [::Array<::Google::Rpc::Status>] + # Output only. A list of messages that carry the partial error details + # related to VerifyConfidentialSpace. This field is populated by errors + # during container image signature verification, which may reflect problems + # in the provided image signatures. This does not block the issuing of an + # attestation token, but the token will not contain claims for the failed + # image signatures. + class VerifyConfidentialSpaceResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A request for an attestation token, providing all the necessary information + # needed for this service to verify Confidential GKE platform state of the + # requestor. + # @!attribute [rw] tpm_attestation + # @return [::Google::Cloud::ConfidentialComputing::V1::TpmAttestation] + # The TPM-specific data provided by the attesting platform, used to + # populate any of the claims regarding platform state. + # @!attribute [rw] challenge + # @return [::String] + # Required. The name of the Challenge whose nonce was used to generate the + # attestation, in the format projects/*/locations/*/challenges/*. The + # provided Challenge will be consumed, and cannot be used again. + class VerifyConfidentialGkeRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # VerifyConfidentialGkeResponse response is returened once a Confidential GKE + # attestation has been successfully verified, containing a signed OIDC token. + # @!attribute [r] attestation_token + # @return [::String] + # Output only. The attestation token issued by this service for Confidential + # GKE. It contains specific platform claims based on the contents of the + # provided attestation. + class VerifyConfidentialGkeResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # SigningAlgorithm enumerates all the supported signing algorithms. module SigningAlgorithm # Unspecified signing algorithm. @@ -354,6 +481,30 @@ module TokenType # Principal-tag-based token for AWS integration TOKEN_TYPE_AWS_PRINCIPALTAGS = 4 end + + # SignatureType enumerates supported signature types for attestation tokens. + module SignatureType + # Unspecified signature type. + SIGNATURE_TYPE_UNSPECIFIED = 0 + + # Google OIDC signature. + SIGNATURE_TYPE_OIDC = 1 + + # Public Key Infrastructure (PKI) signature. + SIGNATURE_TYPE_PKI = 2 + end + + # TokenProfile enumerates the supported token claims profiles. + module TokenProfile + # Unspecified token profile. + TOKEN_PROFILE_UNSPECIFIED = 0 + + # EAT claims. + TOKEN_PROFILE_DEFAULT_EAT = 1 + + # AWS Principal Tags claims. + TOKEN_PROFILE_AWS = 2 + end end end end diff --git a/google-cloud-confidential_computing-v1/snippets/confidential_computing/verify_confidential_gke.rb b/google-cloud-confidential_computing-v1/snippets/confidential_computing/verify_confidential_gke.rb new file mode 100644 index 000000000000..8c39bd52f831 --- /dev/null +++ b/google-cloud-confidential_computing-v1/snippets/confidential_computing/verify_confidential_gke.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START confidentialcomputing_v1_generated_ConfidentialComputing_VerifyConfidentialGke_sync] +require "google/cloud/confidential_computing/v1" + +## +# Snippet for the verify_confidential_gke call in the ConfidentialComputing service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client#verify_confidential_gke. +# +def verify_confidential_gke + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new + + # Call the verify_confidential_gke method. + result = client.verify_confidential_gke request + + # The returned object is of type Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse. + p result +end +# [END confidentialcomputing_v1_generated_ConfidentialComputing_VerifyConfidentialGke_sync] diff --git a/google-cloud-confidential_computing-v1/snippets/confidential_computing/verify_confidential_space.rb b/google-cloud-confidential_computing-v1/snippets/confidential_computing/verify_confidential_space.rb new file mode 100644 index 000000000000..4396f6418b8f --- /dev/null +++ b/google-cloud-confidential_computing-v1/snippets/confidential_computing/verify_confidential_space.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START confidentialcomputing_v1_generated_ConfidentialComputing_VerifyConfidentialSpace_sync] +require "google/cloud/confidential_computing/v1" + +## +# Snippet for the verify_confidential_space call in the ConfidentialComputing service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client#verify_confidential_space. +# +def verify_confidential_space + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new + + # Call the verify_confidential_space method. + result = client.verify_confidential_space request + + # The returned object is of type Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse. + p result +end +# [END confidentialcomputing_v1_generated_ConfidentialComputing_VerifyConfidentialSpace_sync] diff --git a/google-cloud-confidential_computing-v1/snippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json b/google-cloud-confidential_computing-v1/snippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json index aa914655f640..9196447ce96e 100644 --- a/google-cloud-confidential_computing-v1/snippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json +++ b/google-cloud-confidential_computing-v1/snippets/snippet_metadata_google.cloud.confidentialcomputing.v1.json @@ -90,6 +90,86 @@ "type": "FULL" } ] + }, + { + "region_tag": "confidentialcomputing_v1_generated_ConfidentialComputing_VerifyConfidentialSpace_sync", + "title": "Snippet for the verify_confidential_space call in the ConfidentialComputing service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client#verify_confidential_space.", + "file": "confidential_computing/verify_confidential_space.rb", + "language": "RUBY", + "client_method": { + "short_name": "verify_confidential_space", + "full_name": "::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client#verify_confidential_space", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse", + "client": { + "short_name": "ConfidentialComputing::Client", + "full_name": "::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client" + }, + "method": { + "short_name": "VerifyConfidentialSpace", + "full_name": "google.cloud.confidentialcomputing.v1.ConfidentialComputing.VerifyConfidentialSpace", + "service": { + "short_name": "ConfidentialComputing", + "full_name": "google.cloud.confidentialcomputing.v1.ConfidentialComputing" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "confidentialcomputing_v1_generated_ConfidentialComputing_VerifyConfidentialGke_sync", + "title": "Snippet for the verify_confidential_gke call in the ConfidentialComputing service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client#verify_confidential_gke.", + "file": "confidential_computing/verify_confidential_gke.rb", + "language": "RUBY", + "client_method": { + "short_name": "verify_confidential_gke", + "full_name": "::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client#verify_confidential_gke", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse", + "client": { + "short_name": "ConfidentialComputing::Client", + "full_name": "::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client" + }, + "method": { + "short_name": "VerifyConfidentialGke", + "full_name": "google.cloud.confidentialcomputing.v1.ConfidentialComputing.VerifyConfidentialGke", + "service": { + "short_name": "ConfidentialComputing", + "full_name": "google.cloud.confidentialcomputing.v1.ConfidentialComputing" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb index 53d872f9e9ad..093548c75a23 100644 --- a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb +++ b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_rest_test.rb @@ -193,6 +193,120 @@ def test_verify_attestation end end + def test_verify_confidential_space + # Create test objects. + client_result = ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + td_ccel = {} + challenge = "hello world" + gcp_credentials = {} + signed_entities = [{}] + gce_shielded_identity = {} + options = {} + + verify_confidential_space_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Rest::ServiceStub.stub :transcode_verify_confidential_space_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, verify_confidential_space_client_stub do + # Create client + client = ::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.verify_confidential_space({ td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.verify_confidential_space td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.verify_confidential_space ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new(td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.verify_confidential_space({ td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.verify_confidential_space(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new(td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, verify_confidential_space_client_stub.call_count + end + end + end + + def test_verify_confidential_gke + # Create test objects. + client_result = ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + tpm_attestation = {} + challenge = "hello world" + + verify_confidential_gke_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Rest::ServiceStub.stub :transcode_verify_confidential_gke_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, verify_confidential_gke_client_stub do + # Create client + client = ::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.verify_confidential_gke tpm_attestation: tpm_attestation, challenge: challenge do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.verify_confidential_gke ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.verify_confidential_gke(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, verify_confidential_gke_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb index 8a5b8bbc257f..e38e46ec9ddf 100644 --- a/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb +++ b/google-cloud-confidential_computing-v1/test/google/cloud/confidential_computing/v1/confidential_computing_test.rb @@ -194,6 +194,136 @@ def test_verify_attestation end end + def test_verify_confidential_space + # Create GRPC objects. + grpc_response = ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + td_ccel = {} + challenge = "hello world" + gcp_credentials = {} + signed_entities = [{}] + gce_shielded_identity = {} + options = {} + + verify_confidential_space_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :verify_confidential_space, name + assert_kind_of ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::ConfidentialComputing::V1::TdxCcelAttestation), request["td_ccel"] + assert_equal :td_ccel, request.tee_attestation + assert_equal "hello world", request["challenge"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::ConfidentialComputing::V1::GcpCredentials), request["gcp_credentials"] + assert_kind_of ::Google::Cloud::ConfidentialComputing::V1::SignedEntity, request["signed_entities"].first + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::ConfidentialComputing::V1::GceShieldedIdentity), request["gce_shielded_identity"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest::ConfidentialSpaceOptions), request["options"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, verify_confidential_space_client_stub do + # Create client + client = ::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.verify_confidential_space({ td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.verify_confidential_space td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.verify_confidential_space ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new(td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.verify_confidential_space({ td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.verify_confidential_space(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialSpaceRequest.new(td_ccel: td_ccel, challenge: challenge, gcp_credentials: gcp_credentials, signed_entities: signed_entities, gce_shielded_identity: gce_shielded_identity, options: options), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, verify_confidential_space_client_stub.call_rpc_count + end + end + + def test_verify_confidential_gke + # Create GRPC objects. + grpc_response = ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + tpm_attestation = {} + challenge = "hello world" + + verify_confidential_gke_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :verify_confidential_gke, name + assert_kind_of ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::ConfidentialComputing::V1::TpmAttestation), request["tpm_attestation"] + assert_equal :tpm_attestation, request.tee_attestation + assert_equal "hello world", request["challenge"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, verify_confidential_gke_client_stub do + # Create client + client = ::Google::Cloud::ConfidentialComputing::V1::ConfidentialComputing::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.verify_confidential_gke tpm_attestation: tpm_attestation, challenge: challenge do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.verify_confidential_gke ::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.verify_confidential_gke({ tpm_attestation: tpm_attestation, challenge: challenge }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.verify_confidential_gke(::Google::Cloud::ConfidentialComputing::V1::VerifyConfidentialGkeRequest.new(tpm_attestation: tpm_attestation, challenge: challenge), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, verify_confidential_gke_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure diff --git a/google-cloud-confidential_computing/CHANGELOG.md b/google-cloud-confidential_computing/CHANGELOG.md index 972c7e42ed2a..90b1970beba4 100644 --- a/google-cloud-confidential_computing/CHANGELOG.md +++ b/google-cloud-confidential_computing/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-confidential_computing/README.md b/google-cloud-confidential_computing/README.md index 38721004965d..cb3beacf8fab 100644 --- a/google-cloud-confidential_computing/README.md +++ b/google-cloud-confidential_computing/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/confidentialcomputing.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/confidential_computing" + +client = Google::Cloud::ConfidentialComputing.confidential_computing +request = ::Google::Cloud::ConfidentialComputing::V1::CreateChallengeRequest.new # (request fields as keyword arguments...) +response = client.create_challenge request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-confidential_computing/lib/google/cloud/confidential_computing/version.rb b/google-cloud-confidential_computing/lib/google/cloud/confidential_computing/version.rb index dfd74da1036d..8e006c19f1d7 100644 --- a/google-cloud-confidential_computing/lib/google/cloud/confidential_computing/version.rb +++ b/google-cloud-confidential_computing/lib/google/cloud/confidential_computing/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ConfidentialComputing - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-cloud-config_delivery-v1/CHANGELOG.md b/google-cloud-config_delivery-v1/CHANGELOG.md index aea12df83949..444eea458d52 100644 --- a/google-cloud-config_delivery-v1/CHANGELOG.md +++ b/google-cloud-config_delivery-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-08-14) #### Features diff --git a/google-cloud-config_delivery-v1/google-cloud-config_delivery-v1.gemspec b/google-cloud-config_delivery-v1/google-cloud-config_delivery-v1.gemspec index 99bc8c00f4e6..e2b92511e0bf 100644 --- a/google-cloud-config_delivery-v1/google-cloud-config_delivery-v1.gemspec +++ b/google-cloud-config_delivery-v1/google-cloud-config_delivery-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-config_delivery-v1/lib/google/cloud/config_delivery/v1/version.rb b/google-cloud-config_delivery-v1/lib/google/cloud/config_delivery/v1/version.rb index 31cf6cbf488b..8e759af46676 100644 --- a/google-cloud-config_delivery-v1/lib/google/cloud/config_delivery/v1/version.rb +++ b/google-cloud-config_delivery-v1/lib/google/cloud/config_delivery/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ConfigDelivery module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-config_delivery-v1/snippets/snippet_metadata_google.cloud.configdelivery.v1.json b/google-cloud-config_delivery-v1/snippets/snippet_metadata_google.cloud.configdelivery.v1.json index 84813f65930d..093dbfdfce6b 100644 --- a/google-cloud-config_delivery-v1/snippets/snippet_metadata_google.cloud.configdelivery.v1.json +++ b/google-cloud-config_delivery-v1/snippets/snippet_metadata_google.cloud.configdelivery.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-config_delivery-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-config_delivery/CHANGELOG.md b/google-cloud-config_delivery/CHANGELOG.md index 8d2e955c7dd8..386469ab704d 100644 --- a/google-cloud-config_delivery/CHANGELOG.md +++ b/google-cloud-config_delivery/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-08-21) #### Features diff --git a/google-cloud-config_delivery/README.md b/google-cloud-config_delivery/README.md index 567a3c4501ac..4615414c798a 100644 --- a/google-cloud-config_delivery/README.md +++ b/google-cloud-config_delivery/README.md @@ -30,6 +30,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/config_delivery" + +client = Google::Cloud::ConfigDelivery.config_delivery +request = ::Google::Cloud::ConfigDelivery::V1alpha::ListResourceBundlesRequest.new # (request fields as keyword arguments...) +response = client.list_resource_bundles request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-config_delivery/lib/google/cloud/config_delivery/version.rb b/google-cloud-config_delivery/lib/google/cloud/config_delivery/version.rb index 3e9b49c45464..4b01dd906119 100644 --- a/google-cloud-config_delivery/lib/google/cloud/config_delivery/version.rb +++ b/google-cloud-config_delivery/lib/google/cloud/config_delivery/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ConfigDelivery - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-config_service-v1/CHANGELOG.md b/google-cloud-config_service-v1/CHANGELOG.md index 879c8852893a..a4f58f0b7829 100644 --- a/google-cloud-config_service-v1/CHANGELOG.md +++ b/google-cloud-config_service-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 2.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + +### 2.3.0 (2025-09-03) + +#### Features + +* added support for service maintained provider ([#30934](https://github.com/googleapis/google-cloud-ruby/issues/30934)) + ### 2.2.0 (2025-07-15) #### Features diff --git a/google-cloud-config_service-v1/google-cloud-config_service-v1.gemspec b/google-cloud-config_service-v1/google-cloud-config_service-v1.gemspec index 762a06395d4a..82e3df78d501 100644 --- a/google-cloud-config_service-v1/google-cloud-config_service-v1.gemspec +++ b/google-cloud-config_service-v1/google-cloud-config_service-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-config_service-v1/lib/google/cloud/config/v1/config_pb.rb b/google-cloud-config_service-v1/lib/google/cloud/config/v1/config_pb.rb index 4fdeb25b57db..2717de1572af 100644 --- a/google-cloud-config_service-v1/lib/google/cloud/config/v1/config_pb.rb +++ b/google-cloud-config_service-v1/lib/google/cloud/config/v1/config_pb.rb @@ -17,7 +17,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n#google/cloud/config/v1/config.proto\x12\x16google.cloud.config.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xda\x0f\n\nDeployment\x12I\n\x13terraform_blueprint\x18\x06 \x01(\x0b\x32*.google.cloud.config.v1.TerraformBlueprintH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32..google.cloud.config.v1.Deployment.LabelsEntryB\x03\xe0\x41\x01\x12<\n\x05state\x18\x05 \x01(\x0e\x32(.google.cloud.config.v1.Deployment.StateB\x03\xe0\x41\x03\x12\x1c\n\x0flatest_revision\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0cstate_detail\x18\t \x01(\tB\x03\xe0\x41\x03\x12\x45\n\nerror_code\x18\n \x01(\x0e\x32,.google.cloud.config.v1.Deployment.ErrorCodeB\x03\xe0\x41\x03\x12\x41\n\x0e\x64\x65lete_results\x18\x08 \x01(\x0b\x32$.google.cloud.config.v1.ApplyResultsB\x03\xe0\x41\x03\x12\x19\n\x0c\x64\x65lete_build\x18\x0b \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65lete_logs\x18\x0c \x01(\tB\x03\xe0\x41\x03\x12>\n\ttf_errors\x18\r \x03(\x0b\x32&.google.cloud.config.v1.TerraformErrorB\x03\xe0\x41\x03\x12\x17\n\nerror_logs\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12&\n\x14\x61rtifacts_gcs_bucket\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12G\n\x0fservice_account\x18\x10 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccountH\x02\x88\x01\x01\x12&\n\x19import_existing_resources\x18\x11 \x01(\x08H\x03\x88\x01\x01\x12\x46\n\x0bworker_pool\x18\x13 \x01(\tB,\xe0\x41\x01\xfa\x41&\n$cloudbuild.googleapis.com/WorkerPoolH\x04\x88\x01\x01\x12\x45\n\nlock_state\x18\x14 \x01(\x0e\x32,.google.cloud.config.v1.Deployment.LockStateB\x03\xe0\x41\x03\x12\'\n\x15tf_version_constraint\x18\x15 \x01(\tB\x03\xe0\x41\x01H\x05\x88\x01\x01\x12\x17\n\ntf_version\x18\x16 \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x10quota_validation\x18\x17 \x01(\x0e\x32\'.google.cloud.config.v1.QuotaValidationB\x03\xe0\x41\x01\x12M\n\x0b\x61nnotations\x18\x18 \x03(\x0b\x32\x33.google.cloud.config.v1.Deployment.AnnotationsEntryB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"|\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08UPDATING\x10\x03\x12\x0c\n\x08\x44\x45LETING\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\r\n\tSUSPENDED\x10\x06\x12\x0b\n\x07\x44\x45LETED\x10\x07\"\xdc\x01\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fREVISION_FAILED\x10\x01\x12!\n\x1d\x43LOUD_BUILD_PERMISSION_DENIED\x10\x03\x12\x1b\n\x17\x44\x45LETE_BUILD_API_FAILED\x10\x05\x12\x1b\n\x17\x44\x45LETE_BUILD_RUN_FAILED\x10\x06\x12%\n!BUCKET_CREATION_PERMISSION_DENIED\x10\x07\x12\x1a\n\x16\x42UCKET_CREATION_FAILED\x10\x08\"\x81\x01\n\tLockState\x12\x1a\n\x16LOCK_STATE_UNSPECIFIED\x10\x00\x12\n\n\x06LOCKED\x10\x01\x12\x0c\n\x08UNLOCKED\x10\x02\x12\x0b\n\x07LOCKING\x10\x03\x12\r\n\tUNLOCKING\x10\x04\x12\x0f\n\x0bLOCK_FAILED\x10\x05\x12\x11\n\rUNLOCK_FAILED\x10\x06:g\xea\x41\x64\n config.googleapis.com/Deployment\x12@projects/{project}/locations/{location}/deployments/{deployment}B\x0b\n\tblueprintB\x17\n\x15_artifacts_gcs_bucketB\x12\n\x10_service_accountB\x1c\n\x1a_import_existing_resourcesB\x0e\n\x0c_worker_poolB\x18\n\x16_tf_version_constraint\"\xa4\x02\n\x12TerraformBlueprint\x12\x14\n\ngcs_source\x18\x01 \x01(\tH\x00\x12\x37\n\ngit_source\x18\x02 \x01(\x0b\x32!.google.cloud.config.v1.GitSourceH\x00\x12V\n\x0cinput_values\x18\x04 \x03(\x0b\x32;.google.cloud.config.v1.TerraformBlueprint.InputValuesEntryB\x03\xe0\x41\x01\x1a]\n\x10InputValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).google.cloud.config.v1.TerraformVariable:\x02\x38\x01\x42\x08\n\x06source\"E\n\x11TerraformVariable\x12\x30\n\x0binput_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x01\"\xcf\x01\n\x0c\x41pplyResults\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x11\n\tartifacts\x18\x02 \x01(\t\x12\x42\n\x07outputs\x18\x03 \x03(\x0b\x32\x31.google.cloud.config.v1.ApplyResults.OutputsEntry\x1aW\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.config.v1.TerraformOutput:\x02\x38\x01\"K\n\x0fTerraformOutput\x12\x11\n\tsensitive\x18\x01 \x01(\x08\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\"\x9c\x01\n\x16ListDeploymentsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"\x80\x01\n\x17ListDeploymentsResponse\x12\x37\n\x0b\x64\x65ployments\x18\x01 \x03(\x0b\x32\".google.cloud.config.v1.Deployment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"N\n\x14GetDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\"\x99\x01\n\x14ListRevisionsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"z\n\x15ListRevisionsResponse\x12\x33\n\trevisions\x18\x01 \x03(\x0b\x32 .google.cloud.config.v1.Revision\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"J\n\x12GetRevisionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Revision\"\xc6\x01\n\x17\x43reateDeploymentRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1a\n\rdeployment_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12;\n\ndeployment\x18\x03 \x01(\x0b\x32\".google.cloud.config.v1.DeploymentB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\xa5\x01\n\x17UpdateDeploymentRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12;\n\ndeployment\x18\x02 \x01(\x0b\x32\".google.cloud.config.v1.DeploymentB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xa0\x02\n\x17\x44\x65leteDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x66orce\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12X\n\rdelete_policy\x18\x04 \x01(\x0e\x32<.google.cloud.config.v1.DeleteDeploymentRequest.DeletePolicyB\x03\xe0\x41\x01\"F\n\x0c\x44\x65letePolicy\x12\x1d\n\x19\x44\x45LETE_POLICY_UNSPECIFIED\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\"\xc1\x03\n\x11OperationMetadata\x12W\n\x13\x64\x65ployment_metadata\x18\x08 \x01(\x0b\x32\x33.google.cloud.config.v1.DeploymentOperationMetadataB\x03\xe0\x41\x03H\x00\x12Q\n\x10preview_metadata\x18\t \x01(\x0b\x32\x30.google.cloud.config.v1.PreviewOperationMetadataB\x03\xe0\x41\x03H\x00\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x42\x13\n\x11resource_metadata\"\x83\x0b\n\x08Revision\x12N\n\x13terraform_blueprint\x18\x06 \x01(\x0b\x32*.google.cloud.config.v1.TerraformBlueprintB\x03\xe0\x41\x03H\x00\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\'.google.cloud.config.v1.Revision.ActionB\x03\xe0\x41\x03\x12:\n\x05state\x18\x05 \x01(\x0e\x32&.google.cloud.config.v1.Revision.StateB\x03\xe0\x41\x03\x12@\n\rapply_results\x18\x07 \x01(\x0b\x32$.google.cloud.config.v1.ApplyResultsB\x03\xe0\x41\x03\x12\x19\n\x0cstate_detail\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12\x43\n\nerror_code\x18\t \x01(\x0e\x32*.google.cloud.config.v1.Revision.ErrorCodeB\x03\xe0\x41\x03\x12\x12\n\x05\x62uild\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04logs\x18\x0b \x01(\tB\x03\xe0\x41\x03\x12>\n\ttf_errors\x18\x0c \x03(\x0b\x32&.google.cloud.config.v1.TerraformErrorB\x03\xe0\x41\x03\x12\x17\n\nerror_logs\x18\r \x01(\tB\x03\xe0\x41\x03\x12\x42\n\x0fservice_account\x18\x0e \x01(\tB)\xe0\x41\x03\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12&\n\x19import_existing_resources\x18\x0f \x01(\x08\x42\x03\xe0\x41\x03\x12\x41\n\x0bworker_pool\x18\x11 \x01(\tB,\xe0\x41\x03\xfa\x41&\n$cloudbuild.googleapis.com/WorkerPool\x12\"\n\x15tf_version_constraint\x18\x12 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\ntf_version\x18\x13 \x01(\tB\x03\xe0\x41\x03\x12%\n\x18quota_validation_results\x18\x1d \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x10quota_validation\x18\x14 \x01(\x0e\x32\'.google.cloud.config.v1.QuotaValidationB\x03\xe0\x41\x01\"D\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\"E\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x41PPLYING\x10\x01\x12\x0b\n\x07\x41PPLIED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"\x9f\x01\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12!\n\x1d\x43LOUD_BUILD_PERMISSION_DENIED\x10\x01\x12\x1a\n\x16\x41PPLY_BUILD_API_FAILED\x10\x04\x12\x1a\n\x16\x41PPLY_BUILD_RUN_FAILED\x10\x05\x12\x1b\n\x17QUOTA_VALIDATION_FAILED\x10\x07:z\xea\x41w\n\x1e\x63onfig.googleapis.com/Revision\x12Uprojects/{project}/locations/{location}/deployments/{deployment}/revisions/{revision}B\x0b\n\tblueprint\"\x89\x01\n\x0eTerraformError\x12\x18\n\x10resource_address\x18\x01 \x01(\t\x12\x1a\n\x12http_response_code\x18\x02 \x01(\x05\x12\x19\n\x11\x65rror_description\x18\x03 \x01(\t\x12&\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"v\n\tGitSource\x12\x16\n\x04repo\x18\x01 \x01(\tB\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x1b\n\tdirectory\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x15\n\x03ref\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x02\x88\x01\x01\x42\x07\n\x05_repoB\x0c\n\n_directoryB\x06\n\x04_ref\"\x9f\x04\n\x1b\x44\x65ploymentOperationMetadata\x12P\n\x04step\x18\x01 \x01(\x0e\x32\x42.google.cloud.config.v1.DeploymentOperationMetadata.DeploymentStep\x12;\n\rapply_results\x18\x02 \x01(\x0b\x32$.google.cloud.config.v1.ApplyResults\x12\x12\n\x05\x62uild\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04logs\x18\x04 \x01(\tB\x03\xe0\x41\x03\"\xc9\x02\n\x0e\x44\x65ploymentStep\x12\x1f\n\x1b\x44\x45PLOYMENT_STEP_UNSPECIFIED\x10\x00\x12\x1c\n\x18PREPARING_STORAGE_BUCKET\x10\x01\x12\x19\n\x15\x44OWNLOADING_BLUEPRINT\x10\x02\x12\x13\n\x0fRUNNING_TF_INIT\x10\x03\x12\x13\n\x0fRUNNING_TF_PLAN\x10\x04\x12\x14\n\x10RUNNING_TF_APPLY\x10\x05\x12\x16\n\x12RUNNING_TF_DESTROY\x10\x06\x12\x17\n\x13RUNNING_TF_VALIDATE\x10\x07\x12\x18\n\x14UNLOCKING_DEPLOYMENT\x10\x08\x12\r\n\tSUCCEEDED\x10\t\x12\n\n\x06\x46\x41ILED\x10\n\x12\x19\n\x15VALIDATING_REPOSITORY\x10\x0b\x12\x1c\n\x18RUNNING_QUOTA_VALIDATION\x10\x0c\"\xd8\x05\n\x08Resource\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12J\n\x0eterraform_info\x18\x02 \x01(\x0b\x32-.google.cloud.config.v1.ResourceTerraformInfoB\x03\xe0\x41\x03\x12H\n\ncai_assets\x18\x03 \x03(\x0b\x32/.google.cloud.config.v1.Resource.CaiAssetsEntryB\x03\xe0\x41\x03\x12<\n\x06intent\x18\x04 \x01(\x0e\x32\'.google.cloud.config.v1.Resource.IntentB\x03\xe0\x41\x03\x12:\n\x05state\x18\x05 \x01(\x0e\x32&.google.cloud.config.v1.Resource.StateB\x03\xe0\x41\x03\x1aY\n\x0e\x43\x61iAssetsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.config.v1.ResourceCAIInfo:\x02\x38\x01\"a\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\x0c\n\x08RECREATE\x10\x04\x12\r\n\tUNCHANGED\x10\x05\"X\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PLANNED\x10\x01\x12\x0f\n\x0bIN_PROGRESS\x10\x02\x12\x0e\n\nRECONCILED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04:\x90\x01\xea\x41\x8c\x01\n\x1e\x63onfig.googleapis.com/Resource\x12jprojects/{project}/locations/{location}/deployments/{deployment}/revisions/{revision}/resources/{resource}\"B\n\x15ResourceTerraformInfo\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\"-\n\x0fResourceCAIInfo\x12\x1a\n\x12\x66ull_resource_name\x18\x01 \x01(\t\"J\n\x12GetResourceRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Resource\"\x97\x01\n\x14ListResourcesRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Revision\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"z\n\x15ListResourcesResponse\x12\x33\n\tresources\x18\x01 \x03(\x0b\x32 .google.cloud.config.v1.Resource\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"$\n\tStatefile\x12\x17\n\nsigned_uri\x18\x01 \x01(\tB\x03\xe0\x41\x03\"p\n ExportDeploymentStatefileRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x12\n\x05\x64raft\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"X\n\x1e\x45xportRevisionStatefileRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Revision\"\x81\x01\n\x16ImportStatefileRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x14\n\x07lock_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\x12\x17\n\nskip_draft\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"f\n\x16\x44\x65leteStatefileRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x14\n\x07lock_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\"O\n\x15LockDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\"g\n\x17UnlockDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x14\n\x07lock_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\"O\n\x15\x45xportLockInfoRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\"\x8b\x01\n\x08LockInfo\x12\x0f\n\x07lock_id\x18\x01 \x01(\x03\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x0c\n\x04info\x18\x03 \x01(\t\x12\x0b\n\x03who\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xf8\r\n\x07Preview\x12I\n\x13terraform_blueprint\x18\x06 \x01(\x0b\x32*.google.cloud.config.v1.TerraformBlueprintH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x06labels\x18\x03 \x03(\x0b\x32+.google.cloud.config.v1.Preview.LabelsEntryB\x03\xe0\x41\x01\x12\x39\n\x05state\x18\x04 \x01(\x0e\x32%.google.cloud.config.v1.Preview.StateB\x03\xe0\x41\x03\x12<\n\ndeployment\x18\x05 \x01(\tB(\xe0\x41\x01\xfa\x41\"\n config.googleapis.com/Deployment\x12\x46\n\x0cpreview_mode\x18\x0f \x01(\x0e\x32+.google.cloud.config.v1.Preview.PreviewModeB\x03\xe0\x41\x01\x12\x42\n\x0fservice_account\x18\x07 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12&\n\x14\x61rtifacts_gcs_bucket\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x46\n\x0bworker_pool\x18\t \x01(\tB,\xe0\x41\x01\xfa\x41&\n$cloudbuild.googleapis.com/WorkerPoolH\x02\x88\x01\x01\x12\x42\n\nerror_code\x18\n \x01(\x0e\x32).google.cloud.config.v1.Preview.ErrorCodeB\x03\xe0\x41\x03\x12-\n\x0c\x65rror_status\x18\x0b \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x12\n\x05\x62uild\x18\x0c \x01(\tB\x03\xe0\x41\x03\x12>\n\ttf_errors\x18\r \x03(\x0b\x32&.google.cloud.config.v1.TerraformErrorB\x03\xe0\x41\x03\x12\x17\n\nerror_logs\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12H\n\x11preview_artifacts\x18\x10 \x01(\x0b\x32(.google.cloud.config.v1.PreviewArtifactsB\x03\xe0\x41\x03\x12\x11\n\x04logs\x18\x11 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\ntf_version\x18\x12 \x01(\tB\x03\xe0\x41\x03\x12\'\n\x15tf_version_constraint\x18\x13 \x01(\tB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12J\n\x0b\x61nnotations\x18\x14 \x03(\x0b\x32\x30.google.cloud.config.v1.Preview.AnnotationsEntryB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"{\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\x0c\n\x08\x41PPLYING\x10\x03\x12\t\n\x05STALE\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0b\n\x07\x44\x45LETED\x10\x07\"D\n\x0bPreviewMode\x12\x1c\n\x18PREVIEW_MODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\"\xed\x01\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12!\n\x1d\x43LOUD_BUILD_PERMISSION_DENIED\x10\x01\x12%\n!BUCKET_CREATION_PERMISSION_DENIED\x10\x02\x12\x1a\n\x16\x42UCKET_CREATION_FAILED\x10\x03\x12\"\n\x1e\x44\x45PLOYMENT_LOCK_ACQUIRE_FAILED\x10\x04\x12\x1c\n\x18PREVIEW_BUILD_API_FAILED\x10\x05\x12\x1c\n\x18PREVIEW_BUILD_RUN_FAILED\x10\x06:q\xea\x41n\n\x1d\x63onfig.googleapis.com/Preview\x12:projects/{project}/locations/{location}/previews/{preview}*\x08previews2\x07previewB\x0b\n\tblueprintB\x17\n\x15_artifacts_gcs_bucketB\x0e\n\x0c_worker_poolB\x18\n\x16_tf_version_constraint\"\xe4\x03\n\x18PreviewOperationMetadata\x12J\n\x04step\x18\x01 \x01(\x0e\x32<.google.cloud.config.v1.PreviewOperationMetadata.PreviewStep\x12\x43\n\x11preview_artifacts\x18\x02 \x01(\x0b\x32(.google.cloud.config.v1.PreviewArtifacts\x12\x11\n\x04logs\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05\x62uild\x18\x04 \x01(\tB\x03\xe0\x41\x03\"\x8f\x02\n\x0bPreviewStep\x12\x1c\n\x18PREVIEW_STEP_UNSPECIFIED\x10\x00\x12\x1c\n\x18PREPARING_STORAGE_BUCKET\x10\x01\x12\x19\n\x15\x44OWNLOADING_BLUEPRINT\x10\x02\x12\x13\n\x0fRUNNING_TF_INIT\x10\x03\x12\x13\n\x0fRUNNING_TF_PLAN\x10\x04\x12\x17\n\x13\x46\x45TCHING_DEPLOYMENT\x10\x05\x12\x16\n\x12LOCKING_DEPLOYMENT\x10\x06\x12\x18\n\x14UNLOCKING_DEPLOYMENT\x10\x07\x12\r\n\tSUCCEEDED\x10\x08\x12\n\n\x06\x46\x41ILED\x10\t\x12\x19\n\x15VALIDATING_REPOSITORY\x10\n\"@\n\x10PreviewArtifacts\x12\x14\n\x07\x63ontent\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\tartifacts\x18\x02 \x01(\tB\x03\xe0\x41\x03\"\xc2\x01\n\x14\x43reatePreviewRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x17\n\npreview_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x35\n\x07preview\x18\x03 \x01(\x0b\x32\x1f.google.cloud.config.v1.PreviewB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"H\n\x11GetPreviewRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\"\xad\x01\n\x13ListPreviewsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"w\n\x14ListPreviewsResponse\x12\x31\n\x08previews\x18\x01 \x03(\x0b\x32\x1f.google.cloud.config.v1.Preview\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"l\n\x14\x44\x65letePreviewRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"S\n\x1a\x45xportPreviewResultRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\"Y\n\x1b\x45xportPreviewResultResponse\x12:\n\x06result\x18\x01 \x01(\x0b\x32%.google.cloud.config.v1.PreviewResultB\x03\xe0\x41\x03\"M\n\rPreviewResult\x12\x1e\n\x11\x62inary_signed_uri\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fjson_signed_uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\"Z\n\x1aGetTerraformVersionRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&config.googleapis.com/TerraformVersion\"\xb6\x01\n\x1cListTerraformVersionsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x93\x01\n\x1dListTerraformVersionsResponse\x12\x44\n\x12terraform_versions\x18\x01 \x03(\x0b\x32(.google.cloud.config.v1.TerraformVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xad\x04\n\x10TerraformVersion\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x42\n\x05state\x18\x02 \x01(\x0e\x32..google.cloud.config.v1.TerraformVersion.StateB\x03\xe0\x41\x03\x12\x35\n\x0csupport_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x0e\x64\x65precate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12;\n\robsolete_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03H\x01\x88\x01\x01\"H\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0e\n\nDEPRECATED\x10\x02\x12\x0c\n\x08OBSOLETE\x10\x03:\xa0\x01\xea\x41\x9c\x01\n&config.googleapis.com/TerraformVersion\x12Mprojects/{project}/locations/{location}/terraformVersions/{terraform_version}*\x11terraformVersions2\x10terraformVersionB\x11\n\x0f_deprecate_timeB\x10\n\x0e_obsolete_time\"\x8f\x01\n\x1bResourceChangeTerraformInfo\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rresource_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08provider\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x61\x63tions\x18\x05 \x03(\tB\x03\xe0\x41\x03\"\x8f\x04\n\x0eResourceChange\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12P\n\x0eterraform_info\x18\x02 \x01(\x0b\x32\x33.google.cloud.config.v1.ResourceChangeTerraformInfoB\x03\xe0\x41\x03\x12\x42\n\x06intent\x18\x03 \x01(\x0e\x32-.google.cloud.config.v1.ResourceChange.IntentB\x03\xe0\x41\x03\x12\x45\n\x10property_changes\x18\x04 \x03(\x0b\x32&.google.cloud.config.v1.PropertyChangeB\x03\xe0\x41\x03\"a\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\x0c\n\x08RECREATE\x10\x04\x12\r\n\tUNCHANGED\x10\x05:\xa9\x01\xea\x41\xa5\x01\n$config.googleapis.com/ResourceChange\x12\\projects/{project}/locations/{location}/previews/{preview}/resourceChanges/{resource_change}*\x0fresourceChanges2\x0eresourceChange\"\xc5\x01\n\x0ePropertyChange\x12\x11\n\x04path\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16\x62\x65\x66ore_sensitive_paths\x18\x02 \x03(\tB\x03\xe0\x41\x03\x12+\n\x06\x62\x65\x66ore\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\x12\"\n\x15\x61\x66ter_sensitive_paths\x18\x04 \x03(\tB\x03\xe0\x41\x03\x12*\n\x05\x61\x66ter\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\"\xb0\x01\n\x1aListResourceChangesRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8d\x01\n\x1bListResourceChangesResponse\x12@\n\x10resource_changes\x18\x01 \x03(\x0b\x32&.google.cloud.config.v1.ResourceChange\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"V\n\x18GetResourceChangeRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$config.googleapis.com/ResourceChange\"x\n\x1aResourceDriftTerraformInfo\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rresource_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08provider\x18\x04 \x01(\tB\x03\xe0\x41\x03\"\xdf\x02\n\rResourceDrift\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12O\n\x0eterraform_info\x18\x02 \x01(\x0b\x32\x32.google.cloud.config.v1.ResourceDriftTerraformInfoB\x03\xe0\x41\x03\x12\x43\n\x0fproperty_drifts\x18\x03 \x03(\x0b\x32%.google.cloud.config.v1.PropertyDriftB\x03\xe0\x41\x03:\xa4\x01\xea\x41\xa0\x01\n#config.googleapis.com/ResourceDrift\x12Zprojects/{project}/locations/{location}/previews/{preview}/resourceDrifts/{resource_drift}*\x0eresourceDrifts2\rresourceDrift\"\xc4\x01\n\rPropertyDrift\x12\x11\n\x04path\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16\x62\x65\x66ore_sensitive_paths\x18\x02 \x03(\tB\x03\xe0\x41\x03\x12+\n\x06\x62\x65\x66ore\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\x12\"\n\x15\x61\x66ter_sensitive_paths\x18\x04 \x03(\tB\x03\xe0\x41\x03\x12*\n\x05\x61\x66ter\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\"\xaf\x01\n\x19ListResourceDriftsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n\x1aListResourceDriftsResponse\x12>\n\x0fresource_drifts\x18\x01 \x03(\x0b\x32%.google.cloud.config.v1.ResourceDrift\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"T\n\x17GetResourceDriftRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#config.googleapis.com/ResourceDrift*N\n\x0fQuotaValidation\x12 \n\x1cQUOTA_VALIDATION_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x45NFORCED\x10\x02\x32\xc1)\n\x06\x43onfig\x12\xb4\x01\n\x0fListDeployments\x12..google.cloud.config.v1.ListDeploymentsRequest\x1a/.google.cloud.config.v1.ListDeploymentsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/deployments\x12\xa1\x01\n\rGetDeployment\x12,.google.cloud.config.v1.GetDeploymentRequest\x1a\".google.cloud.config.v1.Deployment\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/deployments/*}\x12\xec\x01\n\x10\x43reateDeployment\x12/.google.cloud.config.v1.CreateDeploymentRequest\x1a\x1d.google.longrunning.Operation\"\x87\x01\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x1fparent,deployment,deployment_id\x82\xd3\xe4\x93\x02=\"//v1/{parent=projects/*/locations/*}/deployments:\ndeployment\x12\xee\x01\n\x10UpdateDeployment\x12/.google.cloud.config.v1.UpdateDeploymentRequest\x1a\x1d.google.longrunning.Operation\"\x89\x01\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x16\x64\x65ployment,update_mask\x82\xd3\xe4\x93\x02H2:/v1/{deployment.name=projects/*/locations/*/deployments/*}:\ndeployment\x12\xc4\x01\n\x10\x44\x65leteDeployment\x12/.google.cloud.config.v1.DeleteDeploymentRequest\x1a\x1d.google.longrunning.Operation\"`\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/deployments/*}\x12\xba\x01\n\rListRevisions\x12,.google.cloud.config.v1.ListRevisionsRequest\x1a-.google.cloud.config.v1.ListRevisionsResponse\"L\xda\x41\x06parent\x82\xd3\xe4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/deployments/*}/revisions\x12\xa7\x01\n\x0bGetRevision\x12*.google.cloud.config.v1.GetRevisionRequest\x1a .google.cloud.config.v1.Revision\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\x12;/v1/{name=projects/*/locations/*/deployments/*/revisions/*}\x12\xb3\x01\n\x0bGetResource\x12*.google.cloud.config.v1.GetResourceRequest\x1a .google.cloud.config.v1.Resource\"V\xda\x41\x04name\x82\xd3\xe4\x93\x02I\x12G/v1/{name=projects/*/locations/*/deployments/*/revisions/*/resources/*}\x12\xc6\x01\n\rListResources\x12,.google.cloud.config.v1.ListResourcesRequest\x1a-.google.cloud.config.v1.ListResourcesResponse\"X\xda\x41\x06parent\x82\xd3\xe4\x93\x02I\x12G/v1/{parent=projects/*/locations/*/deployments/*/revisions/*}/resources\x12\xc2\x01\n\x19\x45xportDeploymentStatefile\x12\x38.google.cloud.config.v1.ExportDeploymentStatefileRequest\x1a!.google.cloud.config.v1.Statefile\"H\x82\xd3\xe4\x93\x02\x42\"=/v1/{parent=projects/*/locations/*/deployments/*}:exportState:\x01*\x12\xca\x01\n\x17\x45xportRevisionStatefile\x12\x36.google.cloud.config.v1.ExportRevisionStatefileRequest\x1a!.google.cloud.config.v1.Statefile\"T\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/deployments/*/revisions/*}:exportState:\x01*\x12\xbf\x01\n\x0fImportStatefile\x12..google.cloud.config.v1.ImportStatefileRequest\x1a!.google.cloud.config.v1.Statefile\"Y\xda\x41\x0eparent,lock_id\x82\xd3\xe4\x93\x02\x42\"=/v1/{parent=projects/*/locations/*/deployments/*}:importState:\x01*\x12\xa8\x01\n\x0f\x44\x65leteStatefile\x12..google.cloud.config.v1.DeleteStatefileRequest\x1a\x16.google.protobuf.Empty\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@\";/v1/{name=projects/*/locations/*/deployments/*}:deleteState:\x01*\x12\xc8\x01\n\x0eLockDeployment\x12-.google.cloud.config.v1.LockDeploymentRequest\x1a\x1d.google.longrunning.Operation\"h\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x39\"4/v1/{name=projects/*/locations/*/deployments/*}:lock:\x01*\x12\xd6\x01\n\x10UnlockDeployment\x12/.google.cloud.config.v1.UnlockDeploymentRequest\x1a\x1d.google.longrunning.Operation\"r\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x0cname,lock_id\x82\xd3\xe4\x93\x02;\"6/v1/{name=projects/*/locations/*/deployments/*}:unlock:\x01*\x12\xac\x01\n\x0e\x45xportLockInfo\x12-.google.cloud.config.v1.ExportLockInfoRequest\x1a .google.cloud.config.v1.LockInfo\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/*/deployments/*}:exportLock\x12\xcb\x01\n\rCreatePreview\x12,.google.cloud.config.v1.CreatePreviewRequest\x1a\x1d.google.longrunning.Operation\"m\xca\x41\x1c\n\x07Preview\x12\x11OperationMetadata\xda\x41\x0eparent,preview\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/previews:\x07preview\x12\x95\x01\n\nGetPreview\x12).google.cloud.config.v1.GetPreviewRequest\x1a\x1f.google.cloud.config.v1.Preview\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/previews/*}\x12\xa8\x01\n\x0cListPreviews\x12+.google.cloud.config.v1.ListPreviewsRequest\x1a,.google.cloud.config.v1.ListPreviewsResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/previews\x12\xb8\x01\n\rDeletePreview\x12,.google.cloud.config.v1.DeletePreviewRequest\x1a\x1d.google.longrunning.Operation\"Z\xca\x41\x1c\n\x07Preview\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/previews/*}\x12\xc0\x01\n\x13\x45xportPreviewResult\x12\x32.google.cloud.config.v1.ExportPreviewResultRequest\x1a\x33.google.cloud.config.v1.ExportPreviewResultResponse\"@\x82\xd3\xe4\x93\x02:\"5/v1/{parent=projects/*/locations/*/previews/*}:export:\x01*\x12\xcc\x01\n\x15ListTerraformVersions\x12\x34.google.cloud.config.v1.ListTerraformVersionsRequest\x1a\x35.google.cloud.config.v1.ListTerraformVersionsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*}/terraformVersions\x12\xb9\x01\n\x13GetTerraformVersion\x12\x32.google.cloud.config.v1.GetTerraformVersionRequest\x1a(.google.cloud.config.v1.TerraformVersion\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{name=projects/*/locations/*/terraformVersions/*}\x12\xcf\x01\n\x13ListResourceChanges\x12\x32.google.cloud.config.v1.ListResourceChangesRequest\x1a\x33.google.cloud.config.v1.ListResourceChangesResponse\"O\xda\x41\x06parent\x82\xd3\xe4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/previews/*}/resourceChanges\x12\xbc\x01\n\x11GetResourceChange\x12\x30.google.cloud.config.v1.GetResourceChangeRequest\x1a&.google.cloud.config.v1.ResourceChange\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@\x12>/v1/{name=projects/*/locations/*/previews/*/resourceChanges/*}\x12\xcb\x01\n\x12ListResourceDrifts\x12\x31.google.cloud.config.v1.ListResourceDriftsRequest\x1a\x32.google.cloud.config.v1.ListResourceDriftsResponse\"N\xda\x41\x06parent\x82\xd3\xe4\x93\x02?\x12=/v1/{parent=projects/*/locations/*/previews/*}/resourceDrifts\x12\xb8\x01\n\x10GetResourceDrift\x12/.google.cloud.config.v1.GetResourceDriftRequest\x1a%.google.cloud.config.v1.ResourceDrift\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?\x12=/v1/{name=projects/*/locations/*/previews/*/resourceDrifts/*}\x1aI\xca\x41\x15\x63onfig.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xfc\x02\n\x1a\x63om.google.cloud.config.v1B\x0b\x43onfigProtoP\x01Z2cloud.google.com/go/config/apiv1/configpb;configpb\xaa\x02\x16Google.Cloud.Config.V1\xca\x02\x16Google\\Cloud\\Config\\V1\xea\x02 Google::Cloud::ConfigService::V1\xea\x41Y\n!iam.googleapis.com/ServiceAccount\x12\x34projects/{project}/serviceAccounts/{service_account}\xea\x41i\n$cloudbuild.googleapis.com/WorkerPool\x12\x41projects/{project}/locations/{location}/workerPools/{worker_pool}b\x06proto3" +descriptor_data = "\n#google/cloud/config/v1/config.proto\x12\x16google.cloud.config.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xa0\x10\n\nDeployment\x12I\n\x13terraform_blueprint\x18\x06 \x01(\x0b\x32*.google.cloud.config.v1.TerraformBlueprintH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32..google.cloud.config.v1.Deployment.LabelsEntryB\x03\xe0\x41\x01\x12<\n\x05state\x18\x05 \x01(\x0e\x32(.google.cloud.config.v1.Deployment.StateB\x03\xe0\x41\x03\x12\x1c\n\x0flatest_revision\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0cstate_detail\x18\t \x01(\tB\x03\xe0\x41\x03\x12\x45\n\nerror_code\x18\n \x01(\x0e\x32,.google.cloud.config.v1.Deployment.ErrorCodeB\x03\xe0\x41\x03\x12\x41\n\x0e\x64\x65lete_results\x18\x08 \x01(\x0b\x32$.google.cloud.config.v1.ApplyResultsB\x03\xe0\x41\x03\x12\x19\n\x0c\x64\x65lete_build\x18\x0b \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65lete_logs\x18\x0c \x01(\tB\x03\xe0\x41\x03\x12>\n\ttf_errors\x18\r \x03(\x0b\x32&.google.cloud.config.v1.TerraformErrorB\x03\xe0\x41\x03\x12\x17\n\nerror_logs\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12&\n\x14\x61rtifacts_gcs_bucket\x18\x0f \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12G\n\x0fservice_account\x18\x10 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccountH\x02\x88\x01\x01\x12&\n\x19import_existing_resources\x18\x11 \x01(\x08H\x03\x88\x01\x01\x12\x46\n\x0bworker_pool\x18\x13 \x01(\tB,\xe0\x41\x01\xfa\x41&\n$cloudbuild.googleapis.com/WorkerPoolH\x04\x88\x01\x01\x12\x45\n\nlock_state\x18\x14 \x01(\x0e\x32,.google.cloud.config.v1.Deployment.LockStateB\x03\xe0\x41\x03\x12\'\n\x15tf_version_constraint\x18\x15 \x01(\tB\x03\xe0\x41\x01H\x05\x88\x01\x01\x12\x17\n\ntf_version\x18\x16 \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x10quota_validation\x18\x17 \x01(\x0e\x32\'.google.cloud.config.v1.QuotaValidationB\x03\xe0\x41\x01\x12M\n\x0b\x61nnotations\x18\x18 \x03(\x0b\x32\x33.google.cloud.config.v1.Deployment.AnnotationsEntryB\x03\xe0\x41\x01\x12\x44\n\x0fprovider_config\x18\x19 \x01(\x0b\x32&.google.cloud.config.v1.ProviderConfigB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"|\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08UPDATING\x10\x03\x12\x0c\n\x08\x44\x45LETING\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\r\n\tSUSPENDED\x10\x06\x12\x0b\n\x07\x44\x45LETED\x10\x07\"\xdc\x01\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fREVISION_FAILED\x10\x01\x12!\n\x1d\x43LOUD_BUILD_PERMISSION_DENIED\x10\x03\x12\x1b\n\x17\x44\x45LETE_BUILD_API_FAILED\x10\x05\x12\x1b\n\x17\x44\x45LETE_BUILD_RUN_FAILED\x10\x06\x12%\n!BUCKET_CREATION_PERMISSION_DENIED\x10\x07\x12\x1a\n\x16\x42UCKET_CREATION_FAILED\x10\x08\"\x81\x01\n\tLockState\x12\x1a\n\x16LOCK_STATE_UNSPECIFIED\x10\x00\x12\n\n\x06LOCKED\x10\x01\x12\x0c\n\x08UNLOCKED\x10\x02\x12\x0b\n\x07LOCKING\x10\x03\x12\r\n\tUNLOCKING\x10\x04\x12\x0f\n\x0bLOCK_FAILED\x10\x05\x12\x11\n\rUNLOCK_FAILED\x10\x06:g\xea\x41\x64\n config.googleapis.com/Deployment\x12@projects/{project}/locations/{location}/deployments/{deployment}B\x0b\n\tblueprintB\x17\n\x15_artifacts_gcs_bucketB\x12\n\x10_service_accountB\x1c\n\x1a_import_existing_resourcesB\x0e\n\x0c_worker_poolB\x18\n\x16_tf_version_constraint\"\xa4\x02\n\x12TerraformBlueprint\x12\x14\n\ngcs_source\x18\x01 \x01(\tH\x00\x12\x37\n\ngit_source\x18\x02 \x01(\x0b\x32!.google.cloud.config.v1.GitSourceH\x00\x12V\n\x0cinput_values\x18\x04 \x03(\x0b\x32;.google.cloud.config.v1.TerraformBlueprint.InputValuesEntryB\x03\xe0\x41\x01\x1a]\n\x10InputValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).google.cloud.config.v1.TerraformVariable:\x02\x38\x01\x42\x08\n\x06source\"E\n\x11TerraformVariable\x12\x30\n\x0binput_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x01\"\xcf\x01\n\x0c\x41pplyResults\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x11\n\tartifacts\x18\x02 \x01(\t\x12\x42\n\x07outputs\x18\x03 \x03(\x0b\x32\x31.google.cloud.config.v1.ApplyResults.OutputsEntry\x1aW\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.config.v1.TerraformOutput:\x02\x38\x01\"K\n\x0fTerraformOutput\x12\x11\n\tsensitive\x18\x01 \x01(\x08\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value\"\x9c\x01\n\x16ListDeploymentsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"\x80\x01\n\x17ListDeploymentsResponse\x12\x37\n\x0b\x64\x65ployments\x18\x01 \x03(\x0b\x32\".google.cloud.config.v1.Deployment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"N\n\x14GetDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\"\x99\x01\n\x14ListRevisionsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"z\n\x15ListRevisionsResponse\x12\x33\n\trevisions\x18\x01 \x03(\x0b\x32 .google.cloud.config.v1.Revision\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"J\n\x12GetRevisionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Revision\"\xc6\x01\n\x17\x43reateDeploymentRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1a\n\rdeployment_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12;\n\ndeployment\x18\x03 \x01(\x0b\x32\".google.cloud.config.v1.DeploymentB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\xa5\x01\n\x17UpdateDeploymentRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12;\n\ndeployment\x18\x02 \x01(\x0b\x32\".google.cloud.config.v1.DeploymentB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xa0\x02\n\x17\x44\x65leteDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x66orce\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12X\n\rdelete_policy\x18\x04 \x01(\x0e\x32<.google.cloud.config.v1.DeleteDeploymentRequest.DeletePolicyB\x03\xe0\x41\x01\"F\n\x0c\x44\x65letePolicy\x12\x1d\n\x19\x44\x45LETE_POLICY_UNSPECIFIED\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\"\xc1\x03\n\x11OperationMetadata\x12W\n\x13\x64\x65ployment_metadata\x18\x08 \x01(\x0b\x32\x33.google.cloud.config.v1.DeploymentOperationMetadataB\x03\xe0\x41\x03H\x00\x12Q\n\x10preview_metadata\x18\t \x01(\x0b\x32\x30.google.cloud.config.v1.PreviewOperationMetadataB\x03\xe0\x41\x03H\x00\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x42\x13\n\x11resource_metadata\"\xc9\x0b\n\x08Revision\x12N\n\x13terraform_blueprint\x18\x06 \x01(\x0b\x32*.google.cloud.config.v1.TerraformBlueprintB\x03\xe0\x41\x03H\x00\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\'.google.cloud.config.v1.Revision.ActionB\x03\xe0\x41\x03\x12:\n\x05state\x18\x05 \x01(\x0e\x32&.google.cloud.config.v1.Revision.StateB\x03\xe0\x41\x03\x12@\n\rapply_results\x18\x07 \x01(\x0b\x32$.google.cloud.config.v1.ApplyResultsB\x03\xe0\x41\x03\x12\x19\n\x0cstate_detail\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12\x43\n\nerror_code\x18\t \x01(\x0e\x32*.google.cloud.config.v1.Revision.ErrorCodeB\x03\xe0\x41\x03\x12\x12\n\x05\x62uild\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04logs\x18\x0b \x01(\tB\x03\xe0\x41\x03\x12>\n\ttf_errors\x18\x0c \x03(\x0b\x32&.google.cloud.config.v1.TerraformErrorB\x03\xe0\x41\x03\x12\x17\n\nerror_logs\x18\r \x01(\tB\x03\xe0\x41\x03\x12\x42\n\x0fservice_account\x18\x0e \x01(\tB)\xe0\x41\x03\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12&\n\x19import_existing_resources\x18\x0f \x01(\x08\x42\x03\xe0\x41\x03\x12\x41\n\x0bworker_pool\x18\x11 \x01(\tB,\xe0\x41\x03\xfa\x41&\n$cloudbuild.googleapis.com/WorkerPool\x12\"\n\x15tf_version_constraint\x18\x12 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\ntf_version\x18\x13 \x01(\tB\x03\xe0\x41\x03\x12%\n\x18quota_validation_results\x18\x1d \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x10quota_validation\x18\x14 \x01(\x0e\x32\'.google.cloud.config.v1.QuotaValidationB\x03\xe0\x41\x01\x12\x44\n\x0fprovider_config\x18\x15 \x01(\x0b\x32&.google.cloud.config.v1.ProviderConfigB\x03\xe0\x41\x03\"D\n\x06\x41\x63tion\x12\x16\n\x12\x41\x43TION_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\"E\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x41PPLYING\x10\x01\x12\x0b\n\x07\x41PPLIED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"\x9f\x01\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12!\n\x1d\x43LOUD_BUILD_PERMISSION_DENIED\x10\x01\x12\x1a\n\x16\x41PPLY_BUILD_API_FAILED\x10\x04\x12\x1a\n\x16\x41PPLY_BUILD_RUN_FAILED\x10\x05\x12\x1b\n\x17QUOTA_VALIDATION_FAILED\x10\x07:z\xea\x41w\n\x1e\x63onfig.googleapis.com/Revision\x12Uprojects/{project}/locations/{location}/deployments/{deployment}/revisions/{revision}B\x0b\n\tblueprint\"\x89\x01\n\x0eTerraformError\x12\x18\n\x10resource_address\x18\x01 \x01(\t\x12\x1a\n\x12http_response_code\x18\x02 \x01(\x05\x12\x19\n\x11\x65rror_description\x18\x03 \x01(\t\x12&\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\"v\n\tGitSource\x12\x16\n\x04repo\x18\x01 \x01(\tB\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x1b\n\tdirectory\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x15\n\x03ref\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x02\x88\x01\x01\x42\x07\n\x05_repoB\x0c\n\n_directoryB\x06\n\x04_ref\"\x9f\x04\n\x1b\x44\x65ploymentOperationMetadata\x12P\n\x04step\x18\x01 \x01(\x0e\x32\x42.google.cloud.config.v1.DeploymentOperationMetadata.DeploymentStep\x12;\n\rapply_results\x18\x02 \x01(\x0b\x32$.google.cloud.config.v1.ApplyResults\x12\x12\n\x05\x62uild\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04logs\x18\x04 \x01(\tB\x03\xe0\x41\x03\"\xc9\x02\n\x0e\x44\x65ploymentStep\x12\x1f\n\x1b\x44\x45PLOYMENT_STEP_UNSPECIFIED\x10\x00\x12\x1c\n\x18PREPARING_STORAGE_BUCKET\x10\x01\x12\x19\n\x15\x44OWNLOADING_BLUEPRINT\x10\x02\x12\x13\n\x0fRUNNING_TF_INIT\x10\x03\x12\x13\n\x0fRUNNING_TF_PLAN\x10\x04\x12\x14\n\x10RUNNING_TF_APPLY\x10\x05\x12\x16\n\x12RUNNING_TF_DESTROY\x10\x06\x12\x17\n\x13RUNNING_TF_VALIDATE\x10\x07\x12\x18\n\x14UNLOCKING_DEPLOYMENT\x10\x08\x12\r\n\tSUCCEEDED\x10\t\x12\n\n\x06\x46\x41ILED\x10\n\x12\x19\n\x15VALIDATING_REPOSITORY\x10\x0b\x12\x1c\n\x18RUNNING_QUOTA_VALIDATION\x10\x0c\"\xd8\x05\n\x08Resource\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12J\n\x0eterraform_info\x18\x02 \x01(\x0b\x32-.google.cloud.config.v1.ResourceTerraformInfoB\x03\xe0\x41\x03\x12H\n\ncai_assets\x18\x03 \x03(\x0b\x32/.google.cloud.config.v1.Resource.CaiAssetsEntryB\x03\xe0\x41\x03\x12<\n\x06intent\x18\x04 \x01(\x0e\x32\'.google.cloud.config.v1.Resource.IntentB\x03\xe0\x41\x03\x12:\n\x05state\x18\x05 \x01(\x0e\x32&.google.cloud.config.v1.Resource.StateB\x03\xe0\x41\x03\x1aY\n\x0e\x43\x61iAssetsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.google.cloud.config.v1.ResourceCAIInfo:\x02\x38\x01\"a\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\x0c\n\x08RECREATE\x10\x04\x12\r\n\tUNCHANGED\x10\x05\"X\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PLANNED\x10\x01\x12\x0f\n\x0bIN_PROGRESS\x10\x02\x12\x0e\n\nRECONCILED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04:\x90\x01\xea\x41\x8c\x01\n\x1e\x63onfig.googleapis.com/Resource\x12jprojects/{project}/locations/{location}/deployments/{deployment}/revisions/{revision}/resources/{resource}\"B\n\x15ResourceTerraformInfo\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\n\n\x02id\x18\x03 \x01(\t\"-\n\x0fResourceCAIInfo\x12\x1a\n\x12\x66ull_resource_name\x18\x01 \x01(\t\"J\n\x12GetResourceRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Resource\"\x97\x01\n\x14ListResourcesRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Revision\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"z\n\x15ListResourcesResponse\x12\x33\n\tresources\x18\x01 \x03(\x0b\x32 .google.cloud.config.v1.Resource\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"$\n\tStatefile\x12\x17\n\nsigned_uri\x18\x01 \x01(\tB\x03\xe0\x41\x03\"p\n ExportDeploymentStatefileRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x12\n\x05\x64raft\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"X\n\x1e\x45xportRevisionStatefileRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63onfig.googleapis.com/Revision\"\x81\x01\n\x16ImportStatefileRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x14\n\x07lock_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\x12\x17\n\nskip_draft\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"f\n\x16\x44\x65leteStatefileRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x14\n\x07lock_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\"O\n\x15LockDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\"g\n\x17UnlockDeploymentRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\x12\x14\n\x07lock_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\"O\n\x15\x45xportLockInfoRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n config.googleapis.com/Deployment\"\x8b\x01\n\x08LockInfo\x12\x0f\n\x07lock_id\x18\x01 \x01(\x03\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x0c\n\x04info\x18\x03 \x01(\t\x12\x0b\n\x03who\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xbe\x0e\n\x07Preview\x12I\n\x13terraform_blueprint\x18\x06 \x01(\x0b\x32*.google.cloud.config.v1.TerraformBlueprintH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x06labels\x18\x03 \x03(\x0b\x32+.google.cloud.config.v1.Preview.LabelsEntryB\x03\xe0\x41\x01\x12\x39\n\x05state\x18\x04 \x01(\x0e\x32%.google.cloud.config.v1.Preview.StateB\x03\xe0\x41\x03\x12<\n\ndeployment\x18\x05 \x01(\tB(\xe0\x41\x01\xfa\x41\"\n config.googleapis.com/Deployment\x12\x46\n\x0cpreview_mode\x18\x0f \x01(\x0e\x32+.google.cloud.config.v1.Preview.PreviewModeB\x03\xe0\x41\x01\x12\x42\n\x0fservice_account\x18\x07 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12&\n\x14\x61rtifacts_gcs_bucket\x18\x08 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x46\n\x0bworker_pool\x18\t \x01(\tB,\xe0\x41\x01\xfa\x41&\n$cloudbuild.googleapis.com/WorkerPoolH\x02\x88\x01\x01\x12\x42\n\nerror_code\x18\n \x01(\x0e\x32).google.cloud.config.v1.Preview.ErrorCodeB\x03\xe0\x41\x03\x12-\n\x0c\x65rror_status\x18\x0b \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x12\n\x05\x62uild\x18\x0c \x01(\tB\x03\xe0\x41\x03\x12>\n\ttf_errors\x18\r \x03(\x0b\x32&.google.cloud.config.v1.TerraformErrorB\x03\xe0\x41\x03\x12\x17\n\nerror_logs\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12H\n\x11preview_artifacts\x18\x10 \x01(\x0b\x32(.google.cloud.config.v1.PreviewArtifactsB\x03\xe0\x41\x03\x12\x11\n\x04logs\x18\x11 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\ntf_version\x18\x12 \x01(\tB\x03\xe0\x41\x03\x12\'\n\x15tf_version_constraint\x18\x13 \x01(\tB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12J\n\x0b\x61nnotations\x18\x14 \x03(\x0b\x32\x30.google.cloud.config.v1.Preview.AnnotationsEntryB\x03\xe0\x41\x01\x12\x44\n\x0fprovider_config\x18\x15 \x01(\x0b\x32&.google.cloud.config.v1.ProviderConfigB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"{\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\x0c\n\x08\x41PPLYING\x10\x03\x12\t\n\x05STALE\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0b\n\x07\x44\x45LETED\x10\x07\"D\n\x0bPreviewMode\x12\x1c\n\x18PREVIEW_MODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\"\xed\x01\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12!\n\x1d\x43LOUD_BUILD_PERMISSION_DENIED\x10\x01\x12%\n!BUCKET_CREATION_PERMISSION_DENIED\x10\x02\x12\x1a\n\x16\x42UCKET_CREATION_FAILED\x10\x03\x12\"\n\x1e\x44\x45PLOYMENT_LOCK_ACQUIRE_FAILED\x10\x04\x12\x1c\n\x18PREVIEW_BUILD_API_FAILED\x10\x05\x12\x1c\n\x18PREVIEW_BUILD_RUN_FAILED\x10\x06:q\xea\x41n\n\x1d\x63onfig.googleapis.com/Preview\x12:projects/{project}/locations/{location}/previews/{preview}*\x08previews2\x07previewB\x0b\n\tblueprintB\x17\n\x15_artifacts_gcs_bucketB\x0e\n\x0c_worker_poolB\x18\n\x16_tf_version_constraint\"\xe4\x03\n\x18PreviewOperationMetadata\x12J\n\x04step\x18\x01 \x01(\x0e\x32<.google.cloud.config.v1.PreviewOperationMetadata.PreviewStep\x12\x43\n\x11preview_artifacts\x18\x02 \x01(\x0b\x32(.google.cloud.config.v1.PreviewArtifacts\x12\x11\n\x04logs\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05\x62uild\x18\x04 \x01(\tB\x03\xe0\x41\x03\"\x8f\x02\n\x0bPreviewStep\x12\x1c\n\x18PREVIEW_STEP_UNSPECIFIED\x10\x00\x12\x1c\n\x18PREPARING_STORAGE_BUCKET\x10\x01\x12\x19\n\x15\x44OWNLOADING_BLUEPRINT\x10\x02\x12\x13\n\x0fRUNNING_TF_INIT\x10\x03\x12\x13\n\x0fRUNNING_TF_PLAN\x10\x04\x12\x17\n\x13\x46\x45TCHING_DEPLOYMENT\x10\x05\x12\x16\n\x12LOCKING_DEPLOYMENT\x10\x06\x12\x18\n\x14UNLOCKING_DEPLOYMENT\x10\x07\x12\r\n\tSUCCEEDED\x10\x08\x12\n\n\x06\x46\x41ILED\x10\t\x12\x19\n\x15VALIDATING_REPOSITORY\x10\n\"@\n\x10PreviewArtifacts\x12\x14\n\x07\x63ontent\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\tartifacts\x18\x02 \x01(\tB\x03\xe0\x41\x03\"\xc2\x01\n\x14\x43reatePreviewRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x17\n\npreview_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x35\n\x07preview\x18\x03 \x01(\x0b\x32\x1f.google.cloud.config.v1.PreviewB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"H\n\x11GetPreviewRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\"\xad\x01\n\x13ListPreviewsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"w\n\x14ListPreviewsResponse\x12\x31\n\x08previews\x18\x01 \x03(\x0b\x32\x1f.google.cloud.config.v1.Preview\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"l\n\x14\x44\x65letePreviewRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"S\n\x1a\x45xportPreviewResultRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\"Y\n\x1b\x45xportPreviewResultResponse\x12:\n\x06result\x18\x01 \x01(\x0b\x32%.google.cloud.config.v1.PreviewResultB\x03\xe0\x41\x03\"M\n\rPreviewResult\x12\x1e\n\x11\x62inary_signed_uri\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fjson_signed_uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\"Z\n\x1aGetTerraformVersionRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&config.googleapis.com/TerraformVersion\"\xb6\x01\n\x1cListTerraformVersionsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x93\x01\n\x1dListTerraformVersionsResponse\x12\x44\n\x12terraform_versions\x18\x01 \x03(\x0b\x32(.google.cloud.config.v1.TerraformVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xad\x04\n\x10TerraformVersion\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x42\n\x05state\x18\x02 \x01(\x0e\x32..google.cloud.config.v1.TerraformVersion.StateB\x03\xe0\x41\x03\x12\x35\n\x0csupport_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x0e\x64\x65precate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03H\x00\x88\x01\x01\x12;\n\robsolete_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03H\x01\x88\x01\x01\"H\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0e\n\nDEPRECATED\x10\x02\x12\x0c\n\x08OBSOLETE\x10\x03:\xa0\x01\xea\x41\x9c\x01\n&config.googleapis.com/TerraformVersion\x12Mprojects/{project}/locations/{location}/terraformVersions/{terraform_version}*\x11terraformVersions2\x10terraformVersionB\x11\n\x0f_deprecate_timeB\x10\n\x0e_obsolete_time\"\x8f\x01\n\x1bResourceChangeTerraformInfo\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rresource_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08provider\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x61\x63tions\x18\x05 \x03(\tB\x03\xe0\x41\x03\"\x8f\x04\n\x0eResourceChange\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12P\n\x0eterraform_info\x18\x02 \x01(\x0b\x32\x33.google.cloud.config.v1.ResourceChangeTerraformInfoB\x03\xe0\x41\x03\x12\x42\n\x06intent\x18\x03 \x01(\x0e\x32-.google.cloud.config.v1.ResourceChange.IntentB\x03\xe0\x41\x03\x12\x45\n\x10property_changes\x18\x04 \x03(\x0b\x32&.google.cloud.config.v1.PropertyChangeB\x03\xe0\x41\x03\"a\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\n\n\x06\x43REATE\x10\x01\x12\n\n\x06UPDATE\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\x12\x0c\n\x08RECREATE\x10\x04\x12\r\n\tUNCHANGED\x10\x05:\xa9\x01\xea\x41\xa5\x01\n$config.googleapis.com/ResourceChange\x12\\projects/{project}/locations/{location}/previews/{preview}/resourceChanges/{resource_change}*\x0fresourceChanges2\x0eresourceChange\"\xc5\x01\n\x0ePropertyChange\x12\x11\n\x04path\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16\x62\x65\x66ore_sensitive_paths\x18\x02 \x03(\tB\x03\xe0\x41\x03\x12+\n\x06\x62\x65\x66ore\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\x12\"\n\x15\x61\x66ter_sensitive_paths\x18\x04 \x03(\tB\x03\xe0\x41\x03\x12*\n\x05\x61\x66ter\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\"\xb0\x01\n\x1aListResourceChangesRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8d\x01\n\x1bListResourceChangesResponse\x12@\n\x10resource_changes\x18\x01 \x03(\x0b\x32&.google.cloud.config.v1.ResourceChange\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"V\n\x18GetResourceChangeRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$config.googleapis.com/ResourceChange\"x\n\x1aResourceDriftTerraformInfo\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rresource_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08provider\x18\x04 \x01(\tB\x03\xe0\x41\x03\"\xdf\x02\n\rResourceDrift\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12O\n\x0eterraform_info\x18\x02 \x01(\x0b\x32\x32.google.cloud.config.v1.ResourceDriftTerraformInfoB\x03\xe0\x41\x03\x12\x43\n\x0fproperty_drifts\x18\x03 \x03(\x0b\x32%.google.cloud.config.v1.PropertyDriftB\x03\xe0\x41\x03:\xa4\x01\xea\x41\xa0\x01\n#config.googleapis.com/ResourceDrift\x12Zprojects/{project}/locations/{location}/previews/{preview}/resourceDrifts/{resource_drift}*\x0eresourceDrifts2\rresourceDrift\"\xc4\x01\n\rPropertyDrift\x12\x11\n\x04path\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16\x62\x65\x66ore_sensitive_paths\x18\x02 \x03(\tB\x03\xe0\x41\x03\x12+\n\x06\x62\x65\x66ore\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\x12\"\n\x15\x61\x66ter_sensitive_paths\x18\x04 \x03(\tB\x03\xe0\x41\x03\x12*\n\x05\x61\x66ter\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueB\x03\xe0\x41\x03\"\xaf\x01\n\x19ListResourceDriftsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x63onfig.googleapis.com/Preview\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n\x1aListResourceDriftsResponse\x12>\n\x0fresource_drifts\x18\x01 \x03(\x0b\x32%.google.cloud.config.v1.ResourceDrift\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"T\n\x17GetResourceDriftRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#config.googleapis.com/ResourceDrift\"\xc1\x01\n\x0eProviderConfig\x12T\n\x0bsource_type\x18\x01 \x01(\x0e\x32\x35.google.cloud.config.v1.ProviderConfig.ProviderSourceB\x03\xe0\x41\x01H\x00\x88\x01\x01\"I\n\x0eProviderSource\x12\x1f\n\x1bPROVIDER_SOURCE_UNSPECIFIED\x10\x00\x12\x16\n\x12SERVICE_MAINTAINED\x10\x01\x42\x0e\n\x0c_source_type*N\n\x0fQuotaValidation\x12 \n\x1cQUOTA_VALIDATION_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x45NFORCED\x10\x02\x32\xc1)\n\x06\x43onfig\x12\xb4\x01\n\x0fListDeployments\x12..google.cloud.config.v1.ListDeploymentsRequest\x1a/.google.cloud.config.v1.ListDeploymentsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/deployments\x12\xa1\x01\n\rGetDeployment\x12,.google.cloud.config.v1.GetDeploymentRequest\x1a\".google.cloud.config.v1.Deployment\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/deployments/*}\x12\xec\x01\n\x10\x43reateDeployment\x12/.google.cloud.config.v1.CreateDeploymentRequest\x1a\x1d.google.longrunning.Operation\"\x87\x01\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x1fparent,deployment,deployment_id\x82\xd3\xe4\x93\x02=\"//v1/{parent=projects/*/locations/*}/deployments:\ndeployment\x12\xee\x01\n\x10UpdateDeployment\x12/.google.cloud.config.v1.UpdateDeploymentRequest\x1a\x1d.google.longrunning.Operation\"\x89\x01\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x16\x64\x65ployment,update_mask\x82\xd3\xe4\x93\x02H2:/v1/{deployment.name=projects/*/locations/*/deployments/*}:\ndeployment\x12\xc4\x01\n\x10\x44\x65leteDeployment\x12/.google.cloud.config.v1.DeleteDeploymentRequest\x1a\x1d.google.longrunning.Operation\"`\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/deployments/*}\x12\xba\x01\n\rListRevisions\x12,.google.cloud.config.v1.ListRevisionsRequest\x1a-.google.cloud.config.v1.ListRevisionsResponse\"L\xda\x41\x06parent\x82\xd3\xe4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/deployments/*}/revisions\x12\xa7\x01\n\x0bGetRevision\x12*.google.cloud.config.v1.GetRevisionRequest\x1a .google.cloud.config.v1.Revision\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\x12;/v1/{name=projects/*/locations/*/deployments/*/revisions/*}\x12\xb3\x01\n\x0bGetResource\x12*.google.cloud.config.v1.GetResourceRequest\x1a .google.cloud.config.v1.Resource\"V\xda\x41\x04name\x82\xd3\xe4\x93\x02I\x12G/v1/{name=projects/*/locations/*/deployments/*/revisions/*/resources/*}\x12\xc6\x01\n\rListResources\x12,.google.cloud.config.v1.ListResourcesRequest\x1a-.google.cloud.config.v1.ListResourcesResponse\"X\xda\x41\x06parent\x82\xd3\xe4\x93\x02I\x12G/v1/{parent=projects/*/locations/*/deployments/*/revisions/*}/resources\x12\xc2\x01\n\x19\x45xportDeploymentStatefile\x12\x38.google.cloud.config.v1.ExportDeploymentStatefileRequest\x1a!.google.cloud.config.v1.Statefile\"H\x82\xd3\xe4\x93\x02\x42\"=/v1/{parent=projects/*/locations/*/deployments/*}:exportState:\x01*\x12\xca\x01\n\x17\x45xportRevisionStatefile\x12\x36.google.cloud.config.v1.ExportRevisionStatefileRequest\x1a!.google.cloud.config.v1.Statefile\"T\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/deployments/*/revisions/*}:exportState:\x01*\x12\xbf\x01\n\x0fImportStatefile\x12..google.cloud.config.v1.ImportStatefileRequest\x1a!.google.cloud.config.v1.Statefile\"Y\xda\x41\x0eparent,lock_id\x82\xd3\xe4\x93\x02\x42\"=/v1/{parent=projects/*/locations/*/deployments/*}:importState:\x01*\x12\xa8\x01\n\x0f\x44\x65leteStatefile\x12..google.cloud.config.v1.DeleteStatefileRequest\x1a\x16.google.protobuf.Empty\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@\";/v1/{name=projects/*/locations/*/deployments/*}:deleteState:\x01*\x12\xc8\x01\n\x0eLockDeployment\x12-.google.cloud.config.v1.LockDeploymentRequest\x1a\x1d.google.longrunning.Operation\"h\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x39\"4/v1/{name=projects/*/locations/*/deployments/*}:lock:\x01*\x12\xd6\x01\n\x10UnlockDeployment\x12/.google.cloud.config.v1.UnlockDeploymentRequest\x1a\x1d.google.longrunning.Operation\"r\xca\x41\x1f\n\nDeployment\x12\x11OperationMetadata\xda\x41\x0cname,lock_id\x82\xd3\xe4\x93\x02;\"6/v1/{name=projects/*/locations/*/deployments/*}:unlock:\x01*\x12\xac\x01\n\x0e\x45xportLockInfo\x12-.google.cloud.config.v1.ExportLockInfoRequest\x1a .google.cloud.config.v1.LockInfo\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/*/deployments/*}:exportLock\x12\xcb\x01\n\rCreatePreview\x12,.google.cloud.config.v1.CreatePreviewRequest\x1a\x1d.google.longrunning.Operation\"m\xca\x41\x1c\n\x07Preview\x12\x11OperationMetadata\xda\x41\x0eparent,preview\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/previews:\x07preview\x12\x95\x01\n\nGetPreview\x12).google.cloud.config.v1.GetPreviewRequest\x1a\x1f.google.cloud.config.v1.Preview\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/previews/*}\x12\xa8\x01\n\x0cListPreviews\x12+.google.cloud.config.v1.ListPreviewsRequest\x1a,.google.cloud.config.v1.ListPreviewsResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/previews\x12\xb8\x01\n\rDeletePreview\x12,.google.cloud.config.v1.DeletePreviewRequest\x1a\x1d.google.longrunning.Operation\"Z\xca\x41\x1c\n\x07Preview\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/previews/*}\x12\xc0\x01\n\x13\x45xportPreviewResult\x12\x32.google.cloud.config.v1.ExportPreviewResultRequest\x1a\x33.google.cloud.config.v1.ExportPreviewResultResponse\"@\x82\xd3\xe4\x93\x02:\"5/v1/{parent=projects/*/locations/*/previews/*}:export:\x01*\x12\xcc\x01\n\x15ListTerraformVersions\x12\x34.google.cloud.config.v1.ListTerraformVersionsRequest\x1a\x35.google.cloud.config.v1.ListTerraformVersionsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*}/terraformVersions\x12\xb9\x01\n\x13GetTerraformVersion\x12\x32.google.cloud.config.v1.GetTerraformVersionRequest\x1a(.google.cloud.config.v1.TerraformVersion\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{name=projects/*/locations/*/terraformVersions/*}\x12\xcf\x01\n\x13ListResourceChanges\x12\x32.google.cloud.config.v1.ListResourceChangesRequest\x1a\x33.google.cloud.config.v1.ListResourceChangesResponse\"O\xda\x41\x06parent\x82\xd3\xe4\x93\x02@\x12>/v1/{parent=projects/*/locations/*/previews/*}/resourceChanges\x12\xbc\x01\n\x11GetResourceChange\x12\x30.google.cloud.config.v1.GetResourceChangeRequest\x1a&.google.cloud.config.v1.ResourceChange\"M\xda\x41\x04name\x82\xd3\xe4\x93\x02@\x12>/v1/{name=projects/*/locations/*/previews/*/resourceChanges/*}\x12\xcb\x01\n\x12ListResourceDrifts\x12\x31.google.cloud.config.v1.ListResourceDriftsRequest\x1a\x32.google.cloud.config.v1.ListResourceDriftsResponse\"N\xda\x41\x06parent\x82\xd3\xe4\x93\x02?\x12=/v1/{parent=projects/*/locations/*/previews/*}/resourceDrifts\x12\xb8\x01\n\x10GetResourceDrift\x12/.google.cloud.config.v1.GetResourceDriftRequest\x1a%.google.cloud.config.v1.ResourceDrift\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?\x12=/v1/{name=projects/*/locations/*/previews/*/resourceDrifts/*}\x1aI\xca\x41\x15\x63onfig.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xfc\x02\n\x1a\x63om.google.cloud.config.v1B\x0b\x43onfigProtoP\x01Z2cloud.google.com/go/config/apiv1/configpb;configpb\xaa\x02\x16Google.Cloud.Config.V1\xca\x02\x16Google\\Cloud\\Config\\V1\xea\x02 Google::Cloud::ConfigService::V1\xea\x41Y\n!iam.googleapis.com/ServiceAccount\x12\x34projects/{project}/serviceAccounts/{service_account}\xea\x41i\n$cloudbuild.googleapis.com/WorkerPool\x12\x41projects/{project}/locations/{location}/workerPools/{worker_pool}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -128,6 +128,8 @@ module V1 ListResourceDriftsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.config.v1.ListResourceDriftsRequest").msgclass ListResourceDriftsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.config.v1.ListResourceDriftsResponse").msgclass GetResourceDriftRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.config.v1.GetResourceDriftRequest").msgclass + ProviderConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.config.v1.ProviderConfig").msgclass + ProviderConfig::ProviderSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.config.v1.ProviderConfig.ProviderSource").enummodule QuotaValidation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.config.v1.QuotaValidation").enummodule end end diff --git a/google-cloud-config_service-v1/lib/google/cloud/config_service/v1/version.rb b/google-cloud-config_service-v1/lib/google/cloud/config_service/v1/version.rb index 019117818377..328216ce0c3e 100644 --- a/google-cloud-config_service-v1/lib/google/cloud/config_service/v1/version.rb +++ b/google-cloud-config_service-v1/lib/google/cloud/config_service/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ConfigService module V1 - VERSION = "2.2.0" + VERSION = "2.4.0" end end end diff --git a/google-cloud-config_service-v1/proto_docs/google/cloud/config/v1/config.rb b/google-cloud-config_service-v1/proto_docs/google/cloud/config/v1/config.rb index ff0e6cb98d5f..d027d4ac40f7 100644 --- a/google-cloud-config_service-v1/proto_docs/google/cloud/config/v1/config.rb +++ b/google-cloud-config_service-v1/proto_docs/google/cloud/config/v1/config.rb @@ -128,6 +128,9 @@ module V1 # identify deployments during automation. See # https://google.aip.dev/148#annotations for details on format and size # limitations. + # @!attribute [rw] provider_config + # @return [::Google::Cloud::ConfigService::V1::ProviderConfig] + # Optional. This field specifies the provider configurations. class Deployment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -694,6 +697,9 @@ class OperationMetadata # Optional. Input to control quota checks for resources in terraform # configuration files. There are limited resources on which quota validation # applies. + # @!attribute [r] provider_config + # @return [::Google::Cloud::ConfigService::V1::ProviderConfig] + # Output only. This field specifies the provider configurations. class Revision include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1237,6 +1243,9 @@ class LockInfo # identify preview during automation. See # https://google.aip.dev/148#annotations for details on format and size # limitations. + # @!attribute [rw] provider_config + # @return [::Google::Cloud::ConfigService::V1::ProviderConfig] + # Optional. This field specifies the provider configurations. class Preview include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1932,6 +1941,24 @@ class GetResourceDriftRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # ProviderConfig contains the provider configurations. + # @!attribute [rw] source_type + # @return [::Google::Cloud::ConfigService::V1::ProviderConfig::ProviderSource] + # Optional. ProviderSource specifies the source type of the provider. + class ProviderConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # ProviderSource represents the source type of the provider. + module ProviderSource + # Unspecified source type, default to public sources. + PROVIDER_SOURCE_UNSPECIFIED = 0 + + # Service maintained provider source type. + SERVICE_MAINTAINED = 1 + end + end + # Enum values to control quota checks for resources in terraform # configuration files. module QuotaValidation diff --git a/google-cloud-config_service-v1/snippets/snippet_metadata_google.cloud.config.v1.json b/google-cloud-config_service-v1/snippets/snippet_metadata_google.cloud.config.v1.json index 677c75d286e0..7e03616fb39b 100644 --- a/google-cloud-config_service-v1/snippets/snippet_metadata_google.cloud.config.v1.json +++ b/google-cloud-config_service-v1/snippets/snippet_metadata_google.cloud.config.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-config_service-v1", - "version": "2.2.0", + "version": "2.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-config_service/CHANGELOG.md b/google-cloud-config_service/CHANGELOG.md index f1bba9cc80be..abfa55bd552d 100644 --- a/google-cloud-config_service/CHANGELOG.md +++ b/google-cloud-config_service/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-config_service/README.md b/google-cloud-config_service/README.md index 2ba0232d5040..6fbbe6fb2b66 100644 --- a/google-cloud-config_service/README.md +++ b/google-cloud-config_service/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/config.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/config_service" + +client = Google::Cloud::ConfigService.config +request = ::Google::Cloud::ConfigService::V1::ListDeploymentsRequest.new # (request fields as keyword arguments...) +response = client.list_deployments request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-config_service/lib/google/cloud/config_service/version.rb b/google-cloud-config_service/lib/google/cloud/config_service/version.rb index cbda3028320c..9d75063415ad 100644 --- a/google-cloud-config_service/lib/google/cloud/config_service/version.rb +++ b/google-cloud-config_service/lib/google/cloud/config_service/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ConfigService - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-connectors-v1/CHANGELOG.md b/google-cloud-connectors-v1/CHANGELOG.md index 5df227691260..6e64c4da464d 100644 --- a/google-cloud-connectors-v1/CHANGELOG.md +++ b/google-cloud-connectors-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-connectors-v1/google-cloud-connectors-v1.gemspec b/google-cloud-connectors-v1/google-cloud-connectors-v1.gemspec index 2dc52b6f2972..a01372fac00b 100644 --- a/google-cloud-connectors-v1/google-cloud-connectors-v1.gemspec +++ b/google-cloud-connectors-v1/google-cloud-connectors-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-connectors-v1/lib/google/cloud/connectors/v1/version.rb b/google-cloud-connectors-v1/lib/google/cloud/connectors/v1/version.rb index 1cb36733f426..10bfe4be8f35 100644 --- a/google-cloud-connectors-v1/lib/google/cloud/connectors/v1/version.rb +++ b/google-cloud-connectors-v1/lib/google/cloud/connectors/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Connectors module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-connectors-v1/snippets/snippet_metadata_google.cloud.connectors.v1.json b/google-cloud-connectors-v1/snippets/snippet_metadata_google.cloud.connectors.v1.json index 3315e0cd1890..ee6a28b5c5d3 100644 --- a/google-cloud-connectors-v1/snippets/snippet_metadata_google.cloud.connectors.v1.json +++ b/google-cloud-connectors-v1/snippets/snippet_metadata_google.cloud.connectors.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-connectors-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-connectors/CHANGELOG.md b/google-cloud-connectors/CHANGELOG.md index f938f1463f86..b0141951c034 100644 --- a/google-cloud-connectors/CHANGELOG.md +++ b/google-cloud-connectors/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-connectors/README.md b/google-cloud-connectors/README.md index bd72fd28cafc..a47f4421597d 100644 --- a/google-cloud-connectors/README.md +++ b/google-cloud-connectors/README.md @@ -31,6 +31,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/connectors.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/connectors" + +client = Google::Cloud::Connectors.connectors +request = ::Google::Cloud::Connectors::V1::ListConnectionsRequest.new # (request fields as keyword arguments...) +response = client.list_connections request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-connectors/lib/google/cloud/connectors/version.rb b/google-cloud-connectors/lib/google/cloud/connectors/version.rb index 30eb6100603b..ac2ca3cb975d 100644 --- a/google-cloud-connectors/lib/google/cloud/connectors/version.rb +++ b/google-cloud-connectors/lib/google/cloud/connectors/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Connectors - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-contact_center_insights-v1/CHANGELOG.md b/google-cloud-contact_center_insights-v1/CHANGELOG.md index 6eea4874a957..d404ad9744e0 100644 --- a/google-cloud-contact_center_insights-v1/CHANGELOG.md +++ b/google-cloud-contact_center_insights-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.6.0 (2025-05-12) #### Features diff --git a/google-cloud-contact_center_insights-v1/google-cloud-contact_center_insights-v1.gemspec b/google-cloud-contact_center_insights-v1/google-cloud-contact_center_insights-v1.gemspec index a21f4e34362d..b76bc7181111 100644 --- a/google-cloud-contact_center_insights-v1/google-cloud-contact_center_insights-v1.gemspec +++ b/google-cloud-contact_center_insights-v1/google-cloud-contact_center_insights-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" end diff --git a/google-cloud-contact_center_insights-v1/lib/google/cloud/contact_center_insights/v1/version.rb b/google-cloud-contact_center_insights-v1/lib/google/cloud/contact_center_insights/v1/version.rb index 9c4469a3b75a..b37564ac80a8 100644 --- a/google-cloud-contact_center_insights-v1/lib/google/cloud/contact_center_insights/v1/version.rb +++ b/google-cloud-contact_center_insights-v1/lib/google/cloud/contact_center_insights/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ContactCenterInsights module V1 - VERSION = "1.6.0" + VERSION = "1.7.0" end end end diff --git a/google-cloud-contact_center_insights-v1/snippets/snippet_metadata_google.cloud.contactcenterinsights.v1.json b/google-cloud-contact_center_insights-v1/snippets/snippet_metadata_google.cloud.contactcenterinsights.v1.json index c8b2b6c1e31d..6686de502dd6 100644 --- a/google-cloud-contact_center_insights-v1/snippets/snippet_metadata_google.cloud.contactcenterinsights.v1.json +++ b/google-cloud-contact_center_insights-v1/snippets/snippet_metadata_google.cloud.contactcenterinsights.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-contact_center_insights-v1", - "version": "1.6.0", + "version": "1.7.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-contact_center_insights/CHANGELOG.md b/google-cloud-contact_center_insights/CHANGELOG.md index 76fa419db19d..fbbdf952625d 100644 --- a/google-cloud-contact_center_insights/CHANGELOG.md +++ b/google-cloud-contact_center_insights/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-contact_center_insights/README.md b/google-cloud-contact_center_insights/README.md index 2ca7c2b8798b..bd31364c97da 100644 --- a/google-cloud-contact_center_insights/README.md +++ b/google-cloud-contact_center_insights/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/contactcenterinsights.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/contact_center_insights" + +client = Google::Cloud::ContactCenterInsights.contact_center_insights +request = ::Google::Cloud::ContactCenterInsights::V1::CreateConversationRequest.new # (request fields as keyword arguments...) +response = client.create_conversation request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-contact_center_insights/lib/google/cloud/contact_center_insights/version.rb b/google-cloud-contact_center_insights/lib/google/cloud/contact_center_insights/version.rb index c6786a19a971..f41b1febce6d 100644 --- a/google-cloud-contact_center_insights/lib/google/cloud/contact_center_insights/version.rb +++ b/google-cloud-contact_center_insights/lib/google/cloud/contact_center_insights/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ContactCenterInsights - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-container-v1/CHANGELOG.md b/google-cloud-container-v1/CHANGELOG.md index f59358e7f03f..e7b8f9f69e24 100644 --- a/google-cloud-container-v1/CHANGELOG.md +++ b/google-cloud-container-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.9.0 (2025-07-17) #### Features diff --git a/google-cloud-container-v1/google-cloud-container-v1.gemspec b/google-cloud-container-v1/google-cloud-container-v1.gemspec index 20ad39cde92d..f9b34e2e79ae 100644 --- a/google-cloud-container-v1/google-cloud-container-v1.gemspec +++ b/google-cloud-container-v1/google-cloud-container-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-container-v1/lib/google/cloud/container/v1/version.rb b/google-cloud-container-v1/lib/google/cloud/container/v1/version.rb index 470b4fbf5bee..ceb44c6424b2 100644 --- a/google-cloud-container-v1/lib/google/cloud/container/v1/version.rb +++ b/google-cloud-container-v1/lib/google/cloud/container/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Container module V1 - VERSION = "1.9.0" + VERSION = "1.10.0" end end end diff --git a/google-cloud-container-v1/snippets/snippet_metadata_google.container.v1.json b/google-cloud-container-v1/snippets/snippet_metadata_google.container.v1.json index 7c47a4a2f009..a721260885c7 100644 --- a/google-cloud-container-v1/snippets/snippet_metadata_google.container.v1.json +++ b/google-cloud-container-v1/snippets/snippet_metadata_google.container.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-container-v1", - "version": "1.9.0", + "version": "1.10.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-container-v1beta1/CHANGELOG.md b/google-cloud-container-v1beta1/CHANGELOG.md index 2098f4aa84d5..6e7e12633dc3 100644 --- a/google-cloud-container-v1beta1/CHANGELOG.md +++ b/google-cloud-container-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.49.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.48.0 (2025-07-28) #### Features diff --git a/google-cloud-container-v1beta1/google-cloud-container-v1beta1.gemspec b/google-cloud-container-v1beta1/google-cloud-container-v1beta1.gemspec index 677ab7be9824..45ba9bea84fc 100644 --- a/google-cloud-container-v1beta1/google-cloud-container-v1beta1.gemspec +++ b/google-cloud-container-v1beta1/google-cloud-container-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-container-v1beta1/lib/google/cloud/container/v1beta1/version.rb b/google-cloud-container-v1beta1/lib/google/cloud/container/v1beta1/version.rb index 3556bc13bd86..ac1f3d4a8eb9 100644 --- a/google-cloud-container-v1beta1/lib/google/cloud/container/v1beta1/version.rb +++ b/google-cloud-container-v1beta1/lib/google/cloud/container/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Container module V1beta1 - VERSION = "0.48.0" + VERSION = "0.49.0" end end end diff --git a/google-cloud-container-v1beta1/snippets/snippet_metadata_google.container.v1beta1.json b/google-cloud-container-v1beta1/snippets/snippet_metadata_google.container.v1beta1.json index 07fcf5a06893..c17e46853c84 100644 --- a/google-cloud-container-v1beta1/snippets/snippet_metadata_google.container.v1beta1.json +++ b/google-cloud-container-v1beta1/snippets/snippet_metadata_google.container.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-container-v1beta1", - "version": "0.48.0", + "version": "0.49.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-container/CHANGELOG.md b/google-cloud-container/CHANGELOG.md index b086acafb2fa..a6efe4bfee36 100644 --- a/google-cloud-container/CHANGELOG.md +++ b/google-cloud-container/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-container/README.md b/google-cloud-container/README.md index 5130712f805a..ad37566b1bde 100644 --- a/google-cloud-container/README.md +++ b/google-cloud-container/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/container.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/container" + +client = Google::Cloud::Container.cluster_manager +request = ::Google::Cloud::Container::V1::ListClustersRequest.new # (request fields as keyword arguments...) +response = client.list_clusters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-container/lib/google/cloud/container/version.rb b/google-cloud-container/lib/google/cloud/container/version.rb index bd2926686df1..4a3b85f58252 100644 --- a/google-cloud-container/lib/google/cloud/container/version.rb +++ b/google-cloud-container/lib/google/cloud/container/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Container - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-container_analysis-v1/CHANGELOG.md b/google-cloud-container_analysis-v1/CHANGELOG.md index 598cace1c62d..22efc953766a 100644 --- a/google-cloud-container_analysis-v1/CHANGELOG.md +++ b/google-cloud-container_analysis-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-container_analysis-v1/google-cloud-container_analysis-v1.gemspec b/google-cloud-container_analysis-v1/google-cloud-container_analysis-v1.gemspec index 164f71d5f9aa..b340e09bb53c 100644 --- a/google-cloud-container_analysis-v1/google-cloud-container_analysis-v1.gemspec +++ b/google-cloud-container_analysis-v1/google-cloud-container_analysis-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grafeas-v1", ">= 0.4", "< 2.a" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-container_analysis-v1/lib/google/cloud/container_analysis/v1/version.rb b/google-cloud-container_analysis-v1/lib/google/cloud/container_analysis/v1/version.rb index 208e3d024e52..bf3df79dfca3 100644 --- a/google-cloud-container_analysis-v1/lib/google/cloud/container_analysis/v1/version.rb +++ b/google-cloud-container_analysis-v1/lib/google/cloud/container_analysis/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ContainerAnalysis module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-container_analysis-v1/snippets/snippet_metadata_google.devtools.containeranalysis.v1.json b/google-cloud-container_analysis-v1/snippets/snippet_metadata_google.devtools.containeranalysis.v1.json index 1c7dddc56806..2e1907c75d67 100644 --- a/google-cloud-container_analysis-v1/snippets/snippet_metadata_google.devtools.containeranalysis.v1.json +++ b/google-cloud-container_analysis-v1/snippets/snippet_metadata_google.devtools.containeranalysis.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-container_analysis-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-container_analysis/CHANGELOG.md b/google-cloud-container_analysis/CHANGELOG.md index 293226b716db..240475b5156d 100644 --- a/google-cloud-container_analysis/CHANGELOG.md +++ b/google-cloud-container_analysis/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.4 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.3 (2025-08-12) #### Bug Fixes diff --git a/google-cloud-container_analysis/README.md b/google-cloud-container_analysis/README.md index 78f5342f0a86..c4d3cb7a1e8f 100644 --- a/google-cloud-container_analysis/README.md +++ b/google-cloud-container_analysis/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/containeranalysis.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/container_analysis" + +client = Google::Cloud::ContainerAnalysis.container_analysis +request = ::Google::Iam::V1::SetIamPolicyRequest.new # (request fields as keyword arguments...) +response = client.set_iam_policy request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-container_analysis client is a significant upgrade diff --git a/google-cloud-container_analysis/lib/google/cloud/container_analysis/version.rb b/google-cloud-container_analysis/lib/google/cloud/container_analysis/version.rb index 1d9bb63fc5ac..7cecb8476e52 100644 --- a/google-cloud-container_analysis/lib/google/cloud/container_analysis/version.rb +++ b/google-cloud-container_analysis/lib/google/cloud/container_analysis/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ContainerAnalysis - VERSION = "1.5.3" + VERSION = "1.5.4" end end end diff --git a/google-cloud-data_catalog-lineage-v1/CHANGELOG.md b/google-cloud-data_catalog-lineage-v1/CHANGELOG.md index dd61e92081a2..b29eab22e289 100644 --- a/google-cloud-data_catalog-lineage-v1/CHANGELOG.md +++ b/google-cloud-data_catalog-lineage-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.10.1 (2025-07-15) #### Documentation diff --git a/google-cloud-data_catalog-lineage-v1/google-cloud-data_catalog-lineage-v1.gemspec b/google-cloud-data_catalog-lineage-v1/google-cloud-data_catalog-lineage-v1.gemspec index 2f1661bec861..7c7667a60447 100644 --- a/google-cloud-data_catalog-lineage-v1/google-cloud-data_catalog-lineage-v1.gemspec +++ b/google-cloud-data_catalog-lineage-v1/google-cloud-data_catalog-lineage-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/version.rb b/google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/version.rb index 85fd6ac1baac..8243a7901ac0 100644 --- a/google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/version.rb +++ b/google-cloud-data_catalog-lineage-v1/lib/google/cloud/data_catalog/lineage/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module DataCatalog module Lineage module V1 - VERSION = "0.10.1" + VERSION = "0.11.0" end end end diff --git a/google-cloud-data_catalog-lineage-v1/snippets/snippet_metadata_google.cloud.datacatalog.lineage.v1.json b/google-cloud-data_catalog-lineage-v1/snippets/snippet_metadata_google.cloud.datacatalog.lineage.v1.json index 574705d7ff12..7f53c8d1b117 100644 --- a/google-cloud-data_catalog-lineage-v1/snippets/snippet_metadata_google.cloud.datacatalog.lineage.v1.json +++ b/google-cloud-data_catalog-lineage-v1/snippets/snippet_metadata_google.cloud.datacatalog.lineage.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-data_catalog-lineage-v1", - "version": "0.10.1", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-data_catalog-lineage/CHANGELOG.md b/google-cloud-data_catalog-lineage/CHANGELOG.md index 9b910ab8e5cb..376971424c1a 100644 --- a/google-cloud-data_catalog-lineage/CHANGELOG.md +++ b/google-cloud-data_catalog-lineage/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-data_catalog-lineage/README.md b/google-cloud-data_catalog-lineage/README.md index 8dd09449cec6..a2b3958faf14 100644 --- a/google-cloud-data_catalog-lineage/README.md +++ b/google-cloud-data_catalog-lineage/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datalineage.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/data_catalog/lineage" + +client = Google::Cloud::DataCatalog::Lineage.lineage +request = ::Google::Cloud::DataCatalog::Lineage::V1::ProcessOpenLineageRunEventRequest.new # (request fields as keyword arguments...) +response = client.process_open_lineage_run_event request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-data_catalog-lineage/lib/google/cloud/data_catalog/lineage/version.rb b/google-cloud-data_catalog-lineage/lib/google/cloud/data_catalog/lineage/version.rb index d0a34e8c2382..b2cfcdd98a03 100644 --- a/google-cloud-data_catalog-lineage/lib/google/cloud/data_catalog/lineage/version.rb +++ b/google-cloud-data_catalog-lineage/lib/google/cloud/data_catalog/lineage/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DataCatalog module Lineage - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-cloud-data_catalog-v1/CHANGELOG.md b/google-cloud-data_catalog-v1/CHANGELOG.md index d9d7a68213c6..4a688a552511 100644 --- a/google-cloud-data_catalog-v1/CHANGELOG.md +++ b/google-cloud-data_catalog-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.3.1 (2025-07-15) #### Documentation diff --git a/google-cloud-data_catalog-v1/google-cloud-data_catalog-v1.gemspec b/google-cloud-data_catalog-v1/google-cloud-data_catalog-v1.gemspec index d01348b1f208..72daecaf520d 100644 --- a/google-cloud-data_catalog-v1/google-cloud-data_catalog-v1.gemspec +++ b/google-cloud-data_catalog-v1/google-cloud-data_catalog-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" end diff --git a/google-cloud-data_catalog-v1/lib/google/cloud/data_catalog/v1/version.rb b/google-cloud-data_catalog-v1/lib/google/cloud/data_catalog/v1/version.rb index 825985c6bb8e..6435381883ae 100644 --- a/google-cloud-data_catalog-v1/lib/google/cloud/data_catalog/v1/version.rb +++ b/google-cloud-data_catalog-v1/lib/google/cloud/data_catalog/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DataCatalog module V1 - VERSION = "2.3.1" + VERSION = "2.4.0" end end end diff --git a/google-cloud-data_catalog-v1/snippets/snippet_metadata_google.cloud.datacatalog.v1.json b/google-cloud-data_catalog-v1/snippets/snippet_metadata_google.cloud.datacatalog.v1.json index e8391fc58226..e2c901658a19 100644 --- a/google-cloud-data_catalog-v1/snippets/snippet_metadata_google.cloud.datacatalog.v1.json +++ b/google-cloud-data_catalog-v1/snippets/snippet_metadata_google.cloud.datacatalog.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-data_catalog-v1", - "version": "2.3.1", + "version": "2.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-data_catalog-v1beta1/CHANGELOG.md b/google-cloud-data_catalog-v1beta1/CHANGELOG.md index 8068ec1aa2db..b40c595f7e62 100644 --- a/google-cloud-data_catalog-v1beta1/CHANGELOG.md +++ b/google-cloud-data_catalog-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.9.1 (2025-07-15) #### Documentation diff --git a/google-cloud-data_catalog-v1beta1/google-cloud-data_catalog-v1beta1.gemspec b/google-cloud-data_catalog-v1beta1/google-cloud-data_catalog-v1beta1.gemspec index 298ad3be6eea..f24ab7cd43a0 100644 --- a/google-cloud-data_catalog-v1beta1/google-cloud-data_catalog-v1beta1.gemspec +++ b/google-cloud-data_catalog-v1beta1/google-cloud-data_catalog-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" end diff --git a/google-cloud-data_catalog-v1beta1/lib/google/cloud/data_catalog/v1beta1/version.rb b/google-cloud-data_catalog-v1beta1/lib/google/cloud/data_catalog/v1beta1/version.rb index 66b7f3d2ea11..18905ce78851 100644 --- a/google-cloud-data_catalog-v1beta1/lib/google/cloud/data_catalog/v1beta1/version.rb +++ b/google-cloud-data_catalog-v1beta1/lib/google/cloud/data_catalog/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DataCatalog module V1beta1 - VERSION = "0.9.1" + VERSION = "0.10.0" end end end diff --git a/google-cloud-data_catalog-v1beta1/snippets/snippet_metadata_google.cloud.datacatalog.v1beta1.json b/google-cloud-data_catalog-v1beta1/snippets/snippet_metadata_google.cloud.datacatalog.v1beta1.json index 7c15e832b740..9da8817c5b01 100644 --- a/google-cloud-data_catalog-v1beta1/snippets/snippet_metadata_google.cloud.datacatalog.v1beta1.json +++ b/google-cloud-data_catalog-v1beta1/snippets/snippet_metadata_google.cloud.datacatalog.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-data_catalog-v1beta1", - "version": "0.9.1", + "version": "0.10.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-data_catalog/CHANGELOG.md b/google-cloud-data_catalog/CHANGELOG.md index a2918753c4b5..a088fdccd370 100644 --- a/google-cloud-data_catalog/CHANGELOG.md +++ b/google-cloud-data_catalog/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-data_catalog/README.md b/google-cloud-data_catalog/README.md index d4e97a3309be..f625efa23fdb 100644 --- a/google-cloud-data_catalog/README.md +++ b/google-cloud-data_catalog/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datacatalog.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/data_catalog" + +client = Google::Cloud::DataCatalog.data_catalog +request = ::Google::Cloud::DataCatalog::V1::SearchCatalogRequest.new # (request fields as keyword arguments...) +response = client.search_catalog request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-data_catalog/lib/google/cloud/data_catalog/version.rb b/google-cloud-data_catalog/lib/google/cloud/data_catalog/version.rb index c1f6e0b29d53..46516a4e4635 100644 --- a/google-cloud-data_catalog/lib/google/cloud/data_catalog/version.rb +++ b/google-cloud-data_catalog/lib/google/cloud/data_catalog/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DataCatalog - VERSION = "2.1.1" + VERSION = "2.1.2" end end end diff --git a/google-cloud-data_fusion-v1/CHANGELOG.md b/google-cloud-data_fusion-v1/CHANGELOG.md index 63246e75e8a4..5375a4292f81 100644 --- a/google-cloud-data_fusion-v1/CHANGELOG.md +++ b/google-cloud-data_fusion-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-data_fusion-v1/google-cloud-data_fusion-v1.gemspec b/google-cloud-data_fusion-v1/google-cloud-data_fusion-v1.gemspec index cab45886514b..783d676c2bb8 100644 --- a/google-cloud-data_fusion-v1/google-cloud-data_fusion-v1.gemspec +++ b/google-cloud-data_fusion-v1/google-cloud-data_fusion-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-data_fusion-v1/lib/google/cloud/data_fusion/v1/version.rb b/google-cloud-data_fusion-v1/lib/google/cloud/data_fusion/v1/version.rb index 5378a7aaf8ec..35ec9d35d4c3 100644 --- a/google-cloud-data_fusion-v1/lib/google/cloud/data_fusion/v1/version.rb +++ b/google-cloud-data_fusion-v1/lib/google/cloud/data_fusion/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DataFusion module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-data_fusion-v1/snippets/snippet_metadata_google.cloud.datafusion.v1.json b/google-cloud-data_fusion-v1/snippets/snippet_metadata_google.cloud.datafusion.v1.json index 0bbb2bcdad53..8063f21e17dd 100644 --- a/google-cloud-data_fusion-v1/snippets/snippet_metadata_google.cloud.datafusion.v1.json +++ b/google-cloud-data_fusion-v1/snippets/snippet_metadata_google.cloud.datafusion.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-data_fusion-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-data_fusion/CHANGELOG.md b/google-cloud-data_fusion/CHANGELOG.md index b7ec0e20a035..3c6adaa8c131 100644 --- a/google-cloud-data_fusion/CHANGELOG.md +++ b/google-cloud-data_fusion/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-data_fusion/README.md b/google-cloud-data_fusion/README.md index 33e123c9f8a9..4ad30fb68a60 100644 --- a/google-cloud-data_fusion/README.md +++ b/google-cloud-data_fusion/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datafusion.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/data_fusion" + +client = Google::Cloud::DataFusion.data_fusion +request = ::Google::Cloud::DataFusion::V1::ListAvailableVersionsRequest.new # (request fields as keyword arguments...) +response = client.list_available_versions request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-data_fusion/lib/google/cloud/data_fusion/version.rb b/google-cloud-data_fusion/lib/google/cloud/data_fusion/version.rb index 8dd3b31f0ebd..b4437e42c222 100644 --- a/google-cloud-data_fusion/lib/google/cloud/data_fusion/version.rb +++ b/google-cloud-data_fusion/lib/google/cloud/data_fusion/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DataFusion - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-data_labeling-v1beta1/CHANGELOG.md b/google-cloud-data_labeling-v1beta1/CHANGELOG.md index 303f6266f190..9a0711ef07a1 100644 --- a/google-cloud-data_labeling-v1beta1/CHANGELOG.md +++ b/google-cloud-data_labeling-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.11.1 (2025-07-15) #### Documentation diff --git a/google-cloud-data_labeling-v1beta1/google-cloud-data_labeling-v1beta1.gemspec b/google-cloud-data_labeling-v1beta1/google-cloud-data_labeling-v1beta1.gemspec index 8c67f9eb5ad2..8c30399d0b81 100644 --- a/google-cloud-data_labeling-v1beta1/google-cloud-data_labeling-v1beta1.gemspec +++ b/google-cloud-data_labeling-v1beta1/google-cloud-data_labeling-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-data_labeling-v1beta1/lib/google/cloud/data_labeling/v1beta1/version.rb b/google-cloud-data_labeling-v1beta1/lib/google/cloud/data_labeling/v1beta1/version.rb index 7f9a5fc8abe0..445d55621497 100644 --- a/google-cloud-data_labeling-v1beta1/lib/google/cloud/data_labeling/v1beta1/version.rb +++ b/google-cloud-data_labeling-v1beta1/lib/google/cloud/data_labeling/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DataLabeling module V1beta1 - VERSION = "0.11.1" + VERSION = "0.12.0" end end end diff --git a/google-cloud-data_labeling-v1beta1/snippets/snippet_metadata_google.cloud.datalabeling.v1beta1.json b/google-cloud-data_labeling-v1beta1/snippets/snippet_metadata_google.cloud.datalabeling.v1beta1.json index 2008e231c034..3266608d05ff 100644 --- a/google-cloud-data_labeling-v1beta1/snippets/snippet_metadata_google.cloud.datalabeling.v1beta1.json +++ b/google-cloud-data_labeling-v1beta1/snippets/snippet_metadata_google.cloud.datalabeling.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-data_labeling-v1beta1", - "version": "0.11.1", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-data_labeling/CHANGELOG.md b/google-cloud-data_labeling/CHANGELOG.md index de0d996f3f73..caa52655ca93 100644 --- a/google-cloud-data_labeling/CHANGELOG.md +++ b/google-cloud-data_labeling/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-data_labeling/README.md b/google-cloud-data_labeling/README.md index 9fc82f58b34f..0ecd1ea98a45 100644 --- a/google-cloud-data_labeling/README.md +++ b/google-cloud-data_labeling/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datalabeling.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/data_labeling" + +client = Google::Cloud::DataLabeling.data_labeling_service +request = ::Google::Cloud::DataLabeling::V1beta1::CreateDatasetRequest.new # (request fields as keyword arguments...) +response = client.create_dataset request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-data_labeling/lib/google/cloud/data_labeling/version.rb b/google-cloud-data_labeling/lib/google/cloud/data_labeling/version.rb index b8ba81f33b1e..1006b4f84ecb 100644 --- a/google-cloud-data_labeling/lib/google/cloud/data_labeling/version.rb +++ b/google-cloud-data_labeling/lib/google/cloud/data_labeling/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DataLabeling - VERSION = "0.6.1" + VERSION = "0.6.2" end end end diff --git a/google-cloud-dataflow-v1beta3/CHANGELOG.md b/google-cloud-dataflow-v1beta3/CHANGELOG.md index d1e99fb4ac4c..af0a42a432d5 100644 --- a/google-cloud-dataflow-v1beta3/CHANGELOG.md +++ b/google-cloud-dataflow-v1beta3/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.13.1 (2025-07-15) #### Documentation diff --git a/google-cloud-dataflow-v1beta3/google-cloud-dataflow-v1beta3.gemspec b/google-cloud-dataflow-v1beta3/google-cloud-dataflow-v1beta3.gemspec index 08b0cfb7915b..2109d5412572 100644 --- a/google-cloud-dataflow-v1beta3/google-cloud-dataflow-v1beta3.gemspec +++ b/google-cloud-dataflow-v1beta3/google-cloud-dataflow-v1beta3.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-dataflow-v1beta3/lib/google/cloud/dataflow/v1beta3/version.rb b/google-cloud-dataflow-v1beta3/lib/google/cloud/dataflow/v1beta3/version.rb index 7ba8ee1b709f..90405256e867 100644 --- a/google-cloud-dataflow-v1beta3/lib/google/cloud/dataflow/v1beta3/version.rb +++ b/google-cloud-dataflow-v1beta3/lib/google/cloud/dataflow/v1beta3/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dataflow module V1beta3 - VERSION = "0.13.1" + VERSION = "0.14.0" end end end diff --git a/google-cloud-dataflow-v1beta3/snippets/snippet_metadata_google.dataflow.v1beta3.json b/google-cloud-dataflow-v1beta3/snippets/snippet_metadata_google.dataflow.v1beta3.json index 95fa80592cc9..7028b486cf20 100644 --- a/google-cloud-dataflow-v1beta3/snippets/snippet_metadata_google.dataflow.v1beta3.json +++ b/google-cloud-dataflow-v1beta3/snippets/snippet_metadata_google.dataflow.v1beta3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dataflow-v1beta3", - "version": "0.13.1", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dataflow/CHANGELOG.md b/google-cloud-dataflow/CHANGELOG.md index b8f53f3e1e69..8ccb29a279fe 100644 --- a/google-cloud-dataflow/CHANGELOG.md +++ b/google-cloud-dataflow/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.2 (2025-05-12) #### Documentation diff --git a/google-cloud-dataflow/README.md b/google-cloud-dataflow/README.md index 7c3246da20ad..b302059e35db 100644 --- a/google-cloud-dataflow/README.md +++ b/google-cloud-dataflow/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dataflow.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dataflow" + +client = Google::Cloud::Dataflow.snapshots +request = ::Google::Cloud::Dataflow::V1beta3::GetSnapshotRequest.new # (request fields as keyword arguments...) +response = client.get_snapshot request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-dataflow/lib/google/cloud/dataflow/version.rb b/google-cloud-dataflow/lib/google/cloud/dataflow/version.rb index a34756af6602..980036cc67f1 100644 --- a/google-cloud-dataflow/lib/google/cloud/dataflow/version.rb +++ b/google-cloud-dataflow/lib/google/cloud/dataflow/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Dataflow - VERSION = "0.6.2" + VERSION = "0.6.3" end end end diff --git a/google-cloud-dataform-v1/CHANGELOG.md b/google-cloud-dataform-v1/CHANGELOG.md index a1fe20b91681..df7cf8f208a8 100644 --- a/google-cloud-dataform-v1/CHANGELOG.md +++ b/google-cloud-dataform-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-05-16) #### Features diff --git a/google-cloud-dataform-v1/google-cloud-dataform-v1.gemspec b/google-cloud-dataform-v1/google-cloud-dataform-v1.gemspec index 71f760ddfc79..ba78bb6fa07b 100644 --- a/google-cloud-dataform-v1/google-cloud-dataform-v1.gemspec +++ b/google-cloud-dataform-v1/google-cloud-dataform-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-dataform-v1/lib/google/cloud/dataform/v1/version.rb b/google-cloud-dataform-v1/lib/google/cloud/dataform/v1/version.rb index 337c721523c3..9501430a7401 100644 --- a/google-cloud-dataform-v1/lib/google/cloud/dataform/v1/version.rb +++ b/google-cloud-dataform-v1/lib/google/cloud/dataform/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dataform module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-dataform-v1/snippets/snippet_metadata_google.cloud.dataform.v1.json b/google-cloud-dataform-v1/snippets/snippet_metadata_google.cloud.dataform.v1.json index 29bd4331b9c2..3d7689f9a6d1 100644 --- a/google-cloud-dataform-v1/snippets/snippet_metadata_google.cloud.dataform.v1.json +++ b/google-cloud-dataform-v1/snippets/snippet_metadata_google.cloud.dataform.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dataform-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dataform-v1beta1/CHANGELOG.md b/google-cloud-dataform-v1beta1/CHANGELOG.md index 07d7df551394..5d15811f411f 100644 --- a/google-cloud-dataform-v1beta1/CHANGELOG.md +++ b/google-cloud-dataform-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.13.0 (2025-05-16) #### Features diff --git a/google-cloud-dataform-v1beta1/google-cloud-dataform-v1beta1.gemspec b/google-cloud-dataform-v1beta1/google-cloud-dataform-v1beta1.gemspec index 3d8103785752..f998b9d392a5 100644 --- a/google-cloud-dataform-v1beta1/google-cloud-dataform-v1beta1.gemspec +++ b/google-cloud-dataform-v1beta1/google-cloud-dataform-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-dataform-v1beta1/lib/google/cloud/dataform/v1beta1/version.rb b/google-cloud-dataform-v1beta1/lib/google/cloud/dataform/v1beta1/version.rb index 28b75b6b94c3..efd594d6e326 100644 --- a/google-cloud-dataform-v1beta1/lib/google/cloud/dataform/v1beta1/version.rb +++ b/google-cloud-dataform-v1beta1/lib/google/cloud/dataform/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dataform module V1beta1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-dataform-v1beta1/snippets/snippet_metadata_google.cloud.dataform.v1beta1.json b/google-cloud-dataform-v1beta1/snippets/snippet_metadata_google.cloud.dataform.v1beta1.json index 52aa2166f6b8..0f691c785757 100644 --- a/google-cloud-dataform-v1beta1/snippets/snippet_metadata_google.cloud.dataform.v1beta1.json +++ b/google-cloud-dataform-v1beta1/snippets/snippet_metadata_google.cloud.dataform.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dataform-v1beta1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dataform/CHANGELOG.md b/google-cloud-dataform/CHANGELOG.md index ae86acd87968..06fb9abc6b22 100644 --- a/google-cloud-dataform/CHANGELOG.md +++ b/google-cloud-dataform/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-dataform/README.md b/google-cloud-dataform/README.md index dd1bbf3c04ab..3a93ea8f2a50 100644 --- a/google-cloud-dataform/README.md +++ b/google-cloud-dataform/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dataform.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dataform" + +client = Google::Cloud::Dataform.dataform +request = ::Google::Cloud::Dataform::V1beta1::ListRepositoriesRequest.new # (request fields as keyword arguments...) +response = client.list_repositories request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-dataform/lib/google/cloud/dataform/version.rb b/google-cloud-dataform/lib/google/cloud/dataform/version.rb index cb97ea90bfb6..dbebc1c5aa0c 100644 --- a/google-cloud-dataform/lib/google/cloud/dataform/version.rb +++ b/google-cloud-dataform/lib/google/cloud/dataform/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Dataform - VERSION = "0.5.1" + VERSION = "0.5.2" end end end diff --git a/google-cloud-dataplex-v1/.owlbot-manifest.json b/google-cloud-dataplex-v1/.owlbot-manifest.json index 10b3b9ef9f85..b976c99ef6fa 100644 --- a/google-cloud-dataplex-v1/.owlbot-manifest.json +++ b/google-cloud-dataplex-v1/.owlbot-manifest.json @@ -17,6 +17,17 @@ "lib/google/cloud/dataplex/v1.rb", "lib/google/cloud/dataplex/v1/analyze_pb.rb", "lib/google/cloud/dataplex/v1/bindings_override.rb", + "lib/google/cloud/dataplex/v1/business_glossary_pb.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/client.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/credentials.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/operations.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/paths.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/rest.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/rest/client.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/rest/operations.rb", + "lib/google/cloud/dataplex/v1/business_glossary_service/rest/service_stub.rb", + "lib/google/cloud/dataplex/v1/business_glossary_services_pb.rb", "lib/google/cloud/dataplex/v1/catalog_pb.rb", "lib/google/cloud/dataplex/v1/catalog_service.rb", "lib/google/cloud/dataplex/v1/catalog_service/client.rb", @@ -80,6 +91,7 @@ "lib/google/cloud/dataplex/v1/dataplex_service/rest/client.rb", "lib/google/cloud/dataplex/v1/dataplex_service/rest/operations.rb", "lib/google/cloud/dataplex/v1/dataplex_service/rest/service_stub.rb", + "lib/google/cloud/dataplex/v1/datascans_common_pb.rb", "lib/google/cloud/dataplex/v1/datascans_pb.rb", "lib/google/cloud/dataplex/v1/datascans_services_pb.rb", "lib/google/cloud/dataplex/v1/logs_pb.rb", @@ -107,6 +119,7 @@ "proto_docs/google/api/launch_stage.rb", "proto_docs/google/api/resource.rb", "proto_docs/google/cloud/dataplex/v1/analyze.rb", + "proto_docs/google/cloud/dataplex/v1/business_glossary.rb", "proto_docs/google/cloud/dataplex/v1/catalog.rb", "proto_docs/google/cloud/dataplex/v1/cmek.rb", "proto_docs/google/cloud/dataplex/v1/content.rb", @@ -115,6 +128,7 @@ "proto_docs/google/cloud/dataplex/v1/data_quality.rb", "proto_docs/google/cloud/dataplex/v1/data_taxonomy.rb", "proto_docs/google/cloud/dataplex/v1/datascans.rb", + "proto_docs/google/cloud/dataplex/v1/datascans_common.rb", "proto_docs/google/cloud/dataplex/v1/logs.rb", "proto_docs/google/cloud/dataplex/v1/metadata.rb", "proto_docs/google/cloud/dataplex/v1/processing.rb", @@ -132,19 +146,37 @@ "proto_docs/google/rpc/status.rb", "proto_docs/google/type/expr.rb", "snippets/Gemfile", + "snippets/business_glossary_service/create_glossary.rb", + "snippets/business_glossary_service/create_glossary_category.rb", + "snippets/business_glossary_service/create_glossary_term.rb", + "snippets/business_glossary_service/delete_glossary.rb", + "snippets/business_glossary_service/delete_glossary_category.rb", + "snippets/business_glossary_service/delete_glossary_term.rb", + "snippets/business_glossary_service/get_glossary.rb", + "snippets/business_glossary_service/get_glossary_category.rb", + "snippets/business_glossary_service/get_glossary_term.rb", + "snippets/business_glossary_service/list_glossaries.rb", + "snippets/business_glossary_service/list_glossary_categories.rb", + "snippets/business_glossary_service/list_glossary_terms.rb", + "snippets/business_glossary_service/update_glossary.rb", + "snippets/business_glossary_service/update_glossary_category.rb", + "snippets/business_glossary_service/update_glossary_term.rb", "snippets/catalog_service/cancel_metadata_job.rb", "snippets/catalog_service/create_aspect_type.rb", "snippets/catalog_service/create_entry.rb", "snippets/catalog_service/create_entry_group.rb", + "snippets/catalog_service/create_entry_link.rb", "snippets/catalog_service/create_entry_type.rb", "snippets/catalog_service/create_metadata_job.rb", "snippets/catalog_service/delete_aspect_type.rb", "snippets/catalog_service/delete_entry.rb", "snippets/catalog_service/delete_entry_group.rb", + "snippets/catalog_service/delete_entry_link.rb", "snippets/catalog_service/delete_entry_type.rb", "snippets/catalog_service/get_aspect_type.rb", "snippets/catalog_service/get_entry.rb", "snippets/catalog_service/get_entry_group.rb", + "snippets/catalog_service/get_entry_link.rb", "snippets/catalog_service/get_entry_type.rb", "snippets/catalog_service/get_metadata_job.rb", "snippets/catalog_service/list_aspect_types.rb", @@ -238,6 +270,10 @@ "snippets/metadata_service/list_partitions.rb", "snippets/metadata_service/update_entity.rb", "snippets/snippet_metadata_google.cloud.dataplex.v1.json", + "test/google/cloud/dataplex/v1/business_glossary_service_operations_test.rb", + "test/google/cloud/dataplex/v1/business_glossary_service_paths_test.rb", + "test/google/cloud/dataplex/v1/business_glossary_service_rest_test.rb", + "test/google/cloud/dataplex/v1/business_glossary_service_test.rb", "test/google/cloud/dataplex/v1/catalog_service_operations_test.rb", "test/google/cloud/dataplex/v1/catalog_service_paths_test.rb", "test/google/cloud/dataplex/v1/catalog_service_rest_test.rb", diff --git a/google-cloud-dataplex-v1/CHANGELOG.md b/google-cloud-dataplex-v1/CHANGELOG.md index 8d25d1209a4f..15219286c736 100644 --- a/google-cloud-dataplex-v1/CHANGELOG.md +++ b/google-cloud-dataplex-v1/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### 2.6.0 (2025-09-11) + +#### Features + +* A new message `Glossary` is added +* A new service `BusinessGlossaryService` is added ([#31013](https://github.com/googleapis/google-cloud-ruby/issues/31013)) + ### 2.5.0 (2025-07-15) #### Features diff --git a/google-cloud-dataplex-v1/README.md b/google-cloud-dataplex-v1/README.md index 43e67c6f49e6..e2ffd93371eb 100644 --- a/google-cloud-dataplex-v1/README.md +++ b/google-cloud-dataplex-v1/README.md @@ -1,6 +1,6 @@ # Ruby Client for the Dataplex V1 API -Dataplex API is used to manage the lifecycle of data lakes. +A unified, intelligent governance solution for data and AI assets. Dataplex is an intelligent data fabric that provides a way to centrally manage, monitor, and govern your data across data lakes, data warehouses and data marts, and make this data securely accessible to a variety of analytics and data science tools. diff --git a/google-cloud-dataplex-v1/gapic_metadata.json b/google-cloud-dataplex-v1/gapic_metadata.json index 9813058be046..9fb203adf973 100644 --- a/google-cloud-dataplex-v1/gapic_metadata.json +++ b/google-cloud-dataplex-v1/gapic_metadata.json @@ -179,6 +179,90 @@ } } }, + "BusinessGlossaryService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client", + "rpcs": { + "CreateGlossary": { + "methods": [ + "create_glossary" + ] + }, + "UpdateGlossary": { + "methods": [ + "update_glossary" + ] + }, + "DeleteGlossary": { + "methods": [ + "delete_glossary" + ] + }, + "GetGlossary": { + "methods": [ + "get_glossary" + ] + }, + "ListGlossaries": { + "methods": [ + "list_glossaries" + ] + }, + "CreateGlossaryCategory": { + "methods": [ + "create_glossary_category" + ] + }, + "UpdateGlossaryCategory": { + "methods": [ + "update_glossary_category" + ] + }, + "DeleteGlossaryCategory": { + "methods": [ + "delete_glossary_category" + ] + }, + "GetGlossaryCategory": { + "methods": [ + "get_glossary_category" + ] + }, + "ListGlossaryCategories": { + "methods": [ + "list_glossary_categories" + ] + }, + "CreateGlossaryTerm": { + "methods": [ + "create_glossary_term" + ] + }, + "UpdateGlossaryTerm": { + "methods": [ + "update_glossary_term" + ] + }, + "DeleteGlossaryTerm": { + "methods": [ + "delete_glossary_term" + ] + }, + "GetGlossaryTerm": { + "methods": [ + "get_glossary_term" + ] + }, + "ListGlossaryTerms": { + "methods": [ + "list_glossary_terms" + ] + } + } + } + } + }, "CatalogService": { "clients": { "grpc": { @@ -313,6 +397,21 @@ "methods": [ "cancel_metadata_job" ] + }, + "CreateEntryLink": { + "methods": [ + "create_entry_link" + ] + }, + "DeleteEntryLink": { + "methods": [ + "delete_entry_link" + ] + }, + "GetEntryLink": { + "methods": [ + "get_entry_link" + ] } } } diff --git a/google-cloud-dataplex-v1/google-cloud-dataplex-v1.gemspec b/google-cloud-dataplex-v1/google-cloud-dataplex-v1.gemspec index 47e7e79ba558..0448f95458ef 100644 --- a/google-cloud-dataplex-v1/google-cloud-dataplex-v1.gemspec +++ b/google-cloud-dataplex-v1/google-cloud-dataplex-v1.gemspec @@ -10,7 +10,7 @@ Gem::Specification.new do |gem| gem.authors = ["Google LLC"] gem.email = "googleapis-packages@google.com" gem.description = "Dataplex is an intelligent data fabric that provides a way to centrally manage, monitor, and govern your data across data lakes, data warehouses and data marts, and make this data securely accessible to a variety of analytics and data science tools. Note that google-cloud-dataplex-v1 is a version-specific client library. For most uses, we recommend installing the main client library google-cloud-dataplex instead. See the readme for more details." - gem.summary = "Dataplex API is used to manage the lifecycle of data lakes." + gem.summary = "A unified, intelligent governance solution for data and AI assets." gem.homepage = "https://github.com/googleapis/google-cloud-ruby" gem.license = "Apache-2.0" @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1.rb index 4ad8fcc1b6f1..57740e8dd3f9 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1.rb @@ -17,6 +17,7 @@ # Auto-generated by gapic-generator-ruby. DO NOT EDIT! require "google/cloud/dataplex/v1/dataplex_service" +require "google/cloud/dataplex/v1/business_glossary_service" require "google/cloud/dataplex/v1/catalog_service" require "google/cloud/dataplex/v1/cmek_service" require "google/cloud/dataplex/v1/content_service" diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/bindings_override.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/bindings_override.rb index e3def83c35f0..cc7d4c24924a 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/bindings_override.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/bindings_override.rb @@ -356,6 +356,22 @@ def self.configure ["resource", %r{^organizations/[^/]+/locations/[^/]+/encryptionConfigs/[^/]+/?$}, false] ], body: "*" + ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :post, + uri_template: "/v1/{resource}:setIamPolicy", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/dataProducts/[^/]+/?$}, false] + ], + body: "*" + ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :post, + uri_template: "/v1/{resource}:setIamPolicy", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/dataProducts/[^/]+/dataAssets/[^/]+/?$}, false] + ], + body: "*" ) ] default_config.bindings_override["google.iam.v1.IAMPolicy.TestIamPermissions"] = [ @@ -503,6 +519,22 @@ def self.configure ["resource", %r{^organizations/[^/]+/locations/[^/]+/encryptionConfigs/[^/]+/?$}, false] ], body: "*" + ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :post, + uri_template: "/v1/{resource}:testIamPermissions", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/dataProducts/[^/]+/?$}, false] + ], + body: "*" + ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :post, + uri_template: "/v1/{resource}:testIamPermissions", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/dataProducts/[^/]+/dataAssets/[^/]+/?$}, false] + ], + body: "*" ) ] default_config diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_pb.rb new file mode 100644 index 000000000000..9669f33c3617 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_pb.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/dataplex/v1/business_glossary.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/field_info_pb' +require 'google/api/resource_pb' +require 'google/cloud/dataplex/v1/service_pb' +require 'google/longrunning/operations_pb' +require 'google/protobuf/empty_pb' +require 'google/protobuf/field_mask_pb' +require 'google/protobuf/timestamp_pb' + + +descriptor_data = "\n0google/cloud/dataplex/v1/business_glossary.proto\x12\x18google.cloud.dataplex.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a&google/cloud/dataplex/v1/service.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x94\x04\n\x08Glossary\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x08\x12\x18\n\x03uid\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x19\n\x0c\x64isplay_name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x07 \x03(\x0b\x32..google.cloud.dataplex.v1.Glossary.LabelsEntryB\x03\xe0\x41\x01\x12\x17\n\nterm_count\x18\x08 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1b\n\x0e\x63\x61tegory_count\x18\t \x01(\x05\x42\x03\xe0\x41\x03\x12\x11\n\x04\x65tag\x18\n \x01(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:z\xea\x41w\n dataplex.googleapis.com/Glossary\x12=projects/{project}/locations/{location}/glossaries/{glossary}*\nglossaries2\x08glossary\"\x99\x04\n\x10GlossaryCategory\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x08\x12\x18\n\x03uid\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x19\n\x0c\x64isplay_name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12K\n\x06labels\x18\x07 \x03(\x0b\x32\x36.google.cloud.dataplex.v1.GlossaryCategory.LabelsEntryB\x03\xe0\x41\x01\x12\x13\n\x06parent\x18\x08 \x01(\tB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xa2\x01\xea\x41\x9e\x01\n(dataplex.googleapis.com/GlossaryCategory\x12\\projects/{project}/locations/{location}/glossaries/{glossary}/categories/{glossary_category}*\ncategories2\x08\x63\x61tegory\"\xa0\x04\n\x0cGlossaryTerm\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x08\x12\x18\n\x03uid\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x19\n\x0c\x64isplay_name\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12G\n\x06labels\x18\x07 \x03(\x0b\x32\x32.google.cloud.dataplex.v1.GlossaryTerm.LabelsEntryB\x03\xe0\x41\x01\x12\x38\n\x06parent\x18\x08 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x8c\x01\xea\x41\x88\x01\n$dataplex.googleapis.com/GlossaryTerm\x12Sprojects/{project}/locations/{location}/glossaries/{glossary}/terms/{glossary_term}*\x05terms2\x04term\"\xc3\x01\n\x15\x43reateGlossaryRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x18\n\x0bglossary_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x39\n\x08glossary\x18\x03 \x01(\x0b\x32\".google.cloud.dataplex.v1.GlossaryB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xa4\x01\n\x15UpdateGlossaryRequest\x12\x39\n\x08glossary\x18\x01 \x01(\x0b\x32\".google.cloud.dataplex.v1.GlossaryB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"b\n\x15\x44\x65leteGlossaryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"L\n\x12GetGlossaryRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\"\xaf\x01\n\x15ListGlossariesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x88\x01\n\x16ListGlossariesResponse\x12\x36\n\nglossaries\x18\x01 \x03(\x0b\x32\".google.cloud.dataplex.v1.Glossary\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"\xb6\x01\n\x1d\x43reateGlossaryCategoryRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\x12\x18\n\x0b\x63\x61tegory_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x08\x63\x61tegory\x18\x03 \x01(\x0b\x32*.google.cloud.dataplex.v1.GlossaryCategoryB\x03\xe0\x41\x02\"\x98\x01\n\x1dUpdateGlossaryCategoryRequest\x12\x41\n\x08\x63\x61tegory\x18\x01 \x01(\x0b\x32*.google.cloud.dataplex.v1.GlossaryCategoryB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"_\n\x1d\x44\x65leteGlossaryCategoryRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(dataplex.googleapis.com/GlossaryCategory\"\\\n\x1aGetGlossaryCategoryRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(dataplex.googleapis.com/GlossaryCategory\"\xb6\x01\n\x1dListGlossaryCategoriesRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x98\x01\n\x1eListGlossaryCategoriesResponse\x12>\n\ncategories\x18\x01 \x03(\x0b\x32*.google.cloud.dataplex.v1.GlossaryCategory\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"\xa6\x01\n\x19\x43reateGlossaryTermRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\x12\x14\n\x07term_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x39\n\x04term\x18\x03 \x01(\x0b\x32&.google.cloud.dataplex.v1.GlossaryTermB\x03\xe0\x41\x02\"\x8c\x01\n\x19UpdateGlossaryTermRequest\x12\x39\n\x04term\x18\x01 \x01(\x0b\x32&.google.cloud.dataplex.v1.GlossaryTermB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"W\n\x19\x44\x65leteGlossaryTermRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$dataplex.googleapis.com/GlossaryTerm\"T\n\x16GetGlossaryTermRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$dataplex.googleapis.com/GlossaryTerm\"\xb1\x01\n\x18ListGlossaryTermsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n dataplex.googleapis.com/Glossary\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n\x19ListGlossaryTermsResponse\x12\x35\n\x05terms\x18\x01 \x03(\x0b\x32&.google.cloud.dataplex.v1.GlossaryTerm\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t2\xd6\x18\n\x17\x42usinessGlossaryService\x12\xe0\x01\n\x0e\x43reateGlossary\x12/.google.cloud.dataplex.v1.CreateGlossaryRequest\x1a\x1d.google.longrunning.Operation\"~\xca\x41\x1d\n\x08Glossary\x12\x11OperationMetadata\xda\x41\x1bparent,glossary,glossary_id\x82\xd3\xe4\x93\x02:\"./v1/{parent=projects/*/locations/*}/glossaries:\x08glossary\x12\xe3\x01\n\x0eUpdateGlossary\x12/.google.cloud.dataplex.v1.UpdateGlossaryRequest\x1a\x1d.google.longrunning.Operation\"\x80\x01\xca\x41\x1d\n\x08Glossary\x12\x11OperationMetadata\xda\x41\x14glossary,update_mask\x82\xd3\xe4\x93\x02\x43\x32\x37/v1/{glossary.name=projects/*/locations/*/glossaries/*}:\x08glossary\x12\xcc\x01\n\x0e\x44\x65leteGlossary\x12/.google.cloud.dataplex.v1.DeleteGlossaryRequest\x1a\x1d.google.longrunning.Operation\"j\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30*./v1/{name=projects/*/locations/*/glossaries/*}\x12\x9e\x01\n\x0bGetGlossary\x12,.google.cloud.dataplex.v1.GetGlossaryRequest\x1a\".google.cloud.dataplex.v1.Glossary\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=projects/*/locations/*/glossaries/*}\x12\xb4\x01\n\x0eListGlossaries\x12/.google.cloud.dataplex.v1.ListGlossariesRequest\x1a\x30.google.cloud.dataplex.v1.ListGlossariesResponse\"?\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=projects/*/locations/*}/glossaries\x12\xea\x01\n\x16\x43reateGlossaryCategory\x12\x37.google.cloud.dataplex.v1.CreateGlossaryCategoryRequest\x1a*.google.cloud.dataplex.v1.GlossaryCategory\"k\xda\x41\x1bparent,category,category_id\x82\xd3\xe4\x93\x02G\";/v1/{parent=projects/*/locations/*/glossaries/*}/categories:\x08\x63\x61tegory\x12\xec\x01\n\x16UpdateGlossaryCategory\x12\x37.google.cloud.dataplex.v1.UpdateGlossaryCategoryRequest\x1a*.google.cloud.dataplex.v1.GlossaryCategory\"m\xda\x41\x14\x63\x61tegory,update_mask\x82\xd3\xe4\x93\x02P2D/v1/{category.name=projects/*/locations/*/glossaries/*/categories/*}:\x08\x63\x61tegory\x12\xb5\x01\n\x16\x44\x65leteGlossaryCategory\x12\x37.google.cloud.dataplex.v1.DeleteGlossaryCategoryRequest\x1a\x16.google.protobuf.Empty\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=*;/v1/{name=projects/*/locations/*/glossaries/*/categories/*}\x12\xc3\x01\n\x13GetGlossaryCategory\x12\x34.google.cloud.dataplex.v1.GetGlossaryCategoryRequest\x1a*.google.cloud.dataplex.v1.GlossaryCategory\"J\xda\x41\x04name\x82\xd3\xe4\x93\x02=\x12;/v1/{name=projects/*/locations/*/glossaries/*/categories/*}\x12\xd9\x01\n\x16ListGlossaryCategories\x12\x37.google.cloud.dataplex.v1.ListGlossaryCategoriesRequest\x1a\x38.google.cloud.dataplex.v1.ListGlossaryCategoriesResponse\"L\xda\x41\x06parent\x82\xd3\xe4\x93\x02=\x12;/v1/{parent=projects/*/locations/*/glossaries/*}/categories\x12\xcd\x01\n\x12\x43reateGlossaryTerm\x12\x33.google.cloud.dataplex.v1.CreateGlossaryTermRequest\x1a&.google.cloud.dataplex.v1.GlossaryTerm\"Z\xda\x41\x13parent,term,term_id\x82\xd3\xe4\x93\x02>\"6/v1/{parent=projects/*/locations/*/glossaries/*}/terms:\x04term\x12\xcf\x01\n\x12UpdateGlossaryTerm\x12\x33.google.cloud.dataplex.v1.UpdateGlossaryTermRequest\x1a&.google.cloud.dataplex.v1.GlossaryTerm\"\\\xda\x41\x10term,update_mask\x82\xd3\xe4\x93\x02\x43\x32;/v1/{term.name=projects/*/locations/*/glossaries/*/terms/*}:\x04term\x12\xa8\x01\n\x12\x44\x65leteGlossaryTerm\x12\x33.google.cloud.dataplex.v1.DeleteGlossaryTermRequest\x1a\x16.google.protobuf.Empty\"E\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38*6/v1/{name=projects/*/locations/*/glossaries/*/terms/*}\x12\xb2\x01\n\x0fGetGlossaryTerm\x12\x30.google.cloud.dataplex.v1.GetGlossaryTermRequest\x1a&.google.cloud.dataplex.v1.GlossaryTerm\"E\xda\x41\x04name\x82\xd3\xe4\x93\x02\x38\x12\x36/v1/{name=projects/*/locations/*/glossaries/*/terms/*}\x12\xc5\x01\n\x11ListGlossaryTerms\x12\x32.google.cloud.dataplex.v1.ListGlossaryTermsRequest\x1a\x33.google.cloud.dataplex.v1.ListGlossaryTermsResponse\"G\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x38\x12\x36/v1/{parent=projects/*/locations/*/glossaries/*}/terms\x1aK\xca\x41\x17\x64\x61taplex.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformBq\n\x1c\x63om.google.cloud.dataplex.v1B\x15\x42usinessGlossaryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], + ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module Dataplex + module V1 + Glossary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.Glossary").msgclass + GlossaryCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.GlossaryCategory").msgclass + GlossaryTerm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.GlossaryTerm").msgclass + CreateGlossaryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.CreateGlossaryRequest").msgclass + UpdateGlossaryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.UpdateGlossaryRequest").msgclass + DeleteGlossaryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.DeleteGlossaryRequest").msgclass + GetGlossaryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.GetGlossaryRequest").msgclass + ListGlossariesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.ListGlossariesRequest").msgclass + ListGlossariesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.ListGlossariesResponse").msgclass + CreateGlossaryCategoryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.CreateGlossaryCategoryRequest").msgclass + UpdateGlossaryCategoryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.UpdateGlossaryCategoryRequest").msgclass + DeleteGlossaryCategoryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.DeleteGlossaryCategoryRequest").msgclass + GetGlossaryCategoryRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.GetGlossaryCategoryRequest").msgclass + ListGlossaryCategoriesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.ListGlossaryCategoriesRequest").msgclass + ListGlossaryCategoriesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.ListGlossaryCategoriesResponse").msgclass + CreateGlossaryTermRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.CreateGlossaryTermRequest").msgclass + UpdateGlossaryTermRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.UpdateGlossaryTermRequest").msgclass + DeleteGlossaryTermRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.DeleteGlossaryTermRequest").msgclass + GetGlossaryTermRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.GetGlossaryTermRequest").msgclass + ListGlossaryTermsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.ListGlossaryTermsRequest").msgclass + ListGlossaryTermsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.ListGlossaryTermsResponse").msgclass + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service.rb new file mode 100644 index 000000000000..6cfea1fc372a --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service.rb @@ -0,0 +1,61 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/dataplex/v1/version" + +require "google/cloud/dataplex/v1/business_glossary_service/credentials" +require "google/cloud/dataplex/v1/business_glossary_service/paths" +require "google/cloud/dataplex/v1/business_glossary_service/operations" +require "google/cloud/dataplex/v1/business_glossary_service/client" +require "google/cloud/dataplex/v1/business_glossary_service/rest" + +module Google + module Cloud + module Dataplex + module V1 + ## + # BusinessGlossaryService provides APIs for managing business glossary + # resources for enterprise customers. + # The resources currently supported in Business Glossary are: + # 1. Glossary + # 2. GlossaryCategory + # 3. GlossaryTerm + # + # @example Load this service and instantiate a gRPC client + # + # require "google/cloud/dataplex/v1/business_glossary_service" + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/cloud/dataplex/v1/business_glossary_service/rest" + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + module BusinessGlossaryService + end + end + end + end +end + +helper_path = ::File.join __dir__, "business_glossary_service", "helpers.rb" +require "google/cloud/dataplex/v1/business_glossary_service/helpers" if ::File.file? helper_path diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/client.rb new file mode 100644 index 000000000000..7d0301d6d331 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/client.rb @@ -0,0 +1,1985 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/dataplex/v1/business_glossary_pb" +require "google/cloud/location" +require "google/iam/v1" + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + ## + # Client for the BusinessGlossaryService service. + # + # BusinessGlossaryService provides APIs for managing business glossary + # resources for enterprise customers. + # The resources currently supported in Business Glossary are: + # 1. Glossary + # 2. GlossaryCategory + # 3. GlossaryTerm + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "dataplex.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :business_glossary_service_stub + + ## + # Configure the BusinessGlossaryService Client class. + # + # See {::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all BusinessGlossaryService clients + # ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "Dataplex", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the BusinessGlossaryService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @business_glossary_service_stub.universe_domain + end + + ## + # Create a new BusinessGlossaryService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the BusinessGlossaryService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/cloud/dataplex/v1/business_glossary_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_client = Operations.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @config.endpoint + config.universe_domain = @config.universe_domain + end + + @business_glossary_service_stub = ::Gapic::ServiceStub.new( + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @business_glossary_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @business_glossary_service_stub.endpoint + config.universe_domain = @business_glossary_service_stub.universe_domain + config.logger = @business_glossary_service_stub.logger if config.respond_to? :logger= + end + + @iam_policy_client = Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @business_glossary_service_stub.endpoint + config.universe_domain = @business_glossary_service_stub.universe_domain + config.logger = @business_glossary_service_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for long-running operations. + # + # @return [::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations] + # + attr_reader :operations_client + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Client] + # + attr_reader :location_client + + ## + # Get the associated client for mix-in of the IAMPolicy. + # + # @return [Google::Iam::V1::IAMPolicy::Client] + # + attr_reader :iam_policy_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @business_glossary_service_stub.logger + end + + # Service calls + + ## + # Creates a new Glossary resource. + # + # @overload create_glossary(request, options = nil) + # Pass arguments to `create_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_glossary(parent: nil, glossary_id: nil, glossary: nil, validate_only: nil) + # Pass arguments to `create_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where this Glossary will be created. + # Format: projects/\\{project_id_or_number}/locations/\\{location_id} + # where `location_id` refers to a Google Cloud region. + # @param glossary_id [::String] + # Required. Glossary ID: Glossary identifier. + # @param glossary [::Google::Cloud::Dataplex::V1::Glossary, ::Hash] + # Required. The Glossary to create. + # @param validate_only [::Boolean] + # Optional. Validates the request without actually creating the Glossary. + # Default: false. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new + # + # # Call the create_glossary method. + # result = client.create_glossary request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_glossary.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :create_glossary, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a Glossary resource. + # + # @overload update_glossary(request, options = nil) + # Pass arguments to `update_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_glossary(glossary: nil, update_mask: nil, validate_only: nil) + # Pass arguments to `update_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param glossary [::Google::Cloud::Dataplex::V1::Glossary, ::Hash] + # Required. The Glossary to update. + # The Glossary's `name` field is used to identify the Glossary to update. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # @param validate_only [::Boolean] + # Optional. Validates the request without actually updating the Glossary. + # Default: false. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new + # + # # Call the update_glossary method. + # result = client.update_glossary request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def update_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.glossary&.name + header_params["glossary.name"] = request.glossary.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_glossary.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :update_glossary, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a Glossary resource. All the categories and terms within the + # Glossary must be deleted before the Glossary can be deleted. + # + # @overload delete_glossary(request, options = nil) + # Pass arguments to `delete_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_glossary(name: nil, etag: nil) + # Pass arguments to `delete_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the Glossary to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @param etag [::String] + # Optional. The etag of the Glossary. + # If this is provided, it must match the server's etag. + # If the etag is provided and does not match the server-computed etag, + # the request must fail with a ABORTED error code. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new + # + # # Call the delete_glossary method. + # result = client.delete_glossary request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_glossary.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :delete_glossary, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a Glossary resource. + # + # @overload get_glossary(request, options = nil) + # Pass arguments to `get_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_glossary(name: nil) + # Pass arguments to `get_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the Glossary to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::Glossary] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::Glossary] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetGlossaryRequest.new + # + # # Call the get_glossary method. + # result = client.get_glossary request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::Glossary. + # p result + # + def get_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_glossary.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :get_glossary, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists Glossary resources in a project and location. + # + # @overload list_glossaries(request, options = nil) + # Pass arguments to `list_glossaries` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::ListGlossariesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::ListGlossariesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_glossaries(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_glossaries` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which has this collection of Glossaries. + # Format: projects/\\{project_id_or_number}/locations/\\{location_id} + # where `location_id` refers to a Google Cloud region. + # @param page_size [::Integer] + # Optional. The maximum number of Glossaries to return. The service may + # return fewer than this value. If unspecified, at most 50 Glossaries will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListGlossaries` call. + # Provide this to retrieve the subsequent page. + # When paginating, all other parameters provided to `ListGlossaries` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. Filter expression that filters Glossaries listed in the response. + # Filters on proto fields of Glossary are supported. + # Examples of using a filter are: + # - `display_name="my-glossary"` + # - `categoryCount=1` + # - `termCount=0` + # @param order_by [::String] + # Optional. Order by expression that orders Glossaries listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Dataplex::V1::Glossary>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::Dataplex::V1::Glossary>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::ListGlossariesRequest.new + # + # # Call the list_glossaries method. + # result = client.list_glossaries request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dataplex::V1::Glossary. + # p item + # end + # + def list_glossaries request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::ListGlossariesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_glossaries.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_glossaries.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_glossaries.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :list_glossaries, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @business_glossary_service_stub, :list_glossaries, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new GlossaryCategory resource. + # + # @overload create_glossary_category(request, options = nil) + # Pass arguments to `create_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_glossary_category(parent: nil, category_id: nil, category: nil) + # Pass arguments to `create_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where this GlossaryCategory will be created. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `locationId` refers to a Google Cloud region. + # @param category_id [::String] + # Required. GlossaryCategory identifier. + # @param category [::Google::Cloud::Dataplex::V1::GlossaryCategory, ::Hash] + # Required. The GlossaryCategory to create. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new + # + # # Call the create_glossary_category method. + # result = client.create_glossary_category request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + # p result + # + def create_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_glossary_category.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :create_glossary_category, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a GlossaryCategory resource. + # + # @overload update_glossary_category(request, options = nil) + # Pass arguments to `update_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_glossary_category(category: nil, update_mask: nil) + # Pass arguments to `update_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param category [::Google::Cloud::Dataplex::V1::GlossaryCategory, ::Hash] + # Required. The GlossaryCategory to update. + # The GlossaryCategory's `name` field is used to identify the + # GlossaryCategory to update. Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new + # + # # Call the update_glossary_category method. + # result = client.update_glossary_category request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + # p result + # + def update_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.category&.name + header_params["category.name"] = request.category.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_glossary_category.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :update_glossary_category, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a GlossaryCategory resource. All the GlossaryCategories and + # GlossaryTerms nested directly under the specified GlossaryCategory will be + # moved one level up to the parent in the hierarchy. + # + # @overload delete_glossary_category(request, options = nil) + # Pass arguments to `delete_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_glossary_category(name: nil) + # Pass arguments to `delete_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryCategory to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new + # + # # Call the delete_glossary_category method. + # result = client.delete_glossary_category request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_glossary_category.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :delete_glossary_category, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a GlossaryCategory resource. + # + # @overload get_glossary_category(request, options = nil) + # Pass arguments to `get_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_glossary_category(name: nil) + # Pass arguments to `get_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryCategory to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new + # + # # Call the get_glossary_category method. + # result = client.get_glossary_category request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + # p result + # + def get_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_glossary_category.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :get_glossary_category, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists GlossaryCategory resources in a Glossary. + # + # @overload list_glossary_categories(request, options = nil) + # Pass arguments to `list_glossary_categories` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_glossary_categories(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_glossary_categories` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which has this collection of GlossaryCategories. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # Location is the Google Cloud region. + # @param page_size [::Integer] + # Optional. The maximum number of GlossaryCategories to return. The service + # may return fewer than this value. If unspecified, at most 50 + # GlossaryCategories will be returned. The maximum value is 1000; values + # above 1000 will be coerced to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListGlossaryCategories` + # call. Provide this to retrieve the subsequent page. When paginating, all + # other parameters provided to `ListGlossaryCategories` must match the call + # that provided the page token. + # @param filter [::String] + # Optional. Filter expression that filters GlossaryCategories listed in the + # response. Filters are supported on the following fields: + # - immediate_parent + # + # Examples of using a filter are: + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}"` + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}/categories/{category_id}"` + # + # This will only return the GlossaryCategories that are directly nested + # under the specified parent. + # @param order_by [::String] + # Optional. Order by expression that orders GlossaryCategories listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryCategory>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryCategory>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new + # + # # Call the list_glossary_categories method. + # result = client.list_glossary_categories request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dataplex::V1::GlossaryCategory. + # p item + # end + # + def list_glossary_categories request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_glossary_categories.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_glossary_categories.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_glossary_categories.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :list_glossary_categories, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @business_glossary_service_stub, :list_glossary_categories, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new GlossaryTerm resource. + # + # @overload create_glossary_term(request, options = nil) + # Pass arguments to `create_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_glossary_term(parent: nil, term_id: nil, term: nil) + # Pass arguments to `create_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where the GlossaryTerm will be created. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `location_id` refers to a Google Cloud region. + # @param term_id [::String] + # Required. GlossaryTerm identifier. + # @param term [::Google::Cloud::Dataplex::V1::GlossaryTerm, ::Hash] + # Required. The GlossaryTerm to create. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new + # + # # Call the create_glossary_term method. + # result = client.create_glossary_term request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + # p result + # + def create_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_glossary_term.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :create_glossary_term, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a GlossaryTerm resource. + # + # @overload update_glossary_term(request, options = nil) + # Pass arguments to `update_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_glossary_term(term: nil, update_mask: nil) + # Pass arguments to `update_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param term [::Google::Cloud::Dataplex::V1::GlossaryTerm, ::Hash] + # Required. The GlossaryTerm to update. + # The GlossaryTerm's `name` field is used to identify the GlossaryTerm to + # update. Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new + # + # # Call the update_glossary_term method. + # result = client.update_glossary_term request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + # p result + # + def update_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.term&.name + header_params["term.name"] = request.term.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_glossary_term.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :update_glossary_term, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a GlossaryTerm resource. + # + # @overload delete_glossary_term(request, options = nil) + # Pass arguments to `delete_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_glossary_term(name: nil) + # Pass arguments to `delete_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryTerm to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new + # + # # Call the delete_glossary_term method. + # result = client.delete_glossary_term request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_glossary_term.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :delete_glossary_term, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a GlossaryTerm resource. + # + # @overload get_glossary_term(request, options = nil) + # Pass arguments to `get_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_glossary_term(name: nil) + # Pass arguments to `get_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryTerm to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new + # + # # Call the get_glossary_term method. + # result = client.get_glossary_term request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + # p result + # + def get_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_glossary_term.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :get_glossary_term, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists GlossaryTerm resources in a Glossary. + # + # @overload list_glossary_terms(request, options = nil) + # Pass arguments to `list_glossary_terms` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_glossary_terms(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_glossary_terms` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which has this collection of GlossaryTerms. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `location_id` refers to a Google Cloud region. + # @param page_size [::Integer] + # Optional. The maximum number of GlossaryTerms to return. The service may + # return fewer than this value. If unspecified, at most 50 GlossaryTerms will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListGlossaryTerms` call. + # Provide this to retrieve the subsequent page. + # When paginating, all other parameters provided to `ListGlossaryTerms` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. Filter expression that filters GlossaryTerms listed in the + # response. Filters are supported on the following fields: + # - immediate_parent + # + # Examples of using a filter are: + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}"` + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}/categories/{category_id}"` + # + # This will only return the GlossaryTerms that are directly nested under the + # specified parent. + # @param order_by [::String] + # Optional. Order by expression that orders GlossaryTerms listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryTerm>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryTerm>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new + # + # # Call the list_glossary_terms method. + # result = client.list_glossary_terms request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dataplex::V1::GlossaryTerm. + # p item + # end + # + def list_glossary_terms request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_glossary_terms.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_glossary_terms.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_glossary_terms.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.call_rpc :list_glossary_terms, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @business_glossary_service_stub, :list_glossary_terms, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the BusinessGlossaryService API. + # + # This class represents the configuration for BusinessGlossaryService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_glossary to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_glossary.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_glossary.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "dataplex.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the BusinessGlossaryService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :create_glossary + ## + # RPC-specific configuration for `update_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :update_glossary + ## + # RPC-specific configuration for `delete_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_glossary + ## + # RPC-specific configuration for `get_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :get_glossary + ## + # RPC-specific configuration for `list_glossaries` + # @return [::Gapic::Config::Method] + # + attr_reader :list_glossaries + ## + # RPC-specific configuration for `create_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :create_glossary_category + ## + # RPC-specific configuration for `update_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :update_glossary_category + ## + # RPC-specific configuration for `delete_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_glossary_category + ## + # RPC-specific configuration for `get_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :get_glossary_category + ## + # RPC-specific configuration for `list_glossary_categories` + # @return [::Gapic::Config::Method] + # + attr_reader :list_glossary_categories + ## + # RPC-specific configuration for `create_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :create_glossary_term + ## + # RPC-specific configuration for `update_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :update_glossary_term + ## + # RPC-specific configuration for `delete_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_glossary_term + ## + # RPC-specific configuration for `get_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :get_glossary_term + ## + # RPC-specific configuration for `list_glossary_terms` + # @return [::Gapic::Config::Method] + # + attr_reader :list_glossary_terms + + # @private + def initialize parent_rpcs = nil + create_glossary_config = parent_rpcs.create_glossary if parent_rpcs.respond_to? :create_glossary + @create_glossary = ::Gapic::Config::Method.new create_glossary_config + update_glossary_config = parent_rpcs.update_glossary if parent_rpcs.respond_to? :update_glossary + @update_glossary = ::Gapic::Config::Method.new update_glossary_config + delete_glossary_config = parent_rpcs.delete_glossary if parent_rpcs.respond_to? :delete_glossary + @delete_glossary = ::Gapic::Config::Method.new delete_glossary_config + get_glossary_config = parent_rpcs.get_glossary if parent_rpcs.respond_to? :get_glossary + @get_glossary = ::Gapic::Config::Method.new get_glossary_config + list_glossaries_config = parent_rpcs.list_glossaries if parent_rpcs.respond_to? :list_glossaries + @list_glossaries = ::Gapic::Config::Method.new list_glossaries_config + create_glossary_category_config = parent_rpcs.create_glossary_category if parent_rpcs.respond_to? :create_glossary_category + @create_glossary_category = ::Gapic::Config::Method.new create_glossary_category_config + update_glossary_category_config = parent_rpcs.update_glossary_category if parent_rpcs.respond_to? :update_glossary_category + @update_glossary_category = ::Gapic::Config::Method.new update_glossary_category_config + delete_glossary_category_config = parent_rpcs.delete_glossary_category if parent_rpcs.respond_to? :delete_glossary_category + @delete_glossary_category = ::Gapic::Config::Method.new delete_glossary_category_config + get_glossary_category_config = parent_rpcs.get_glossary_category if parent_rpcs.respond_to? :get_glossary_category + @get_glossary_category = ::Gapic::Config::Method.new get_glossary_category_config + list_glossary_categories_config = parent_rpcs.list_glossary_categories if parent_rpcs.respond_to? :list_glossary_categories + @list_glossary_categories = ::Gapic::Config::Method.new list_glossary_categories_config + create_glossary_term_config = parent_rpcs.create_glossary_term if parent_rpcs.respond_to? :create_glossary_term + @create_glossary_term = ::Gapic::Config::Method.new create_glossary_term_config + update_glossary_term_config = parent_rpcs.update_glossary_term if parent_rpcs.respond_to? :update_glossary_term + @update_glossary_term = ::Gapic::Config::Method.new update_glossary_term_config + delete_glossary_term_config = parent_rpcs.delete_glossary_term if parent_rpcs.respond_to? :delete_glossary_term + @delete_glossary_term = ::Gapic::Config::Method.new delete_glossary_term_config + get_glossary_term_config = parent_rpcs.get_glossary_term if parent_rpcs.respond_to? :get_glossary_term + @get_glossary_term = ::Gapic::Config::Method.new get_glossary_term_config + list_glossary_terms_config = parent_rpcs.list_glossary_terms if parent_rpcs.respond_to? :list_glossary_terms + @list_glossary_terms = ::Gapic::Config::Method.new list_glossary_terms_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/credentials.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/credentials.rb new file mode 100644 index 000000000000..1da0196d8748 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + # Credentials for the BusinessGlossaryService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/operations.rb new file mode 100644 index 000000000000..54a61aa59e04 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/operations.rb @@ -0,0 +1,813 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/operation" +require "google/longrunning/operations_pb" + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + # Service that implements Longrunning Operations API. + class Operations + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "dataplex.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :operations_stub + + ## + # Configuration for the BusinessGlossaryService Operations API. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def self.configure + @configure ||= Operations::Configuration.new + yield @configure if block_given? + @configure + end + + ## + # Configure the BusinessGlossaryService Operations instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Operations.configure}. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @operations_stub.universe_domain + end + + ## + # Create a new Operations client object. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Operations::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/longrunning/operations_services_pb" + + # Create the configuration object + @config = Configuration.new Operations.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + credentials ||= Credentials.default scope: @config.scope + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_stub = ::Gapic::ServiceStub.new( + ::Google::Longrunning::Operations::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool + ) + + # Used by an LRO wrapper for some methods of this service + @operations_client = self + end + + # Service calls + + ## + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # + # @overload list_operations(request, options = nil) + # Pass arguments to `list_operations` via a request object, either of type + # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::ListOperationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_operations(name: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_operations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation's parent resource. + # @param filter [::String] + # The standard list filter. + # @param page_size [::Integer] + # The standard list page size. + # @param page_token [::String] + # The standard list page token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Gapic::Operation>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Gapic::Operation>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::ListOperationsRequest.new + # + # # Call the list_operations method. + # result = client.list_operations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Longrunning::Operation. + # p item + # end + # + def list_operations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::ListOperationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_operations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_operations.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_operations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :list_operations, request, options: options do |response, operation| + wrap_lro_operation = ->(op_response) { ::Gapic::Operation.new op_response, @operations_client } + response = ::Gapic::PagedEnumerable.new @operations_stub, :list_operations, request, response, operation, options, format_resource: wrap_lro_operation + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # + # @overload get_operation(request, options = nil) + # Pass arguments to `get_operation` via a request object, either of type + # {::Google::Longrunning::GetOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::GetOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_operation(name: nil) + # Pass arguments to `get_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::GetOperationRequest.new + # + # # Call the get_operation method. + # result = client.get_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def get_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::GetOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :get_operation, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a long-running operation. This method indicates that the client is + # no longer interested in the operation result. It does not cancel the + # operation. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # + # @overload delete_operation(request, options = nil) + # Pass arguments to `delete_operation` via a request object, either of type + # {::Google::Longrunning::DeleteOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::DeleteOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_operation(name: nil) + # Pass arguments to `delete_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be deleted. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::DeleteOperationRequest.new + # + # # Call the delete_operation method. + # result = client.delete_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::DeleteOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :delete_operation, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Starts asynchronous cancellation on a long-running operation. The server + # makes a best effort to cancel the operation, but success is not + # guaranteed. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. Clients can use + # Operations.GetOperation or + # other methods to check whether the cancellation succeeded or whether the + # operation completed despite cancellation. On successful cancellation, + # the operation is not deleted; instead, it becomes an operation with + # an {::Google::Longrunning::Operation#error Operation.error} value with a + # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to + # `Code.CANCELLED`. + # + # @overload cancel_operation(request, options = nil) + # Pass arguments to `cancel_operation` via a request object, either of type + # {::Google::Longrunning::CancelOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::CancelOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload cancel_operation(name: nil) + # Pass arguments to `cancel_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be cancelled. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::CancelOperationRequest.new + # + # # Call the cancel_operation method. + # result = client.cancel_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def cancel_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::CancelOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.cancel_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.cancel_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :cancel_operation, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Waits until the specified long-running operation is done or reaches at most + # a specified timeout, returning the latest state. If the operation is + # already done, the latest state is immediately returned. If the timeout + # specified is greater than the default HTTP/RPC timeout, the HTTP/RPC + # timeout is used. If the server does not support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # Note that this method is on a best-effort basis. It may return the latest + # state before the specified timeout (including immediately), meaning even an + # immediate response is no guarantee that the operation is done. + # + # @overload wait_operation(request, options = nil) + # Pass arguments to `wait_operation` via a request object, either of type + # {::Google::Longrunning::WaitOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::WaitOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload wait_operation(name: nil, timeout: nil) + # Pass arguments to `wait_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to wait on. + # @param timeout [::Google::Protobuf::Duration, ::Hash] + # The maximum duration to wait before timing out. If left blank, the wait + # will be at most the time permitted by the underlying HTTP/RPC protocol. + # If RPC context deadline is also specified, the shorter one will be used. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::WaitOperationRequest.new + # + # # Call the wait_operation method. + # result = client.wait_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def wait_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::WaitOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.wait_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.wait_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.wait_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :wait_operation, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the Operations API. + # + # This class represents the configuration for Operations, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Longrunning::Operations::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_operations to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Longrunning::Operations::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Longrunning::Operations::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "dataplex.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the Operations API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_operations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_operations + ## + # RPC-specific configuration for `get_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_operation + ## + # RPC-specific configuration for `delete_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_operation + ## + # RPC-specific configuration for `cancel_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_operation + ## + # RPC-specific configuration for `wait_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :wait_operation + + # @private + def initialize parent_rpcs = nil + list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations + @list_operations = ::Gapic::Config::Method.new list_operations_config + get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation + @get_operation = ::Gapic::Config::Method.new get_operation_config + delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation + @delete_operation = ::Gapic::Config::Method.new delete_operation_config + cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation + @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config + wait_operation_config = parent_rpcs.wait_operation if parent_rpcs.respond_to? :wait_operation + @wait_operation = ::Gapic::Config::Method.new wait_operation_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/paths.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/paths.rb new file mode 100644 index 000000000000..ffabc3944a24 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/paths.rb @@ -0,0 +1,111 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + # Path helper methods for the BusinessGlossaryService API. + module Paths + ## + # Create a fully-qualified Glossary resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/glossaries/{glossary}` + # + # @param project [String] + # @param location [String] + # @param glossary [String] + # + # @return [::String] + def glossary_path project:, location:, glossary: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/glossaries/#{glossary}" + end + + ## + # Create a fully-qualified GlossaryCategory resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/glossaries/{glossary}/categories/{glossary_category}` + # + # @param project [String] + # @param location [String] + # @param glossary [String] + # @param glossary_category [String] + # + # @return [::String] + def glossary_category_path project:, location:, glossary:, glossary_category: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "glossary cannot contain /" if glossary.to_s.include? "/" + + "projects/#{project}/locations/#{location}/glossaries/#{glossary}/categories/#{glossary_category}" + end + + ## + # Create a fully-qualified GlossaryTerm resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/glossaries/{glossary}/terms/{glossary_term}` + # + # @param project [String] + # @param location [String] + # @param glossary [String] + # @param glossary_term [String] + # + # @return [::String] + def glossary_term_path project:, location:, glossary:, glossary_term: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "glossary cannot contain /" if glossary.to_s.include? "/" + + "projects/#{project}/locations/#{location}/glossaries/#{glossary}/terms/#{glossary_term}" + end + + ## + # Create a fully-qualified Location resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def location_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}" + end + + extend self + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest.rb new file mode 100644 index 000000000000..7df558ae9e0a --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/dataplex/v1/version" +require "google/cloud/dataplex/v1/bindings_override" + +require "google/cloud/dataplex/v1/business_glossary_service/credentials" +require "google/cloud/dataplex/v1/business_glossary_service/paths" +require "google/cloud/dataplex/v1/business_glossary_service/rest/operations" +require "google/cloud/dataplex/v1/business_glossary_service/rest/client" + +module Google + module Cloud + module Dataplex + module V1 + ## + # BusinessGlossaryService provides APIs for managing business glossary + # resources for enterprise customers. + # The resources currently supported in Business Glossary are: + # 1. Glossary + # 2. GlossaryCategory + # 3. GlossaryTerm + # + # To load this service and instantiate a REST client: + # + # require "google/cloud/dataplex/v1/business_glossary_service/rest" + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + module BusinessGlossaryService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/cloud/dataplex/v1/business_glossary_service/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/client.rb new file mode 100644 index 000000000000..faa8362f5fcc --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/client.rb @@ -0,0 +1,1863 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/dataplex/v1/business_glossary_pb" +require "google/cloud/dataplex/v1/business_glossary_service/rest/service_stub" +require "google/cloud/location/rest" +require "google/iam/v1/rest" + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + module Rest + ## + # REST client for the BusinessGlossaryService service. + # + # BusinessGlossaryService provides APIs for managing business glossary + # resources for enterprise customers. + # The resources currently supported in Business Glossary are: + # 1. Glossary + # 2. GlossaryCategory + # 3. GlossaryTerm + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "dataplex.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :business_glossary_service_stub + + ## + # Configure the BusinessGlossaryService Client class. + # + # See {::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all BusinessGlossaryService clients + # ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "Dataplex", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the BusinessGlossaryService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @business_glossary_service_stub.universe_domain + end + + ## + # Create a new BusinessGlossaryService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the BusinessGlossaryService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Operations.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @config.endpoint + config.universe_domain = @config.universe_domain + end + + @business_glossary_service_stub = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @business_glossary_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @business_glossary_service_stub.endpoint + config.universe_domain = @business_glossary_service_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @business_glossary_service_stub.logger if config.respond_to? :logger= + end + + @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @business_glossary_service_stub.endpoint + config.universe_domain = @business_glossary_service_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @business_glossary_service_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for long-running operations. + # + # @return [::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Operations] + # + attr_reader :operations_client + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # Get the associated client for mix-in of the IAMPolicy. + # + # @return [Google::Iam::V1::IAMPolicy::Rest::Client] + # + attr_reader :iam_policy_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @business_glossary_service_stub.logger + end + + # Service calls + + ## + # Creates a new Glossary resource. + # + # @overload create_glossary(request, options = nil) + # Pass arguments to `create_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_glossary(parent: nil, glossary_id: nil, glossary: nil, validate_only: nil) + # Pass arguments to `create_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where this Glossary will be created. + # Format: projects/\\{project_id_or_number}/locations/\\{location_id} + # where `location_id` refers to a Google Cloud region. + # @param glossary_id [::String] + # Required. Glossary ID: Glossary identifier. + # @param glossary [::Google::Cloud::Dataplex::V1::Glossary, ::Hash] + # Required. The Glossary to create. + # @param validate_only [::Boolean] + # Optional. Validates the request without actually creating the Glossary. + # Default: false. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new + # + # # Call the create_glossary method. + # result = client.create_glossary request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_glossary.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.create_glossary request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a Glossary resource. + # + # @overload update_glossary(request, options = nil) + # Pass arguments to `update_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_glossary(glossary: nil, update_mask: nil, validate_only: nil) + # Pass arguments to `update_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param glossary [::Google::Cloud::Dataplex::V1::Glossary, ::Hash] + # Required. The Glossary to update. + # The Glossary's `name` field is used to identify the Glossary to update. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # @param validate_only [::Boolean] + # Optional. Validates the request without actually updating the Glossary. + # Default: false. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new + # + # # Call the update_glossary method. + # result = client.update_glossary request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def update_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_glossary.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.update_glossary request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a Glossary resource. All the categories and terms within the + # Glossary must be deleted before the Glossary can be deleted. + # + # @overload delete_glossary(request, options = nil) + # Pass arguments to `delete_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_glossary(name: nil, etag: nil) + # Pass arguments to `delete_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the Glossary to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @param etag [::String] + # Optional. The etag of the Glossary. + # If this is provided, it must match the server's etag. + # If the etag is provided and does not match the server-computed etag, + # the request must fail with a ABORTED error code. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new + # + # # Call the delete_glossary method. + # result = client.delete_glossary request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_glossary.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.delete_glossary request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a Glossary resource. + # + # @overload get_glossary(request, options = nil) + # Pass arguments to `get_glossary` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetGlossaryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetGlossaryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_glossary(name: nil) + # Pass arguments to `get_glossary` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the Glossary to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::Glossary] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::Glossary] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetGlossaryRequest.new + # + # # Call the get_glossary method. + # result = client.get_glossary request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::Glossary. + # p result + # + def get_glossary request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetGlossaryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_glossary.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_glossary.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_glossary.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.get_glossary request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists Glossary resources in a project and location. + # + # @overload list_glossaries(request, options = nil) + # Pass arguments to `list_glossaries` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::ListGlossariesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::ListGlossariesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_glossaries(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_glossaries` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which has this collection of Glossaries. + # Format: projects/\\{project_id_or_number}/locations/\\{location_id} + # where `location_id` refers to a Google Cloud region. + # @param page_size [::Integer] + # Optional. The maximum number of Glossaries to return. The service may + # return fewer than this value. If unspecified, at most 50 Glossaries will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListGlossaries` call. + # Provide this to retrieve the subsequent page. + # When paginating, all other parameters provided to `ListGlossaries` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. Filter expression that filters Glossaries listed in the response. + # Filters on proto fields of Glossary are supported. + # Examples of using a filter are: + # - `display_name="my-glossary"` + # - `categoryCount=1` + # - `termCount=0` + # @param order_by [::String] + # Optional. Order by expression that orders Glossaries listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dataplex::V1::Glossary>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dataplex::V1::Glossary>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::ListGlossariesRequest.new + # + # # Call the list_glossaries method. + # result = client.list_glossaries request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dataplex::V1::Glossary. + # p item + # end + # + def list_glossaries request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::ListGlossariesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_glossaries.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_glossaries.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_glossaries.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.list_glossaries request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @business_glossary_service_stub, :list_glossaries, "glossaries", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new GlossaryCategory resource. + # + # @overload create_glossary_category(request, options = nil) + # Pass arguments to `create_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_glossary_category(parent: nil, category_id: nil, category: nil) + # Pass arguments to `create_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where this GlossaryCategory will be created. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `locationId` refers to a Google Cloud region. + # @param category_id [::String] + # Required. GlossaryCategory identifier. + # @param category [::Google::Cloud::Dataplex::V1::GlossaryCategory, ::Hash] + # Required. The GlossaryCategory to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new + # + # # Call the create_glossary_category method. + # result = client.create_glossary_category request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + # p result + # + def create_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_glossary_category.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.create_glossary_category request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a GlossaryCategory resource. + # + # @overload update_glossary_category(request, options = nil) + # Pass arguments to `update_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_glossary_category(category: nil, update_mask: nil) + # Pass arguments to `update_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param category [::Google::Cloud::Dataplex::V1::GlossaryCategory, ::Hash] + # Required. The GlossaryCategory to update. + # The GlossaryCategory's `name` field is used to identify the + # GlossaryCategory to update. Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new + # + # # Call the update_glossary_category method. + # result = client.update_glossary_category request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + # p result + # + def update_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_glossary_category.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.update_glossary_category request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a GlossaryCategory resource. All the GlossaryCategories and + # GlossaryTerms nested directly under the specified GlossaryCategory will be + # moved one level up to the parent in the hierarchy. + # + # @overload delete_glossary_category(request, options = nil) + # Pass arguments to `delete_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_glossary_category(name: nil) + # Pass arguments to `delete_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryCategory to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new + # + # # Call the delete_glossary_category method. + # result = client.delete_glossary_category request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_glossary_category.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.delete_glossary_category request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a GlossaryCategory resource. + # + # @overload get_glossary_category(request, options = nil) + # Pass arguments to `get_glossary_category` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_glossary_category(name: nil) + # Pass arguments to `get_glossary_category` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryCategory to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new + # + # # Call the get_glossary_category method. + # result = client.get_glossary_category request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + # p result + # + def get_glossary_category request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_glossary_category.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_glossary_category.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_glossary_category.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.get_glossary_category request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists GlossaryCategory resources in a Glossary. + # + # @overload list_glossary_categories(request, options = nil) + # Pass arguments to `list_glossary_categories` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_glossary_categories(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_glossary_categories` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which has this collection of GlossaryCategories. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # Location is the Google Cloud region. + # @param page_size [::Integer] + # Optional. The maximum number of GlossaryCategories to return. The service + # may return fewer than this value. If unspecified, at most 50 + # GlossaryCategories will be returned. The maximum value is 1000; values + # above 1000 will be coerced to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListGlossaryCategories` + # call. Provide this to retrieve the subsequent page. When paginating, all + # other parameters provided to `ListGlossaryCategories` must match the call + # that provided the page token. + # @param filter [::String] + # Optional. Filter expression that filters GlossaryCategories listed in the + # response. Filters are supported on the following fields: + # - immediate_parent + # + # Examples of using a filter are: + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}"` + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}/categories/{category_id}"` + # + # This will only return the GlossaryCategories that are directly nested + # under the specified parent. + # @param order_by [::String] + # Optional. Order by expression that orders GlossaryCategories listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryCategory>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryCategory>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new + # + # # Call the list_glossary_categories method. + # result = client.list_glossary_categories request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dataplex::V1::GlossaryCategory. + # p item + # end + # + def list_glossary_categories request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_glossary_categories.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_glossary_categories.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_glossary_categories.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.list_glossary_categories request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @business_glossary_service_stub, :list_glossary_categories, "categories", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new GlossaryTerm resource. + # + # @overload create_glossary_term(request, options = nil) + # Pass arguments to `create_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_glossary_term(parent: nil, term_id: nil, term: nil) + # Pass arguments to `create_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent resource where the GlossaryTerm will be created. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `location_id` refers to a Google Cloud region. + # @param term_id [::String] + # Required. GlossaryTerm identifier. + # @param term [::Google::Cloud::Dataplex::V1::GlossaryTerm, ::Hash] + # Required. The GlossaryTerm to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new + # + # # Call the create_glossary_term method. + # result = client.create_glossary_term request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + # p result + # + def create_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_glossary_term.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.create_glossary_term request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a GlossaryTerm resource. + # + # @overload update_glossary_term(request, options = nil) + # Pass arguments to `update_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_glossary_term(term: nil, update_mask: nil) + # Pass arguments to `update_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param term [::Google::Cloud::Dataplex::V1::GlossaryTerm, ::Hash] + # Required. The GlossaryTerm to update. + # The GlossaryTerm's `name` field is used to identify the GlossaryTerm to + # update. Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Required. The list of fields to update. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new + # + # # Call the update_glossary_term method. + # result = client.update_glossary_term request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + # p result + # + def update_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_glossary_term.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.update_glossary_term request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a GlossaryTerm resource. + # + # @overload delete_glossary_term(request, options = nil) + # Pass arguments to `delete_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_glossary_term(name: nil) + # Pass arguments to `delete_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryTerm to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new + # + # # Call the delete_glossary_term method. + # result = client.delete_glossary_term request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_glossary_term.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.delete_glossary_term request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets a GlossaryTerm resource. + # + # @overload get_glossary_term(request, options = nil) + # Pass arguments to `get_glossary_term` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_glossary_term(name: nil) + # Pass arguments to `get_glossary_term` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the GlossaryTerm to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new + # + # # Call the get_glossary_term method. + # result = client.get_glossary_term request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + # p result + # + def get_glossary_term request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_glossary_term.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_glossary_term.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_glossary_term.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.get_glossary_term request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists GlossaryTerm resources in a Glossary. + # + # @overload list_glossary_terms(request, options = nil) + # Pass arguments to `list_glossary_terms` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_glossary_terms(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_glossary_terms` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which has this collection of GlossaryTerms. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `location_id` refers to a Google Cloud region. + # @param page_size [::Integer] + # Optional. The maximum number of GlossaryTerms to return. The service may + # return fewer than this value. If unspecified, at most 50 GlossaryTerms will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListGlossaryTerms` call. + # Provide this to retrieve the subsequent page. + # When paginating, all other parameters provided to `ListGlossaryTerms` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. Filter expression that filters GlossaryTerms listed in the + # response. Filters are supported on the following fields: + # - immediate_parent + # + # Examples of using a filter are: + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}"` + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}/categories/{category_id}"` + # + # This will only return the GlossaryTerms that are directly nested under the + # specified parent. + # @param order_by [::String] + # Optional. Order by expression that orders GlossaryTerms listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryTerm>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Dataplex::V1::GlossaryTerm>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new + # + # # Call the list_glossary_terms method. + # result = client.list_glossary_terms request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::Dataplex::V1::GlossaryTerm. + # p item + # end + # + def list_glossary_terms request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_glossary_terms.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_glossary_terms.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_glossary_terms.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @business_glossary_service_stub.list_glossary_terms request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @business_glossary_service_stub, :list_glossary_terms, "terms", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the BusinessGlossaryService REST API. + # + # This class represents the configuration for BusinessGlossaryService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_glossary to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_glossary.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_glossary.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "dataplex.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + + # @private + # Overrides for http bindings for the RPCs of this service + # are only used when this service is used as mixin, and only + # by the host service. + # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] + config_attr :bindings_override, {}, ::Hash, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the BusinessGlossaryService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :create_glossary + ## + # RPC-specific configuration for `update_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :update_glossary + ## + # RPC-specific configuration for `delete_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_glossary + ## + # RPC-specific configuration for `get_glossary` + # @return [::Gapic::Config::Method] + # + attr_reader :get_glossary + ## + # RPC-specific configuration for `list_glossaries` + # @return [::Gapic::Config::Method] + # + attr_reader :list_glossaries + ## + # RPC-specific configuration for `create_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :create_glossary_category + ## + # RPC-specific configuration for `update_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :update_glossary_category + ## + # RPC-specific configuration for `delete_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_glossary_category + ## + # RPC-specific configuration for `get_glossary_category` + # @return [::Gapic::Config::Method] + # + attr_reader :get_glossary_category + ## + # RPC-specific configuration for `list_glossary_categories` + # @return [::Gapic::Config::Method] + # + attr_reader :list_glossary_categories + ## + # RPC-specific configuration for `create_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :create_glossary_term + ## + # RPC-specific configuration for `update_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :update_glossary_term + ## + # RPC-specific configuration for `delete_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_glossary_term + ## + # RPC-specific configuration for `get_glossary_term` + # @return [::Gapic::Config::Method] + # + attr_reader :get_glossary_term + ## + # RPC-specific configuration for `list_glossary_terms` + # @return [::Gapic::Config::Method] + # + attr_reader :list_glossary_terms + + # @private + def initialize parent_rpcs = nil + create_glossary_config = parent_rpcs.create_glossary if parent_rpcs.respond_to? :create_glossary + @create_glossary = ::Gapic::Config::Method.new create_glossary_config + update_glossary_config = parent_rpcs.update_glossary if parent_rpcs.respond_to? :update_glossary + @update_glossary = ::Gapic::Config::Method.new update_glossary_config + delete_glossary_config = parent_rpcs.delete_glossary if parent_rpcs.respond_to? :delete_glossary + @delete_glossary = ::Gapic::Config::Method.new delete_glossary_config + get_glossary_config = parent_rpcs.get_glossary if parent_rpcs.respond_to? :get_glossary + @get_glossary = ::Gapic::Config::Method.new get_glossary_config + list_glossaries_config = parent_rpcs.list_glossaries if parent_rpcs.respond_to? :list_glossaries + @list_glossaries = ::Gapic::Config::Method.new list_glossaries_config + create_glossary_category_config = parent_rpcs.create_glossary_category if parent_rpcs.respond_to? :create_glossary_category + @create_glossary_category = ::Gapic::Config::Method.new create_glossary_category_config + update_glossary_category_config = parent_rpcs.update_glossary_category if parent_rpcs.respond_to? :update_glossary_category + @update_glossary_category = ::Gapic::Config::Method.new update_glossary_category_config + delete_glossary_category_config = parent_rpcs.delete_glossary_category if parent_rpcs.respond_to? :delete_glossary_category + @delete_glossary_category = ::Gapic::Config::Method.new delete_glossary_category_config + get_glossary_category_config = parent_rpcs.get_glossary_category if parent_rpcs.respond_to? :get_glossary_category + @get_glossary_category = ::Gapic::Config::Method.new get_glossary_category_config + list_glossary_categories_config = parent_rpcs.list_glossary_categories if parent_rpcs.respond_to? :list_glossary_categories + @list_glossary_categories = ::Gapic::Config::Method.new list_glossary_categories_config + create_glossary_term_config = parent_rpcs.create_glossary_term if parent_rpcs.respond_to? :create_glossary_term + @create_glossary_term = ::Gapic::Config::Method.new create_glossary_term_config + update_glossary_term_config = parent_rpcs.update_glossary_term if parent_rpcs.respond_to? :update_glossary_term + @update_glossary_term = ::Gapic::Config::Method.new update_glossary_term_config + delete_glossary_term_config = parent_rpcs.delete_glossary_term if parent_rpcs.respond_to? :delete_glossary_term + @delete_glossary_term = ::Gapic::Config::Method.new delete_glossary_term_config + get_glossary_term_config = parent_rpcs.get_glossary_term if parent_rpcs.respond_to? :get_glossary_term + @get_glossary_term = ::Gapic::Config::Method.new get_glossary_term_config + list_glossary_terms_config = parent_rpcs.list_glossary_terms if parent_rpcs.respond_to? :list_glossary_terms + @list_glossary_terms = ::Gapic::Config::Method.new list_glossary_terms_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/operations.rb new file mode 100644 index 000000000000..43b8b4b04c52 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/operations.rb @@ -0,0 +1,943 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/operation" + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + module Rest + # Service that implements Longrunning Operations API. + class Operations + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "dataplex.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :operations_stub + + ## + # Configuration for the BusinessGlossaryService Operations API. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def self.configure + @configure ||= Operations::Configuration.new + yield @configure if block_given? + @configure + end + + ## + # Configure the BusinessGlossaryService Operations instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Operations.configure}. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @operations_stub.universe_domain + end + + ## + # Create a new Operations client object. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Operations::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Operations.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + credentials ||= Credentials.default scope: @config.scope + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_stub = OperationsServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials + ) + + # Used by an LRO wrapper for some methods of this service + @operations_client = self + end + + # Service calls + + ## + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # + # @overload list_operations(request, options = nil) + # Pass arguments to `list_operations` via a request object, either of type + # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::ListOperationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_operations(name: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_operations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation's parent resource. + # @param filter [::String] + # The standard list filter. + # @param page_size [::Integer] + # The standard list page size. + # @param page_token [::String] + # The standard list page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::ListOperationsRequest.new + # + # # Call the list_operations method. + # result = client.list_operations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Longrunning::Operation. + # p item + # end + # + def list_operations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::ListOperationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_operations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_operations.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_operations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.list_operations request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @operations_stub, :list_operations, "operations", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # + # @overload get_operation(request, options = nil) + # Pass arguments to `get_operation` via a request object, either of type + # {::Google::Longrunning::GetOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::GetOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_operation(name: nil) + # Pass arguments to `get_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::GetOperationRequest.new + # + # # Call the get_operation method. + # result = client.get_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def get_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::GetOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.get_operation request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a long-running operation. This method indicates that the client is + # no longer interested in the operation result. It does not cancel the + # operation. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # + # @overload delete_operation(request, options = nil) + # Pass arguments to `delete_operation` via a request object, either of type + # {::Google::Longrunning::DeleteOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::DeleteOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_operation(name: nil) + # Pass arguments to `delete_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be deleted. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::DeleteOperationRequest.new + # + # # Call the delete_operation method. + # result = client.delete_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::DeleteOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.delete_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Starts asynchronous cancellation on a long-running operation. The server + # makes a best effort to cancel the operation, but success is not + # guaranteed. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. Clients can use + # Operations.GetOperation or + # other methods to check whether the cancellation succeeded or whether the + # operation completed despite cancellation. On successful cancellation, + # the operation is not deleted; instead, it becomes an operation with + # an {::Google::Longrunning::Operation#error Operation.error} value with a + # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to + # `Code.CANCELLED`. + # + # @overload cancel_operation(request, options = nil) + # Pass arguments to `cancel_operation` via a request object, either of type + # {::Google::Longrunning::CancelOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::CancelOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload cancel_operation(name: nil) + # Pass arguments to `cancel_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be cancelled. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::CancelOperationRequest.new + # + # # Call the cancel_operation method. + # result = client.cancel_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def cancel_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::CancelOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.cancel_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.cancel_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.cancel_operation request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the Operations REST API. + # + # This class represents the configuration for Operations REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Longrunning::Operations::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_operations to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Longrunning::Operations::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Longrunning::Operations::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "dataplex.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the Operations API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_operations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_operations + ## + # RPC-specific configuration for `get_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_operation + ## + # RPC-specific configuration for `delete_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_operation + ## + # RPC-specific configuration for `cancel_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_operation + + # @private + def initialize parent_rpcs = nil + list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations + @list_operations = ::Gapic::Config::Method.new list_operations_config + get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation + @get_operation = ::Gapic::Config::Method.new get_operation_config + delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation + @delete_operation = ::Gapic::Config::Method.new delete_operation_config + cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation + @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config + + yield self if block_given? + end + end + end + end + + ## + # @private + # REST service stub for the Longrunning Operations API. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + class OperationsServiceStub + def initialize endpoint:, endpoint_template:, universe_domain:, credentials: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials + end + + ## + # Baseline implementation for the list_operations REST call + # + # @param request_pb [::Google::Longrunning::ListOperationsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::ListOperationsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::ListOperationsResponse] + # A result object deserialized from the server's reply + def list_operations request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_list_operations_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_operations", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::ListOperationsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_operation REST call + # + # @param request_pb [::Google::Longrunning::GetOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def get_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_get_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_operation REST call + # + # @param request_pb [::Google::Longrunning::DeleteOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_delete_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the cancel_operation REST call + # + # @param request_pb [::Google::Longrunning::CancelOperationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def cancel_operation request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = OperationsServiceStub.transcode_cancel_operation_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "cancel_operation", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the list_operations REST call + # + # @param request_pb [::Google::Longrunning::ListOperationsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_operations_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}/operations", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}/operations", + matches: [ + ["name", %r{^organizations/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_operation REST call + # + # @param request_pb [::Google::Longrunning::GetOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_operation REST call + # + # @param request_pb [::Google::Longrunning::DeleteOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the cancel_operation REST call + # + # @param request_pb [::Google::Longrunning::CancelOperationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_cancel_operation_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:cancel", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:cancel", + body: "*", + matches: [ + ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/service_stub.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/service_stub.rb new file mode 100644 index 000000000000..0cadde9655e5 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_service/rest/service_stub.rb @@ -0,0 +1,1002 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/dataplex/v1/business_glossary_pb" + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + module Rest + ## + # REST service stub for the BusinessGlossaryService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the create_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateGlossaryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def create_glossary request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_glossary_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_glossary", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def update_glossary request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_glossary_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_glossary", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def delete_glossary request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_glossary_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_glossary", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetGlossaryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::Glossary] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::Glossary] + # A result object deserialized from the server's reply + def get_glossary request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_glossary_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_glossary", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::Glossary.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_glossaries REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::ListGlossariesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::ListGlossariesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::ListGlossariesResponse] + # A result object deserialized from the server's reply + def list_glossaries request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_glossaries_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_glossaries", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::ListGlossariesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the create_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # A result object deserialized from the server's reply + def create_glossary_category request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_glossary_category_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_glossary_category", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::GlossaryCategory.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # A result object deserialized from the server's reply + def update_glossary_category request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_glossary_category_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_glossary_category", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::GlossaryCategory.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_glossary_category request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_glossary_category_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_glossary_category", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # A result object deserialized from the server's reply + def get_glossary_category request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_glossary_category_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_glossary_category", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::GlossaryCategory.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_glossary_categories REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse] + # A result object deserialized from the server's reply + def list_glossary_categories request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_glossary_categories_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_glossary_categories", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the create_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # A result object deserialized from the server's reply + def create_glossary_term request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_glossary_term_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_glossary_term", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::GlossaryTerm.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # A result object deserialized from the server's reply + def update_glossary_term request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_glossary_term_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_glossary_term", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::GlossaryTerm.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_glossary_term request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_glossary_term_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_glossary_term", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # A result object deserialized from the server's reply + def get_glossary_term request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_glossary_term_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_glossary_term", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::GlossaryTerm.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_glossary_terms REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse] + # A result object deserialized from the server's reply + def list_glossary_terms request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_glossary_terms_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_glossary_terms", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the create_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateGlossaryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_glossary_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/glossaries", + body: "glossary", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_glossary_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{glossary.name}", + body: "glossary", + matches: [ + ["glossary.name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_glossary_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_glossary REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetGlossaryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_glossary_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_glossaries REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::ListGlossariesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_glossaries_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/glossaries", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_glossary_category_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/categories", + body: "category", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_glossary_category_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{category.name}", + body: "category", + matches: [ + ["category.name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/categories/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_glossary_category_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/categories/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_glossary_category REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_glossary_category_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/categories/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_glossary_categories REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_glossary_categories_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/categories", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_glossary_term_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/terms", + body: "term", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_glossary_term_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{term.name}", + body: "term", + matches: [ + ["term.name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/terms/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_glossary_term_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/terms/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_glossary_term REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_glossary_term_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/terms/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_glossary_terms REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_glossary_terms_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/terms", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_services_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_services_pb.rb new file mode 100644 index 000000000000..1216ad5c7321 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/business_glossary_services_pb.rb @@ -0,0 +1,81 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/dataplex/v1/business_glossary.proto for package 'google.cloud.dataplex.v1' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/dataplex/v1/business_glossary_pb' + +module Google + module Cloud + module Dataplex + module V1 + module BusinessGlossaryService + # BusinessGlossaryService provides APIs for managing business glossary + # resources for enterprise customers. + # The resources currently supported in Business Glossary are: + # 1. Glossary + # 2. GlossaryCategory + # 3. GlossaryTerm + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.dataplex.v1.BusinessGlossaryService' + + # Creates a new Glossary resource. + rpc :CreateGlossary, ::Google::Cloud::Dataplex::V1::CreateGlossaryRequest, ::Google::Longrunning::Operation + # Updates a Glossary resource. + rpc :UpdateGlossary, ::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest, ::Google::Longrunning::Operation + # Deletes a Glossary resource. All the categories and terms within the + # Glossary must be deleted before the Glossary can be deleted. + rpc :DeleteGlossary, ::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest, ::Google::Longrunning::Operation + # Gets a Glossary resource. + rpc :GetGlossary, ::Google::Cloud::Dataplex::V1::GetGlossaryRequest, ::Google::Cloud::Dataplex::V1::Glossary + # Lists Glossary resources in a project and location. + rpc :ListGlossaries, ::Google::Cloud::Dataplex::V1::ListGlossariesRequest, ::Google::Cloud::Dataplex::V1::ListGlossariesResponse + # Creates a new GlossaryCategory resource. + rpc :CreateGlossaryCategory, ::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest, ::Google::Cloud::Dataplex::V1::GlossaryCategory + # Updates a GlossaryCategory resource. + rpc :UpdateGlossaryCategory, ::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest, ::Google::Cloud::Dataplex::V1::GlossaryCategory + # Deletes a GlossaryCategory resource. All the GlossaryCategories and + # GlossaryTerms nested directly under the specified GlossaryCategory will be + # moved one level up to the parent in the hierarchy. + rpc :DeleteGlossaryCategory, ::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest, ::Google::Protobuf::Empty + # Gets a GlossaryCategory resource. + rpc :GetGlossaryCategory, ::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest, ::Google::Cloud::Dataplex::V1::GlossaryCategory + # Lists GlossaryCategory resources in a Glossary. + rpc :ListGlossaryCategories, ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest, ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse + # Creates a new GlossaryTerm resource. + rpc :CreateGlossaryTerm, ::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest, ::Google::Cloud::Dataplex::V1::GlossaryTerm + # Updates a GlossaryTerm resource. + rpc :UpdateGlossaryTerm, ::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest, ::Google::Cloud::Dataplex::V1::GlossaryTerm + # Deletes a GlossaryTerm resource. + rpc :DeleteGlossaryTerm, ::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest, ::Google::Protobuf::Empty + # Gets a GlossaryTerm resource. + rpc :GetGlossaryTerm, ::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest, ::Google::Cloud::Dataplex::V1::GlossaryTerm + # Lists GlossaryTerm resources in a Glossary. + rpc :ListGlossaryTerms, ::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest, ::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_pb.rb index ba4d5944cb12..bcb2fbafc2f5 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_pb.rb @@ -17,7 +17,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n&google/cloud/dataplex/v1/catalog.proto\x12\x18google.cloud.dataplex.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a&google/cloud/dataplex/v1/service.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd3\r\n\nAspectType\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x06labels\x18\x07 \x03(\x0b\x32\x30.google.cloud.dataplex.v1.AspectType.LabelsEntryB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x08 \x01(\t\x12N\n\rauthorization\x18\x34 \x01(\x0b\x32\x32.google.cloud.dataplex.v1.AspectType.AuthorizationB\x03\xe0\x41\x05\x12U\n\x11metadata_template\x18\x35 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x02\x12G\n\x0ftransfer_status\x18\xca\x01 \x01(\x0e\x32(.google.cloud.dataplex.v1.TransferStatusB\x03\xe0\x41\x03\x1a\x36\n\rAuthorization\x12%\n\x18\x61lternate_use_permission\x18\x01 \x01(\tB\x03\xe0\x41\x05\x1a\xa4\x07\n\x10MetadataTemplate\x12\x12\n\x05index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x11\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04type\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12Q\n\rrecord_fields\x18\x06 \x03(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x01\x12Y\n\x0b\x65num_values\x18\x08 \x03(\x0b\x32?.google.cloud.dataplex.v1.AspectType.MetadataTemplate.EnumValueB\x03\xe0\x41\x01\x12M\n\tmap_items\x18\n \x01(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x01\x12O\n\x0b\x61rray_items\x18\x0b \x01(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x01\x12\x14\n\x07type_id\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08type_ref\x18\r \x01(\tB\x03\xe0\x41\x01\x12[\n\x0b\x63onstraints\x18\x32 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.AspectType.MetadataTemplate.ConstraintsB\x03\xe0\x41\x01\x12[\n\x0b\x61nnotations\x18\x33 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.AspectType.MetadataTemplate.AnnotationsB\x03\xe0\x41\x01\x1aK\n\tEnumValue\x12\x12\n\x05index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x11\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndeprecated\x18\x03 \x01(\tB\x03\xe0\x41\x01\x1a$\n\x0b\x43onstraints\x12\x15\n\x08required\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xad\x01\n\x0b\x41nnotations\x12\x17\n\ndeprecated\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdisplay_order\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x18\n\x0bstring_type\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rstring_values\x18\x07 \x03(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x84\x01\xea\x41\x80\x01\n\"dataplex.googleapis.com/AspectType\x12\x41projects/{project}/locations/{location}/aspectTypes/{aspect_type}*\x0b\x61spectTypes2\naspectType\"\xcd\x04\n\nEntryGroup\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x06labels\x18\x07 \x03(\x0b\x32\x30.google.cloud.dataplex.v1.EntryGroup.LabelsEntryB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x08 \x01(\t\x12G\n\x0ftransfer_status\x18\xca\x01 \x01(\x0e\x32(.google.cloud.dataplex.v1.TransferStatusB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x84\x01\xea\x41\x80\x01\n\"dataplex.googleapis.com/EntryGroup\x12\x41projects/{project}/locations/{location}/entryGroups/{entry_group}*\x0b\x65ntryGroups2\nentryGroup\"\xdc\x06\n\tEntryType\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x06labels\x18\x07 \x03(\x0b\x32/.google.cloud.dataplex.v1.EntryType.LabelsEntryB\x03\xe0\x41\x01\x12\x11\n\x04\x65tag\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0ctype_aliases\x18\t \x03(\tB\x03\xe0\x41\x01\x12\x15\n\x08platform\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06system\x18\x0b \x01(\tB\x03\xe0\x41\x01\x12H\n\x10required_aspects\x18\x32 \x03(\x0b\x32..google.cloud.dataplex.v1.EntryType.AspectInfo\x12M\n\rauthorization\x18\x33 \x01(\x0b\x32\x31.google.cloud.dataplex.v1.EntryType.AuthorizationB\x03\xe0\x41\x05\x1a\x43\n\nAspectInfo\x12\x35\n\x04type\x18\x01 \x01(\tB\'\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x1a\x36\n\rAuthorization\x12%\n\x18\x61lternate_use_permission\x18\x01 \x01(\tB\x03\xe0\x41\x05\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:~\xea\x41{\n!dataplex.googleapis.com/EntryType\x12?projects/{project}/locations/{location}/entryTypes/{entry_type}*\nentryTypes2\tentryType\"\x91\x02\n\x06\x41spect\x12\x18\n\x0b\x61spect_type\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04path\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12*\n\x04\x64\x61ta\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x02\x12\x42\n\raspect_source\x18\t \x01(\x0b\x32&.google.cloud.dataplex.v1.AspectSourceB\x03\xe0\x41\x01\"\x86\x01\n\x0c\x41spectSource\x12/\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0c\x64\x61ta_version\x18\x0c \x01(\t\"\xc4\x04\n\x05\x45ntry\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1a\n\nentry_type\x18\x04 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x07\x61spects\x18\t \x03(\x0b\x32,.google.cloud.dataplex.v1.Entry.AspectsEntryB\x03\xe0\x41\x01\x12\x1c\n\x0cparent_entry\x18\n \x01(\tB\x06\xe0\x41\x01\xe0\x41\x05\x12!\n\x14\x66ully_qualified_name\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12@\n\x0c\x65ntry_source\x18\x0f \x01(\x0b\x32%.google.cloud.dataplex.v1.EntrySourceB\x03\xe0\x41\x01\x1aP\n\x0c\x41spectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .google.cloud.dataplex.v1.Aspect:\x02\x38\x01:\x86\x01\xea\x41\x82\x01\n\x1d\x64\x61taplex.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}*\x07\x65ntries2\x05\x65ntry\"\xd1\x03\n\x0b\x45ntrySource\x12\x10\n\x08resource\x18\x01 \x01(\t\x12\x0e\n\x06system\x18\x02 \x01(\t\x12\x10\n\x08platform\x18\x03 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x41\n\x06labels\x18\x07 \x03(\x0b\x32\x31.google.cloud.dataplex.v1.EntrySource.LabelsEntry\x12\x46\n\tancestors\x18\t \x03(\x0b\x32..google.cloud.dataplex.v1.EntrySource.AncestorB\x03\xe0\x41\x05\x12/\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x08location\x18\x0c \x01(\tB\x03\xe0\x41\x03\x1a\x30\n\x08\x41ncestor\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xcd\x01\n\x17\x43reateEntryGroupRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1b\n\x0e\x65ntry_group_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0b\x65ntry_group\x18\x03 \x01(\x0b\x32$.google.cloud.dataplex.v1.EntryGroupB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xab\x01\n\x17UpdateEntryGroupRequest\x12>\n\x0b\x65ntry_group\x18\x01 \x01(\x0b\x32$.google.cloud.dataplex.v1.EntryGroupB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"f\n\x17\x44\x65leteEntryGroupRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xb0\x01\n\x16ListEntryGroupsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8d\x01\n\x17ListEntryGroupsResponse\x12:\n\x0c\x65ntry_groups\x18\x01 \x03(\x0b\x32$.google.cloud.dataplex.v1.EntryGroup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"P\n\x14GetEntryGroupRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\"\xc9\x01\n\x16\x43reateEntryTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1a\n\rentry_type_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12<\n\nentry_type\x18\x03 \x01(\x0b\x32#.google.cloud.dataplex.v1.EntryTypeB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xa8\x01\n\x16UpdateEntryTypeRequest\x12<\n\nentry_type\x18\x01 \x01(\x0b\x32#.google.cloud.dataplex.v1.EntryTypeB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"d\n\x16\x44\x65leteEntryTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xaf\x01\n\x15ListEntryTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n\x16ListEntryTypesResponse\x12\x38\n\x0b\x65ntry_types\x18\x01 \x03(\x0b\x32#.google.cloud.dataplex.v1.EntryType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"N\n\x13GetEntryTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryType\"\xcd\x01\n\x17\x43reateAspectTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1b\n\x0e\x61spect_type_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0b\x61spect_type\x18\x03 \x01(\x0b\x32$.google.cloud.dataplex.v1.AspectTypeB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xab\x01\n\x17UpdateAspectTypeRequest\x12>\n\x0b\x61spect_type\x18\x01 \x01(\x0b\x32$.google.cloud.dataplex.v1.AspectTypeB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"f\n\x17\x44\x65leteAspectTypeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xb0\x01\n\x16ListAspectTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8d\x01\n\x17ListAspectTypesResponse\x12:\n\x0c\x61spect_types\x18\x01 \x03(\x0b\x32$.google.cloud.dataplex.v1.AspectType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"P\n\x14GetAspectTypeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/AspectType\"\x9c\x01\n\x12\x43reateEntryRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x15\n\x08\x65ntry_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x05\x65ntry\x18\x03 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.EntryB\x03\xe0\x41\x02\"\xda\x01\n\x12UpdateEntryRequest\x12\x33\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.EntryB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12#\n\x16\x64\x65lete_missing_aspects\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0b\x61spect_keys\x18\x05 \x03(\tB\x03\xe0\x41\x01\"I\n\x12\x44\x65leteEntryRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64\x61taplex.googleapis.com/Entry\"\x96\x01\n\x12ListEntriesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"`\n\x13ListEntriesResponse\x12\x30\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1f.google.cloud.dataplex.v1.Entry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xad\x01\n\x0fGetEntryRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64\x61taplex.googleapis.com/Entry\x12\x36\n\x04view\x18\x02 \x01(\x0e\x32#.google.cloud.dataplex.v1.EntryViewB\x03\xe0\x41\x01\x12\x19\n\x0c\x61spect_types\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x12\n\x05paths\x18\x04 \x03(\tB\x03\xe0\x41\x01\"\xc4\x01\n\x12LookupEntryRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x04view\x18\x02 \x01(\x0e\x32#.google.cloud.dataplex.v1.EntryViewB\x03\xe0\x41\x01\x12\x19\n\x0c\x61spect_types\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x12\n\x05paths\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x34\n\x05\x65ntry\x18\x05 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64\x61taplex.googleapis.com/Entry\"\xdd\x01\n\x14SearchEntriesRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05scope\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fsemantic_search\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01\"\x86\x02\n\x13SearchEntriesResult\x12\x1b\n\x0flinked_resource\x18\x08 \x01(\tB\x02\x18\x01\x12\x37\n\x0e\x64\x61taplex_entry\x18\t \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.Entry\x12L\n\x08snippets\x18\x0c \x01(\x0b\x32\x36.google.cloud.dataplex.v1.SearchEntriesResult.SnippetsB\x02\x18\x01\x1aK\n\x08Snippets\x12;\n\x0e\x64\x61taplex_entry\x18\x01 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.EntryB\x02\x18\x01:\x02\x18\x01\"\x99\x01\n\x15SearchEntriesResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.google.cloud.dataplex.v1.SearchEntriesResult\x12\x12\n\ntotal_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t\x12\x13\n\x0bunreachable\x18\x04 \x03(\t\"\x82\x01\n\nImportItem\x12.\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.Entry\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x13\n\x0b\x61spect_keys\x18\x03 \x03(\t\"\xd1\x01\n\x18\x43reateMetadataJobRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12@\n\x0cmetadata_job\x18\x02 \x01(\x0b\x32%.google.cloud.dataplex.v1.MetadataJobB\x03\xe0\x41\x02\x12\x1c\n\x0fmetadata_job_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"R\n\x15GetMetadataJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dataplex.googleapis.com/MetadataJob\"\xb1\x01\n\x17ListMetadataJobsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x90\x01\n\x18ListMetadataJobsResponse\x12<\n\rmetadata_jobs\x18\x01 \x03(\x0b\x32%.google.cloud.dataplex.v1.MetadataJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"U\n\x18\x43\x61ncelMetadataJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dataplex.googleapis.com/MetadataJob\"\x83\x16\n\x0bMetadataJob\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x08\x12\x18\n\x03uid\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x46\n\x06labels\x18\x05 \x03(\x0b\x32\x31.google.cloud.dataplex.v1.MetadataJob.LabelsEntryB\x03\xe0\x41\x01\x12=\n\x04type\x18\x06 \x01(\x0e\x32*.google.cloud.dataplex.v1.MetadataJob.TypeB\x03\xe0\x41\x02\x12J\n\x0bimport_spec\x18\x64 \x01(\x0b\x32\x33.google.cloud.dataplex.v1.MetadataJob.ImportJobSpecH\x00\x12J\n\x0b\x65xport_spec\x18\x65 \x01(\x0b\x32\x33.google.cloud.dataplex.v1.MetadataJob.ExportJobSpecH\x00\x12T\n\rimport_result\x18\xc8\x01 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.MetadataJob.ImportJobResultB\x03\xe0\x41\x03H\x01\x12T\n\rexport_result\x18\xc9\x01 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.MetadataJob.ExportJobResultB\x03\xe0\x41\x03H\x01\x12\x41\n\x06status\x18\x07 \x01(\x0b\x32,.google.cloud.dataplex.v1.MetadataJob.StatusB\x03\xe0\x41\x03\x1a\xe1\x01\n\x0fImportJobResult\x12\x1c\n\x0f\x64\x65leted_entries\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1c\n\x0fupdated_entries\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1c\n\x0f\x63reated_entries\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1e\n\x11unchanged_entries\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1e\n\x11recreated_entries\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x1aL\n\x0f\x45xportJobResult\x12\x1d\n\x10\x65xported_entries\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1a\n\rerror_message\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\xb3\x06\n\rImportJobSpec\x12\x1f\n\x12source_storage_uri\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12;\n\x12source_create_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12V\n\x05scope\x18\x02 \x01(\x0b\x32\x42.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.ImportJobScopeB\x03\xe0\x41\x02\x12Z\n\x0f\x65ntry_sync_mode\x18\x03 \x01(\x0e\x32<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xe0\x41\x02\x12[\n\x10\x61spect_sync_mode\x18\x04 \x01(\x0e\x32<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xe0\x41\x02\x12T\n\tlog_level\x18\x06 \x01(\x0e\x32<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.LogLevelB\x03\xe0\x41\x01\x1a\xd4\x01\n\x0eImportJobScope\x12@\n\x0c\x65ntry_groups\x18\x01 \x03(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12>\n\x0b\x65ntry_types\x18\x02 \x03(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12@\n\x0c\x61spect_types\x18\x03 \x03(\tB*\xe0\x41\x01\xfa\x41$\n\"dataplex.googleapis.com/AspectType\"J\n\x08SyncMode\x12\x19\n\x15SYNC_MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x0f\n\x0bINCREMENTAL\x10\x02\x12\x08\n\x04NONE\x10\x03\":\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x1a\xaf\x03\n\rExportJobSpec\x12V\n\x05scope\x18\x02 \x01(\x0b\x32\x42.google.cloud.dataplex.v1.MetadataJob.ExportJobSpec.ExportJobScopeB\x03\xe0\x41\x02\x12\x18\n\x0boutput_path\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\xab\x02\n\x0e\x45xportJobScope\x12\x1a\n\x12organization_level\x18\x01 \x01(\x08\x12\x42\n\x08projects\x18\x02 \x03(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12=\n\x0c\x65ntry_groups\x18\x03 \x03(\tB\'\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12;\n\x0b\x65ntry_types\x18\x04 \x03(\tB&\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12=\n\x0c\x61spect_types\x18\x05 \x03(\tB\'\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x1a\xca\x02\n\x06Status\x12\x46\n\x05state\x18\x01 \x01(\x0e\x32\x32.google.cloud.dataplex.v1.MetadataJob.Status.StateB\x03\xe0\x41\x03\x12\x14\n\x07message\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12\x63ompletion_percent\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x8a\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tCANCELING\x10\x03\x12\x0c\n\x08\x43\x41NCELED\x10\x04\x12\r\n\tSUCCEEDED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x19\n\x15SUCCEEDED_WITH_ERRORS\x10\x07\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"4\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06IMPORT\x10\x01\x12\n\n\x06\x45XPORT\x10\x02:l\xea\x41i\n#dataplex.googleapis.com/MetadataJob\x12\x42projects/{project}/locations/{location}/metadataJobs/{metadataJob}B\x06\n\x04specB\x08\n\x06result*Q\n\tEntryView\x12\x1a\n\x16\x45NTRY_VIEW_UNSPECIFIED\x10\x00\x12\t\n\x05\x42\x41SIC\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06\x43USTOM\x10\x03\x12\x07\n\x03\x41LL\x10\x04*p\n\x0eTransferStatus\x12\x1f\n\x1bTRANSFER_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSFER_STATUS_MIGRATED\x10\x01\x12\x1f\n\x1bTRANSFER_STATUS_TRANSFERRED\x10\x02\x32\x95)\n\x0e\x43\x61talogService\x12\xea\x01\n\x0f\x43reateEntryType\x12\x30.google.cloud.dataplex.v1.CreateEntryTypeRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\xca\x41\x1e\n\tEntryType\x12\x11OperationMetadata\xda\x41\x1fparent,entry_type,entry_type_id\x82\xd3\xe4\x93\x02<\"./v1/{parent=projects/*/locations/*}/entryTypes:\nentry_type\x12\xec\x01\n\x0fUpdateEntryType\x12\x30.google.cloud.dataplex.v1.UpdateEntryTypeRequest\x1a\x1d.google.longrunning.Operation\"\x87\x01\xca\x41\x1e\n\tEntryType\x12\x11OperationMetadata\xda\x41\x16\x65ntry_type,update_mask\x82\xd3\xe4\x93\x02G29/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}:\nentry_type\x12\xce\x01\n\x0f\x44\x65leteEntryType\x12\x30.google.cloud.dataplex.v1.DeleteEntryTypeRequest\x1a\x1d.google.longrunning.Operation\"j\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30*./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xb4\x01\n\x0eListEntryTypes\x12/.google.cloud.dataplex.v1.ListEntryTypesRequest\x1a\x30.google.cloud.dataplex.v1.ListEntryTypesResponse\"?\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=projects/*/locations/*}/entryTypes\x12\xa1\x01\n\x0cGetEntryType\x12-.google.cloud.dataplex.v1.GetEntryTypeRequest\x1a#.google.cloud.dataplex.v1.EntryType\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xf1\x01\n\x10\x43reateAspectType\x12\x31.google.cloud.dataplex.v1.CreateAspectTypeRequest\x1a\x1d.google.longrunning.Operation\"\x8a\x01\xca\x41\x1f\n\nAspectType\x12\x11OperationMetadata\xda\x41!parent,aspect_type,aspect_type_id\x82\xd3\xe4\x93\x02>\"//v1/{parent=projects/*/locations/*}/aspectTypes:\x0b\x61spect_type\x12\xf3\x01\n\x10UpdateAspectType\x12\x31.google.cloud.dataplex.v1.UpdateAspectTypeRequest\x1a\x1d.google.longrunning.Operation\"\x8c\x01\xca\x41\x1f\n\nAspectType\x12\x11OperationMetadata\xda\x41\x17\x61spect_type,update_mask\x82\xd3\xe4\x93\x02J2;/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}:\x0b\x61spect_type\x12\xd1\x01\n\x10\x44\x65leteAspectType\x12\x31.google.cloud.dataplex.v1.DeleteAspectTypeRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xb8\x01\n\x0fListAspectTypes\x12\x30.google.cloud.dataplex.v1.ListAspectTypesRequest\x1a\x31.google.cloud.dataplex.v1.ListAspectTypesResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/aspectTypes\x12\xa5\x01\n\rGetAspectType\x12..google.cloud.dataplex.v1.GetAspectTypeRequest\x1a$.google.cloud.dataplex.v1.AspectType\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xf1\x01\n\x10\x43reateEntryGroup\x12\x31.google.cloud.dataplex.v1.CreateEntryGroupRequest\x1a\x1d.google.longrunning.Operation\"\x8a\x01\xca\x41\x1f\n\nEntryGroup\x12\x11OperationMetadata\xda\x41!parent,entry_group,entry_group_id\x82\xd3\xe4\x93\x02>\"//v1/{parent=projects/*/locations/*}/entryGroups:\x0b\x65ntry_group\x12\xf3\x01\n\x10UpdateEntryGroup\x12\x31.google.cloud.dataplex.v1.UpdateEntryGroupRequest\x1a\x1d.google.longrunning.Operation\"\x8c\x01\xca\x41\x1f\n\nEntryGroup\x12\x11OperationMetadata\xda\x41\x17\x65ntry_group,update_mask\x82\xd3\xe4\x93\x02J2;/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0b\x65ntry_group\x12\xd1\x01\n\x10\x44\x65leteEntryGroup\x12\x31.google.cloud.dataplex.v1.DeleteEntryGroupRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xb8\x01\n\x0fListEntryGroups\x12\x30.google.cloud.dataplex.v1.ListEntryGroupsRequest\x1a\x31.google.cloud.dataplex.v1.ListEntryGroupsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/entryGroups\x12\xa5\x01\n\rGetEntryGroup\x12..google.cloud.dataplex.v1.GetEntryGroupRequest\x1a$.google.cloud.dataplex.v1.EntryGroup\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xbe\x01\n\x0b\x43reateEntry\x12,.google.cloud.dataplex.v1.CreateEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"`\xda\x41\x15parent,entry,entry_id\x82\xd3\xe4\x93\x02\x42\"9/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05\x65ntry\x12\xc1\x01\n\x0bUpdateEntry\x12,.google.cloud.dataplex.v1.UpdateEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"c\xda\x41\x11\x65ntry,update_mask\x82\xd3\xe4\x93\x02I2@/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}:\x05\x65ntry\x12\xa7\x01\n\x0b\x44\x65leteEntry\x12,.google.cloud.dataplex.v1.DeleteEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<*:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\xb6\x01\n\x0bListEntries\x12,.google.cloud.dataplex.v1.ListEntriesRequest\x1a-.google.cloud.dataplex.v1.ListEntriesResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/entryGroups/*}/entries\x12\xa1\x01\n\x08GetEntry\x12).google.cloud.dataplex.v1.GetEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\x93\x01\n\x0bLookupEntry\x12,.google.cloud.dataplex.v1.LookupEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"5\x82\xd3\xe4\x93\x02/\x12-/v1/{name=projects/*/locations/*}:lookupEntry\x12\xb6\x01\n\rSearchEntries\x12..google.cloud.dataplex.v1.SearchEntriesRequest\x1a/.google.cloud.dataplex.v1.SearchEntriesResponse\"D\xda\x41\nname,query\x82\xd3\xe4\x93\x02\x31\"//v1/{name=projects/*/locations/*}:searchEntries\x12\xf8\x01\n\x11\x43reateMetadataJob\x12\x32.google.cloud.dataplex.v1.CreateMetadataJobRequest\x1a\x1d.google.longrunning.Operation\"\x8f\x01\xca\x41 \n\x0bMetadataJob\x12\x11OperationMetadata\xda\x41#parent,metadata_job,metadata_job_id\x82\xd3\xe4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/metadataJobs:\x0cmetadata_job\x12\xa9\x01\n\x0eGetMetadataJob\x12/.google.cloud.dataplex.v1.GetMetadataJobRequest\x1a%.google.cloud.dataplex.v1.MetadataJob\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/metadataJobs/*}\x12\xbc\x01\n\x10ListMetadataJobs\x12\x31.google.cloud.dataplex.v1.ListMetadataJobsRequest\x1a\x32.google.cloud.dataplex.v1.ListMetadataJobsResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/metadataJobs\x12\xaa\x01\n\x11\x43\x61ncelMetadataJob\x12\x32.google.cloud.dataplex.v1.CancelMetadataJobRequest\x1a\x16.google.protobuf.Empty\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\"7/v1/{name=projects/*/locations/*/metadataJobs/*}:cancel:\x01*\x1aK\xca\x41\x17\x64\x61taplex.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xbc\x01\n\x1c\x63om.google.cloud.dataplex.v1B\x0c\x43\x61talogProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xaa\x02\x18Google.Cloud.Dataplex.V1\xca\x02\x18Google\\Cloud\\Dataplex\\V1\xea\x02\x1bGoogle::Cloud::Dataplex::V1b\x06proto3" +descriptor_data = "\n&google/cloud/dataplex/v1/catalog.proto\x12\x18google.cloud.dataplex.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a&google/cloud/dataplex/v1/service.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd3\r\n\nAspectType\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x06labels\x18\x07 \x03(\x0b\x32\x30.google.cloud.dataplex.v1.AspectType.LabelsEntryB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x08 \x01(\t\x12N\n\rauthorization\x18\x34 \x01(\x0b\x32\x32.google.cloud.dataplex.v1.AspectType.AuthorizationB\x03\xe0\x41\x05\x12U\n\x11metadata_template\x18\x35 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x02\x12G\n\x0ftransfer_status\x18\xca\x01 \x01(\x0e\x32(.google.cloud.dataplex.v1.TransferStatusB\x03\xe0\x41\x03\x1a\x36\n\rAuthorization\x12%\n\x18\x61lternate_use_permission\x18\x01 \x01(\tB\x03\xe0\x41\x05\x1a\xa4\x07\n\x10MetadataTemplate\x12\x12\n\x05index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x11\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04type\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12Q\n\rrecord_fields\x18\x06 \x03(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x01\x12Y\n\x0b\x65num_values\x18\x08 \x03(\x0b\x32?.google.cloud.dataplex.v1.AspectType.MetadataTemplate.EnumValueB\x03\xe0\x41\x01\x12M\n\tmap_items\x18\n \x01(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x01\x12O\n\x0b\x61rray_items\x18\x0b \x01(\x0b\x32\x35.google.cloud.dataplex.v1.AspectType.MetadataTemplateB\x03\xe0\x41\x01\x12\x14\n\x07type_id\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08type_ref\x18\r \x01(\tB\x03\xe0\x41\x01\x12[\n\x0b\x63onstraints\x18\x32 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.AspectType.MetadataTemplate.ConstraintsB\x03\xe0\x41\x01\x12[\n\x0b\x61nnotations\x18\x33 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.AspectType.MetadataTemplate.AnnotationsB\x03\xe0\x41\x01\x1aK\n\tEnumValue\x12\x12\n\x05index\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x11\n\x04name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\ndeprecated\x18\x03 \x01(\tB\x03\xe0\x41\x01\x1a$\n\x0b\x43onstraints\x12\x15\n\x08required\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xad\x01\n\x0b\x41nnotations\x12\x17\n\ndeprecated\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rdisplay_order\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x18\n\x0bstring_type\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rstring_values\x18\x07 \x03(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x84\x01\xea\x41\x80\x01\n\"dataplex.googleapis.com/AspectType\x12\x41projects/{project}/locations/{location}/aspectTypes/{aspect_type}*\x0b\x61spectTypes2\naspectType\"\xcd\x04\n\nEntryGroup\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x03\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\x06labels\x18\x07 \x03(\x0b\x32\x30.google.cloud.dataplex.v1.EntryGroup.LabelsEntryB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x08 \x01(\t\x12G\n\x0ftransfer_status\x18\xca\x01 \x01(\x0e\x32(.google.cloud.dataplex.v1.TransferStatusB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x84\x01\xea\x41\x80\x01\n\"dataplex.googleapis.com/EntryGroup\x12\x41projects/{project}/locations/{location}/entryGroups/{entry_group}*\x0b\x65ntryGroups2\nentryGroup\"\xdc\x06\n\tEntryType\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x03\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x06labels\x18\x07 \x03(\x0b\x32/.google.cloud.dataplex.v1.EntryType.LabelsEntryB\x03\xe0\x41\x01\x12\x11\n\x04\x65tag\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0ctype_aliases\x18\t \x03(\tB\x03\xe0\x41\x01\x12\x15\n\x08platform\x18\n \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06system\x18\x0b \x01(\tB\x03\xe0\x41\x01\x12H\n\x10required_aspects\x18\x32 \x03(\x0b\x32..google.cloud.dataplex.v1.EntryType.AspectInfo\x12M\n\rauthorization\x18\x33 \x01(\x0b\x32\x31.google.cloud.dataplex.v1.EntryType.AuthorizationB\x03\xe0\x41\x05\x1a\x43\n\nAspectInfo\x12\x35\n\x04type\x18\x01 \x01(\tB\'\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x1a\x36\n\rAuthorization\x12%\n\x18\x61lternate_use_permission\x18\x01 \x01(\tB\x03\xe0\x41\x05\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:~\xea\x41{\n!dataplex.googleapis.com/EntryType\x12?projects/{project}/locations/{location}/entryTypes/{entry_type}*\nentryTypes2\tentryType\"\x91\x02\n\x06\x41spect\x12\x18\n\x0b\x61spect_type\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04path\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12*\n\x04\x64\x61ta\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x03\xe0\x41\x02\x12\x42\n\raspect_source\x18\t \x01(\x0b\x32&.google.cloud.dataplex.v1.AspectSourceB\x03\xe0\x41\x01\"\x86\x01\n\x0c\x41spectSource\x12/\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0c\x64\x61ta_version\x18\x0c \x01(\t\"\xc4\x04\n\x05\x45ntry\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1a\n\nentry_type\x18\x04 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x07\x61spects\x18\t \x03(\x0b\x32,.google.cloud.dataplex.v1.Entry.AspectsEntryB\x03\xe0\x41\x01\x12\x1c\n\x0cparent_entry\x18\n \x01(\tB\x06\xe0\x41\x01\xe0\x41\x05\x12!\n\x14\x66ully_qualified_name\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12@\n\x0c\x65ntry_source\x18\x0f \x01(\x0b\x32%.google.cloud.dataplex.v1.EntrySourceB\x03\xe0\x41\x01\x1aP\n\x0c\x41spectsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .google.cloud.dataplex.v1.Aspect:\x02\x38\x01:\x86\x01\xea\x41\x82\x01\n\x1d\x64\x61taplex.googleapis.com/Entry\x12Qprojects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}*\x07\x65ntries2\x05\x65ntry\"\xd1\x03\n\x0b\x45ntrySource\x12\x10\n\x08resource\x18\x01 \x01(\t\x12\x0e\n\x06system\x18\x02 \x01(\t\x12\x10\n\x08platform\x18\x03 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x41\n\x06labels\x18\x07 \x03(\x0b\x32\x31.google.cloud.dataplex.v1.EntrySource.LabelsEntry\x12\x46\n\tancestors\x18\t \x03(\x0b\x32..google.cloud.dataplex.v1.EntrySource.AncestorB\x03\xe0\x41\x05\x12/\n\x0b\x63reate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x08location\x18\x0c \x01(\tB\x03\xe0\x41\x03\x1a\x30\n\x08\x41ncestor\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xcd\x01\n\x17\x43reateEntryGroupRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1b\n\x0e\x65ntry_group_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0b\x65ntry_group\x18\x03 \x01(\x0b\x32$.google.cloud.dataplex.v1.EntryGroupB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xab\x01\n\x17UpdateEntryGroupRequest\x12>\n\x0b\x65ntry_group\x18\x01 \x01(\x0b\x32$.google.cloud.dataplex.v1.EntryGroupB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"f\n\x17\x44\x65leteEntryGroupRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xb0\x01\n\x16ListEntryGroupsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8d\x01\n\x17ListEntryGroupsResponse\x12:\n\x0c\x65ntry_groups\x18\x01 \x03(\x0b\x32$.google.cloud.dataplex.v1.EntryGroup\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"P\n\x14GetEntryGroupRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\"\xc9\x01\n\x16\x43reateEntryTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1a\n\rentry_type_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12<\n\nentry_type\x18\x03 \x01(\x0b\x32#.google.cloud.dataplex.v1.EntryTypeB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xa8\x01\n\x16UpdateEntryTypeRequest\x12<\n\nentry_type\x18\x01 \x01(\x0b\x32#.google.cloud.dataplex.v1.EntryTypeB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"d\n\x16\x44\x65leteEntryTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xaf\x01\n\x15ListEntryTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n\x16ListEntryTypesResponse\x12\x38\n\x0b\x65ntry_types\x18\x01 \x03(\x0b\x32#.google.cloud.dataplex.v1.EntryType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"N\n\x13GetEntryTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryType\"\xcd\x01\n\x17\x43reateAspectTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x1b\n\x0e\x61spect_type_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0b\x61spect_type\x18\x03 \x01(\x0b\x32$.google.cloud.dataplex.v1.AspectTypeB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"\xab\x01\n\x17UpdateAspectTypeRequest\x12>\n\x0b\x61spect_type\x18\x01 \x01(\x0b\x32$.google.cloud.dataplex.v1.AspectTypeB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"f\n\x17\x44\x65leteAspectTypeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x12\x11\n\x04\x65tag\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xb0\x01\n\x16ListAspectTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8d\x01\n\x17ListAspectTypesResponse\x12:\n\x0c\x61spect_types\x18\x01 \x03(\x0b\x32$.google.cloud.dataplex.v1.AspectType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"P\n\x14GetAspectTypeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/AspectType\"\x9c\x01\n\x12\x43reateEntryRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x15\n\x08\x65ntry_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x05\x65ntry\x18\x03 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.EntryB\x03\xe0\x41\x02\"\xda\x01\n\x12UpdateEntryRequest\x12\x33\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.EntryB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12#\n\x16\x64\x65lete_missing_aspects\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0b\x61spect_keys\x18\x05 \x03(\tB\x03\xe0\x41\x01\"I\n\x12\x44\x65leteEntryRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64\x61taplex.googleapis.com/Entry\"\x96\x01\n\x12ListEntriesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"`\n\x13ListEntriesResponse\x12\x30\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1f.google.cloud.dataplex.v1.Entry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xad\x01\n\x0fGetEntryRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64\x61taplex.googleapis.com/Entry\x12\x36\n\x04view\x18\x02 \x01(\x0e\x32#.google.cloud.dataplex.v1.EntryViewB\x03\xe0\x41\x01\x12\x19\n\x0c\x61spect_types\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x12\n\x05paths\x18\x04 \x03(\tB\x03\xe0\x41\x01\"\xc4\x01\n\x12LookupEntryRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x04view\x18\x02 \x01(\x0e\x32#.google.cloud.dataplex.v1.EntryViewB\x03\xe0\x41\x01\x12\x19\n\x0c\x61spect_types\x18\x03 \x03(\tB\x03\xe0\x41\x01\x12\x12\n\x05paths\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x34\n\x05\x65ntry\x18\x05 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64\x61taplex.googleapis.com/Entry\"\xdd\x01\n\x14SearchEntriesRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x12\n\x05query\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05scope\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fsemantic_search\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01\"\x86\x02\n\x13SearchEntriesResult\x12\x1b\n\x0flinked_resource\x18\x08 \x01(\tB\x02\x18\x01\x12\x37\n\x0e\x64\x61taplex_entry\x18\t \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.Entry\x12L\n\x08snippets\x18\x0c \x01(\x0b\x32\x36.google.cloud.dataplex.v1.SearchEntriesResult.SnippetsB\x02\x18\x01\x1aK\n\x08Snippets\x12;\n\x0e\x64\x61taplex_entry\x18\x01 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.EntryB\x02\x18\x01:\x02\x18\x01\"\x99\x01\n\x15SearchEntriesResponse\x12>\n\x07results\x18\x01 \x03(\x0b\x32-.google.cloud.dataplex.v1.SearchEntriesResult\x12\x12\n\ntotal_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\t\x12\x13\n\x0bunreachable\x18\x04 \x03(\t\"\xbb\x01\n\nImportItem\x12.\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x1f.google.cloud.dataplex.v1.Entry\x12\x37\n\nentry_link\x18\x04 \x01(\x0b\x32#.google.cloud.dataplex.v1.EntryLink\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x13\n\x0b\x61spect_keys\x18\x03 \x03(\t\"\xd1\x01\n\x18\x43reateMetadataJobRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12@\n\x0cmetadata_job\x18\x02 \x01(\x0b\x32%.google.cloud.dataplex.v1.MetadataJobB\x03\xe0\x41\x02\x12\x1c\n\x0fmetadata_job_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\"R\n\x15GetMetadataJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dataplex.googleapis.com/MetadataJob\"\xb1\x01\n\x17ListMetadataJobsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x90\x01\n\x18ListMetadataJobsResponse\x12<\n\rmetadata_jobs\x18\x01 \x03(\x0b\x32%.google.cloud.dataplex.v1.MetadataJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x1d\n\x15unreachable_locations\x18\x03 \x03(\t\"U\n\x18\x43\x61ncelMetadataJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dataplex.googleapis.com/MetadataJob\"\xee\x17\n\x0bMetadataJob\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x08\x12\x18\n\x03uid\x18\x02 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x46\n\x06labels\x18\x05 \x03(\x0b\x32\x31.google.cloud.dataplex.v1.MetadataJob.LabelsEntryB\x03\xe0\x41\x01\x12=\n\x04type\x18\x06 \x01(\x0e\x32*.google.cloud.dataplex.v1.MetadataJob.TypeB\x03\xe0\x41\x02\x12J\n\x0bimport_spec\x18\x64 \x01(\x0b\x32\x33.google.cloud.dataplex.v1.MetadataJob.ImportJobSpecH\x00\x12J\n\x0b\x65xport_spec\x18\x65 \x01(\x0b\x32\x33.google.cloud.dataplex.v1.MetadataJob.ExportJobSpecH\x00\x12T\n\rimport_result\x18\xc8\x01 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.MetadataJob.ImportJobResultB\x03\xe0\x41\x03H\x01\x12T\n\rexport_result\x18\xc9\x01 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.MetadataJob.ExportJobResultB\x03\xe0\x41\x03H\x01\x12\x41\n\x06status\x18\x07 \x01(\x0b\x32,.google.cloud.dataplex.v1.MetadataJob.StatusB\x03\xe0\x41\x03\x1a\xc9\x02\n\x0fImportJobResult\x12\x1c\n\x0f\x64\x65leted_entries\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1c\n\x0fupdated_entries\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1c\n\x0f\x63reated_entries\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1e\n\x11unchanged_entries\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1e\n\x11recreated_entries\x18\x06 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12 \n\x13\x64\x65leted_entry_links\x18\x07 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13\x63reated_entry_links\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03\x12\"\n\x15unchanged_entry_links\x18\t \x01(\x03\x42\x03\xe0\x41\x03\x1aL\n\x0f\x45xportJobResult\x12\x1d\n\x10\x65xported_entries\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1a\n\rerror_message\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\xb6\x07\n\rImportJobSpec\x12\x1f\n\x12source_storage_uri\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12;\n\x12source_create_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12V\n\x05scope\x18\x02 \x01(\x0b\x32\x42.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.ImportJobScopeB\x03\xe0\x41\x02\x12Z\n\x0f\x65ntry_sync_mode\x18\x03 \x01(\x0e\x32<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xe0\x41\x02\x12[\n\x10\x61spect_sync_mode\x18\x04 \x01(\x0e\x32<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.SyncModeB\x03\xe0\x41\x02\x12T\n\tlog_level\x18\x06 \x01(\x0e\x32<.google.cloud.dataplex.v1.MetadataJob.ImportJobSpec.LogLevelB\x03\xe0\x41\x01\x1a\xd7\x02\n\x0eImportJobScope\x12@\n\x0c\x65ntry_groups\x18\x01 \x03(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12>\n\x0b\x65ntry_types\x18\x02 \x03(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12@\n\x0c\x61spect_types\x18\x03 \x03(\tB*\xe0\x41\x01\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x12<\n\nglossaries\x18\x04 \x03(\tB(\xe0\x41\x01\xfa\x41\"\n dataplex.googleapis.com/Glossary\x12\x1d\n\x10\x65ntry_link_types\x18\x05 \x03(\tB\x03\xe0\x41\x01\x12$\n\x17referenced_entry_scopes\x18\x06 \x03(\tB\x03\xe0\x41\x01\"J\n\x08SyncMode\x12\x19\n\x15SYNC_MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x0f\n\x0bINCREMENTAL\x10\x02\x12\x08\n\x04NONE\x10\x03\":\n\x08LogLevel\x12\x19\n\x15LOG_LEVEL_UNSPECIFIED\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x1a\xaf\x03\n\rExportJobSpec\x12V\n\x05scope\x18\x02 \x01(\x0b\x32\x42.google.cloud.dataplex.v1.MetadataJob.ExportJobSpec.ExportJobScopeB\x03\xe0\x41\x02\x12\x18\n\x0boutput_path\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\xab\x02\n\x0e\x45xportJobScope\x12\x1a\n\x12organization_level\x18\x01 \x01(\x08\x12\x42\n\x08projects\x18\x02 \x03(\tB0\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\x12=\n\x0c\x65ntry_groups\x18\x03 \x03(\tB\'\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12;\n\x0b\x65ntry_types\x18\x04 \x03(\tB&\xfa\x41#\n!dataplex.googleapis.com/EntryType\x12=\n\x0c\x61spect_types\x18\x05 \x03(\tB\'\xfa\x41$\n\"dataplex.googleapis.com/AspectType\x1a\xca\x02\n\x06Status\x12\x46\n\x05state\x18\x01 \x01(\x0e\x32\x32.google.cloud.dataplex.v1.MetadataJob.Status.StateB\x03\xe0\x41\x03\x12\x14\n\x07message\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12\x63ompletion_percent\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x8a\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tCANCELING\x10\x03\x12\x0c\n\x08\x43\x41NCELED\x10\x04\x12\r\n\tSUCCEEDED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x19\n\x15SUCCEEDED_WITH_ERRORS\x10\x07\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"4\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06IMPORT\x10\x01\x12\n\n\x06\x45XPORT\x10\x02:l\xea\x41i\n#dataplex.googleapis.com/MetadataJob\x12\x42projects/{project}/locations/{location}/metadataJobs/{metadataJob}B\x06\n\x04specB\x08\n\x06result\"\x82\x05\n\tEntryLink\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x03\xe0\x41\x05\xe0\x41\x08\xfa\x41#\n!dataplex.googleapis.com/EntryLink\x12\x1f\n\x0f\x65ntry_link_type\x18\x02 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12Q\n\x10\x65ntry_references\x18\n \x03(\x0b\x32\x32.google.cloud.dataplex.v1.EntryLink.EntryReferenceB\x03\xe0\x41\x02\x1a\xb9\x01\n\x0e\x45ntryReference\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12\x11\n\x04path\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12M\n\x04type\x18\x03 \x01(\x0e\x32\x37.google.cloud.dataplex.v1.EntryLink.EntryReference.TypeB\x06\xe0\x41\x02\xe0\x41\x05\"/\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06SOURCE\x10\x02\x12\n\n\x06TARGET\x10\x03:\x99\x01\xea\x41\x95\x01\n!dataplex.googleapis.com/EntryLink\x12Yprojects/{project}/locations/{location}/entryGroups/{entry_group}/entryLinks/{entry_link}*\nentryLinks2\tentryLink\"\xae\x01\n\x16\x43reateEntryLinkRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dataplex.googleapis.com/EntryGroup\x12\x1a\n\rentry_link_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12<\n\nentry_link\x18\x03 \x01(\x0b\x32#.google.cloud.dataplex.v1.EntryLinkB\x03\xe0\x41\x02\"Q\n\x16\x44\x65leteEntryLinkRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryLink\"N\n\x13GetEntryLinkRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dataplex.googleapis.com/EntryLink*Q\n\tEntryView\x12\x1a\n\x16\x45NTRY_VIEW_UNSPECIFIED\x10\x00\x12\t\n\x05\x42\x41SIC\x10\x01\x12\x08\n\x04\x46ULL\x10\x02\x12\n\n\x06\x43USTOM\x10\x03\x12\x07\n\x03\x41LL\x10\x04*p\n\x0eTransferStatus\x12\x1f\n\x1bTRANSFER_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSFER_STATUS_MIGRATED\x10\x01\x12\x1f\n\x1bTRANSFER_STATUS_TRANSFERRED\x10\x02\x32\xde-\n\x0e\x43\x61talogService\x12\xea\x01\n\x0f\x43reateEntryType\x12\x30.google.cloud.dataplex.v1.CreateEntryTypeRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\xca\x41\x1e\n\tEntryType\x12\x11OperationMetadata\xda\x41\x1fparent,entry_type,entry_type_id\x82\xd3\xe4\x93\x02<\"./v1/{parent=projects/*/locations/*}/entryTypes:\nentry_type\x12\xec\x01\n\x0fUpdateEntryType\x12\x30.google.cloud.dataplex.v1.UpdateEntryTypeRequest\x1a\x1d.google.longrunning.Operation\"\x87\x01\xca\x41\x1e\n\tEntryType\x12\x11OperationMetadata\xda\x41\x16\x65ntry_type,update_mask\x82\xd3\xe4\x93\x02G29/v1/{entry_type.name=projects/*/locations/*/entryTypes/*}:\nentry_type\x12\xce\x01\n\x0f\x44\x65leteEntryType\x12\x30.google.cloud.dataplex.v1.DeleteEntryTypeRequest\x1a\x1d.google.longrunning.Operation\"j\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30*./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xb4\x01\n\x0eListEntryTypes\x12/.google.cloud.dataplex.v1.ListEntryTypesRequest\x1a\x30.google.cloud.dataplex.v1.ListEntryTypesResponse\"?\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=projects/*/locations/*}/entryTypes\x12\xa1\x01\n\x0cGetEntryType\x12-.google.cloud.dataplex.v1.GetEntryTypeRequest\x1a#.google.cloud.dataplex.v1.EntryType\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=projects/*/locations/*/entryTypes/*}\x12\xf1\x01\n\x10\x43reateAspectType\x12\x31.google.cloud.dataplex.v1.CreateAspectTypeRequest\x1a\x1d.google.longrunning.Operation\"\x8a\x01\xca\x41\x1f\n\nAspectType\x12\x11OperationMetadata\xda\x41!parent,aspect_type,aspect_type_id\x82\xd3\xe4\x93\x02>\"//v1/{parent=projects/*/locations/*}/aspectTypes:\x0b\x61spect_type\x12\xf3\x01\n\x10UpdateAspectType\x12\x31.google.cloud.dataplex.v1.UpdateAspectTypeRequest\x1a\x1d.google.longrunning.Operation\"\x8c\x01\xca\x41\x1f\n\nAspectType\x12\x11OperationMetadata\xda\x41\x17\x61spect_type,update_mask\x82\xd3\xe4\x93\x02J2;/v1/{aspect_type.name=projects/*/locations/*/aspectTypes/*}:\x0b\x61spect_type\x12\xd1\x01\n\x10\x44\x65leteAspectType\x12\x31.google.cloud.dataplex.v1.DeleteAspectTypeRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xb8\x01\n\x0fListAspectTypes\x12\x30.google.cloud.dataplex.v1.ListAspectTypesRequest\x1a\x31.google.cloud.dataplex.v1.ListAspectTypesResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/aspectTypes\x12\xa5\x01\n\rGetAspectType\x12..google.cloud.dataplex.v1.GetAspectTypeRequest\x1a$.google.cloud.dataplex.v1.AspectType\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/aspectTypes/*}\x12\xf1\x01\n\x10\x43reateEntryGroup\x12\x31.google.cloud.dataplex.v1.CreateEntryGroupRequest\x1a\x1d.google.longrunning.Operation\"\x8a\x01\xca\x41\x1f\n\nEntryGroup\x12\x11OperationMetadata\xda\x41!parent,entry_group,entry_group_id\x82\xd3\xe4\x93\x02>\"//v1/{parent=projects/*/locations/*}/entryGroups:\x0b\x65ntry_group\x12\xf3\x01\n\x10UpdateEntryGroup\x12\x31.google.cloud.dataplex.v1.UpdateEntryGroupRequest\x1a\x1d.google.longrunning.Operation\"\x8c\x01\xca\x41\x1f\n\nEntryGroup\x12\x11OperationMetadata\xda\x41\x17\x65ntry_group,update_mask\x82\xd3\xe4\x93\x02J2;/v1/{entry_group.name=projects/*/locations/*/entryGroups/*}:\x0b\x65ntry_group\x12\xd1\x01\n\x10\x44\x65leteEntryGroup\x12\x31.google.cloud.dataplex.v1.DeleteEntryGroupRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xb8\x01\n\x0fListEntryGroups\x12\x30.google.cloud.dataplex.v1.ListEntryGroupsRequest\x1a\x31.google.cloud.dataplex.v1.ListEntryGroupsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/entryGroups\x12\xa5\x01\n\rGetEntryGroup\x12..google.cloud.dataplex.v1.GetEntryGroupRequest\x1a$.google.cloud.dataplex.v1.EntryGroup\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/entryGroups/*}\x12\xbe\x01\n\x0b\x43reateEntry\x12,.google.cloud.dataplex.v1.CreateEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"`\xda\x41\x15parent,entry,entry_id\x82\xd3\xe4\x93\x02\x42\"9/v1/{parent=projects/*/locations/*/entryGroups/*}/entries:\x05\x65ntry\x12\xc1\x01\n\x0bUpdateEntry\x12,.google.cloud.dataplex.v1.UpdateEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"c\xda\x41\x11\x65ntry,update_mask\x82\xd3\xe4\x93\x02I2@/v1/{entry.name=projects/*/locations/*/entryGroups/*/entries/**}:\x05\x65ntry\x12\xa7\x01\n\x0b\x44\x65leteEntry\x12,.google.cloud.dataplex.v1.DeleteEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<*:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\xb6\x01\n\x0bListEntries\x12,.google.cloud.dataplex.v1.ListEntriesRequest\x1a-.google.cloud.dataplex.v1.ListEntriesResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/entryGroups/*}/entries\x12\xa1\x01\n\x08GetEntry\x12).google.cloud.dataplex.v1.GetEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/*/entryGroups/*/entries/**}\x12\x93\x01\n\x0bLookupEntry\x12,.google.cloud.dataplex.v1.LookupEntryRequest\x1a\x1f.google.cloud.dataplex.v1.Entry\"5\x82\xd3\xe4\x93\x02/\x12-/v1/{name=projects/*/locations/*}:lookupEntry\x12\xb6\x01\n\rSearchEntries\x12..google.cloud.dataplex.v1.SearchEntriesRequest\x1a/.google.cloud.dataplex.v1.SearchEntriesResponse\"D\xda\x41\nname,query\x82\xd3\xe4\x93\x02\x31\"//v1/{name=projects/*/locations/*}:searchEntries\x12\xf8\x01\n\x11\x43reateMetadataJob\x12\x32.google.cloud.dataplex.v1.CreateMetadataJobRequest\x1a\x1d.google.longrunning.Operation\"\x8f\x01\xca\x41 \n\x0bMetadataJob\x12\x11OperationMetadata\xda\x41#parent,metadata_job,metadata_job_id\x82\xd3\xe4\x93\x02@\"0/v1/{parent=projects/*/locations/*}/metadataJobs:\x0cmetadata_job\x12\xa9\x01\n\x0eGetMetadataJob\x12/.google.cloud.dataplex.v1.GetMetadataJobRequest\x1a%.google.cloud.dataplex.v1.MetadataJob\"?\xda\x41\x04name\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{name=projects/*/locations/*/metadataJobs/*}\x12\xbc\x01\n\x10ListMetadataJobs\x12\x31.google.cloud.dataplex.v1.ListMetadataJobsRequest\x1a\x32.google.cloud.dataplex.v1.ListMetadataJobsResponse\"A\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x32\x12\x30/v1/{parent=projects/*/locations/*}/metadataJobs\x12\xaa\x01\n\x11\x43\x61ncelMetadataJob\x12\x32.google.cloud.dataplex.v1.CancelMetadataJobRequest\x1a\x16.google.protobuf.Empty\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\"7/v1/{name=projects/*/locations/*/metadataJobs/*}:cancel:\x01*\x12\xdc\x01\n\x0f\x43reateEntryLink\x12\x30.google.cloud.dataplex.v1.CreateEntryLinkRequest\x1a#.google.cloud.dataplex.v1.EntryLink\"r\xda\x41\x1fparent,entry_link,entry_link_id\x82\xd3\xe4\x93\x02J\"*\x12 e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes an Entry Link. + # + # @overload delete_entry_link(request, options = nil) + # Pass arguments to `delete_entry_link` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_entry_link(name: nil) + # Pass arguments to `delete_entry_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the Entry Link: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::CatalogService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new + # + # # Call the delete_entry_link method. + # result = client.delete_entry_link request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + # p result + # + def delete_entry_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_entry_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_entry_link.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_entry_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @catalog_service_stub.call_rpc :delete_entry_link, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets an Entry Link. + # + # @overload get_entry_link(request, options = nil) + # Pass arguments to `get_entry_link` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetEntryLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetEntryLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_entry_link(name: nil) + # Pass arguments to `get_entry_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the Entry Link: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::CatalogService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new + # + # # Call the get_entry_link method. + # result = client.get_entry_link request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + # p result + # + def get_entry_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetEntryLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_entry_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_entry_link.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_entry_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @catalog_service_stub.call_rpc :get_entry_link, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the CatalogService API. # @@ -3243,6 +3510,21 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :cancel_metadata_job + ## + # RPC-specific configuration for `create_entry_link` + # @return [::Gapic::Config::Method] + # + attr_reader :create_entry_link + ## + # RPC-specific configuration for `delete_entry_link` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_entry_link + ## + # RPC-specific configuration for `get_entry_link` + # @return [::Gapic::Config::Method] + # + attr_reader :get_entry_link # @private def initialize parent_rpcs = nil @@ -3298,6 +3580,12 @@ def initialize parent_rpcs = nil @list_metadata_jobs = ::Gapic::Config::Method.new list_metadata_jobs_config cancel_metadata_job_config = parent_rpcs.cancel_metadata_job if parent_rpcs.respond_to? :cancel_metadata_job @cancel_metadata_job = ::Gapic::Config::Method.new cancel_metadata_job_config + create_entry_link_config = parent_rpcs.create_entry_link if parent_rpcs.respond_to? :create_entry_link + @create_entry_link = ::Gapic::Config::Method.new create_entry_link_config + delete_entry_link_config = parent_rpcs.delete_entry_link if parent_rpcs.respond_to? :delete_entry_link + @delete_entry_link = ::Gapic::Config::Method.new delete_entry_link_config + get_entry_link_config = parent_rpcs.get_entry_link if parent_rpcs.respond_to? :get_entry_link + @get_entry_link = ::Gapic::Config::Method.new get_entry_link_config yield self if block_given? end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/paths.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/paths.rb index 8036d90957fc..7ef96838d19d 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/paths.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/paths.rb @@ -83,6 +83,27 @@ def entry_group_path project:, location:, entry_group: "projects/#{project}/locations/#{location}/entryGroups/#{entry_group}" end + ## + # Create a fully-qualified EntryLink resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/entryGroups/{entry_group}/entryLinks/{entry_link}` + # + # @param project [String] + # @param location [String] + # @param entry_group [String] + # @param entry_link [String] + # + # @return [::String] + def entry_link_path project:, location:, entry_group:, entry_link: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "entry_group cannot contain /" if entry_group.to_s.include? "/" + + "projects/#{project}/locations/#{location}/entryGroups/#{entry_group}/entryLinks/#{entry_link}" + end + ## # Create a fully-qualified EntryType resource string. # @@ -102,6 +123,25 @@ def entry_type_path project:, location:, entry_type: "projects/#{project}/locations/#{location}/entryTypes/#{entry_type}" end + ## + # Create a fully-qualified Glossary resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/glossaries/{glossary}` + # + # @param project [String] + # @param location [String] + # @param glossary [String] + # + # @return [::String] + def glossary_path project:, location:, glossary: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/glossaries/#{glossary}" + end + ## # Create a fully-qualified Location resource string. # diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest.rb index ee2494c3a156..54c0cf877792 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest.rb @@ -34,10 +34,10 @@ module Dataplex module V1 ## # The primary resources offered by this service are EntryGroups, EntryTypes, - # AspectTypes, and Entries. They collectively let data administrators organize, - # manage, secure, and catalog data located across cloud projects in their - # organization in a variety of storage systems, including Cloud Storage and - # BigQuery. + # AspectTypes, Entries and EntryLinks. They collectively let data + # administrators organize, manage, secure, and catalog data located across + # cloud projects in their organization in a variety of storage systems, + # including Cloud Storage and BigQuery. # # To load this service and instantiate a REST client: # diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/client.rb index 018af7eb9afc..7d8c005c13b5 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/client.rb @@ -32,10 +32,10 @@ module Rest # REST client for the CatalogService service. # # The primary resources offered by this service are EntryGroups, EntryTypes, - # AspectTypes, and Entries. They collectively let data administrators organize, - # manage, secure, and catalog data located across cloud projects in their - # organization in a variety of storage systems, including Cloud Storage and - # BigQuery. + # AspectTypes, Entries and EntryLinks. They collectively let data + # administrators organize, manage, secure, and catalog data located across + # cloud projects in their organization in a variety of storage systems, + # including Cloud Storage and BigQuery. # class Client # @private @@ -1259,7 +1259,7 @@ def get_aspect_type request, options = nil # @param parent [::String] # Required. The resource name of the entryGroup, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param entry_group_id [::String] # Required. EntryGroup identifier. # @param entry_group [::Google::Cloud::Dataplex::V1::EntryGroup, ::Hash] @@ -2302,10 +2302,10 @@ def lookup_entry request, options = nil # # @param name [::String] # Required. The project to which the request should be attributed in the - # following form: `projects/{project}/locations/{location}`. + # following form: `projects/{project}/locations/global`. # @param query [::String] # Required. The query against which entries in scope should be matched. - # The query syntax is defined in [Search syntax for Dataplex + # The query syntax is defined in [Search syntax for Dataplex Universal # Catalog](https://cloud.google.com/dataplex/docs/search-syntax). # @param page_size [::Integer] # Optional. Number of results in the search page. If <=0, then defaults @@ -2318,7 +2318,7 @@ def lookup_entry request, options = nil # Optional. Specifies the ordering of results. # Supported values are: # - # * `relevance` (default) + # * `relevance` # * `last_modified_timestamp` # * `last_modified_timestamp asc` # @param scope [::String] @@ -2394,8 +2394,8 @@ def search_entries request, options = nil end ## - # Creates a metadata job. For example, use a metadata job to import Dataplex - # Catalog entries and aspects from a third-party system into Dataplex. + # Creates a metadata job. For example, use a metadata job to import metadata + # from a third-party system into Dataplex Universal Catalog. # # @overload create_metadata_job(request, options = nil) # Pass arguments to `create_metadata_job` via a request object, either of type @@ -2760,6 +2760,252 @@ def cancel_metadata_job request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Creates an Entry Link. + # + # @overload create_entry_link(request, options = nil) + # Pass arguments to `create_entry_link` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_entry_link(parent: nil, entry_link_id: nil, entry_link: nil) + # Pass arguments to `create_entry_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The resource name of the parent Entry Group: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}`. + # @param entry_link_id [::String] + # Required. Entry Link identifier + # * Must contain only lowercase letters, numbers and hyphens. + # * Must start with a letter. + # * Must be between 1-63 characters. + # * Must end with a number or a letter. + # * Must be unique within the EntryGroup. + # @param entry_link [::Google::Cloud::Dataplex::V1::EntryLink, ::Hash] + # Required. Entry Link resource. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::CatalogService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::CreateEntryLinkRequest.new + # + # # Call the create_entry_link method. + # result = client.create_entry_link request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + # p result + # + def create_entry_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_entry_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_entry_link.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_entry_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @catalog_service_stub.create_entry_link request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes an Entry Link. + # + # @overload delete_entry_link(request, options = nil) + # Pass arguments to `delete_entry_link` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_entry_link(name: nil) + # Pass arguments to `delete_entry_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the Entry Link: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::CatalogService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new + # + # # Call the delete_entry_link method. + # result = client.delete_entry_link request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + # p result + # + def delete_entry_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_entry_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_entry_link.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_entry_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @catalog_service_stub.delete_entry_link request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets an Entry Link. + # + # @overload get_entry_link(request, options = nil) + # Pass arguments to `get_entry_link` via a request object, either of type + # {::Google::Cloud::Dataplex::V1::GetEntryLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Dataplex::V1::GetEntryLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_entry_link(name: nil) + # Pass arguments to `get_entry_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the Entry Link: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/dataplex/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Dataplex::V1::CatalogService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new + # + # # Call the get_entry_link method. + # result = client.get_entry_link request + # + # # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + # p result + # + def get_entry_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Dataplex::V1::GetEntryLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_entry_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Dataplex::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_entry_link.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_entry_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @catalog_service_stub.get_entry_link request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the CatalogService REST API. # @@ -3043,6 +3289,21 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :cancel_metadata_job + ## + # RPC-specific configuration for `create_entry_link` + # @return [::Gapic::Config::Method] + # + attr_reader :create_entry_link + ## + # RPC-specific configuration for `delete_entry_link` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_entry_link + ## + # RPC-specific configuration for `get_entry_link` + # @return [::Gapic::Config::Method] + # + attr_reader :get_entry_link # @private def initialize parent_rpcs = nil @@ -3098,6 +3359,12 @@ def initialize parent_rpcs = nil @list_metadata_jobs = ::Gapic::Config::Method.new list_metadata_jobs_config cancel_metadata_job_config = parent_rpcs.cancel_metadata_job if parent_rpcs.respond_to? :cancel_metadata_job @cancel_metadata_job = ::Gapic::Config::Method.new cancel_metadata_job_config + create_entry_link_config = parent_rpcs.create_entry_link if parent_rpcs.respond_to? :create_entry_link + @create_entry_link = ::Gapic::Config::Method.new create_entry_link_config + delete_entry_link_config = parent_rpcs.delete_entry_link if parent_rpcs.respond_to? :delete_entry_link + @delete_entry_link = ::Gapic::Config::Method.new delete_entry_link_config + get_entry_link_config = parent_rpcs.get_entry_link if parent_rpcs.respond_to? :get_entry_link + @get_entry_link = ::Gapic::Config::Method.new get_entry_link_config yield self if block_given? end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/operations.rb index 7e2414ffa774..39034e26cf3d 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/operations.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/operations.rb @@ -841,9 +841,9 @@ def self.transcode_list_operations_request request_pb ) .with_bindings( uri_method: :get, - uri_template: "/v1/{name}", + uri_template: "/v1/{name}/operations", matches: [ - ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ["name", %r{^organizations/[^/]+/locations/[^/]+/?$}, false] ] ) transcoder.transcode request_pb diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/service_stub.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/service_stub.rb index 7dd56ae631f9..fdcd6ba517fc 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/service_stub.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_service/rest/service_stub.rb @@ -1113,6 +1113,126 @@ def cancel_metadata_job request_pb, options = nil end end + ## + # Baseline implementation for the create_entry_link REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # A result object deserialized from the server's reply + def create_entry_link request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_entry_link_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_entry_link", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::EntryLink.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_entry_link REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # A result object deserialized from the server's reply + def delete_entry_link request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_entry_link_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_entry_link", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::EntryLink.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_entry_link REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetEntryLinkRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Dataplex::V1::EntryLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # A result object deserialized from the server's reply + def get_entry_link request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_entry_link_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_entry_link", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Dataplex::V1::EntryLink.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -1668,6 +1788,70 @@ def self.transcode_cancel_metadata_job_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the create_entry_link REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_entry_link_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/entryLinks", + body: "entry_link", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_entry_link REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_entry_link_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entryLinks/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_entry_link REST call + # + # @param request_pb [::Google::Cloud::Dataplex::V1::GetEntryLinkRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_entry_link_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entryLinks/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_services_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_services_pb.rb index dc4fcdc96d1c..58b167964200 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_services_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/catalog_services_pb.rb @@ -24,11 +24,13 @@ module Cloud module Dataplex module V1 module CatalogService + # LINT: LEGACY_NAMES + # # The primary resources offered by this service are EntryGroups, EntryTypes, - # AspectTypes, and Entries. They collectively let data administrators organize, - # manage, secure, and catalog data located across cloud projects in their - # organization in a variety of storage systems, including Cloud Storage and - # BigQuery. + # AspectTypes, Entries and EntryLinks. They collectively let data + # administrators organize, manage, secure, and catalog data located across + # cloud projects in their organization in a variety of storage systems, + # including Cloud Storage and BigQuery. class Service include ::GRPC::GenericService @@ -81,8 +83,8 @@ class Service rpc :LookupEntry, ::Google::Cloud::Dataplex::V1::LookupEntryRequest, ::Google::Cloud::Dataplex::V1::Entry # Searches for Entries matching the given query and scope. rpc :SearchEntries, ::Google::Cloud::Dataplex::V1::SearchEntriesRequest, ::Google::Cloud::Dataplex::V1::SearchEntriesResponse - # Creates a metadata job. For example, use a metadata job to import Dataplex - # Catalog entries and aspects from a third-party system into Dataplex. + # Creates a metadata job. For example, use a metadata job to import metadata + # from a third-party system into Dataplex Universal Catalog. rpc :CreateMetadataJob, ::Google::Cloud::Dataplex::V1::CreateMetadataJobRequest, ::Google::Longrunning::Operation # Gets a metadata job. rpc :GetMetadataJob, ::Google::Cloud::Dataplex::V1::GetMetadataJobRequest, ::Google::Cloud::Dataplex::V1::MetadataJob @@ -95,6 +97,12 @@ class Service # the entry groups in your project by running another metadata job that # reverts the changes from the canceled job. rpc :CancelMetadataJob, ::Google::Cloud::Dataplex::V1::CancelMetadataJobRequest, ::Google::Protobuf::Empty + # Creates an Entry Link. + rpc :CreateEntryLink, ::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest, ::Google::Cloud::Dataplex::V1::EntryLink + # Deletes an Entry Link. + rpc :DeleteEntryLink, ::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest, ::Google::Cloud::Dataplex::V1::EntryLink + # Gets an Entry Link. + rpc :GetEntryLink, ::Google::Cloud::Dataplex::V1::GetEntryLinkRequest, ::Google::Cloud::Dataplex::V1::EntryLink end Stub = Service.rpc_stub_class diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service.rb index 707e2a96ab92..c6eb91bdb905 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service.rb @@ -33,7 +33,7 @@ module Cloud module Dataplex module V1 ## - # Dataplex Cmek Service + # Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service # # @example Load this service and instantiate a gRPC client # diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/client.rb index fbd599adb3c6..9426727db3ac 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/client.rb @@ -29,7 +29,7 @@ module CmekService ## # Client for the CmekService service. # - # Dataplex Cmek Service + # Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service # class Client # @private diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest.rb index 21fceb4520b5..2892ef2c6e8a 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest.rb @@ -33,7 +33,7 @@ module Cloud module Dataplex module V1 ## - # Dataplex Cmek Service + # Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service # # To load this service and instantiate a REST client: # diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/client.rb index 9efe9ff48ce7..534a3e0292da 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/client.rb @@ -31,7 +31,7 @@ module Rest ## # REST client for the CmekService service. # - # Dataplex Cmek Service + # Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service # class Client # @private diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/operations.rb index f52ac9f5259d..a20861ab849b 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/operations.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_service/rest/operations.rb @@ -841,9 +841,9 @@ def self.transcode_list_operations_request request_pb ) .with_bindings( uri_method: :get, - uri_template: "/v1/{name}", + uri_template: "/v1/{name}/operations", matches: [ - ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ["name", %r{^organizations/[^/]+/locations/[^/]+/?$}, false] ] ) transcoder.transcode request_pb diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_services_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_services_pb.rb index e02dfaa4e6ce..030bee5ee6bd 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_services_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/cmek_services_pb.rb @@ -24,7 +24,7 @@ module Cloud module Dataplex module V1 module CmekService - # Dataplex Cmek Service + # Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service class Service include ::GRPC::GenericService diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service.rb index ebbad4e65853..ac6bc74c5992 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service.rb @@ -32,7 +32,8 @@ module Cloud module Dataplex module V1 ## - # ContentService manages Notebook and SQL Scripts for Dataplex. + # ContentService manages Notebook and SQL Scripts for Dataplex Universal + # Catalog. # # @example Load this service and instantiate a gRPC client # diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/client.rb index b1ff31fa45a9..8d849502194b 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/client.rb @@ -29,7 +29,8 @@ module ContentService ## # Client for the ContentService service. # - # ContentService manages Notebook and SQL Scripts for Dataplex. + # ContentService manages Notebook and SQL Scripts for Dataplex Universal + # Catalog. # class Client # @private diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest.rb index a7501be34528..aca3fba7ad90 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest.rb @@ -32,7 +32,8 @@ module Cloud module Dataplex module V1 ## - # ContentService manages Notebook and SQL Scripts for Dataplex. + # ContentService manages Notebook and SQL Scripts for Dataplex Universal + # Catalog. # # To load this service and instantiate a REST client: # diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest/client.rb index 84cb47c2ca01..0f57627a4a87 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_service/rest/client.rb @@ -31,7 +31,8 @@ module Rest ## # REST client for the ContentService service. # - # ContentService manages Notebook and SQL Scripts for Dataplex. + # ContentService manages Notebook and SQL Scripts for Dataplex Universal + # Catalog. # class Client # @private diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_services_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_services_pb.rb index 3e71474df008..b9167ad2b50e 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_services_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/content_services_pb.rb @@ -24,7 +24,8 @@ module Cloud module Dataplex module V1 module ContentService - # ContentService manages Notebook and SQL Scripts for Dataplex. + # ContentService manages Notebook and SQL Scripts for Dataplex Universal + # Catalog. class Service include ::GRPC::GenericService diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_discovery_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_discovery_pb.rb index 0a5e441ec8d7..6ca831c0644b 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_discovery_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_discovery_pb.rb @@ -8,7 +8,7 @@ require 'google/api/resource_pb' -descriptor_data = "\n-google/cloud/dataplex/v1/data_discovery.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\x85\x08\n\x11\x44\x61taDiscoverySpec\x12m\n\x1a\x62igquery_publishing_config\x18\x01 \x01(\x0b\x32\x44.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfigB\x03\xe0\x41\x01\x12S\n\x0estorage_config\x18\x64 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfigH\x00\x1a\xa8\x02\n\x18\x42igQueryPublishingConfig\x12g\n\ntable_type\x18\x02 \x01(\x0e\x32N.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfig.TableTypeB\x03\xe0\x41\x01\x12H\n\nconnection\x18\x03 \x01(\tB4\xe0\x41\x01\xfa\x41.\n,bigqueryconnection.googleapis.com/Connection\x12\x15\n\x08location\x18\x04 \x01(\tB\x03\xe0\x41\x01\"B\n\tTableType\x12\x1a\n\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x45XTERNAL\x10\x01\x12\x0b\n\x07\x42IGLAKE\x10\x02\x1a\xed\x03\n\rStorageConfig\x12\x1d\n\x10include_patterns\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x1d\n\x10\x65xclude_patterns\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12^\n\x0b\x63sv_options\x18\x03 \x01(\x0b\x32\x44.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.CsvOptionsB\x03\xe0\x41\x01\x12`\n\x0cjson_options\x18\x04 \x01(\x0b\x32\x45.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.JsonOptionsB\x03\xe0\x41\x01\x1a\x8f\x01\n\nCsvOptions\x12\x18\n\x0bheader_rows\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x16\n\tdelimiter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08\x65ncoding\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12$\n\x17type_inference_disabled\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x12\n\x05quote\x18\x05 \x01(\tB\x03\xe0\x41\x01\x1aJ\n\x0bJsonOptions\x12\x15\n\x08\x65ncoding\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12$\n\x17type_inference_disabled\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x42\x11\n\x0fresource_config\"\xb7\x04\n\x13\x44\x61taDiscoveryResult\x12\x62\n\x13\x62igquery_publishing\x18\x01 \x01(\x0b\x32@.google.cloud.dataplex.v1.DataDiscoveryResult.BigQueryPublishingB\x03\xe0\x41\x03\x12Z\n\x0fscan_statistics\x18\x02 \x01(\x0b\x32<.google.cloud.dataplex.v1.DataDiscoveryResult.ScanStatisticsB\x03\xe0\x41\x03\x1a\x65\n\x12\x42igQueryPublishing\x12\x38\n\x07\x64\x61taset\x18\x01 \x01(\tB\'\xe0\x41\x03\xfa\x41!\n\x1f\x62igquery.googleapis.com/Dataset\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\xf8\x01\n\x0eScanStatistics\x12\x1a\n\x12scanned_file_count\x18\x01 \x01(\x05\x12\x1c\n\x14\x64\x61ta_processed_bytes\x18\x02 \x01(\x03\x12\x16\n\x0e\x66iles_excluded\x18\x03 \x01(\x05\x12\x16\n\x0etables_created\x18\x04 \x01(\x05\x12\x16\n\x0etables_deleted\x18\x05 \x01(\x05\x12\x16\n\x0etables_updated\x18\x06 \x01(\x05\x12\x18\n\x10\x66ilesets_created\x18\x07 \x01(\x05\x12\x18\n\x10\x66ilesets_deleted\x18\x08 \x01(\x05\x12\x18\n\x10\x66ilesets_updated\x18\t \x01(\x05\x42\xac\x02\n\x1c\x63om.google.cloud.dataplex.v1B\x12\x44\x61taDiscoveryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xea\x41H\n\x1f\x62igquery.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}\xea\x41p\n,bigqueryconnection.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}b\x06proto3" +descriptor_data = "\n-google/cloud/dataplex/v1/data_discovery.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xcb\x08\n\x11\x44\x61taDiscoverySpec\x12m\n\x1a\x62igquery_publishing_config\x18\x01 \x01(\x0b\x32\x44.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfigB\x03\xe0\x41\x01\x12S\n\x0estorage_config\x18\x64 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfigH\x00\x1a\xee\x02\n\x18\x42igQueryPublishingConfig\x12g\n\ntable_type\x18\x02 \x01(\x0e\x32N.google.cloud.dataplex.v1.DataDiscoverySpec.BigQueryPublishingConfig.TableTypeB\x03\xe0\x41\x01\x12H\n\nconnection\x18\x03 \x01(\tB4\xe0\x41\x01\xfa\x41.\n,bigqueryconnection.googleapis.com/Connection\x12\x15\n\x08location\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x07project\x18\x05 \x01(\tB3\xe0\x41\x01\xfa\x41-\n+cloudresourcemanager.googleapis.com/Project\"B\n\tTableType\x12\x1a\n\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x45XTERNAL\x10\x01\x12\x0b\n\x07\x42IGLAKE\x10\x02\x1a\xed\x03\n\rStorageConfig\x12\x1d\n\x10include_patterns\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x1d\n\x10\x65xclude_patterns\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12^\n\x0b\x63sv_options\x18\x03 \x01(\x0b\x32\x44.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.CsvOptionsB\x03\xe0\x41\x01\x12`\n\x0cjson_options\x18\x04 \x01(\x0b\x32\x45.google.cloud.dataplex.v1.DataDiscoverySpec.StorageConfig.JsonOptionsB\x03\xe0\x41\x01\x1a\x8f\x01\n\nCsvOptions\x12\x18\n\x0bheader_rows\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x16\n\tdelimiter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08\x65ncoding\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12$\n\x17type_inference_disabled\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x12\n\x05quote\x18\x05 \x01(\tB\x03\xe0\x41\x01\x1aJ\n\x0bJsonOptions\x12\x15\n\x08\x65ncoding\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12$\n\x17type_inference_disabled\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x42\x11\n\x0fresource_config\"\xb7\x04\n\x13\x44\x61taDiscoveryResult\x12\x62\n\x13\x62igquery_publishing\x18\x01 \x01(\x0b\x32@.google.cloud.dataplex.v1.DataDiscoveryResult.BigQueryPublishingB\x03\xe0\x41\x03\x12Z\n\x0fscan_statistics\x18\x02 \x01(\x0b\x32<.google.cloud.dataplex.v1.DataDiscoveryResult.ScanStatisticsB\x03\xe0\x41\x03\x1a\x65\n\x12\x42igQueryPublishing\x12\x38\n\x07\x64\x61taset\x18\x01 \x01(\tB\'\xe0\x41\x03\xfa\x41!\n\x1f\x62igquery.googleapis.com/Dataset\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\xf8\x01\n\x0eScanStatistics\x12\x1a\n\x12scanned_file_count\x18\x01 \x01(\x05\x12\x1c\n\x14\x64\x61ta_processed_bytes\x18\x02 \x01(\x03\x12\x16\n\x0e\x66iles_excluded\x18\x03 \x01(\x05\x12\x16\n\x0etables_created\x18\x04 \x01(\x05\x12\x16\n\x0etables_deleted\x18\x05 \x01(\x05\x12\x16\n\x0etables_updated\x18\x06 \x01(\x05\x12\x18\n\x10\x66ilesets_created\x18\x07 \x01(\x05\x12\x18\n\x10\x66ilesets_deleted\x18\x08 \x01(\x05\x12\x18\n\x10\x66ilesets_updated\x18\t \x01(\x05\x42\xac\x02\n\x1c\x63om.google.cloud.dataplex.v1B\x12\x44\x61taDiscoveryProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xea\x41H\n\x1f\x62igquery.googleapis.com/Dataset\x12%projects/{project}/datasets/{dataset}\xea\x41p\n,bigqueryconnection.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_profile_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_profile_pb.rb index 81faee451353..d941dfb19e57 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_profile_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_profile_pb.rb @@ -8,7 +8,7 @@ require 'google/cloud/dataplex/v1/processing_pb' -descriptor_data = "\n+google/cloud/dataplex/v1/data_profile.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a)google/cloud/dataplex/v1/processing.proto\"\xa8\x04\n\x0f\x44\x61taProfileSpec\x12\x1d\n\x10sampling_percent\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01\x12\x17\n\nrow_filter\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12Y\n\x11post_scan_actions\x18\x04 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataProfileSpec.PostScanActionsB\x03\xe0\x41\x01\x12U\n\x0einclude_fields\x18\x05 \x01(\x0b\x32\x38.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xe0\x41\x01\x12U\n\x0e\x65xclude_fields\x18\x06 \x01(\x0b\x32\x38.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xe0\x41\x01\x1a\xa7\x01\n\x0fPostScanActions\x12\x66\n\x0f\x62igquery_export\x18\x01 \x01(\x0b\x32H.google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.BigQueryExportB\x03\xe0\x41\x01\x1a,\n\x0e\x42igQueryExport\x12\x1a\n\rresults_table\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a*\n\x0eSelectedFields\x12\x18\n\x0b\x66ield_names\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\xe4\r\n\x11\x44\x61taProfileResult\x12\x11\n\trow_count\x18\x03 \x01(\x03\x12\x44\n\x07profile\x18\x04 \x01(\x0b\x32\x33.google.cloud.dataplex.v1.DataProfileResult.Profile\x12;\n\x0cscanned_data\x18\x05 \x01(\x0b\x32%.google.cloud.dataplex.v1.ScannedData\x12h\n\x18post_scan_actions_result\x18\x06 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResultB\x03\xe0\x41\x03\x1a\xce\x08\n\x07Profile\x12I\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x39.google.cloud.dataplex.v1.DataProfileResult.Profile.Field\x1a\xf7\x07\n\x05\x46ield\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0c\n\x04mode\x18\x03 \x01(\t\x12V\n\x07profile\x18\x04 \x01(\x0b\x32\x45.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo\x1a\xeb\x06\n\x0bProfileInfo\x12\x12\n\nnull_ratio\x18\x02 \x01(\x01\x12\x16\n\x0e\x64istinct_ratio\x18\x03 \x01(\x01\x12\x65\n\x0ctop_n_values\x18\x04 \x03(\x0b\x32O.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValue\x12o\n\x0estring_profile\x18\x65 \x01(\x0b\x32U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfoH\x00\x12q\n\x0finteger_profile\x18\x66 \x01(\x0b\x32V.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfoH\x00\x12o\n\x0e\x64ouble_profile\x18g \x01(\x0b\x32U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfoH\x00\x1aQ\n\x0fStringFieldInfo\x12\x12\n\nmin_length\x18\x01 \x01(\x03\x12\x12\n\nmax_length\x18\x02 \x01(\x03\x12\x16\n\x0e\x61verage_length\x18\x03 \x01(\x01\x1al\n\x10IntegerFieldInfo\x12\x0f\n\x07\x61verage\x18\x01 \x01(\x01\x12\x1a\n\x12standard_deviation\x18\x03 \x01(\x01\x12\x0b\n\x03min\x18\x04 \x01(\x03\x12\x11\n\tquartiles\x18\x06 \x03(\x03\x12\x0b\n\x03max\x18\x05 \x01(\x03\x1ak\n\x0f\x44oubleFieldInfo\x12\x0f\n\x07\x61verage\x18\x01 \x01(\x01\x12\x1a\n\x12standard_deviation\x18\x03 \x01(\x01\x12\x0b\n\x03min\x18\x04 \x01(\x01\x12\x11\n\tquartiles\x18\x06 \x03(\x01\x12\x0b\n\x03max\x18\x05 \x01(\x01\x1a\x38\n\tTopNValue\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\x12\r\n\x05ratio\x18\x03 \x01(\x01\x42\x0c\n\nfield_info\x1a\xfd\x02\n\x15PostScanActionsResult\x12{\n\x16\x62igquery_export_result\x18\x01 \x01(\x0b\x32V.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResultB\x03\xe0\x41\x03\x1a\xe6\x01\n\x14\x42igQueryExportResult\x12p\n\x05state\x18\x01 \x01(\x0e\x32\\.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xe0\x41\x03\x12\x14\n\x07message\x18\x02 \x01(\tB\x03\xe0\x41\x03\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0b\n\x07SKIPPED\x10\x03\x42l\n\x1c\x63om.google.cloud.dataplex.v1B\x10\x44\x61taProfileProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" +descriptor_data = "\n+google/cloud/dataplex/v1/data_profile.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a)google/cloud/dataplex/v1/processing.proto\"\xa8\x04\n\x0f\x44\x61taProfileSpec\x12\x1d\n\x10sampling_percent\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01\x12\x17\n\nrow_filter\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12Y\n\x11post_scan_actions\x18\x04 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataProfileSpec.PostScanActionsB\x03\xe0\x41\x01\x12U\n\x0einclude_fields\x18\x05 \x01(\x0b\x32\x38.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xe0\x41\x01\x12U\n\x0e\x65xclude_fields\x18\x06 \x01(\x0b\x32\x38.google.cloud.dataplex.v1.DataProfileSpec.SelectedFieldsB\x03\xe0\x41\x01\x1a\xa7\x01\n\x0fPostScanActions\x12\x66\n\x0f\x62igquery_export\x18\x01 \x01(\x0b\x32H.google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.BigQueryExportB\x03\xe0\x41\x01\x1a,\n\x0e\x42igQueryExport\x12\x1a\n\rresults_table\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a*\n\x0eSelectedFields\x12\x18\n\x0b\x66ield_names\x18\x01 \x03(\tB\x03\xe0\x41\x01\"\xed\x0e\n\x11\x44\x61taProfileResult\x12\x16\n\trow_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12I\n\x07profile\x18\x04 \x01(\x0b\x32\x33.google.cloud.dataplex.v1.DataProfileResult.ProfileB\x03\xe0\x41\x03\x12@\n\x0cscanned_data\x18\x05 \x01(\x0b\x32%.google.cloud.dataplex.v1.ScannedDataB\x03\xe0\x41\x03\x12h\n\x18post_scan_actions_result\x18\x06 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResultB\x03\xe0\x41\x03\x1a\xc8\t\n\x07Profile\x12N\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x39.google.cloud.dataplex.v1.DataProfileResult.Profile.FieldB\x03\xe0\x41\x03\x1a\xec\x08\n\x05\x46ield\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04mode\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12[\n\x07profile\x18\x04 \x01(\x0b\x32\x45.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfoB\x03\xe0\x41\x03\x1a\xcc\x07\n\x0bProfileInfo\x12\x17\n\nnull_ratio\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12\x1b\n\x0e\x64istinct_ratio\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12j\n\x0ctop_n_values\x18\x04 \x03(\x0b\x32O.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValueB\x03\xe0\x41\x03\x12o\n\x0estring_profile\x18\x65 \x01(\x0b\x32U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfoH\x00\x12q\n\x0finteger_profile\x18\x66 \x01(\x0b\x32V.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfoH\x00\x12o\n\x0e\x64ouble_profile\x18g \x01(\x0b\x32U.google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfoH\x00\x1a`\n\x0fStringFieldInfo\x12\x17\n\nmin_length\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x17\n\nmax_length\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x1b\n\x0e\x61verage_length\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x1a\x85\x01\n\x10IntegerFieldInfo\x12\x14\n\x07\x61verage\x18\x01 \x01(\x01\x42\x03\xe0\x41\x03\x12\x1f\n\x12standard_deviation\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12\x10\n\x03min\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x16\n\tquartiles\x18\x06 \x03(\x03\x42\x03\xe0\x41\x03\x12\x10\n\x03max\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x1a\x84\x01\n\x0f\x44oubleFieldInfo\x12\x14\n\x07\x61verage\x18\x01 \x01(\x01\x42\x03\xe0\x41\x03\x12\x1f\n\x12standard_deviation\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12\x10\n\x03min\x18\x04 \x01(\x01\x42\x03\xe0\x41\x03\x12\x16\n\tquartiles\x18\x06 \x03(\x01\x42\x03\xe0\x41\x03\x12\x10\n\x03max\x18\x05 \x01(\x01\x42\x03\xe0\x41\x03\x1aG\n\tTopNValue\x12\x12\n\x05value\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05\x63ount\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x12\n\x05ratio\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x42\x0c\n\nfield_info\x1a\xfd\x02\n\x15PostScanActionsResult\x12{\n\x16\x62igquery_export_result\x18\x01 \x01(\x0b\x32V.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResultB\x03\xe0\x41\x03\x1a\xe6\x01\n\x14\x42igQueryExportResult\x12p\n\x05state\x18\x01 \x01(\x0e\x32\\.google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xe0\x41\x03\x12\x14\n\x07message\x18\x02 \x01(\tB\x03\xe0\x41\x03\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0b\n\x07SKIPPED\x10\x03\x42l\n\x1c\x63om.google.cloud.dataplex.v1B\x10\x44\x61taProfileProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_quality_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_quality_pb.rb index 865c524592b6..6013e8b7d624 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_quality_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_quality_pb.rb @@ -6,10 +6,11 @@ require 'google/api/field_behavior_pb' require 'google/api/resource_pb' +require 'google/cloud/dataplex/v1/datascans_common_pb' require 'google/cloud/dataplex/v1/processing_pb' -descriptor_data = "\n+google/cloud/dataplex/v1/data_quality.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/dataplex/v1/processing.proto\"\xc0\x08\n\x0f\x44\x61taQualitySpec\x12=\n\x05rules\x18\x01 \x03(\x0b\x32).google.cloud.dataplex.v1.DataQualityRuleB\x03\xe0\x41\x02\x12\x1d\n\x10sampling_percent\x18\x04 \x01(\x02\x42\x03\xe0\x41\x01\x12\x17\n\nrow_filter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12Y\n\x11post_scan_actions\x18\x06 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataQualitySpec.PostScanActionsB\x03\xe0\x41\x01\x1a\xda\x06\n\x0fPostScanActions\x12\x66\n\x0f\x62igquery_export\x18\x01 \x01(\x0b\x32H.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.BigQueryExportB\x03\xe0\x41\x01\x12n\n\x13notification_report\x18\x02 \x01(\x0b\x32L.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.NotificationReportB\x03\xe0\x41\x01\x1a,\n\x0e\x42igQueryExport\x12\x1a\n\rresults_table\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a!\n\nRecipients\x12\x13\n\x06\x65mails\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a\x35\n\x15ScoreThresholdTrigger\x12\x1c\n\x0fscore_threshold\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01\x1a\x13\n\x11JobFailureTrigger\x1a\x0f\n\rJobEndTrigger\x1a\xc0\x03\n\x12NotificationReport\x12]\n\nrecipients\x18\x01 \x01(\x0b\x32\x44.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.RecipientsB\x03\xe0\x41\x02\x12u\n\x17score_threshold_trigger\x18\x02 \x01(\x0b\x32O.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.ScoreThresholdTriggerB\x03\xe0\x41\x01\x12m\n\x13job_failure_trigger\x18\x04 \x01(\x0b\x32K.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobFailureTriggerB\x03\xe0\x41\x01\x12\x65\n\x0fjob_end_trigger\x18\x05 \x01(\x0b\x32G.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobEndTriggerB\x03\xe0\x41\x01\"\xec\x06\n\x11\x44\x61taQualityResult\x12\x13\n\x06passed\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x17\n\x05score\x18\t \x01(\x02\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12M\n\ndimensions\x18\x02 \x03(\x0b\x32\x34.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xe0\x41\x03\x12G\n\x07\x63olumns\x18\n \x03(\x0b\x32\x31.google.cloud.dataplex.v1.DataQualityColumnResultB\x03\xe0\x41\x03\x12\x43\n\x05rules\x18\x03 \x03(\x0b\x32/.google.cloud.dataplex.v1.DataQualityRuleResultB\x03\xe0\x41\x03\x12\x16\n\trow_count\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12@\n\x0cscanned_data\x18\x07 \x01(\x0b\x32%.google.cloud.dataplex.v1.ScannedDataB\x03\xe0\x41\x03\x12h\n\x18post_scan_actions_result\x18\x08 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResultB\x03\xe0\x41\x03\x1a\xfd\x02\n\x15PostScanActionsResult\x12{\n\x16\x62igquery_export_result\x18\x01 \x01(\x0b\x32V.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResultB\x03\xe0\x41\x03\x1a\xe6\x01\n\x14\x42igQueryExportResult\x12p\n\x05state\x18\x01 \x01(\x0e\x32\\.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xe0\x41\x03\x12\x14\n\x07message\x18\x02 \x01(\tB\x03\xe0\x41\x03\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0b\n\x07SKIPPED\x10\x03\x42\x08\n\x06_score\"\x98\x02\n\x15\x44\x61taQualityRuleResult\x12<\n\x04rule\x18\x01 \x01(\x0b\x32).google.cloud.dataplex.v1.DataQualityRuleB\x03\xe0\x41\x03\x12\x13\n\x06passed\x18\x07 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1c\n\x0f\x65valuated_count\x18\t \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0cpassed_count\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03\x12\x17\n\nnull_count\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x17\n\npass_ratio\x18\x06 \x01(\x01\x42\x03\xe0\x41\x03\x12\x1f\n\x12\x66\x61iling_rows_query\x18\n \x01(\tB\x03\xe0\x41\x03\x12 \n\x13\x61ssertion_row_count\x18\x0b \x01(\x03\x42\x03\xe0\x41\x03\"\x9c\x01\n\x1a\x44\x61taQualityDimensionResult\x12\x46\n\tdimension\x18\x01 \x01(\x0b\x32..google.cloud.dataplex.v1.DataQualityDimensionB\x03\xe0\x41\x03\x12\x13\n\x06passed\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\x12\x17\n\x05score\x18\x04 \x01(\x02\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x08\n\x06_score\")\n\x14\x44\x61taQualityDimension\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\"\x8d\x0e\n\x0f\x44\x61taQualityRule\x12W\n\x11range_expectation\x18\x01 \x01(\x0b\x32:.google.cloud.dataplex.v1.DataQualityRule.RangeExpectationH\x00\x12\\\n\x14non_null_expectation\x18\x02 \x01(\x0b\x32<.google.cloud.dataplex.v1.DataQualityRule.NonNullExpectationH\x00\x12S\n\x0fset_expectation\x18\x03 \x01(\x0b\x32\x38.google.cloud.dataplex.v1.DataQualityRule.SetExpectationH\x00\x12W\n\x11regex_expectation\x18\x04 \x01(\x0b\x32:.google.cloud.dataplex.v1.DataQualityRule.RegexExpectationH\x00\x12\x61\n\x16uniqueness_expectation\x18\x64 \x01(\x0b\x32?.google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectationH\x00\x12j\n\x1bstatistic_range_expectation\x18\x65 \x01(\x0b\x32\x43.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectationH\x00\x12g\n\x19row_condition_expectation\x18\xc8\x01 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectationH\x00\x12k\n\x1btable_condition_expectation\x18\xc9\x01 \x01(\x0b\x32\x43.google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectationH\x00\x12P\n\rsql_assertion\x18\xca\x01 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DataQualityRule.SqlAssertionH\x00\x12\x14\n\x06\x63olumn\x18\xf4\x03 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0bignore_null\x18\xf5\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12\x17\n\tdimension\x18\xf6\x03 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\tthreshold\x18\xf7\x03 \x01(\x01\x42\x03\xe0\x41\x01\x12\x12\n\x04name\x18\xf8\x03 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0b\x64\x65scription\x18\xf9\x03 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\tsuspended\x18\xfa\x03 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x84\x01\n\x10RangeExpectation\x12\x16\n\tmin_value\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tmax_value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12strict_min_enabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\x12strict_max_enabled\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x14\n\x12NonNullExpectation\x1a%\n\x0eSetExpectation\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a&\n\x10RegexExpectation\x12\x12\n\x05regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\x17\n\x15UniquenessExpectation\x1a\xc2\x02\n\x19StatisticRangeExpectation\x12k\n\tstatistic\x18\x01 \x01(\x0e\x32S.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatisticB\x03\xe0\x41\x01\x12\x16\n\tmin_value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tmax_value\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12strict_min_enabled\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\x12strict_max_enabled\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\"F\n\x0f\x43olumnStatistic\x12\x17\n\x13STATISTIC_UNDEFINED\x10\x00\x12\x08\n\x04MEAN\x10\x01\x12\x07\n\x03MIN\x10\x02\x12\x07\n\x03MAX\x10\x03\x1a\x36\n\x17RowConditionExpectation\x12\x1b\n\x0esql_expression\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\x38\n\x19TableConditionExpectation\x12\x1b\n\x0esql_expression\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a*\n\x0cSqlAssertion\x12\x1a\n\rsql_statement\x18\x01 \x01(\tB\x03\xe0\x41\x01\x42\x0b\n\trule_type\"Q\n\x17\x44\x61taQualityColumnResult\x12\x13\n\x06\x63olumn\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\x05score\x18\x02 \x01(\x02\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x08\n\x06_scoreB\xc4\x01\n\x1c\x63om.google.cloud.dataplex.v1B\x10\x44\x61taQualityProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xea\x41U\n\x1d\x62igquery.googleapis.com/Table\x12\x34projects/{project}/datasets/{dataset}/tables/{table}b\x06proto3" +descriptor_data = "\n+google/cloud/dataplex/v1/data_quality.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a/google/cloud/dataplex/v1/datascans_common.proto\x1a)google/cloud/dataplex/v1/processing.proto\"\xe9\x08\n\x0f\x44\x61taQualitySpec\x12=\n\x05rules\x18\x01 \x03(\x0b\x32).google.cloud.dataplex.v1.DataQualityRuleB\x03\xe0\x41\x02\x12\x1d\n\x10sampling_percent\x18\x04 \x01(\x02\x42\x03\xe0\x41\x01\x12\x17\n\nrow_filter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12Y\n\x11post_scan_actions\x18\x06 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataQualitySpec.PostScanActionsB\x03\xe0\x41\x01\x12\'\n\x1a\x63\x61talog_publishing_enabled\x18\x08 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xda\x06\n\x0fPostScanActions\x12\x66\n\x0f\x62igquery_export\x18\x01 \x01(\x0b\x32H.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.BigQueryExportB\x03\xe0\x41\x01\x12n\n\x13notification_report\x18\x02 \x01(\x0b\x32L.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.NotificationReportB\x03\xe0\x41\x01\x1a,\n\x0e\x42igQueryExport\x12\x1a\n\rresults_table\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a!\n\nRecipients\x12\x13\n\x06\x65mails\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a\x35\n\x15ScoreThresholdTrigger\x12\x1c\n\x0fscore_threshold\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01\x1a\x13\n\x11JobFailureTrigger\x1a\x0f\n\rJobEndTrigger\x1a\xc0\x03\n\x12NotificationReport\x12]\n\nrecipients\x18\x01 \x01(\x0b\x32\x44.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.RecipientsB\x03\xe0\x41\x02\x12u\n\x17score_threshold_trigger\x18\x02 \x01(\x0b\x32O.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.ScoreThresholdTriggerB\x03\xe0\x41\x01\x12m\n\x13job_failure_trigger\x18\x04 \x01(\x0b\x32K.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobFailureTriggerB\x03\xe0\x41\x01\x12\x65\n\x0fjob_end_trigger\x18\x05 \x01(\x0b\x32G.google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.JobEndTriggerB\x03\xe0\x41\x01\"\xcf\x07\n\x11\x44\x61taQualityResult\x12\x13\n\x06passed\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x17\n\x05score\x18\t \x01(\x02\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12M\n\ndimensions\x18\x02 \x03(\x0b\x32\x34.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xe0\x41\x03\x12G\n\x07\x63olumns\x18\n \x03(\x0b\x32\x31.google.cloud.dataplex.v1.DataQualityColumnResultB\x03\xe0\x41\x03\x12\x43\n\x05rules\x18\x03 \x03(\x0b\x32/.google.cloud.dataplex.v1.DataQualityRuleResultB\x03\xe0\x41\x03\x12\x16\n\trow_count\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12@\n\x0cscanned_data\x18\x07 \x01(\x0b\x32%.google.cloud.dataplex.v1.ScannedDataB\x03\xe0\x41\x03\x12h\n\x18post_scan_actions_result\x18\x08 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResultB\x03\xe0\x41\x03\x12\x61\n\x19\x63\x61talog_publishing_status\x18\x0b \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataScanCatalogPublishingStatusB\x03\xe0\x41\x03\x1a\xfd\x02\n\x15PostScanActionsResult\x12{\n\x16\x62igquery_export_result\x18\x01 \x01(\x0b\x32V.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResultB\x03\xe0\x41\x03\x1a\xe6\x01\n\x14\x42igQueryExportResult\x12p\n\x05state\x18\x01 \x01(\x0e\x32\\.google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.StateB\x03\xe0\x41\x03\x12\x14\n\x07message\x18\x02 \x01(\tB\x03\xe0\x41\x03\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0b\n\x07SKIPPED\x10\x03\x42\x08\n\x06_score\"\x98\x02\n\x15\x44\x61taQualityRuleResult\x12<\n\x04rule\x18\x01 \x01(\x0b\x32).google.cloud.dataplex.v1.DataQualityRuleB\x03\xe0\x41\x03\x12\x13\n\x06passed\x18\x07 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1c\n\x0f\x65valuated_count\x18\t \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0cpassed_count\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03\x12\x17\n\nnull_count\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12\x17\n\npass_ratio\x18\x06 \x01(\x01\x42\x03\xe0\x41\x03\x12\x1f\n\x12\x66\x61iling_rows_query\x18\n \x01(\tB\x03\xe0\x41\x03\x12 \n\x13\x61ssertion_row_count\x18\x0b \x01(\x03\x42\x03\xe0\x41\x03\"\x9c\x01\n\x1a\x44\x61taQualityDimensionResult\x12\x46\n\tdimension\x18\x01 \x01(\x0b\x32..google.cloud.dataplex.v1.DataQualityDimensionB\x03\xe0\x41\x03\x12\x13\n\x06passed\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\x12\x17\n\x05score\x18\x04 \x01(\x02\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x42\x08\n\x06_score\")\n\x14\x44\x61taQualityDimension\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\x8d\x0e\n\x0f\x44\x61taQualityRule\x12W\n\x11range_expectation\x18\x01 \x01(\x0b\x32:.google.cloud.dataplex.v1.DataQualityRule.RangeExpectationH\x00\x12\\\n\x14non_null_expectation\x18\x02 \x01(\x0b\x32<.google.cloud.dataplex.v1.DataQualityRule.NonNullExpectationH\x00\x12S\n\x0fset_expectation\x18\x03 \x01(\x0b\x32\x38.google.cloud.dataplex.v1.DataQualityRule.SetExpectationH\x00\x12W\n\x11regex_expectation\x18\x04 \x01(\x0b\x32:.google.cloud.dataplex.v1.DataQualityRule.RegexExpectationH\x00\x12\x61\n\x16uniqueness_expectation\x18\x64 \x01(\x0b\x32?.google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectationH\x00\x12j\n\x1bstatistic_range_expectation\x18\x65 \x01(\x0b\x32\x43.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectationH\x00\x12g\n\x19row_condition_expectation\x18\xc8\x01 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectationH\x00\x12k\n\x1btable_condition_expectation\x18\xc9\x01 \x01(\x0b\x32\x43.google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectationH\x00\x12P\n\rsql_assertion\x18\xca\x01 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DataQualityRule.SqlAssertionH\x00\x12\x14\n\x06\x63olumn\x18\xf4\x03 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0bignore_null\x18\xf5\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12\x17\n\tdimension\x18\xf6\x03 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\tthreshold\x18\xf7\x03 \x01(\x01\x42\x03\xe0\x41\x01\x12\x12\n\x04name\x18\xf8\x03 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0b\x64\x65scription\x18\xf9\x03 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\tsuspended\x18\xfa\x03 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x84\x01\n\x10RangeExpectation\x12\x16\n\tmin_value\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tmax_value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12strict_min_enabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\x12strict_max_enabled\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x14\n\x12NonNullExpectation\x1a%\n\x0eSetExpectation\x12\x13\n\x06values\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a&\n\x10RegexExpectation\x12\x12\n\x05regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\x17\n\x15UniquenessExpectation\x1a\xc2\x02\n\x19StatisticRangeExpectation\x12k\n\tstatistic\x18\x01 \x01(\x0e\x32S.google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatisticB\x03\xe0\x41\x01\x12\x16\n\tmin_value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tmax_value\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12strict_min_enabled\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\x12strict_max_enabled\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\"F\n\x0f\x43olumnStatistic\x12\x17\n\x13STATISTIC_UNDEFINED\x10\x00\x12\x08\n\x04MEAN\x10\x01\x12\x07\n\x03MIN\x10\x02\x12\x07\n\x03MAX\x10\x03\x1a\x36\n\x17RowConditionExpectation\x12\x1b\n\x0esql_expression\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a\x38\n\x19TableConditionExpectation\x12\x1b\n\x0esql_expression\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a*\n\x0cSqlAssertion\x12\x1a\n\rsql_statement\x18\x01 \x01(\tB\x03\xe0\x41\x01\x42\x0b\n\trule_type\"\xb5\x01\n\x17\x44\x61taQualityColumnResult\x12\x13\n\x06\x63olumn\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\x05score\x18\x02 \x01(\x02\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x13\n\x06passed\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\x12M\n\ndimensions\x18\x04 \x03(\x0b\x32\x34.google.cloud.dataplex.v1.DataQualityDimensionResultB\x03\xe0\x41\x03\x42\x08\n\x06_scoreB\xc4\x01\n\x1c\x63om.google.cloud.dataplex.v1B\x10\x44\x61taQualityProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpb\xea\x41U\n\x1d\x62igquery.googleapis.com/Table\x12\x34projects/{project}/datasets/{dataset}/tables/{table}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -25,6 +26,7 @@ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" imports = [ ["google.cloud.dataplex.v1.ScannedData", "google/cloud/dataplex/v1/processing.proto"], + ["google.cloud.dataplex.v1.DataScanCatalogPublishingStatus", "google/cloud/dataplex/v1/datascans_common.proto"], ] imports.each do |type_name, expected_filename| import_file = pool.lookup(type_name).file_descriptor diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/client.rb index 9f2049480f84..f9ad3edddb54 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/client.rb @@ -253,7 +253,7 @@ def logger # Required. The resource name of the parent location: # `projects/{project}/locations/{location_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param data_scan [::Google::Cloud::Dataplex::V1::DataScan, ::Hash] # Required. DataScan resource. # @param data_scan_id [::String] @@ -464,7 +464,7 @@ def update_data_scan request, options = nil # Required. The resource name of the dataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param force [::Boolean] # Optional. If set to true, any child resources of this data scan will also # be deleted. (Otherwise, the request will only work if the data scan has no @@ -565,7 +565,7 @@ def delete_data_scan request, options = nil # Required. The resource name of the dataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param view [::Google::Cloud::Dataplex::V1::GetDataScanRequest::DataScanView] # Optional. Select the DataScan view to return. Defaults to `BASIC`. # @@ -655,7 +655,7 @@ def get_data_scan request, options = nil # Required. The resource name of the parent location: # `projects/{project}/locations/{location_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of dataScans to return. The service may return # fewer than this value. If unspecified, at most 500 scans will be returned. @@ -763,7 +763,7 @@ def list_data_scans request, options = nil # Required. The resource name of the DataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`. # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # # Only **OnDemand** data scans are allowed. # @@ -853,7 +853,7 @@ def run_data_scan request, options = nil # Required. The resource name of the DataScanJob: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param view [::Google::Cloud::Dataplex::V1::GetDataScanJobRequest::DataScanJobView] # Optional. Select the DataScanJob view to return. Defaults to `BASIC`. # @@ -943,7 +943,7 @@ def get_data_scan_job request, options = nil # Required. The resource name of the parent environment: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of DataScanJobs to return. The service may return # fewer than this value. If unspecified, at most 10 DataScanJobs will be diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/paths.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/paths.rb index 11040dba5b8f..29267d089ad5 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/paths.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/paths.rb @@ -140,6 +140,20 @@ def location_path project:, location: "projects/#{project}/locations/#{location}" end + ## + # Create a fully-qualified Project resource string. + # + # The resource will be in the following format: + # + # `projects/{project}` + # + # @param project [String] + # + # @return [::String] + def project_path project: + "projects/#{project}" + end + extend self end end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/client.rb index 82ee3de2408f..e964ff4b988c 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/client.rb @@ -248,7 +248,7 @@ def logger # Required. The resource name of the parent location: # `projects/{project}/locations/{location_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param data_scan [::Google::Cloud::Dataplex::V1::DataScan, ::Hash] # Required. DataScan resource. # @param data_scan_id [::String] @@ -445,7 +445,7 @@ def update_data_scan request, options = nil # Required. The resource name of the dataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param force [::Boolean] # Optional. If set to true, any child resources of this data scan will also # be deleted. (Otherwise, the request will only work if the data scan has no @@ -539,7 +539,7 @@ def delete_data_scan request, options = nil # Required. The resource name of the dataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param view [::Google::Cloud::Dataplex::V1::GetDataScanRequest::DataScanView] # Optional. Select the DataScan view to return. Defaults to `BASIC`. # @yield [result, operation] Access the result along with the TransportOperation object @@ -622,7 +622,7 @@ def get_data_scan request, options = nil # Required. The resource name of the parent location: # `projects/{project}/locations/{location_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of dataScans to return. The service may return # fewer than this value. If unspecified, at most 500 scans will be returned. @@ -723,7 +723,7 @@ def list_data_scans request, options = nil # Required. The resource name of the DataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`. # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # # Only **OnDemand** data scans are allowed. # @yield [result, operation] Access the result along with the TransportOperation object @@ -806,7 +806,7 @@ def run_data_scan request, options = nil # Required. The resource name of the DataScanJob: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param view [::Google::Cloud::Dataplex::V1::GetDataScanJobRequest::DataScanJobView] # Optional. Select the DataScanJob view to return. Defaults to `BASIC`. # @yield [result, operation] Access the result along with the TransportOperation object @@ -889,7 +889,7 @@ def get_data_scan_job request, options = nil # Required. The resource name of the parent environment: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of DataScanJobs to return. The service may return # fewer than this value. If unspecified, at most 10 DataScanJobs will be diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/operations.rb index 3795c88c6f9c..3cfb9928f40c 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/operations.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_scan_service/rest/operations.rb @@ -841,9 +841,9 @@ def self.transcode_list_operations_request request_pb ) .with_bindings( uri_method: :get, - uri_template: "/v1/{name}", + uri_template: "/v1/{name}/operations", matches: [ - ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ["name", %r{^organizations/[^/]+/locations/[^/]+/?$}, false] ] ) transcoder.transcode request_pb diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/client.rb index 7135d14b001b..891f54a0f006 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/client.rb @@ -564,7 +564,7 @@ def delete_data_taxonomy request, options = nil # @param parent [::String] # Required. The resource name of the DataTaxonomy location, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of DataTaxonomies to return. The service may # return fewer than this value. If unspecified, at most 10 DataTaxonomies diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/client.rb index a651eb1dd53f..0ad03e7c6d4c 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/client.rb @@ -529,7 +529,7 @@ def delete_data_taxonomy request, options = nil # @param parent [::String] # Required. The resource name of the DataTaxonomy location, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of DataTaxonomies to return. The service may # return fewer than this value. If unspecified, at most 10 DataTaxonomies diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/operations.rb index 7750e796acda..1ea9fb6332d8 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/operations.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/data_taxonomy_service/rest/operations.rb @@ -841,9 +841,9 @@ def self.transcode_list_operations_request request_pb ) .with_bindings( uri_method: :get, - uri_template: "/v1/{name}", + uri_template: "/v1/{name}/operations", matches: [ - ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ["name", %r{^organizations/[^/]+/locations/[^/]+/?$}, false] ] ) transcoder.transcode request_pb diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/client.rb index 819cb2eac389..82511fb1fb90 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/client.rb @@ -361,7 +361,7 @@ def logger # @param parent [::String] # Required. The resource name of the lake location, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param lake_id [::String] # Required. Lake identifier. # This ID will be used to generate names such as database and dataset names @@ -667,7 +667,7 @@ def delete_lake request, options = nil # @param parent [::String] # Required. The resource name of the lake location, of the form: # `projects/{project_number}/locations/{location_id}` - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of Lakes to return. The service may return fewer # than this value. If unspecified, at most 10 lakes will be returned. The diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/client.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/client.rb index bad885758fde..a8f9ec2db7ca 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/client.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/client.rb @@ -356,7 +356,7 @@ def logger # @param parent [::String] # Required. The resource name of the lake location, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param lake_id [::String] # Required. Lake identifier. # This ID will be used to generate names such as database and dataset names @@ -641,7 +641,7 @@ def delete_lake request, options = nil # @param parent [::String] # Required. The resource name of the lake location, of the form: # `projects/{project_number}/locations/{location_id}` - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @param page_size [::Integer] # Optional. Maximum number of Lakes to return. The service may return fewer # than this value. If unspecified, at most 10 lakes will be returned. The diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/operations.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/operations.rb index 30179bca4ad8..d60584fe106a 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/operations.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/dataplex_service/rest/operations.rb @@ -841,9 +841,9 @@ def self.transcode_list_operations_request request_pb ) .with_bindings( uri_method: :get, - uri_template: "/v1/{name}", + uri_template: "/v1/{name}/operations", matches: [ - ["name", %r{^organizations/[^/]+/locations/[^/]+/operations/[^/]+/?$}, false] + ["name", %r{^organizations/[^/]+/locations/[^/]+/?$}, false] ] ) transcoder.transcode request_pb diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/datascans_common_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/datascans_common_pb.rb new file mode 100644 index 000000000000..d9af47659c98 --- /dev/null +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/datascans_common_pb.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/dataplex/v1/datascans_common.proto + +require 'google/protobuf' + +require 'google/api/field_behavior_pb' + + +descriptor_data = "\n/google/cloud/dataplex/v1/datascans_common.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xb1\x01\n\x1f\x44\x61taScanCatalogPublishingStatus\x12S\n\x05state\x18\x01 \x01(\x0e\x32?.google.cloud.dataplex.v1.DataScanCatalogPublishingStatus.StateB\x03\xe0\x41\x03\"9\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42p\n\x1c\x63om.google.cloud.dataplex.v1B\x14\x44\x61taScansCommonProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module Dataplex + module V1 + DataScanCatalogPublishingStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.DataScanCatalogPublishingStatus").msgclass + DataScanCatalogPublishingStatus::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.dataplex.v1.DataScanCatalogPublishingStatus.State").enummodule + end + end + end +end diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/logs_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/logs_pb.rb index f3d7dd0243ee..e2eea5ad7407 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/logs_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/logs_pb.rb @@ -6,11 +6,12 @@ require 'google/api/field_behavior_pb' require 'google/api/resource_pb' +require 'google/cloud/dataplex/v1/datascans_common_pb' require 'google/protobuf/duration_pb' require 'google/protobuf/timestamp_pb' -descriptor_data = "\n#google/cloud/dataplex/v1/logs.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9d\x0c\n\x0e\x44iscoveryEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0f\n\x07lake_id\x18\x02 \x01(\t\x12\x0f\n\x07zone_id\x18\x03 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x04 \x01(\t\x12\x15\n\rdata_location\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x61tascan_id\x18\x06 \x01(\t\x12@\n\x04type\x18\n \x01(\x0e\x32\x32.google.cloud.dataplex.v1.DiscoveryEvent.EventType\x12H\n\x06\x63onfig\x18\x14 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetailsH\x00\x12H\n\x06\x65ntity\x18\x15 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DiscoveryEvent.EntityDetailsH\x00\x12N\n\tpartition\x18\x16 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetailsH\x00\x12H\n\x06\x61\x63tion\x18\x17 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DiscoveryEvent.ActionDetailsH\x00\x12\x46\n\x05table\x18\x18 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.DiscoveryEvent.TableDetailsH\x00\x1a\x9e\x01\n\rConfigDetails\x12Z\n\nparameters\x18\x01 \x03(\x0b\x32\x46.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x62\n\rEntityDetails\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x41\n\x04type\x18\x02 \x01(\x0e\x32\x33.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x1a_\n\x0cTableDetails\x12\r\n\x05table\x18\x01 \x01(\t\x12@\n\x04type\x18\x02 \x01(\x0e\x32\x32.google.cloud.dataplex.v1.DiscoveryEvent.TableType\x1a\x98\x01\n\x10PartitionDetails\x12\x11\n\tpartition\x18\x01 \x01(\t\x12\x0e\n\x06\x65ntity\x18\x02 \x01(\t\x12\x41\n\x04type\x18\x03 \x01(\x0e\x32\x33.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x12\x1e\n\x16sampled_data_locations\x18\x04 \x03(\t\x1a,\n\rActionDetails\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05issue\x18\x02 \x01(\t\"\x82\x02\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x43ONFIG\x10\x01\x12\x12\n\x0e\x45NTITY_CREATED\x10\x02\x12\x12\n\x0e\x45NTITY_UPDATED\x10\x03\x12\x12\n\x0e\x45NTITY_DELETED\x10\x04\x12\x15\n\x11PARTITION_CREATED\x10\x05\x12\x15\n\x11PARTITION_UPDATED\x10\x06\x12\x15\n\x11PARTITION_DELETED\x10\x07\x12\x13\n\x0fTABLE_PUBLISHED\x10\n\x12\x11\n\rTABLE_UPDATED\x10\x0b\x12\x11\n\rTABLE_IGNORED\x10\x0c\x12\x11\n\rTABLE_DELETED\x10\r\"A\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x01\x12\x0b\n\x07\x46ILESET\x10\x02\"`\n\tTableType\x12\x1a\n\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45XTERNAL_TABLE\x10\x01\x12\x11\n\rBIGLAKE_TABLE\x10\x02\x12\x10\n\x0cOBJECT_TABLE\x10\x03\x42\t\n\x07\x64\x65tails\"\xc5\x05\n\x08JobEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x05state\x18\x05 \x01(\x0e\x32(.google.cloud.dataplex.v1.JobEvent.State\x12\x0f\n\x07retries\x18\x06 \x01(\x05\x12\x35\n\x04type\x18\x07 \x01(\x0e\x32\'.google.cloud.dataplex.v1.JobEvent.Type\x12;\n\x07service\x18\x08 \x01(\x0e\x32*.google.cloud.dataplex.v1.JobEvent.Service\x12\x13\n\x0bservice_job\x18\t \x01(\t\x12N\n\x11\x65xecution_trigger\x18\x0b \x01(\x0e\x32\x33.google.cloud.dataplex.v1.JobEvent.ExecutionTrigger\"5\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05SPARK\x10\x01\x12\x0c\n\x08NOTEBOOK\x10\x02\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\r\n\tCANCELLED\x10\x03\x12\x0b\n\x07\x41\x42ORTED\x10\x04\"0\n\x07Service\x12\x17\n\x13SERVICE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44\x41TAPROC\x10\x01\"W\n\x10\x45xecutionTrigger\x12!\n\x1d\x45XECUTION_TRIGGER_UNSPECIFIED\x10\x00\x12\x0f\n\x0bTASK_CONFIG\x10\x01\x12\x0f\n\x0bRUN_REQUEST\x10\x02\"\xbd\x05\n\x0cSessionEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12>\n\x04type\x18\x04 \x01(\x0e\x32\x30.google.cloud.dataplex.v1.SessionEvent.EventType\x12\x43\n\x05query\x18\x05 \x01(\x0b\x32\x32.google.cloud.dataplex.v1.SessionEvent.QueryDetailH\x00\x12\x17\n\x0f\x65vent_succeeded\x18\x06 \x01(\x08\x12\x1c\n\x14\x66\x61st_startup_enabled\x18\x07 \x01(\x08\x12\x36\n\x13unassigned_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xa3\x02\n\x0bQueryDetail\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_text\x18\x02 \x01(\t\x12I\n\x06\x65ngine\x18\x03 \x01(\x0e\x32\x39.google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine\x12+\n\x08\x64uration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11result_size_bytes\x18\x05 \x01(\x03\x12\x1c\n\x14\x64\x61ta_processed_bytes\x18\x06 \x01(\x03\"=\n\x06\x45ngine\x12\x16\n\x12\x45NGINE_UNSPECIFIED\x10\x00\x12\r\n\tSPARK_SQL\x10\x01\x12\x0c\n\x08\x42IGQUERY\x10\x02\"S\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05START\x10\x01\x12\x08\n\x04STOP\x10\x02\x12\t\n\x05QUERY\x10\x03\x12\n\n\x06\x43REATE\x10\x04\x42\x08\n\x06\x64\x65tail\"\xba\x07\n\x0fGovernanceEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12G\n\nevent_type\x18\x02 \x01(\x0e\x32\x33.google.cloud.dataplex.v1.GovernanceEvent.EventType\x12\x45\n\x06\x65ntity\x18\x03 \x01(\x0b\x32\x30.google.cloud.dataplex.v1.GovernanceEvent.EntityH\x00\x88\x01\x01\x1a\xd2\x01\n\x06\x45ntity\x12\x33\n\x06\x65ntity\x18\x01 \x01(\tB#\xfa\x41 \n\x1e\x64\x61taplex.googleapis.com/Entity\x12P\n\x0b\x65ntity_type\x18\x02 \x01(\x0e\x32;.google.cloud.dataplex.v1.GovernanceEvent.Entity.EntityType\"A\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x01\x12\x0b\n\x07\x46ILESET\x10\x02\"\xa5\x04\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRESOURCE_IAM_POLICY_UPDATE\x10\x01\x12\x19\n\x15\x42IGQUERY_TABLE_CREATE\x10\x02\x12\x19\n\x15\x42IGQUERY_TABLE_UPDATE\x10\x03\x12\x19\n\x15\x42IGQUERY_TABLE_DELETE\x10\x04\x12\x1e\n\x1a\x42IGQUERY_CONNECTION_CREATE\x10\x05\x12\x1e\n\x1a\x42IGQUERY_CONNECTION_UPDATE\x10\x06\x12\x1e\n\x1a\x42IGQUERY_CONNECTION_DELETE\x10\x07\x12\x1c\n\x18\x42IGQUERY_TAXONOMY_CREATE\x10\n\x12\x1e\n\x1a\x42IGQUERY_POLICY_TAG_CREATE\x10\x0b\x12\x1e\n\x1a\x42IGQUERY_POLICY_TAG_DELETE\x10\x0c\x12&\n\"BIGQUERY_POLICY_TAG_SET_IAM_POLICY\x10\r\x12\x18\n\x14\x41\x43\x43\x45SS_POLICY_UPDATE\x10\x0e\x12%\n!GOVERNANCE_RULE_MATCHED_RESOURCES\x10\x0f\x12(\n$GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS\x10\x10\x12\x1a\n\x16GOVERNANCE_RULE_ERRORS\x10\x11\x12\x1e\n\x1aGOVERNANCE_RULE_PROCESSING\x10\x12\x42\t\n\x07_entity\"\x87\x13\n\rDataScanEvent\x12\x13\n\x0b\x64\x61ta_source\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x04type\x18\x05 \x01(\x0e\x32\x30.google.cloud.dataplex.v1.DataScanEvent.ScanType\x12<\n\x05state\x18\x06 \x01(\x0e\x32-.google.cloud.dataplex.v1.DataScanEvent.State\x12\x0f\n\x07message\x18\x07 \x01(\t\x12\x14\n\x0cspec_version\x18\x08 \x01(\t\x12@\n\x07trigger\x18\t \x01(\x0e\x32/.google.cloud.dataplex.v1.DataScanEvent.Trigger\x12<\n\x05scope\x18\n \x01(\x0e\x32-.google.cloud.dataplex.v1.DataScanEvent.Scope\x12Q\n\x0c\x64\x61ta_profile\x18\x65 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataScanEvent.DataProfileResultH\x00\x12Q\n\x0c\x64\x61ta_quality\x18\x66 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataScanEvent.DataQualityResultH\x00\x12\x62\n\x14\x64\x61ta_profile_configs\x18\xc9\x01 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataScanEvent.DataProfileAppliedConfigsH\x01\x12\x62\n\x14\x64\x61ta_quality_configs\x18\xca\x01 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataScanEvent.DataQualityAppliedConfigsH\x01\x12_\n\x18post_scan_actions_result\x18\x0b \x01(\x0b\x32=.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult\x1a&\n\x11\x44\x61taProfileResult\x12\x11\n\trow_count\x18\x01 \x01(\x03\x1a\x9c\x04\n\x11\x44\x61taQualityResult\x12\x11\n\trow_count\x18\x01 \x01(\x03\x12\x0e\n\x06passed\x18\x02 \x01(\x08\x12h\n\x10\x64imension_passed\x18\x03 \x03(\x0b\x32N.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry\x12\r\n\x05score\x18\x04 \x01(\x02\x12\x66\n\x0f\x64imension_score\x18\x05 \x03(\x0b\x32M.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionScoreEntry\x12`\n\x0c\x63olumn_score\x18\x06 \x03(\x0b\x32J.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.ColumnScoreEntry\x1a\x36\n\x14\x44imensionPassedEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x35\n\x13\x44imensionScoreEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x32\n\x10\x43olumnScoreEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1ap\n\x19\x44\x61taProfileAppliedConfigs\x12\x18\n\x10sampling_percent\x18\x01 \x01(\x02\x12\x1a\n\x12row_filter_applied\x18\x02 \x01(\x08\x12\x1d\n\x15\x63olumn_filter_applied\x18\x03 \x01(\x08\x1aQ\n\x19\x44\x61taQualityAppliedConfigs\x12\x18\n\x10sampling_percent\x18\x01 \x01(\x02\x12\x1a\n\x12row_filter_applied\x18\x02 \x01(\x08\x1a\xe6\x02\n\x15PostScanActionsResult\x12r\n\x16\x62igquery_export_result\x18\x01 \x01(\x0b\x32R.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult\x1a\xd8\x01\n\x14\x42igQueryExportResult\x12g\n\x05state\x18\x01 \x01(\x0e\x32X.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.State\x12\x0f\n\x07message\x18\x02 \x01(\t\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0b\n\x07SKIPPED\x10\x03\"]\n\x08ScanType\x12\x19\n\x15SCAN_TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x44\x41TA_PROFILE\x10\x01\x12\x10\n\x0c\x44\x41TA_QUALITY\x10\x02\x12\x12\n\x0e\x44\x41TA_DISCOVERY\x10\x04\"b\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07STARTED\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tCANCELLED\x10\x04\x12\x0b\n\x07\x43REATED\x10\x05\"?\n\x07Trigger\x12\x17\n\x13TRIGGER_UNSPECIFIED\x10\x00\x12\r\n\tON_DEMAND\x10\x01\x12\x0c\n\x08SCHEDULE\x10\x02\"9\n\x05Scope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x0f\n\x0bINCREMENTAL\x10\x02\x42\x08\n\x06resultB\x10\n\x0e\x61ppliedConfigs\"\x99\x07\n\x19\x44\x61taQualityScanRuleResult\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61ta_source\x18\x02 \x01(\t\x12\x0e\n\x06\x63olumn\x18\x03 \x01(\t\x12\x11\n\trule_name\x18\x04 \x01(\t\x12O\n\trule_type\x18\x05 \x01(\x0e\x32<.google.cloud.dataplex.v1.DataQualityScanRuleResult.RuleType\x12Z\n\x0e\x65valution_type\x18\x06 \x01(\x0e\x32\x42.google.cloud.dataplex.v1.DataQualityScanRuleResult.EvaluationType\x12\x16\n\x0erule_dimension\x18\x07 \x01(\t\x12\x19\n\x11threshold_percent\x18\x08 \x01(\x01\x12J\n\x06result\x18\t \x01(\x0e\x32:.google.cloud.dataplex.v1.DataQualityScanRuleResult.Result\x12\x1b\n\x13\x65valuated_row_count\x18\n \x01(\x03\x12\x18\n\x10passed_row_count\x18\x0b \x01(\x03\x12\x16\n\x0enull_row_count\x18\x0c \x01(\x03\x12\x1b\n\x13\x61ssertion_row_count\x18\r \x01(\x03\"\x92\x02\n\x08RuleType\x12\x19\n\x15RULE_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14NON_NULL_EXPECTATION\x10\x01\x12\x15\n\x11RANGE_EXPECTATION\x10\x02\x12\x15\n\x11REGEX_EXPECTATION\x10\x03\x12\x1d\n\x19ROW_CONDITION_EXPECTATION\x10\x04\x12\x13\n\x0fSET_EXPECTATION\x10\x05\x12\x1f\n\x1bSTATISTIC_RANGE_EXPECTATION\x10\x06\x12\x1f\n\x1bTABLE_CONDITION_EXPECTATION\x10\x07\x12\x1a\n\x16UNIQUENESS_EXPECTATION\x10\x08\x12\x11\n\rSQL_ASSERTION\x10\t\"M\n\x0e\x45valuationType\x12\x1f\n\x1b\x45VALUATION_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PER_ROW\x10\x01\x12\r\n\tAGGREGATE\x10\x02\"8\n\x06Result\x12\x16\n\x12RESULT_UNSPECIFIED\x10\x00\x12\n\n\x06PASSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"\x9a\x03\n\x15\x42usinessGlossaryEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12M\n\nevent_type\x18\x02 \x01(\x0e\x32\x39.google.cloud.dataplex.v1.BusinessGlossaryEvent.EventType\x12\x10\n\x08resource\x18\x03 \x01(\t\"\x8e\x02\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fGLOSSARY_CREATE\x10\x01\x12\x13\n\x0fGLOSSARY_UPDATE\x10\x02\x12\x13\n\x0fGLOSSARY_DELETE\x10\x03\x12\x1c\n\x18GLOSSARY_CATEGORY_CREATE\x10\x04\x12\x1c\n\x18GLOSSARY_CATEGORY_UPDATE\x10\x05\x12\x1c\n\x18GLOSSARY_CATEGORY_DELETE\x10\x06\x12\x18\n\x14GLOSSARY_TERM_CREATE\x10\x07\x12\x18\n\x14GLOSSARY_TERM_UPDATE\x10\x08\x12\x18\n\x14GLOSSARY_TERM_DELETE\x10\t\"\xd2\x01\n\x0e\x45ntryLinkEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x46\n\nevent_type\x18\x02 \x01(\x0e\x32\x32.google.cloud.dataplex.v1.EntryLinkEvent.EventType\x12\x10\n\x08resource\x18\x03 \x01(\t\"U\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x45NTRY_LINK_CREATE\x10\x01\x12\x15\n\x11\x45NTRY_LINK_DELETE\x10\x02\x42\x65\n\x1c\x63om.google.cloud.dataplex.v1B\tLogsProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" +descriptor_data = "\n#google/cloud/dataplex/v1/logs.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a/google/cloud/dataplex/v1/datascans_common.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9d\x0c\n\x0e\x44iscoveryEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0f\n\x07lake_id\x18\x02 \x01(\t\x12\x0f\n\x07zone_id\x18\x03 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x04 \x01(\t\x12\x15\n\rdata_location\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x61tascan_id\x18\x06 \x01(\t\x12@\n\x04type\x18\n \x01(\x0e\x32\x32.google.cloud.dataplex.v1.DiscoveryEvent.EventType\x12H\n\x06\x63onfig\x18\x14 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetailsH\x00\x12H\n\x06\x65ntity\x18\x15 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DiscoveryEvent.EntityDetailsH\x00\x12N\n\tpartition\x18\x16 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetailsH\x00\x12H\n\x06\x61\x63tion\x18\x17 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.DiscoveryEvent.ActionDetailsH\x00\x12\x46\n\x05table\x18\x18 \x01(\x0b\x32\x35.google.cloud.dataplex.v1.DiscoveryEvent.TableDetailsH\x00\x1a\x9e\x01\n\rConfigDetails\x12Z\n\nparameters\x18\x01 \x03(\x0b\x32\x46.google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry\x1a\x31\n\x0fParametersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x62\n\rEntityDetails\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x41\n\x04type\x18\x02 \x01(\x0e\x32\x33.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x1a_\n\x0cTableDetails\x12\r\n\x05table\x18\x01 \x01(\t\x12@\n\x04type\x18\x02 \x01(\x0e\x32\x32.google.cloud.dataplex.v1.DiscoveryEvent.TableType\x1a\x98\x01\n\x10PartitionDetails\x12\x11\n\tpartition\x18\x01 \x01(\t\x12\x0e\n\x06\x65ntity\x18\x02 \x01(\t\x12\x41\n\x04type\x18\x03 \x01(\x0e\x32\x33.google.cloud.dataplex.v1.DiscoveryEvent.EntityType\x12\x1e\n\x16sampled_data_locations\x18\x04 \x03(\t\x1a,\n\rActionDetails\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\r\n\x05issue\x18\x02 \x01(\t\"\x82\x02\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x43ONFIG\x10\x01\x12\x12\n\x0e\x45NTITY_CREATED\x10\x02\x12\x12\n\x0e\x45NTITY_UPDATED\x10\x03\x12\x12\n\x0e\x45NTITY_DELETED\x10\x04\x12\x15\n\x11PARTITION_CREATED\x10\x05\x12\x15\n\x11PARTITION_UPDATED\x10\x06\x12\x15\n\x11PARTITION_DELETED\x10\x07\x12\x13\n\x0fTABLE_PUBLISHED\x10\n\x12\x11\n\rTABLE_UPDATED\x10\x0b\x12\x11\n\rTABLE_IGNORED\x10\x0c\x12\x11\n\rTABLE_DELETED\x10\r\"A\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x01\x12\x0b\n\x07\x46ILESET\x10\x02\"`\n\tTableType\x12\x1a\n\x16TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45XTERNAL_TABLE\x10\x01\x12\x11\n\rBIGLAKE_TABLE\x10\x02\x12\x10\n\x0cOBJECT_TABLE\x10\x03\x42\t\n\x07\x64\x65tails\"\xc5\x05\n\x08JobEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x05state\x18\x05 \x01(\x0e\x32(.google.cloud.dataplex.v1.JobEvent.State\x12\x0f\n\x07retries\x18\x06 \x01(\x05\x12\x35\n\x04type\x18\x07 \x01(\x0e\x32\'.google.cloud.dataplex.v1.JobEvent.Type\x12;\n\x07service\x18\x08 \x01(\x0e\x32*.google.cloud.dataplex.v1.JobEvent.Service\x12\x13\n\x0bservice_job\x18\t \x01(\t\x12N\n\x11\x65xecution_trigger\x18\x0b \x01(\x0e\x32\x33.google.cloud.dataplex.v1.JobEvent.ExecutionTrigger\"5\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05SPARK\x10\x01\x12\x0c\n\x08NOTEBOOK\x10\x02\"U\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\r\n\tCANCELLED\x10\x03\x12\x0b\n\x07\x41\x42ORTED\x10\x04\"0\n\x07Service\x12\x17\n\x13SERVICE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44\x41TAPROC\x10\x01\"W\n\x10\x45xecutionTrigger\x12!\n\x1d\x45XECUTION_TRIGGER_UNSPECIFIED\x10\x00\x12\x0f\n\x0bTASK_CONFIG\x10\x01\x12\x0f\n\x0bRUN_REQUEST\x10\x02\"\xbd\x05\n\x0cSessionEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x12\n\nsession_id\x18\x03 \x01(\t\x12>\n\x04type\x18\x04 \x01(\x0e\x32\x30.google.cloud.dataplex.v1.SessionEvent.EventType\x12\x43\n\x05query\x18\x05 \x01(\x0b\x32\x32.google.cloud.dataplex.v1.SessionEvent.QueryDetailH\x00\x12\x17\n\x0f\x65vent_succeeded\x18\x06 \x01(\x08\x12\x1c\n\x14\x66\x61st_startup_enabled\x18\x07 \x01(\x08\x12\x36\n\x13unassigned_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xa3\x02\n\x0bQueryDetail\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_text\x18\x02 \x01(\t\x12I\n\x06\x65ngine\x18\x03 \x01(\x0e\x32\x39.google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine\x12+\n\x08\x64uration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x19\n\x11result_size_bytes\x18\x05 \x01(\x03\x12\x1c\n\x14\x64\x61ta_processed_bytes\x18\x06 \x01(\x03\"=\n\x06\x45ngine\x12\x16\n\x12\x45NGINE_UNSPECIFIED\x10\x00\x12\r\n\tSPARK_SQL\x10\x01\x12\x0c\n\x08\x42IGQUERY\x10\x02\"S\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05START\x10\x01\x12\x08\n\x04STOP\x10\x02\x12\t\n\x05QUERY\x10\x03\x12\n\n\x06\x43REATE\x10\x04\x42\x08\n\x06\x64\x65tail\"\xba\x07\n\x0fGovernanceEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12G\n\nevent_type\x18\x02 \x01(\x0e\x32\x33.google.cloud.dataplex.v1.GovernanceEvent.EventType\x12\x45\n\x06\x65ntity\x18\x03 \x01(\x0b\x32\x30.google.cloud.dataplex.v1.GovernanceEvent.EntityH\x00\x88\x01\x01\x1a\xd2\x01\n\x06\x45ntity\x12\x33\n\x06\x65ntity\x18\x01 \x01(\tB#\xfa\x41 \n\x1e\x64\x61taplex.googleapis.com/Entity\x12P\n\x0b\x65ntity_type\x18\x02 \x01(\x0e\x32;.google.cloud.dataplex.v1.GovernanceEvent.Entity.EntityType\"A\n\nEntityType\x12\x1b\n\x17\x45NTITY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05TABLE\x10\x01\x12\x0b\n\x07\x46ILESET\x10\x02\"\xa5\x04\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRESOURCE_IAM_POLICY_UPDATE\x10\x01\x12\x19\n\x15\x42IGQUERY_TABLE_CREATE\x10\x02\x12\x19\n\x15\x42IGQUERY_TABLE_UPDATE\x10\x03\x12\x19\n\x15\x42IGQUERY_TABLE_DELETE\x10\x04\x12\x1e\n\x1a\x42IGQUERY_CONNECTION_CREATE\x10\x05\x12\x1e\n\x1a\x42IGQUERY_CONNECTION_UPDATE\x10\x06\x12\x1e\n\x1a\x42IGQUERY_CONNECTION_DELETE\x10\x07\x12\x1c\n\x18\x42IGQUERY_TAXONOMY_CREATE\x10\n\x12\x1e\n\x1a\x42IGQUERY_POLICY_TAG_CREATE\x10\x0b\x12\x1e\n\x1a\x42IGQUERY_POLICY_TAG_DELETE\x10\x0c\x12&\n\"BIGQUERY_POLICY_TAG_SET_IAM_POLICY\x10\r\x12\x18\n\x14\x41\x43\x43\x45SS_POLICY_UPDATE\x10\x0e\x12%\n!GOVERNANCE_RULE_MATCHED_RESOURCES\x10\x0f\x12(\n$GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS\x10\x10\x12\x1a\n\x16GOVERNANCE_RULE_ERRORS\x10\x11\x12\x1e\n\x1aGOVERNANCE_RULE_PROCESSING\x10\x12\x42\t\n\x07_entity\"\xe5\x13\n\rDataScanEvent\x12\x13\n\x0b\x64\x61ta_source\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12/\n\x0b\x63reate_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x04type\x18\x05 \x01(\x0e\x32\x30.google.cloud.dataplex.v1.DataScanEvent.ScanType\x12<\n\x05state\x18\x06 \x01(\x0e\x32-.google.cloud.dataplex.v1.DataScanEvent.State\x12\x0f\n\x07message\x18\x07 \x01(\t\x12\x14\n\x0cspec_version\x18\x08 \x01(\t\x12@\n\x07trigger\x18\t \x01(\x0e\x32/.google.cloud.dataplex.v1.DataScanEvent.Trigger\x12<\n\x05scope\x18\n \x01(\x0e\x32-.google.cloud.dataplex.v1.DataScanEvent.Scope\x12Q\n\x0c\x64\x61ta_profile\x18\x65 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataScanEvent.DataProfileResultH\x00\x12Q\n\x0c\x64\x61ta_quality\x18\x66 \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataScanEvent.DataQualityResultH\x00\x12\x62\n\x14\x64\x61ta_profile_configs\x18\xc9\x01 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataScanEvent.DataProfileAppliedConfigsH\x01\x12\x62\n\x14\x64\x61ta_quality_configs\x18\xca\x01 \x01(\x0b\x32\x41.google.cloud.dataplex.v1.DataScanEvent.DataQualityAppliedConfigsH\x01\x12_\n\x18post_scan_actions_result\x18\x0b \x01(\x0b\x32=.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult\x12\\\n\x19\x63\x61talog_publishing_status\x18\r \x01(\x0b\x32\x39.google.cloud.dataplex.v1.DataScanCatalogPublishingStatus\x1a&\n\x11\x44\x61taProfileResult\x12\x11\n\trow_count\x18\x01 \x01(\x03\x1a\x9c\x04\n\x11\x44\x61taQualityResult\x12\x11\n\trow_count\x18\x01 \x01(\x03\x12\x0e\n\x06passed\x18\x02 \x01(\x08\x12h\n\x10\x64imension_passed\x18\x03 \x03(\x0b\x32N.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry\x12\r\n\x05score\x18\x04 \x01(\x02\x12\x66\n\x0f\x64imension_score\x18\x05 \x03(\x0b\x32M.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionScoreEntry\x12`\n\x0c\x63olumn_score\x18\x06 \x03(\x0b\x32J.google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.ColumnScoreEntry\x1a\x36\n\x14\x44imensionPassedEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x35\n\x13\x44imensionScoreEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x32\n\x10\x43olumnScoreEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1ap\n\x19\x44\x61taProfileAppliedConfigs\x12\x18\n\x10sampling_percent\x18\x01 \x01(\x02\x12\x1a\n\x12row_filter_applied\x18\x02 \x01(\x08\x12\x1d\n\x15\x63olumn_filter_applied\x18\x03 \x01(\x08\x1aQ\n\x19\x44\x61taQualityAppliedConfigs\x12\x18\n\x10sampling_percent\x18\x01 \x01(\x02\x12\x1a\n\x12row_filter_applied\x18\x02 \x01(\x08\x1a\xe6\x02\n\x15PostScanActionsResult\x12r\n\x16\x62igquery_export_result\x18\x01 \x01(\x0b\x32R.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult\x1a\xd8\x01\n\x14\x42igQueryExportResult\x12g\n\x05state\x18\x01 \x01(\x0e\x32X.google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.State\x12\x0f\n\x07message\x18\x02 \x01(\t\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x0b\n\x07SKIPPED\x10\x03\"]\n\x08ScanType\x12\x19\n\x15SCAN_TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x44\x41TA_PROFILE\x10\x01\x12\x10\n\x0c\x44\x41TA_QUALITY\x10\x02\x12\x12\n\x0e\x44\x41TA_DISCOVERY\x10\x04\"b\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07STARTED\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tCANCELLED\x10\x04\x12\x0b\n\x07\x43REATED\x10\x05\"?\n\x07Trigger\x12\x17\n\x13TRIGGER_UNSPECIFIED\x10\x00\x12\r\n\tON_DEMAND\x10\x01\x12\x0c\n\x08SCHEDULE\x10\x02\"9\n\x05Scope\x12\x15\n\x11SCOPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x0f\n\x0bINCREMENTAL\x10\x02\x42\x08\n\x06resultB\x10\n\x0e\x61ppliedConfigs\"\x99\x07\n\x19\x44\x61taQualityScanRuleResult\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61ta_source\x18\x02 \x01(\t\x12\x0e\n\x06\x63olumn\x18\x03 \x01(\t\x12\x11\n\trule_name\x18\x04 \x01(\t\x12O\n\trule_type\x18\x05 \x01(\x0e\x32<.google.cloud.dataplex.v1.DataQualityScanRuleResult.RuleType\x12Z\n\x0e\x65valution_type\x18\x06 \x01(\x0e\x32\x42.google.cloud.dataplex.v1.DataQualityScanRuleResult.EvaluationType\x12\x16\n\x0erule_dimension\x18\x07 \x01(\t\x12\x19\n\x11threshold_percent\x18\x08 \x01(\x01\x12J\n\x06result\x18\t \x01(\x0e\x32:.google.cloud.dataplex.v1.DataQualityScanRuleResult.Result\x12\x1b\n\x13\x65valuated_row_count\x18\n \x01(\x03\x12\x18\n\x10passed_row_count\x18\x0b \x01(\x03\x12\x16\n\x0enull_row_count\x18\x0c \x01(\x03\x12\x1b\n\x13\x61ssertion_row_count\x18\r \x01(\x03\"\x92\x02\n\x08RuleType\x12\x19\n\x15RULE_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14NON_NULL_EXPECTATION\x10\x01\x12\x15\n\x11RANGE_EXPECTATION\x10\x02\x12\x15\n\x11REGEX_EXPECTATION\x10\x03\x12\x1d\n\x19ROW_CONDITION_EXPECTATION\x10\x04\x12\x13\n\x0fSET_EXPECTATION\x10\x05\x12\x1f\n\x1bSTATISTIC_RANGE_EXPECTATION\x10\x06\x12\x1f\n\x1bTABLE_CONDITION_EXPECTATION\x10\x07\x12\x1a\n\x16UNIQUENESS_EXPECTATION\x10\x08\x12\x11\n\rSQL_ASSERTION\x10\t\"M\n\x0e\x45valuationType\x12\x1f\n\x1b\x45VALUATION_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PER_ROW\x10\x01\x12\r\n\tAGGREGATE\x10\x02\"8\n\x06Result\x12\x16\n\x12RESULT_UNSPECIFIED\x10\x00\x12\n\n\x06PASSED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"\x9a\x03\n\x15\x42usinessGlossaryEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12M\n\nevent_type\x18\x02 \x01(\x0e\x32\x39.google.cloud.dataplex.v1.BusinessGlossaryEvent.EventType\x12\x10\n\x08resource\x18\x03 \x01(\t\"\x8e\x02\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fGLOSSARY_CREATE\x10\x01\x12\x13\n\x0fGLOSSARY_UPDATE\x10\x02\x12\x13\n\x0fGLOSSARY_DELETE\x10\x03\x12\x1c\n\x18GLOSSARY_CATEGORY_CREATE\x10\x04\x12\x1c\n\x18GLOSSARY_CATEGORY_UPDATE\x10\x05\x12\x1c\n\x18GLOSSARY_CATEGORY_DELETE\x10\x06\x12\x18\n\x14GLOSSARY_TERM_CREATE\x10\x07\x12\x18\n\x14GLOSSARY_TERM_UPDATE\x10\x08\x12\x18\n\x14GLOSSARY_TERM_DELETE\x10\t\"\xd2\x01\n\x0e\x45ntryLinkEvent\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x46\n\nevent_type\x18\x02 \x01(\x0e\x32\x32.google.cloud.dataplex.v1.EntryLinkEvent.EventType\x12\x10\n\x08resource\x18\x03 \x01(\t\"U\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x45NTRY_LINK_CREATE\x10\x01\x12\x15\n\x11\x45NTRY_LINK_DELETE\x10\x02\x42\x65\n\x1c\x63om.google.cloud.dataplex.v1B\tLogsProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -27,6 +28,7 @@ imports = [ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], ["google.protobuf.Duration", "google/protobuf/duration.proto"], + ["google.cloud.dataplex.v1.DataScanCatalogPublishingStatus", "google/cloud/dataplex/v1/datascans_common.proto"], ] imports.each do |type_name, expected_filename| import_file = pool.lookup(type_name).file_descriptor diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/processing_pb.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/processing_pb.rb index 49ecd409bebe..1144c60b1bc4 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/processing_pb.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/processing_pb.rb @@ -8,7 +8,7 @@ require 'google/api/resource_pb' -descriptor_data = "\n)google/cloud/dataplex/v1/processing.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xbd\x01\n\x07Trigger\x12?\n\ton_demand\x18\x64 \x01(\x0b\x32*.google.cloud.dataplex.v1.Trigger.OnDemandH\x00\x12>\n\x08schedule\x18\x65 \x01(\x0b\x32*.google.cloud.dataplex.v1.Trigger.ScheduleH\x00\x1a\n\n\x08OnDemand\x1a\x1d\n\x08Schedule\x12\x11\n\x04\x63ron\x18\x01 \x01(\tB\x03\xe0\x41\x02\x42\x06\n\x04mode\"i\n\nDataSource\x12\x38\n\x06\x65ntity\x18\x64 \x01(\tB&\xe0\x41\x05\xfa\x41 \n\x1e\x64\x61taplex.googleapis.com/EntityH\x00\x12\x17\n\x08resource\x18\x65 \x01(\tB\x03\xe0\x41\x05H\x00\x42\x08\n\x06source\"\xaf\x01\n\x0bScannedData\x12S\n\x11incremental_field\x18\x01 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.ScannedData.IncrementalFieldH\x00\x1a=\n\x10IncrementalField\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\r\n\x05start\x18\x02 \x01(\t\x12\x0b\n\x03\x65nd\x18\x03 \x01(\tB\x0c\n\ndata_rangeBk\n\x1c\x63om.google.cloud.dataplex.v1B\x0fProcessingProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" +descriptor_data = "\n)google/cloud/dataplex/v1/processing.proto\x12\x18google.cloud.dataplex.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xbd\x01\n\x07Trigger\x12?\n\ton_demand\x18\x64 \x01(\x0b\x32*.google.cloud.dataplex.v1.Trigger.OnDemandH\x00\x12>\n\x08schedule\x18\x65 \x01(\x0b\x32*.google.cloud.dataplex.v1.Trigger.ScheduleH\x00\x1a\n\n\x08OnDemand\x1a\x1d\n\x08Schedule\x12\x11\n\x04\x63ron\x18\x01 \x01(\tB\x03\xe0\x41\x02\x42\x06\n\x04mode\"i\n\nDataSource\x12\x38\n\x06\x65ntity\x18\x64 \x01(\tB&\xe0\x41\x05\xfa\x41 \n\x1e\x64\x61taplex.googleapis.com/EntityH\x00\x12\x17\n\x08resource\x18\x65 \x01(\tB\x03\xe0\x41\x05H\x00\x42\x08\n\x06source\"\xbe\x01\n\x0bScannedData\x12S\n\x11incremental_field\x18\x01 \x01(\x0b\x32\x36.google.cloud.dataplex.v1.ScannedData.IncrementalFieldH\x00\x1aL\n\x10IncrementalField\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05start\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x10\n\x03\x65nd\x18\x03 \x01(\tB\x03\xe0\x41\x03\x42\x0c\n\ndata_rangeBk\n\x1c\x63om.google.cloud.dataplex.v1B\x0fProcessingProtoP\x01Z8cloud.google.com/go/dataplex/apiv1/dataplexpb;dataplexpbb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/rest.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/rest.rb index 6f4528d05709..faf1e3bc679d 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/rest.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/rest.rb @@ -17,6 +17,7 @@ # Auto-generated by gapic-generator-ruby. DO NOT EDIT! require "google/cloud/dataplex/v1/dataplex_service/rest" +require "google/cloud/dataplex/v1/business_glossary_service/rest" require "google/cloud/dataplex/v1/catalog_service/rest" require "google/cloud/dataplex/v1/cmek_service/rest" require "google/cloud/dataplex/v1/content_service/rest" diff --git a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/version.rb b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/version.rb index ea60b1e12a14..50484bb3c6bf 100644 --- a/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/version.rb +++ b/google-cloud-dataplex-v1/lib/google/cloud/dataplex/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dataplex module V1 - VERSION = "2.5.0" + VERSION = "2.6.0" end end end diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/analyze.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/analyze.rb index 59d22e8987d3..40a16c869b0f 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/analyze.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/analyze.rb @@ -99,7 +99,7 @@ class ComputeResources # Software Runtime Configuration to run Analyze. # @!attribute [rw] image_version # @return [::String] - # Required. Dataplex Image version. + # Required. Dataplex Universal Catalog Image version. # @!attribute [rw] java_libraries # @return [::Array<::String>] # Optional. List of Java jars to be included in the runtime environment. diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/business_glossary.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/business_glossary.rb new file mode 100644 index 000000000000..0603c334e103 --- /dev/null +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/business_glossary.rb @@ -0,0 +1,531 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module Dataplex + module V1 + # A Glossary represents a collection of GlossaryCategories and GlossaryTerms + # defined by the user. Glossary is a top level resource and is the Google Cloud + # parent resource of all the GlossaryCategories and GlossaryTerms within it. + # @!attribute [r] name + # @return [::String] + # Output only. Identifier. The resource name of the Glossary. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @!attribute [r] uid + # @return [::String] + # Output only. System generated unique id for the Glossary. This ID will be + # different if the Glossary is deleted and re-created with the + # same name. + # @!attribute [rw] display_name + # @return [::String] + # Optional. User friendly display name of the Glossary. This is user-mutable. + # This will be same as the GlossaryId, if not specified. + # @!attribute [rw] description + # @return [::String] + # Optional. The user-mutable description of the Glossary. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the Glossary was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the Glossary was last updated. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. User-defined labels for the Glossary. + # @!attribute [r] term_count + # @return [::Integer] + # Output only. The number of GlossaryTerms in the Glossary. + # @!attribute [r] category_count + # @return [::Integer] + # Output only. The number of GlossaryCategories in the Glossary. + # @!attribute [rw] etag + # @return [::String] + # Optional. Needed for resource freshness validation. + # 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. + class Glossary + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # A GlossaryCategory represents a collection of GlossaryCategories and + # GlossaryTerms within a Glossary that are related to each other. + # @!attribute [r] name + # @return [::String] + # Output only. Identifier. The resource name of the GlossaryCategory. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # @!attribute [r] uid + # @return [::String] + # Output only. System generated unique id for the GlossaryCategory. This ID + # will be different if the GlossaryCategory is deleted and re-created with + # the same name. + # @!attribute [rw] display_name + # @return [::String] + # Optional. User friendly display name of the GlossaryCategory. This is + # user-mutable. This will be same as the GlossaryCategoryId, if not + # specified. + # @!attribute [rw] description + # @return [::String] + # Optional. The user-mutable description of the GlossaryCategory. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the GlossaryCategory was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the GlossaryCategory was last updated. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. User-defined labels for the GlossaryCategory. + # @!attribute [rw] parent + # @return [::String] + # Required. The immediate parent of the GlossaryCategory in the + # resource-hierarchy. It can either be a Glossary or a GlossaryCategory. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # OR + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + class GlossaryCategory + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # GlossaryTerms are the core of Glossary. + # A GlossaryTerm holds a rich text description that can be attached to Entries + # or specific columns to enrich them. + # @!attribute [r] name + # @return [::String] + # Output only. Identifier. The resource name of the GlossaryTerm. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # @!attribute [r] uid + # @return [::String] + # Output only. System generated unique id for the GlossaryTerm. This ID will + # be different if the GlossaryTerm is deleted and re-created with the same + # name. + # @!attribute [rw] display_name + # @return [::String] + # Optional. User friendly display name of the GlossaryTerm. This is + # user-mutable. This will be same as the GlossaryTermId, if not specified. + # @!attribute [rw] description + # @return [::String] + # Optional. The user-mutable description of the GlossaryTerm. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the GlossaryTerm was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time at which the GlossaryTerm was last updated. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. User-defined labels for the GlossaryTerm. + # @!attribute [rw] parent + # @return [::String] + # Required. The immediate parent of the GlossaryTerm in the + # resource-hierarchy. It can either be a Glossary or a GlossaryCategory. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # OR + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + class GlossaryTerm + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Create Glossary Request + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource where this Glossary will be created. + # Format: projects/\\{project_id_or_number}/locations/\\{location_id} + # where `location_id` refers to a Google Cloud region. + # @!attribute [rw] glossary_id + # @return [::String] + # Required. Glossary ID: Glossary identifier. + # @!attribute [rw] glossary + # @return [::Google::Cloud::Dataplex::V1::Glossary] + # Required. The Glossary to create. + # @!attribute [rw] validate_only + # @return [::Boolean] + # Optional. Validates the request without actually creating the Glossary. + # Default: false. + class CreateGlossaryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Update Glossary Request + # @!attribute [rw] glossary + # @return [::Google::Cloud::Dataplex::V1::Glossary] + # Required. The Glossary to update. + # The Glossary's `name` field is used to identify the Glossary to update. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Required. The list of fields to update. + # @!attribute [rw] validate_only + # @return [::Boolean] + # Optional. Validates the request without actually updating the Glossary. + # Default: false. + class UpdateGlossaryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Delete Glossary Request + # @!attribute [rw] name + # @return [::String] + # Required. The name of the Glossary to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # @!attribute [rw] etag + # @return [::String] + # Optional. The etag of the Glossary. + # If this is provided, it must match the server's etag. + # If the etag is provided and does not match the server-computed etag, + # the request must fail with a ABORTED error code. + class DeleteGlossaryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Get Glossary Request + # @!attribute [rw] name + # @return [::String] + # Required. The name of the Glossary to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + class GetGlossaryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # List Glossaries Request + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which has this collection of Glossaries. + # Format: projects/\\{project_id_or_number}/locations/\\{location_id} + # where `location_id` refers to a Google Cloud region. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of Glossaries to return. The service may + # return fewer than this value. If unspecified, at most 50 Glossaries will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListGlossaries` call. + # Provide this to retrieve the subsequent page. + # When paginating, all other parameters provided to `ListGlossaries` must + # match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. Filter expression that filters Glossaries listed in the response. + # Filters on proto fields of Glossary are supported. + # Examples of using a filter are: + # - `display_name="my-glossary"` + # - `categoryCount=1` + # - `termCount=0` + # @!attribute [rw] order_by + # @return [::String] + # Optional. Order by expression that orders Glossaries listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + class ListGlossariesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # List Glossaries Response + # @!attribute [rw] glossaries + # @return [::Array<::Google::Cloud::Dataplex::V1::Glossary>] + # Lists the Glossaries in the specified parent. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + # @!attribute [rw] unreachable_locations + # @return [::Array<::String>] + # Locations that the service couldn't reach. + class ListGlossariesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Creates a new GlossaryCategory under the specified Glossary. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource where this GlossaryCategory will be created. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `locationId` refers to a Google Cloud region. + # @!attribute [rw] category_id + # @return [::String] + # Required. GlossaryCategory identifier. + # @!attribute [rw] category + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # Required. The GlossaryCategory to create. + class CreateGlossaryCategoryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Update GlossaryCategory Request + # @!attribute [rw] category + # @return [::Google::Cloud::Dataplex::V1::GlossaryCategory] + # Required. The GlossaryCategory to update. + # The GlossaryCategory's `name` field is used to identify the + # GlossaryCategory to update. Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Required. The list of fields to update. + class UpdateGlossaryCategoryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Delete GlossaryCategory Request + # @!attribute [rw] name + # @return [::String] + # Required. The name of the GlossaryCategory to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + class DeleteGlossaryCategoryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Get GlossaryCategory Request + # @!attribute [rw] name + # @return [::String] + # Required. The name of the GlossaryCategory to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/categories/\\{category_id} + class GetGlossaryCategoryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # List GlossaryCategories Request + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which has this collection of GlossaryCategories. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # Location is the Google Cloud region. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of GlossaryCategories to return. The service + # may return fewer than this value. If unspecified, at most 50 + # GlossaryCategories will be returned. The maximum value is 1000; values + # above 1000 will be coerced to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListGlossaryCategories` + # call. Provide this to retrieve the subsequent page. When paginating, all + # other parameters provided to `ListGlossaryCategories` must match the call + # that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. Filter expression that filters GlossaryCategories listed in the + # response. Filters are supported on the following fields: + # - immediate_parent + # + # Examples of using a filter are: + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}"` + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}/categories/{category_id}"` + # + # This will only return the GlossaryCategories that are directly nested + # under the specified parent. + # @!attribute [rw] order_by + # @return [::String] + # Optional. Order by expression that orders GlossaryCategories listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + class ListGlossaryCategoriesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # List GlossaryCategories Response + # @!attribute [rw] categories + # @return [::Array<::Google::Cloud::Dataplex::V1::GlossaryCategory>] + # Lists the GlossaryCategories in the specified parent. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + # @!attribute [rw] unreachable_locations + # @return [::Array<::String>] + # Locations that the service couldn't reach. + class ListGlossaryCategoriesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Creates a new GlossaryTerm under the specified Glossary. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent resource where the GlossaryTerm will be created. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `location_id` refers to a Google Cloud region. + # @!attribute [rw] term_id + # @return [::String] + # Required. GlossaryTerm identifier. + # @!attribute [rw] term + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # Required. The GlossaryTerm to create. + class CreateGlossaryTermRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Update GlossaryTerm Request + # @!attribute [rw] term + # @return [::Google::Cloud::Dataplex::V1::GlossaryTerm] + # Required. The GlossaryTerm to update. + # The GlossaryTerm's `name` field is used to identify the GlossaryTerm to + # update. Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Required. The list of fields to update. + class UpdateGlossaryTermRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Delete GlossaryTerm Request + # @!attribute [rw] name + # @return [::String] + # Required. The name of the GlossaryTerm to delete. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + class DeleteGlossaryTermRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Get GlossaryTerm Request + # @!attribute [rw] name + # @return [::String] + # Required. The name of the GlossaryTerm to retrieve. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id}/terms/\\{term_id} + class GetGlossaryTermRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # List GlossaryTerms Request + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which has this collection of GlossaryTerms. + # Format: + # projects/\\{project_id_or_number}/locations/\\{location_id}/glossaries/\\{glossary_id} + # where `location_id` refers to a Google Cloud region. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of GlossaryTerms to return. The service may + # return fewer than this value. If unspecified, at most 50 GlossaryTerms will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListGlossaryTerms` call. + # Provide this to retrieve the subsequent page. + # When paginating, all other parameters provided to `ListGlossaryTerms` must + # match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. Filter expression that filters GlossaryTerms listed in the + # response. Filters are supported on the following fields: + # - immediate_parent + # + # Examples of using a filter are: + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}"` + # - + # `immediate_parent="projects/{project_id_or_number}/locations/{location_id}/glossaries/{glossary_id}/categories/{category_id}"` + # + # This will only return the GlossaryTerms that are directly nested under the + # specified parent. + # @!attribute [rw] order_by + # @return [::String] + # Optional. Order by expression that orders GlossaryTerms listed in the + # response. Order by fields are: `name` or `create_time` for the result. If + # not specified, the ordering is undefined. + class ListGlossaryTermsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # List GlossaryTerms Response + # @!attribute [rw] terms + # @return [::Array<::Google::Cloud::Dataplex::V1::GlossaryTerm>] + # Lists the GlossaryTerms in the specified parent. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + # @!attribute [rw] unreachable_locations + # @return [::Array<::String>] + # Locations that the service couldn't reach. + class ListGlossaryTermsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/catalog.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/catalog.rb index e55272de8482..69f6cea52e75 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/catalog.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/catalog.rb @@ -65,12 +65,12 @@ class AspectType include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Autorization for an AspectType. + # Authorization for an AspectType. # @!attribute [rw] alternate_use_permission # @return [::String] # Immutable. The IAM permission grantable on the EntryGroup to allow access - # to instantiate Aspects of Dataplex owned AspectTypes, only settable for - # Dataplex owned Types. + # to instantiate Aspects of Dataplex Universal Catalog owned AspectTypes, + # only settable for Dataplex Universal Catalog owned Types. class Authorization include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -95,8 +95,8 @@ class Authorization # Primitive types: # # * string - # * integer - # * boolean + # * int + # * bool # * double # * datetime. Must be of the format RFC3339 UTC "Zulu" (Examples: # "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"). @@ -330,8 +330,8 @@ class AspectInfo # @!attribute [rw] alternate_use_permission # @return [::String] # Immutable. The IAM permission grantable on the Entry Group to allow - # access to instantiate Entries of Dataplex owned Entry Types, only - # settable for Dataplex owned Types. + # access to instantiate Entries of Dataplex Universal Catalog owned Entry + # Types, only settable for Dataplex Universal Catalog owned Types. class Authorization include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -402,10 +402,12 @@ class AspectSource # `projects/{project_id_or_number}/locations/{location_id}/entryTypes/{entry_type_id}`. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] - # Output only. The time when the entry was created in Dataplex. + # Output only. The time when the entry was created in Dataplex Universal + # Catalog. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] - # Output only. The time when the entry was last updated in Dataplex. + # Output only. The time when the entry was last updated in Dataplex Universal + # Catalog. # @!attribute [rw] aspects # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Dataplex::V1::Aspect}] # Optional. The aspects that are attached to the entry. Depending on how the @@ -521,7 +523,7 @@ class LabelsEntry # @return [::String] # Required. The resource name of the entryGroup, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @!attribute [rw] entry_group_id # @return [::String] # Required. EntryGroup identifier. @@ -660,7 +662,7 @@ class UpdateEntryTypeRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # Delele EntryType Request. + # Delete EntryType Request. # @!attribute [rw] name # @return [::String] # Required. The resource name of the EntryType: @@ -774,7 +776,7 @@ class UpdateAspectTypeRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # Delele AspectType Request. + # Delete AspectType Request. # @!attribute [rw] name # @return [::String] # Required. The resource name of the AspectType: @@ -1049,11 +1051,11 @@ class LookupEntryRequest # @!attribute [rw] name # @return [::String] # Required. The project to which the request should be attributed in the - # following form: `projects/{project}/locations/{location}`. + # following form: `projects/{project}/locations/global`. # @!attribute [rw] query # @return [::String] # Required. The query against which entries in scope should be matched. - # The query syntax is defined in [Search syntax for Dataplex + # The query syntax is defined in [Search syntax for Dataplex Universal # Catalog](https://cloud.google.com/dataplex/docs/search-syntax). # @!attribute [rw] page_size # @return [::Integer] @@ -1069,7 +1071,7 @@ class LookupEntryRequest # Optional. Specifies the ordering of results. # Supported values are: # - # * `relevance` (default) + # * `relevance` # * `last_modified_timestamp` # * `last_modified_timestamp asc` # @!attribute [rw] scope @@ -1146,17 +1148,22 @@ class SearchEntriesResponse # @!attribute [rw] entry # @return [::Google::Cloud::Dataplex::V1::Entry] # Information about an entry and its attached aspects. + # @!attribute [rw] entry_link + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # Information about the entry link. User should provide either one of the + # entry or entry_link. While providing entry_link, user should not + # provide update_mask and aspect_keys. # @!attribute [rw] update_mask # @return [::Google::Protobuf::FieldMask] # The fields to update, in paths that are relative to the `Entry` resource. # Separate each field with a comma. # - # In `FULL` entry sync mode, Dataplex includes the paths of all of the fields - # for an entry that can be modified, including aspects. This means that - # Dataplex replaces the existing entry with the entry in the metadata import - # file. All modifiable fields are updated, regardless of the fields that are - # listed in the update mask, and regardless of whether a field is present - # in the `entry` object. + # In `FULL` entry sync mode, Dataplex Universal Catalog includes the paths of + # all of the fields for an entry that can be modified, including aspects. + # This means that Dataplex Universal Catalog replaces the existing entry with + # the entry in the metadata import file. All modifiable fields are updated, + # regardless of the fields that are listed in the update mask, and regardless + # of whether a field is present in the `entry` object. # # The `update_mask` field is ignored when an entry is created or re-created. # @@ -1164,10 +1171,10 @@ class SearchEntriesResponse # value to `aspects`. # # - # Dataplex also determines which entries and aspects to modify by comparing - # the values and timestamps that you provide in the metadata import file with - # the values and timestamps that exist in your project. For more information, - # see [Comparison + # Dataplex Universal Catalog also determines which entries and aspects to + # modify by comparing the values and timestamps that you provide in the + # metadata import file with the values and timestamps that exist in your + # project. For more information, see [Comparison # logic](https://cloud.google.com/dataplex/docs/import-metadata#data-modification-logic). # @!attribute [rw] aspect_keys # @return [::Array<::String>] @@ -1187,8 +1194,8 @@ class SearchEntriesResponse # # In `FULL` entry sync mode, if you leave this field empty, it is treated as # specifying exactly those aspects that are present within the specified - # entry. Dataplex implicitly adds the keys for all of the required aspects of - # an entry. + # entry. Dataplex Universal Catalog implicitly adds the keys for all of the + # required aspects of an entry. class ImportItem include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1356,6 +1363,17 @@ class MetadataJob # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The time when the status was updated. + # @!attribute [r] deleted_entry_links + # @return [::Integer] + # Output only. The total number of entry links that were successfully + # deleted. + # @!attribute [r] created_entry_links + # @return [::Integer] + # Output only. The total number of entry links that were successfully + # created. + # @!attribute [r] unchanged_entry_links + # @return [::Integer] + # Output only. The total number of entry links that were left unchanged. class ImportJobResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1474,6 +1492,42 @@ class ImportJobSpec # # The location of an aspect type must either match the location of the # job, or the aspect type must be global. + # @!attribute [rw] glossaries + # @return [::Array<::String>] + # Optional. The glossaries that are in scope for the import job, + # specified as relative resource names in the format + # `projects/{project_number_or_id}/locations/{location_id}/glossaries/{glossary_id}`. + # + # While importing Business Glossary entries, the user must + # provide glossaries. While importing entries, the user does not have to + # provide glossaries. If the metadata import file attempts to modify + # Business Glossary entries whose glossary isn't included in this list, + # the import job will skip those entries. + # + # The location of a glossary must either match the location of the + # job, or the glossary must be global. + # @!attribute [rw] entry_link_types + # @return [::Array<::String>] + # Optional. The entry link types that are in scope for the import job, + # specified as relative resource names in the format + # `projects/{project_number_or_id}/locations/{location_id}/entryLinkTypes/{entry_link_type_id}`. + # The job modifies only the entryLinks that belong to these entry link + # types. + # + # If the metadata import file attempts to create or delete an entry link + # whose entry link type isn't included in this list, the import job will + # skip those entry links. + # @!attribute [rw] referenced_entry_scopes + # @return [::Array<::String>] + # Optional. Defines the scope of entries that can be referenced in the + # entry links. + # + # Currently, projects are supported as valid scopes. + # Format: `projects/{project_number_or_id}` + # + # If the metadata import file attempts to create an entry link + # which references an entry that is not in the scope, the import job will + # skip that entry link. class ImportJobScope include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1487,9 +1541,9 @@ module SyncMode SYNC_MODE_UNSPECIFIED = 0 # All resources in the job's scope are modified. If a resource exists in - # Dataplex but isn't included in the metadata import file, the resource - # is deleted when you run the metadata job. Use this mode to perform a - # full sync of the set of entries in the job scope. + # Dataplex Universal Catalog but isn't included in the metadata import + # file, the resource is deleted when you run the metadata job. Use this + # mode to perform a full sync of the set of entries in the job scope. # # This sync mode is supported for entries. FULL = 1 @@ -1543,9 +1597,9 @@ module LogLevel # metadata to, in the format `gs://{bucket}/`. You can optionally specify a # custom prefix after the bucket name, in the format # `gs://{bucket}/{prefix}/`. The maximum length of the custom prefix is 128 - # characters. Dataplex constructs the object path for the exported files by - # using the bucket name and prefix that you provide, followed by a - # system-generated path. + # characters. Dataplex Universal Catalog constructs the object path for the + # exported files by using the bucket name and prefix that you provide, + # followed by a system-generated path. # # The bucket must be in the same VPC Service Controls perimeter as the job. class ExportJobSpec @@ -1677,6 +1731,111 @@ module Type end end + # EntryLink represents a link between two Entries. + # @!attribute [r] name + # @return [::String] + # Output only. Immutable. Identifier. The relative resource name of the Entry + # Link, of the form: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}` + # @!attribute [rw] entry_link_type + # @return [::String] + # Required. Immutable. Relative resource name of the Entry Link Type used to + # create this Entry Link. For example: + # + # - Entry link between synonym terms in a glossary: + # `projects/dataplex-types/locations/global/entryLinkTypes/synonym` + # - Entry link between related terms in a glossary: + # `projects/dataplex-types/locations/global/entryLinkTypes/related` + # - Entry link between glossary terms and data assets: + # `projects/dataplex-types/locations/global/entryLinkTypes/definition` + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time when the Entry Link was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time when the Entry Link was last updated. + # @!attribute [rw] entry_references + # @return [::Array<::Google::Cloud::Dataplex::V1::EntryLink::EntryReference>] + # Required. Specifies the Entries referenced in the Entry Link. There should + # be exactly two entry references. + class EntryLink + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Reference to the Entry that is linked through the Entry Link. + # @!attribute [rw] name + # @return [::String] + # Required. Immutable. The relative resource name of the referenced Entry, + # of the form: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}` + # @!attribute [rw] path + # @return [::String] + # Immutable. The path in the Entry that is referenced in the Entry Link. + # Empty path denotes that the Entry itself is referenced in the Entry + # Link. + # @!attribute [rw] type + # @return [::Google::Cloud::Dataplex::V1::EntryLink::EntryReference::Type] + # Required. Immutable. The reference type of the Entry. + class EntryReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Reference type of the Entry. + module Type + # Unspecified reference type. Implies that the Entry is referenced + # in a non-directional Entry Link. + UNSPECIFIED = 0 + + # The Entry is referenced as the source of the directional Entry Link. + SOURCE = 2 + + # The Entry is referenced as the target of the directional Entry Link. + TARGET = 3 + end + end + end + + # Request message for CreateEntryLink. + # @!attribute [rw] parent + # @return [::String] + # Required. The resource name of the parent Entry Group: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}`. + # @!attribute [rw] entry_link_id + # @return [::String] + # Required. Entry Link identifier + # * Must contain only lowercase letters, numbers and hyphens. + # * Must start with a letter. + # * Must be between 1-63 characters. + # * Must end with a number or a letter. + # * Must be unique within the EntryGroup. + # @!attribute [rw] entry_link + # @return [::Google::Cloud::Dataplex::V1::EntryLink] + # Required. Entry Link resource. + class CreateEntryLinkRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for DeleteEntryLink. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the Entry Link: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}`. + class DeleteEntryLinkRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for GetEntryLink. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the Entry Link: + # `projects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entryLinks/{entry_link_id}`. + class GetEntryLinkRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # View for controlling which parts of an entry are to be returned. module EntryView # Unspecified EntryView. Defaults to FULL. diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_discovery.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_discovery.rb index 0b7349800027..611d70e19a9f 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_discovery.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_discovery.rb @@ -65,6 +65,12 @@ class DataDiscoverySpec # # For supported values, refer to # https://cloud.google.com/bigquery/docs/locations#supported_locations. + # @!attribute [rw] project + # @return [::String] + # Optional. The project of the BigQuery dataset to publish BigLake external + # or non-BigLake external tables to. If not specified, the project of the + # Cloud Storage bucket will be used. The format is + # "projects/\\{project_id_or_number}". class BigQueryPublishingConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_profile.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_profile.rb index 841ff060d9ff..f733443a06a1 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_profile.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_profile.rb @@ -34,10 +34,8 @@ module V1 # @!attribute [rw] row_filter # @return [::String] # Optional. A filter applied to all rows in a single DataScan job. - # The filter needs to be a valid SQL expression for a [WHERE clause in - # GoogleSQL - # syntax](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#where_clause). - # + # The filter needs to be a valid SQL expression for a WHERE clause in + # BigQuery standard SQL syntax. # Example: col1 >= 0 AND col2 < 10 # @!attribute [rw] post_scan_actions # @return [::Google::Cloud::Dataplex::V1::DataProfileSpec::PostScanActions] @@ -73,8 +71,6 @@ class PostScanActions # Optional. The BigQuery table to export DataProfileScan results to. # Format: # //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID - # or - # projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID class BigQueryExport include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -99,15 +95,15 @@ class SelectedFields # DataProfileResult defines the output of DataProfileScan. Each field of the # table will have field type specific profile result. - # @!attribute [rw] row_count + # @!attribute [r] row_count # @return [::Integer] - # The count of rows scanned. - # @!attribute [rw] profile + # Output only. The count of rows scanned. + # @!attribute [r] profile # @return [::Google::Cloud::Dataplex::V1::DataProfileResult::Profile] - # The profile information per field. - # @!attribute [rw] scanned_data + # Output only. The profile information per field. + # @!attribute [r] scanned_data # @return [::Google::Cloud::Dataplex::V1::ScannedData] - # The data scanned for this result. + # Output only. The data scanned for this result. # @!attribute [r] post_scan_actions_result # @return [::Google::Cloud::Dataplex::V1::DataProfileResult::PostScanActionsResult] # Output only. The result of post scan actions. @@ -116,54 +112,58 @@ class DataProfileResult extend ::Google::Protobuf::MessageExts::ClassMethods # Contains name, type, mode and field type specific profile information. - # @!attribute [rw] fields + # @!attribute [r] fields # @return [::Array<::Google::Cloud::Dataplex::V1::DataProfileResult::Profile::Field>] - # List of fields with structural and profile information for each field. + # Output only. List of fields with structural and profile information for + # each field. class Profile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A field within a table. - # @!attribute [rw] name + # @!attribute [r] name # @return [::String] - # The name of the field. - # @!attribute [rw] type + # Output only. The name of the field. + # @!attribute [r] type # @return [::String] - # The data type retrieved from the schema of the data source. For - # instance, for a BigQuery native table, it is the [BigQuery Table + # Output only. The data type retrieved from the schema of the data + # source. For instance, for a BigQuery native table, it is the [BigQuery + # Table # Schema](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#tablefieldschema). - # For a Dataplex Entity, it is the [Entity + # For a Dataplex Universal Catalog Entity, it is the [Entity # Schema](https://cloud.google.com/dataplex/docs/reference/rpc/google.cloud.dataplex.v1#type_3). - # @!attribute [rw] mode + # @!attribute [r] mode # @return [::String] - # The mode of the field. Possible values include: + # Output only. The mode of the field. Possible values include: # # * REQUIRED, if it is a required field. # * NULLABLE, if it is an optional field. # * REPEATED, if it is a repeated field. - # @!attribute [rw] profile + # @!attribute [r] profile # @return [::Google::Cloud::Dataplex::V1::DataProfileResult::Profile::Field::ProfileInfo] - # Profile information for the corresponding field. + # Output only. Profile information for the corresponding field. class Field include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The profile information for each field type. - # @!attribute [rw] null_ratio + # @!attribute [r] null_ratio # @return [::Float] - # Ratio of rows with null value against total scanned rows. - # @!attribute [rw] distinct_ratio + # Output only. Ratio of rows with null value against total scanned + # rows. + # @!attribute [r] distinct_ratio # @return [::Float] - # Ratio of rows with distinct values against total scanned rows. - # Not available for complex non-groupable field type, including RECORD, - # ARRAY, GEOGRAPHY, and JSON, as well as fields with REPEATABLE mode. - # @!attribute [rw] top_n_values + # Output only. Ratio of rows with distinct values against total scanned + # rows. Not available for complex non-groupable field type, including + # RECORD, ARRAY, GEOGRAPHY, and JSON, as well as fields with REPEATABLE + # mode. + # @!attribute [r] top_n_values # @return [::Array<::Google::Cloud::Dataplex::V1::DataProfileResult::Profile::Field::ProfileInfo::TopNValue>] - # The list of top N non-null values, frequency and ratio with which - # they occur in the scanned data. N is 10 or equal to the number of - # distinct values in the field, whichever is smaller. Not available for - # complex non-groupable field type, including RECORD, ARRAY, GEOGRAPHY, - # and JSON, as well as fields with REPEATABLE mode. + # Output only. The list of top N non-null values, frequency and ratio + # with which they occur in the scanned data. N is 10 or equal to the + # number of distinct values in the field, whichever is smaller. Not + # available for complex non-groupable field type, including RECORD, + # ARRAY, GEOGRAPHY, and JSON, as well as fields with REPEATABLE mode. # @!attribute [rw] string_profile # @return [::Google::Cloud::Dataplex::V1::DataProfileResult::Profile::Field::ProfileInfo::StringFieldInfo] # String type field information. @@ -184,102 +184,103 @@ class ProfileInfo extend ::Google::Protobuf::MessageExts::ClassMethods # The profile information for a string type field. - # @!attribute [rw] min_length + # @!attribute [r] min_length # @return [::Integer] - # Minimum length of non-null values in the scanned data. - # @!attribute [rw] max_length + # Output only. Minimum length of non-null values in the scanned data. + # @!attribute [r] max_length # @return [::Integer] - # Maximum length of non-null values in the scanned data. - # @!attribute [rw] average_length + # Output only. Maximum length of non-null values in the scanned data. + # @!attribute [r] average_length # @return [::Float] - # Average length of non-null values in the scanned data. + # Output only. Average length of non-null values in the scanned data. class StringFieldInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The profile information for an integer type field. - # @!attribute [rw] average + # @!attribute [r] average # @return [::Float] - # Average of non-null values in the scanned data. NaN, if the field - # has a NaN. - # @!attribute [rw] standard_deviation + # Output only. Average of non-null values in the scanned data. NaN, + # if the field has a NaN. + # @!attribute [r] standard_deviation # @return [::Float] - # Standard deviation of non-null values in the scanned data. NaN, if - # the field has a NaN. - # @!attribute [rw] min + # Output only. Standard deviation of non-null values in the scanned + # data. NaN, if the field has a NaN. + # @!attribute [r] min # @return [::Integer] - # Minimum of non-null values in the scanned data. NaN, if the field - # has a NaN. - # @!attribute [rw] quartiles + # Output only. Minimum of non-null values in the scanned data. NaN, + # if the field has a NaN. + # @!attribute [r] quartiles # @return [::Array<::Integer>] - # A quartile divides the number of data points into four parts, or - # quarters, of more-or-less equal size. Three main quartiles used - # are: The first quartile (Q1) splits off the lowest 25% of data from - # the highest 75%. It is also known as the lower or 25th empirical - # quartile, as 25% of the data is below this point. The second - # quartile (Q2) is the median of a data set. So, 50% of the data lies - # below this point. The third quartile (Q3) splits off the highest - # 25% of data from the lowest 75%. It is known as the upper or 75th - # empirical quartile, as 75% of the data lies below this point. - # Here, the quartiles is provided as an ordered list of approximate - # quartile values for the scanned data, occurring in order Q1, - # median, Q3. - # @!attribute [rw] max + # Output only. A quartile divides the number of data points into four + # parts, or quarters, of more-or-less equal size. Three main + # quartiles used are: The first quartile (Q1) splits off the lowest + # 25% of data from the highest 75%. It is also known as the lower or + # 25th empirical quartile, as 25% of the data is below this point. + # The second quartile (Q2) is the median of a data set. So, 50% of + # the data lies below this point. The third quartile (Q3) splits off + # the highest 25% of data from the lowest 75%. It is known as the + # upper or 75th empirical quartile, as 75% of the data lies below + # this point. Here, the quartiles is provided as an ordered list of + # approximate quartile values for the scanned data, occurring in + # order Q1, median, Q3. + # @!attribute [r] max # @return [::Integer] - # Maximum of non-null values in the scanned data. NaN, if the field - # has a NaN. + # Output only. Maximum of non-null values in the scanned data. NaN, + # if the field has a NaN. class IntegerFieldInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The profile information for a double type field. - # @!attribute [rw] average + # @!attribute [r] average # @return [::Float] - # Average of non-null values in the scanned data. NaN, if the field - # has a NaN. - # @!attribute [rw] standard_deviation + # Output only. Average of non-null values in the scanned data. NaN, + # if the field has a NaN. + # @!attribute [r] standard_deviation # @return [::Float] - # Standard deviation of non-null values in the scanned data. NaN, if - # the field has a NaN. - # @!attribute [rw] min + # Output only. Standard deviation of non-null values in the scanned + # data. NaN, if the field has a NaN. + # @!attribute [r] min # @return [::Float] - # Minimum of non-null values in the scanned data. NaN, if the field - # has a NaN. - # @!attribute [rw] quartiles + # Output only. Minimum of non-null values in the scanned data. NaN, + # if the field has a NaN. + # @!attribute [r] quartiles # @return [::Array<::Float>] - # A quartile divides the number of data points into four parts, or - # quarters, of more-or-less equal size. Three main quartiles used - # are: The first quartile (Q1) splits off the lowest 25% of data from - # the highest 75%. It is also known as the lower or 25th empirical - # quartile, as 25% of the data is below this point. The second - # quartile (Q2) is the median of a data set. So, 50% of the data lies - # below this point. The third quartile (Q3) splits off the highest - # 25% of data from the lowest 75%. It is known as the upper or 75th - # empirical quartile, as 75% of the data lies below this point. - # Here, the quartiles is provided as an ordered list of quartile - # values for the scanned data, occurring in order Q1, median, Q3. - # @!attribute [rw] max + # Output only. A quartile divides the number of data points into four + # parts, or quarters, of more-or-less equal size. Three main + # quartiles used are: The first quartile (Q1) splits off the lowest + # 25% of data from the highest 75%. It is also known as the lower or + # 25th empirical quartile, as 25% of the data is below this point. + # The second quartile (Q2) is the median of a data set. So, 50% of + # the data lies below this point. The third quartile (Q3) splits off + # the highest 25% of data from the lowest 75%. It is known as the + # upper or 75th empirical quartile, as 75% of the data lies below + # this point. Here, the quartiles is provided as an ordered list of + # quartile values for the scanned data, occurring in order Q1, + # median, Q3. + # @!attribute [r] max # @return [::Float] - # Maximum of non-null values in the scanned data. NaN, if the field - # has a NaN. + # Output only. Maximum of non-null values in the scanned data. NaN, + # if the field has a NaN. class DoubleFieldInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Top N non-null values in the scanned data. - # @!attribute [rw] value + # @!attribute [r] value # @return [::String] - # String value of a top N non-null value. - # @!attribute [rw] count + # Output only. String value of a top N non-null value. + # @!attribute [r] count # @return [::Integer] - # Count of the corresponding value in the scanned data. - # @!attribute [rw] ratio + # Output only. Count of the corresponding value in the scanned data. + # @!attribute [r] ratio # @return [::Float] - # Ratio of the corresponding value in the field against the total - # number of rows in the scanned data. + # Output only. Ratio of the corresponding value in the field against + # the total number of rows in the scanned data. class TopNValue include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_quality.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_quality.rb index edf15bfee534..2dac82ea5462 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_quality.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_quality.rb @@ -46,6 +46,10 @@ module V1 # @!attribute [rw] post_scan_actions # @return [::Google::Cloud::Dataplex::V1::DataQualitySpec::PostScanActions] # Optional. Actions to take upon job completion. + # @!attribute [rw] catalog_publishing_enabled + # @return [::Boolean] + # Optional. If set, the latest DataScan job result will be published as + # Dataplex Universal Catalog metadata. class DataQualitySpec include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -164,6 +168,10 @@ class NotificationReport # @!attribute [r] post_scan_actions_result # @return [::Google::Cloud::Dataplex::V1::DataQualityResult::PostScanActionsResult] # Output only. The result of post scan actions. + # @!attribute [r] catalog_publishing_status + # @return [::Google::Cloud::Dataplex::V1::DataScanCatalogPublishingStatus] + # Output only. The status of publishing the data scan as Dataplex Universal + # Catalog metadata. class DataQualityResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -280,9 +288,9 @@ class DataQualityDimensionResult # A dimension captures data quality intent about a defined subset of the rules # specified. - # @!attribute [rw] name + # @!attribute [r] name # @return [::String] - # Optional. The dimension name a rule belongs to. Custom dimension name is + # Output only. The dimension name a rule belongs to. Custom dimension name is # supported with all uppercase letters and maximum length of 30 characters. class DataQualityDimension include ::Google::Protobuf::MessageExts @@ -360,9 +368,8 @@ class DataQualityDimension # @!attribute [rw] dimension # @return [::String] # Required. The dimension a rule belongs to. Results are also aggregated at - # the dimension level. Supported dimensions are **["COMPLETENESS", - # "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS", "FRESHNESS", - # "VOLUME"]** + # the dimension level. Custom dimension name is supported with all uppercase + # letters and maximum length of 30 characters. # @!attribute [rw] threshold # @return [::Float] # Optional. The minimum ratio of **passing_rows / total_rows** required to @@ -565,6 +572,12 @@ class SqlAssertion # # The score ranges between between [0, 100] (up to two decimal # points). + # @!attribute [r] passed + # @return [::Boolean] + # Output only. Whether the column passed or failed. + # @!attribute [r] dimensions + # @return [::Array<::Google::Cloud::Dataplex::V1::DataQualityDimensionResult>] + # Output only. The dimension-level results for this column. class DataQualityColumnResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_taxonomy.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_taxonomy.rb index 8e0e12467e89..726a35003981 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_taxonomy.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/data_taxonomy.rb @@ -283,7 +283,7 @@ class GetDataTaxonomyRequest # @return [::String] # Required. The resource name of the DataTaxonomy location, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @!attribute [rw] page_size # @return [::Integer] # Optional. Maximum number of DataTaxonomies to return. The service may diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans.rb index 8118fc11b0ac..83d3658432d2 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans.rb @@ -27,7 +27,7 @@ module V1 # Required. The resource name of the parent location: # `projects/{project}/locations/{location_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [rw] data_scan # @return [::Google::Cloud::Dataplex::V1::DataScan] # Required. DataScan resource. @@ -73,7 +73,7 @@ class UpdateDataScanRequest # Required. The resource name of the dataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [rw] force # @return [::Boolean] # Optional. If set to true, any child resources of this data scan will also @@ -90,7 +90,7 @@ class DeleteDataScanRequest # Required. The resource name of the dataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [rw] view # @return [::Google::Cloud::Dataplex::V1::GetDataScanRequest::DataScanView] # Optional. Select the DataScan view to return. Defaults to `BASIC`. @@ -117,7 +117,7 @@ module DataScanView # Required. The resource name of the parent location: # `projects/{project}/locations/{location_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [rw] page_size # @return [::Integer] # Optional. Maximum number of dataScans to return. The service may return @@ -163,7 +163,7 @@ class ListDataScansResponse # Required. The resource name of the DataScan: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}`. # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # # Only **OnDemand** data scans are allowed. class RunDataScanRequest @@ -186,7 +186,7 @@ class RunDataScanResponse # Required. The resource name of the DataScanJob: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}/jobs/{data_scan_job_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [rw] view # @return [::Google::Cloud::Dataplex::V1::GetDataScanJobRequest::DataScanJobView] # Optional. Select the DataScanJob view to return. Defaults to `BASIC`. @@ -213,7 +213,7 @@ module DataScanJobView # Required. The resource name of the parent environment: # `projects/{project}/locations/{location_id}/dataScans/{data_scan_id}` # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [rw] page_size # @return [::Integer] # Optional. Maximum number of DataScanJobs to return. The service may return @@ -280,8 +280,8 @@ class GenerateDataQualityRulesRequest # Response details for data quality rule recommendations. # @!attribute [rw] rule # @return [::Array<::Google::Cloud::Dataplex::V1::DataQualityRule>] - # The data quality rules that Dataplex generates based on the results - # of a data profiling scan. + # The data quality rules that Dataplex Universal Catalog generates based on + # the results of a data profiling scan. class GenerateDataQualityRulesResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -308,7 +308,7 @@ class GenerateDataQualityRulesResponse # Output only. Identifier. The relative resource name of the scan, of the # form: `projects/{project}/locations/{location_id}/dataScans/{datascan_id}`, # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [r] uid # @return [::String] # Output only. System generated globally unique ID for the scan. This ID will @@ -433,7 +433,7 @@ class LabelsEntry # the form: # `projects/{project}/locations/{location_id}/dataScans/{datascan_id}/jobs/{job_id}`, # where `project` refers to a *project_id* or *project_number* and - # `location_id` refers to a GCP region. + # `location_id` refers to a Google Cloud region. # @!attribute [r] uid # @return [::String] # Output only. System generated globally unique ID for the DataScanJob. diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans_common.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans_common.rb new file mode 100644 index 000000000000..fb9d1914a035 --- /dev/null +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/datascans_common.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module Dataplex + module V1 + # The status of publishing the data scan result as Dataplex Universal Catalog + # metadata. + # @!attribute [r] state + # @return [::Google::Cloud::Dataplex::V1::DataScanCatalogPublishingStatus::State] + # Output only. Execution state for catalog publishing. + class DataScanCatalogPublishingStatus + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Execution state for the publishing. + module State + # The publishing state is unspecified. + STATE_UNSPECIFIED = 0 + + # Publish to catalog completed successfully. + SUCCEEDED = 1 + + # Publish to catalog failed. + FAILED = 2 + end + end + end + end + end +end diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/logs.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/logs.rb index 758c2738d17d..7a29126583d2 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/logs.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/logs.rb @@ -299,8 +299,8 @@ module ExecutionTrigger # The job execution trigger is unspecified. EXECUTION_TRIGGER_UNSPECIFIED = 0 - # The job was triggered by Dataplex based on trigger spec from task - # definition. + # The job was triggered by Dataplex Universal Catalog based on trigger spec + # from task definition. TASK_CONFIG = 1 # The job was triggered by the explicit call of Task API. @@ -550,6 +550,10 @@ module EventType # @!attribute [rw] post_scan_actions_result # @return [::Google::Cloud::Dataplex::V1::DataScanEvent::PostScanActionsResult] # The result of post scan actions. + # @!attribute [rw] catalog_publishing_status + # @return [::Google::Cloud::Dataplex::V1::DataScanCatalogPublishingStatus] + # The status of publishing the data scan as Dataplex Universal Catalog + # metadata. class DataScanEvent include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -733,7 +737,7 @@ module State # Data scan job was cancelled. CANCELLED = 4 - # Data scan job was createed. + # Data scan job was created. CREATED = 5 end diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/metadata.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/metadata.rb index 659fbaab36f9..13b91bb0bda7 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/metadata.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/metadata.rb @@ -407,18 +407,20 @@ class Partition # Schema information describing the structure and layout of the data. # @!attribute [rw] user_managed # @return [::Boolean] - # Required. Set to `true` if user-managed or `false` if managed by Dataplex. - # The default is `false` (managed by Dataplex). + # Required. Set to `true` if user-managed or `false` if managed by Dataplex + # Universal Catalog. The default is `false` (managed by Dataplex Universal + # Catalog). # - # - Set to `false`to enable Dataplex discovery to update the schema. + # - Set to `false`to enable Dataplex Universal Catalog discovery to update + # the schema. # including new data discovery, schema inference, and schema evolution. - # Users retain the ability to input and edit the schema. Dataplex - # treats schema input by the user as though produced - # by a previous Dataplex discovery operation, and it will - # evolve the schema and take action based on that treatment. + # Users retain the ability to input and edit the schema. Dataplex Universal + # Catalog treats schema input by the user as though produced by a previous + # Dataplex Universal Catalog discovery operation, and it will evolve the + # schema and take action based on that treatment. # # - Set to `true` to fully manage the entity - # schema. This setting guarantees that Dataplex will not + # schema. This setting guarantees that Dataplex Universal Catalog will not # change schema fields. # @!attribute [rw] fields # @return [::Array<::Google::Cloud::Dataplex::V1::Schema::SchemaField>] diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/processing.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/processing.rb index 587627888791..525c09c4089e 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/processing.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/processing.rb @@ -66,16 +66,20 @@ class Schedule # The data source for DataScan. # @!attribute [rw] entity # @return [::String] - # Immutable. The Dataplex entity that represents the data source (e.g. - # BigQuery table) for DataScan, of the form: + # Immutable. The Dataplex Universal Catalog entity that represents the data + # source (e.g. BigQuery table) for DataScan, of the form: # `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/entities/{entity_id}`. # # Note: The following fields are mutually exclusive: `entity`, `resource`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] resource # @return [::String] # Immutable. The service-qualified full resource name of the cloud resource - # for a DataScan job to scan against. The field could be: BigQuery table of - # type "TABLE" for DataProfileScan/DataQualityScan Format: + # for a DataScan job to scan against. The field could either be: Cloud + # Storage bucket for DataDiscoveryScan Format: + # //storage.googleapis.com/projects/PROJECT_ID/buckets/BUCKET_ID + # or + # BigQuery table of type "TABLE" for DataProfileScan/DataQualityScan + # Format: # //bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID # # Note: The following fields are mutually exclusive: `resource`, `entity`. If a field in that set is populated, all other fields in the set will automatically be cleared. @@ -93,16 +97,16 @@ class ScannedData extend ::Google::Protobuf::MessageExts::ClassMethods # A data range denoted by a pair of start/end values of a field. - # @!attribute [rw] field + # @!attribute [r] field # @return [::String] - # The field that contains values which monotonically increases over time - # (e.g. a timestamp column). - # @!attribute [rw] start + # Output only. The field that contains values which monotonically increases + # over time (e.g. a timestamp column). + # @!attribute [r] start # @return [::String] - # Value that marks the start of the range. - # @!attribute [rw] end + # Output only. Value that marks the start of the range. + # @!attribute [r] end # @return [::String] - # Value that marks the end of the range. + # Output only. Value that marks the end of the range. class IncrementalField include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/service.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/service.rb index 225df7171a69..cb8bbd160fb8 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/service.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/service.rb @@ -26,7 +26,7 @@ module V1 # @return [::String] # Required. The resource name of the lake location, of the form: # projects/\\{project_number}/locations/\\{location_id} - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @!attribute [rw] lake_id # @return [::String] # Required. Lake identifier. @@ -81,7 +81,7 @@ class DeleteLakeRequest # @return [::String] # Required. The resource name of the lake location, of the form: # `projects/{project_number}/locations/{location_id}` - # where `location_id` refers to a GCP region. + # where `location_id` refers to a Google Cloud region. # @!attribute [rw] page_size # @return [::Integer] # Optional. Maximum number of Lakes to return. The service may return fewer diff --git a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/tasks.rb b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/tasks.rb index f3a766567dbb..58a614cecd6e 100644 --- a/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/tasks.rb +++ b/google-cloud-dataplex-v1/proto_docs/google/cloud/dataplex/v1/tasks.rb @@ -429,7 +429,7 @@ module State # The job is no longer running due to an error. FAILED = 5 - # The job was cancelled outside of Dataplex. + # The job was cancelled outside of Dataplex Universal Catalog. ABORTED = 6 end @@ -438,8 +438,8 @@ module Trigger # The trigger is unspecified. TRIGGER_UNSPECIFIED = 0 - # The job was triggered by Dataplex based on trigger spec from task - # definition. + # The job was triggered by Dataplex Universal Catalog based on trigger spec + # from task definition. TASK_CONFIG = 1 # The job was triggered by the explicit call of Task API. diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary.rb new file mode 100644 index 000000000000..e29e58cd3336 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_CreateGlossary_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the create_glossary call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary. +# +def create_glossary + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new + + # Call the create_glossary method. + result = client.create_glossary request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END dataplex_v1_generated_BusinessGlossaryService_CreateGlossary_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary_category.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary_category.rb new file mode 100644 index 000000000000..ca5536028803 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary_category.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_CreateGlossaryCategory_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the create_glossary_category call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary_category. +# +def create_glossary_category + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new + + # Call the create_glossary_category method. + result = client.create_glossary_category request + + # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_CreateGlossaryCategory_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary_term.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary_term.rb new file mode 100644 index 000000000000..46407229fdfb --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/create_glossary_term.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_CreateGlossaryTerm_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the create_glossary_term call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary_term. +# +def create_glossary_term + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new + + # Call the create_glossary_term method. + result = client.create_glossary_term request + + # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_CreateGlossaryTerm_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary.rb new file mode 100644 index 000000000000..1c7ec9eb4542 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_DeleteGlossary_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the delete_glossary call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary. +# +def delete_glossary + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new + + # Call the delete_glossary method. + result = client.delete_glossary request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END dataplex_v1_generated_BusinessGlossaryService_DeleteGlossary_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary_category.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary_category.rb new file mode 100644 index 000000000000..8b9eba21d595 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary_category.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_DeleteGlossaryCategory_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the delete_glossary_category call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary_category. +# +def delete_glossary_category + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new + + # Call the delete_glossary_category method. + result = client.delete_glossary_category request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_DeleteGlossaryCategory_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary_term.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary_term.rb new file mode 100644 index 000000000000..5972ff84c23d --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/delete_glossary_term.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_DeleteGlossaryTerm_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the delete_glossary_term call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary_term. +# +def delete_glossary_term + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new + + # Call the delete_glossary_term method. + result = client.delete_glossary_term request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_DeleteGlossaryTerm_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary.rb new file mode 100644 index 000000000000..a86ab045db10 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_GetGlossary_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the get_glossary call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary. +# +def get_glossary + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::GetGlossaryRequest.new + + # Call the get_glossary method. + result = client.get_glossary request + + # The returned object is of type Google::Cloud::Dataplex::V1::Glossary. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_GetGlossary_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary_category.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary_category.rb new file mode 100644 index 000000000000..399442c8dde1 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary_category.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_GetGlossaryCategory_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the get_glossary_category call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary_category. +# +def get_glossary_category + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new + + # Call the get_glossary_category method. + result = client.get_glossary_category request + + # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_GetGlossaryCategory_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary_term.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary_term.rb new file mode 100644 index 000000000000..623d717de166 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/get_glossary_term.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_GetGlossaryTerm_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the get_glossary_term call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary_term. +# +def get_glossary_term + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new + + # Call the get_glossary_term method. + result = client.get_glossary_term request + + # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_GetGlossaryTerm_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossaries.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossaries.rb new file mode 100644 index 000000000000..e3a3c41d2c2d --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossaries.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_ListGlossaries_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the list_glossaries call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossaries. +# +def list_glossaries + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::ListGlossariesRequest.new + + # Call the list_glossaries method. + result = client.list_glossaries request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::Dataplex::V1::Glossary. + p item + end +end +# [END dataplex_v1_generated_BusinessGlossaryService_ListGlossaries_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossary_categories.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossary_categories.rb new file mode 100644 index 000000000000..96a253b5a063 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossary_categories.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_ListGlossaryCategories_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the list_glossary_categories call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossary_categories. +# +def list_glossary_categories + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new + + # Call the list_glossary_categories method. + result = client.list_glossary_categories request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::Dataplex::V1::GlossaryCategory. + p item + end +end +# [END dataplex_v1_generated_BusinessGlossaryService_ListGlossaryCategories_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossary_terms.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossary_terms.rb new file mode 100644 index 000000000000..e963e8f5a6b4 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/list_glossary_terms.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_ListGlossaryTerms_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the list_glossary_terms call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossary_terms. +# +def list_glossary_terms + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new + + # Call the list_glossary_terms method. + result = client.list_glossary_terms request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::Dataplex::V1::GlossaryTerm. + p item + end +end +# [END dataplex_v1_generated_BusinessGlossaryService_ListGlossaryTerms_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary.rb new file mode 100644 index 000000000000..1d632df35d1c --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_UpdateGlossary_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the update_glossary call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary. +# +def update_glossary + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new + + # Call the update_glossary method. + result = client.update_glossary request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END dataplex_v1_generated_BusinessGlossaryService_UpdateGlossary_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary_category.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary_category.rb new file mode 100644 index 000000000000..d197f7aeeb44 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary_category.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_UpdateGlossaryCategory_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the update_glossary_category call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary_category. +# +def update_glossary_category + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new + + # Call the update_glossary_category method. + result = client.update_glossary_category request + + # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryCategory. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_UpdateGlossaryCategory_sync] diff --git a/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary_term.rb b/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary_term.rb new file mode 100644 index 000000000000..993c573f437d --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/business_glossary_service/update_glossary_term.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_BusinessGlossaryService_UpdateGlossaryTerm_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the update_glossary_term call in the BusinessGlossaryService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary_term. +# +def update_glossary_term + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new + + # Call the update_glossary_term method. + result = client.update_glossary_term request + + # The returned object is of type Google::Cloud::Dataplex::V1::GlossaryTerm. + p result +end +# [END dataplex_v1_generated_BusinessGlossaryService_UpdateGlossaryTerm_sync] diff --git a/google-cloud-dataplex-v1/snippets/catalog_service/create_entry_link.rb b/google-cloud-dataplex-v1/snippets/catalog_service/create_entry_link.rb new file mode 100644 index 000000000000..8565b01b7ec1 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/catalog_service/create_entry_link.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_CatalogService_CreateEntryLink_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the create_entry_link call in the CatalogService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::CatalogService::Client#create_entry_link. +# +def create_entry_link + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::CatalogService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::CreateEntryLinkRequest.new + + # Call the create_entry_link method. + result = client.create_entry_link request + + # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + p result +end +# [END dataplex_v1_generated_CatalogService_CreateEntryLink_sync] diff --git a/google-cloud-dataplex-v1/snippets/catalog_service/delete_entry_link.rb b/google-cloud-dataplex-v1/snippets/catalog_service/delete_entry_link.rb new file mode 100644 index 000000000000..e5017ff6ab57 --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/catalog_service/delete_entry_link.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_CatalogService_DeleteEntryLink_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the delete_entry_link call in the CatalogService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::CatalogService::Client#delete_entry_link. +# +def delete_entry_link + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::CatalogService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new + + # Call the delete_entry_link method. + result = client.delete_entry_link request + + # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + p result +end +# [END dataplex_v1_generated_CatalogService_DeleteEntryLink_sync] diff --git a/google-cloud-dataplex-v1/snippets/catalog_service/get_entry_link.rb b/google-cloud-dataplex-v1/snippets/catalog_service/get_entry_link.rb new file mode 100644 index 000000000000..89c3296b2fdb --- /dev/null +++ b/google-cloud-dataplex-v1/snippets/catalog_service/get_entry_link.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START dataplex_v1_generated_CatalogService_GetEntryLink_sync] +require "google/cloud/dataplex/v1" + +## +# Snippet for the get_entry_link call in the CatalogService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Dataplex::V1::CatalogService::Client#get_entry_link. +# +def get_entry_link + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Dataplex::V1::CatalogService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new + + # Call the get_entry_link method. + result = client.get_entry_link request + + # The returned object is of type Google::Cloud::Dataplex::V1::EntryLink. + p result +end +# [END dataplex_v1_generated_CatalogService_GetEntryLink_sync] diff --git a/google-cloud-dataplex-v1/snippets/snippet_metadata_google.cloud.dataplex.v1.json b/google-cloud-dataplex-v1/snippets/snippet_metadata_google.cloud.dataplex.v1.json index e776176b64dd..11e0f6eec81b 100644 --- a/google-cloud-dataplex-v1/snippets/snippet_metadata_google.cloud.dataplex.v1.json +++ b/google-cloud-dataplex-v1/snippets/snippet_metadata_google.cloud.dataplex.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dataplex-v1", - "version": "2.5.0", + "version": "2.6.0", "language": "RUBY", "apis": [ { @@ -1331,6 +1331,606 @@ } ] }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_CreateGlossary_sync", + "title": "Snippet for the create_glossary call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary.", + "file": "business_glossary_service/create_glossary.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_glossary", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::CreateGlossaryRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "CreateGlossary", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.CreateGlossary", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_UpdateGlossary_sync", + "title": "Snippet for the update_glossary call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary.", + "file": "business_glossary_service/update_glossary.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_glossary", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "UpdateGlossary", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.UpdateGlossary", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_DeleteGlossary_sync", + "title": "Snippet for the delete_glossary call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary.", + "file": "business_glossary_service/delete_glossary.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_glossary", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "DeleteGlossary", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.DeleteGlossary", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_GetGlossary_sync", + "title": "Snippet for the get_glossary call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary.", + "file": "business_glossary_service/get_glossary.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_glossary", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::GetGlossaryRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::Glossary", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "GetGlossary", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.GetGlossary", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_ListGlossaries_sync", + "title": "Snippet for the list_glossaries call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossaries.", + "file": "business_glossary_service/list_glossaries.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_glossaries", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossaries", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::ListGlossariesRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::ListGlossariesResponse", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "ListGlossaries", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.ListGlossaries", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_CreateGlossaryCategory_sync", + "title": "Snippet for the create_glossary_category call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary_category.", + "file": "business_glossary_service/create_glossary_category.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_glossary_category", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary_category", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::GlossaryCategory", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "CreateGlossaryCategory", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.CreateGlossaryCategory", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_UpdateGlossaryCategory_sync", + "title": "Snippet for the update_glossary_category call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary_category.", + "file": "business_glossary_service/update_glossary_category.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_glossary_category", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary_category", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::GlossaryCategory", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "UpdateGlossaryCategory", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.UpdateGlossaryCategory", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_DeleteGlossaryCategory_sync", + "title": "Snippet for the delete_glossary_category call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary_category.", + "file": "business_glossary_service/delete_glossary_category.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_glossary_category", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary_category", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "DeleteGlossaryCategory", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.DeleteGlossaryCategory", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_GetGlossaryCategory_sync", + "title": "Snippet for the get_glossary_category call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary_category.", + "file": "business_glossary_service/get_glossary_category.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_glossary_category", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary_category", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::GlossaryCategory", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "GetGlossaryCategory", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.GetGlossaryCategory", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_ListGlossaryCategories_sync", + "title": "Snippet for the list_glossary_categories call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossary_categories.", + "file": "business_glossary_service/list_glossary_categories.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_glossary_categories", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossary_categories", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "ListGlossaryCategories", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.ListGlossaryCategories", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_CreateGlossaryTerm_sync", + "title": "Snippet for the create_glossary_term call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary_term.", + "file": "business_glossary_service/create_glossary_term.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_glossary_term", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#create_glossary_term", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::GlossaryTerm", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "CreateGlossaryTerm", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.CreateGlossaryTerm", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_UpdateGlossaryTerm_sync", + "title": "Snippet for the update_glossary_term call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary_term.", + "file": "business_glossary_service/update_glossary_term.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_glossary_term", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#update_glossary_term", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::GlossaryTerm", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "UpdateGlossaryTerm", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.UpdateGlossaryTerm", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_DeleteGlossaryTerm_sync", + "title": "Snippet for the delete_glossary_term call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary_term.", + "file": "business_glossary_service/delete_glossary_term.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_glossary_term", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#delete_glossary_term", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "DeleteGlossaryTerm", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.DeleteGlossaryTerm", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_GetGlossaryTerm_sync", + "title": "Snippet for the get_glossary_term call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary_term.", + "file": "business_glossary_service/get_glossary_term.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_glossary_term", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#get_glossary_term", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::GlossaryTerm", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "GetGlossaryTerm", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.GetGlossaryTerm", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_BusinessGlossaryService_ListGlossaryTerms_sync", + "title": "Snippet for the list_glossary_terms call in the BusinessGlossaryService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossary_terms.", + "file": "business_glossary_service/list_glossary_terms.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_glossary_terms", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client#list_glossary_terms", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse", + "client": { + "short_name": "BusinessGlossaryService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client" + }, + "method": { + "short_name": "ListGlossaryTerms", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService.ListGlossaryTerms", + "service": { + "short_name": "BusinessGlossaryService", + "full_name": "google.cloud.dataplex.v1.BusinessGlossaryService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, { "region_tag": "dataplex_v1_generated_CatalogService_CreateEntryType_sync", "title": "Snippet for the create_entry_type call in the CatalogService service", @@ -2371,6 +2971,126 @@ } ] }, + { + "region_tag": "dataplex_v1_generated_CatalogService_CreateEntryLink_sync", + "title": "Snippet for the create_entry_link call in the CatalogService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::CatalogService::Client#create_entry_link.", + "file": "catalog_service/create_entry_link.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_entry_link", + "full_name": "::Google::Cloud::Dataplex::V1::CatalogService::Client#create_entry_link", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::EntryLink", + "client": { + "short_name": "CatalogService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::CatalogService::Client" + }, + "method": { + "short_name": "CreateEntryLink", + "full_name": "google.cloud.dataplex.v1.CatalogService.CreateEntryLink", + "service": { + "short_name": "CatalogService", + "full_name": "google.cloud.dataplex.v1.CatalogService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_CatalogService_DeleteEntryLink_sync", + "title": "Snippet for the delete_entry_link call in the CatalogService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::CatalogService::Client#delete_entry_link.", + "file": "catalog_service/delete_entry_link.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_entry_link", + "full_name": "::Google::Cloud::Dataplex::V1::CatalogService::Client#delete_entry_link", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::EntryLink", + "client": { + "short_name": "CatalogService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::CatalogService::Client" + }, + "method": { + "short_name": "DeleteEntryLink", + "full_name": "google.cloud.dataplex.v1.CatalogService.DeleteEntryLink", + "service": { + "short_name": "CatalogService", + "full_name": "google.cloud.dataplex.v1.CatalogService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "dataplex_v1_generated_CatalogService_GetEntryLink_sync", + "title": "Snippet for the get_entry_link call in the CatalogService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Dataplex::V1::CatalogService::Client#get_entry_link.", + "file": "catalog_service/get_entry_link.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_entry_link", + "full_name": "::Google::Cloud::Dataplex::V1::CatalogService::Client#get_entry_link", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Dataplex::V1::GetEntryLinkRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Dataplex::V1::EntryLink", + "client": { + "short_name": "CatalogService::Client", + "full_name": "::Google::Cloud::Dataplex::V1::CatalogService::Client" + }, + "method": { + "short_name": "GetEntryLink", + "full_name": "google.cloud.dataplex.v1.CatalogService.GetEntryLink", + "service": { + "short_name": "CatalogService", + "full_name": "google.cloud.dataplex.v1.CatalogService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, { "region_tag": "dataplex_v1_generated_CmekService_CreateEncryptionConfig_sync", "title": "Snippet for the create_encryption_config call in the CmekService service", diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_operations_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_operations_test.rb new file mode 100644 index 000000000000..18ba0d556480 --- /dev/null +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_operations_test.rb @@ -0,0 +1,398 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/dataplex/v1/business_glossary_pb" +require "google/cloud/dataplex/v1/business_glossary_services_pb" +require "google/cloud/dataplex/v1/business_glossary_service" + +class ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::OperationsTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_list_operations + # Create GRPC objects. + grpc_response = ::Google::Longrunning::ListOperationsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_operations_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_operations, name + assert_kind_of ::Google::Longrunning::ListOperationsRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["filter"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_operations_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_operations({ name: name, filter: filter, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_operations name: name, filter: filter, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_operations ::Google::Longrunning::ListOperationsRequest.new(name: name, filter: filter, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_operations({ name: name, filter: filter, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_operations(::Google::Longrunning::ListOperationsRequest.new(name: name, filter: filter, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_operations_client_stub.call_rpc_count + end + end + + def test_get_operation + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_operation, name + assert_kind_of ::Google::Longrunning::GetOperationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_operation_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_operation({ name: name }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_operation name: name do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_operation ::Google::Longrunning::GetOperationRequest.new(name: name) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_operation({ name: name }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_operation(::Google::Longrunning::GetOperationRequest.new(name: name), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_operation_client_stub.call_rpc_count + end + end + + def test_delete_operation + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_operation, name + assert_kind_of ::Google::Longrunning::DeleteOperationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_operation_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_operation({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_operation name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_operation ::Google::Longrunning::DeleteOperationRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_operation({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_operation(::Google::Longrunning::DeleteOperationRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_operation_client_stub.call_rpc_count + end + end + + def test_cancel_operation + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + cancel_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :cancel_operation, name + assert_kind_of ::Google::Longrunning::CancelOperationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, cancel_operation_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.cancel_operation({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.cancel_operation name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.cancel_operation ::Google::Longrunning::CancelOperationRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.cancel_operation({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.cancel_operation(::Google::Longrunning::CancelOperationRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, cancel_operation_client_stub.call_rpc_count + end + end + + def test_wait_operation + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + timeout = {} + + wait_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :wait_operation, name + assert_kind_of ::Google::Longrunning::WaitOperationRequest, request + assert_equal "hello world", request["name"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::Duration), request["timeout"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, wait_operation_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.wait_operation({ name: name, timeout: timeout }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.wait_operation name: name, timeout: timeout do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.wait_operation ::Google::Longrunning::WaitOperationRequest.new(name: name, timeout: timeout) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.wait_operation({ name: name, timeout: timeout }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.wait_operation(::Google::Longrunning::WaitOperationRequest.new(name: name, timeout: timeout), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, wait_operation_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations::Configuration, config + end +end diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_paths_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_paths_test.rb new file mode 100644 index 000000000000..b00817dfbb62 --- /dev/null +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_paths_test.rb @@ -0,0 +1,91 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/dataplex/v1/business_glossary_service" + +class ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_glossary_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.glossary_path project: "value0", location: "value1", glossary: "value2" + assert_equal "projects/value0/locations/value1/glossaries/value2", path + end + end + + def test_glossary_category_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.glossary_category_path project: "value0", location: "value1", glossary: "value2", glossary_category: "value3" + assert_equal "projects/value0/locations/value1/glossaries/value2/categories/value3", path + end + end + + def test_glossary_term_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.glossary_term_path project: "value0", location: "value1", glossary: "value2", glossary_term: "value3" + assert_equal "projects/value0/locations/value1/glossaries/value2/terms/value3", path + end + end + + def test_location_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.location_path project: "value0", location: "value1" + assert_equal "projects/value0/locations/value1", path + end + end +end diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_rest_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_rest_test.rb new file mode 100644 index 000000000000..7cceba81e386 --- /dev/null +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_rest_test.rb @@ -0,0 +1,933 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/cloud/dataplex/v1/business_glossary_pb" +require "google/cloud/dataplex/v1/business_glossary_service/rest" + + +class ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_glossary + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + glossary_id = "hello world" + glossary = {} + validate_only = true + + create_glossary_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_create_glossary_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_glossary({ parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_glossary parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_glossary ::Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new(parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_glossary({ parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_glossary(::Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new(parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_glossary_client_stub.call_count + end + end + end + + def test_update_glossary + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + glossary = {} + update_mask = {} + validate_only = true + + update_glossary_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_update_glossary_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_glossary({ glossary: glossary, update_mask: update_mask, validate_only: validate_only }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_glossary glossary: glossary, update_mask: update_mask, validate_only: validate_only do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_glossary ::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new(glossary: glossary, update_mask: update_mask, validate_only: validate_only) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_glossary({ glossary: glossary, update_mask: update_mask, validate_only: validate_only }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_glossary(::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new(glossary: glossary, update_mask: update_mask, validate_only: validate_only), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_glossary_client_stub.call_count + end + end + end + + def test_delete_glossary + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + etag = "hello world" + + delete_glossary_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_delete_glossary_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_glossary({ name: name, etag: etag }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_glossary name: name, etag: etag do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_glossary ::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new(name: name, etag: etag) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_glossary({ name: name, etag: etag }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_glossary(::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new(name: name, etag: etag), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_glossary_client_stub.call_count + end + end + end + + def test_get_glossary + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::Glossary.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_glossary_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_get_glossary_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_glossary({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_glossary name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_glossary ::Google::Cloud::Dataplex::V1::GetGlossaryRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_glossary({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_glossary(::Google::Cloud::Dataplex::V1::GetGlossaryRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_glossary_client_stub.call_count + end + end + end + + def test_list_glossaries + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::ListGlossariesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_glossaries_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_list_glossaries_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_glossaries_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_glossaries({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_glossaries parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_glossaries ::Google::Cloud::Dataplex::V1::ListGlossariesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_glossaries({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_glossaries(::Google::Cloud::Dataplex::V1::ListGlossariesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_glossaries_client_stub.call_count + end + end + end + + def test_create_glossary_category + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::GlossaryCategory.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + category_id = "hello world" + category = {} + + create_glossary_category_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_create_glossary_category_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_glossary_category({ parent: parent, category_id: category_id, category: category }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_glossary_category parent: parent, category_id: category_id, category: category do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_glossary_category ::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new(parent: parent, category_id: category_id, category: category) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_glossary_category({ parent: parent, category_id: category_id, category: category }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_glossary_category(::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new(parent: parent, category_id: category_id, category: category), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_glossary_category_client_stub.call_count + end + end + end + + def test_update_glossary_category + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::GlossaryCategory.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + category = {} + update_mask = {} + + update_glossary_category_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_update_glossary_category_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_glossary_category({ category: category, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_glossary_category category: category, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_glossary_category ::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new(category: category, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_glossary_category({ category: category, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_glossary_category(::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new(category: category, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_glossary_category_client_stub.call_count + end + end + end + + def test_delete_glossary_category + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_glossary_category_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_delete_glossary_category_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_glossary_category({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_glossary_category name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_glossary_category ::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_glossary_category({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_glossary_category(::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_glossary_category_client_stub.call_count + end + end + end + + def test_get_glossary_category + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::GlossaryCategory.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_glossary_category_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_get_glossary_category_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_glossary_category({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_glossary_category name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_glossary_category ::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_glossary_category({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_glossary_category(::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_glossary_category_client_stub.call_count + end + end + end + + def test_list_glossary_categories + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_glossary_categories_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_list_glossary_categories_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_glossary_categories_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_glossary_categories({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_glossary_categories parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_glossary_categories ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_glossary_categories({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_glossary_categories(::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_glossary_categories_client_stub.call_count + end + end + end + + def test_create_glossary_term + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::GlossaryTerm.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + term_id = "hello world" + term = {} + + create_glossary_term_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_create_glossary_term_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_glossary_term({ parent: parent, term_id: term_id, term: term }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_glossary_term parent: parent, term_id: term_id, term: term do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_glossary_term ::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new(parent: parent, term_id: term_id, term: term) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_glossary_term({ parent: parent, term_id: term_id, term: term }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_glossary_term(::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new(parent: parent, term_id: term_id, term: term), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_glossary_term_client_stub.call_count + end + end + end + + def test_update_glossary_term + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::GlossaryTerm.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + term = {} + update_mask = {} + + update_glossary_term_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_update_glossary_term_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_glossary_term({ term: term, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_glossary_term term: term, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_glossary_term ::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new(term: term, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_glossary_term({ term: term, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_glossary_term(::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new(term: term, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_glossary_term_client_stub.call_count + end + end + end + + def test_delete_glossary_term + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_glossary_term_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_delete_glossary_term_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_glossary_term({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_glossary_term name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_glossary_term ::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_glossary_term({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_glossary_term(::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_glossary_term_client_stub.call_count + end + end + end + + def test_get_glossary_term + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::GlossaryTerm.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_glossary_term_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_get_glossary_term_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_glossary_term({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_glossary_term name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_glossary_term ::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_glossary_term({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_glossary_term(::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_glossary_term_client_stub.call_count + end + end + end + + def test_list_glossary_terms + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_glossary_terms_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::ServiceStub.stub :transcode_list_glossary_terms_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_glossary_terms_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_glossary_terms({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_glossary_terms parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_glossary_terms ::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_glossary_terms({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_glossary_terms(::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_glossary_terms_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_test.rb new file mode 100644 index 000000000000..f671dfcb5cc2 --- /dev/null +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/business_glossary_service_test.rb @@ -0,0 +1,1046 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/dataplex/v1/business_glossary_pb" +require "google/cloud/dataplex/v1/business_glossary_service" + +class ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_glossary + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + glossary_id = "hello world" + glossary = {} + validate_only = true + + create_glossary_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_glossary, name + assert_kind_of ::Google::Cloud::Dataplex::V1::CreateGlossaryRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["glossary_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::Glossary), request["glossary"] + assert_equal true, request["validate_only"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_glossary({ parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_glossary parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_glossary ::Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new(parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_glossary({ parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_glossary(::Google::Cloud::Dataplex::V1::CreateGlossaryRequest.new(parent: parent, glossary_id: glossary_id, glossary: glossary, validate_only: validate_only), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_glossary_client_stub.call_rpc_count + end + end + + def test_update_glossary + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + glossary = {} + update_mask = {} + validate_only = true + + update_glossary_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_glossary, name + assert_kind_of ::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::Glossary), request["glossary"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + assert_equal true, request["validate_only"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_glossary({ glossary: glossary, update_mask: update_mask, validate_only: validate_only }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_glossary glossary: glossary, update_mask: update_mask, validate_only: validate_only do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_glossary ::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new(glossary: glossary, update_mask: update_mask, validate_only: validate_only) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_glossary({ glossary: glossary, update_mask: update_mask, validate_only: validate_only }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_glossary(::Google::Cloud::Dataplex::V1::UpdateGlossaryRequest.new(glossary: glossary, update_mask: update_mask, validate_only: validate_only), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_glossary_client_stub.call_rpc_count + end + end + + def test_delete_glossary + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + etag = "hello world" + + delete_glossary_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_glossary, name + assert_kind_of ::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["etag"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_glossary({ name: name, etag: etag }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_glossary name: name, etag: etag do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_glossary ::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new(name: name, etag: etag) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_glossary({ name: name, etag: etag }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_glossary(::Google::Cloud::Dataplex::V1::DeleteGlossaryRequest.new(name: name, etag: etag), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_glossary_client_stub.call_rpc_count + end + end + + def test_get_glossary + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::Glossary.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_glossary_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_glossary, name + assert_kind_of ::Google::Cloud::Dataplex::V1::GetGlossaryRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_glossary_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_glossary({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_glossary name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_glossary ::Google::Cloud::Dataplex::V1::GetGlossaryRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_glossary({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_glossary(::Google::Cloud::Dataplex::V1::GetGlossaryRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_glossary_client_stub.call_rpc_count + end + end + + def test_list_glossaries + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::ListGlossariesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_glossaries_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_glossaries, name + assert_kind_of ::Google::Cloud::Dataplex::V1::ListGlossariesRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_glossaries_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_glossaries({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_glossaries parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_glossaries ::Google::Cloud::Dataplex::V1::ListGlossariesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_glossaries({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_glossaries(::Google::Cloud::Dataplex::V1::ListGlossariesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_glossaries_client_stub.call_rpc_count + end + end + + def test_create_glossary_category + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::GlossaryCategory.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + category_id = "hello world" + category = {} + + create_glossary_category_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_glossary_category, name + assert_kind_of ::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["category_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::GlossaryCategory), request["category"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_glossary_category({ parent: parent, category_id: category_id, category: category }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_glossary_category parent: parent, category_id: category_id, category: category do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_glossary_category ::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new(parent: parent, category_id: category_id, category: category) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_glossary_category({ parent: parent, category_id: category_id, category: category }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_glossary_category(::Google::Cloud::Dataplex::V1::CreateGlossaryCategoryRequest.new(parent: parent, category_id: category_id, category: category), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_glossary_category_client_stub.call_rpc_count + end + end + + def test_update_glossary_category + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::GlossaryCategory.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + category = {} + update_mask = {} + + update_glossary_category_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_glossary_category, name + assert_kind_of ::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::GlossaryCategory), request["category"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_glossary_category({ category: category, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_glossary_category category: category, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_glossary_category ::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new(category: category, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_glossary_category({ category: category, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_glossary_category(::Google::Cloud::Dataplex::V1::UpdateGlossaryCategoryRequest.new(category: category, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_glossary_category_client_stub.call_rpc_count + end + end + + def test_delete_glossary_category + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_glossary_category_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_glossary_category, name + assert_kind_of ::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_glossary_category({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_glossary_category name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_glossary_category ::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_glossary_category({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_glossary_category(::Google::Cloud::Dataplex::V1::DeleteGlossaryCategoryRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_glossary_category_client_stub.call_rpc_count + end + end + + def test_get_glossary_category + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::GlossaryCategory.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_glossary_category_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_glossary_category, name + assert_kind_of ::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_glossary_category_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_glossary_category({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_glossary_category name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_glossary_category ::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_glossary_category({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_glossary_category(::Google::Cloud::Dataplex::V1::GetGlossaryCategoryRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_glossary_category_client_stub.call_rpc_count + end + end + + def test_list_glossary_categories + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_glossary_categories_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_glossary_categories, name + assert_kind_of ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_glossary_categories_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_glossary_categories({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_glossary_categories parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_glossary_categories ::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_glossary_categories({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_glossary_categories(::Google::Cloud::Dataplex::V1::ListGlossaryCategoriesRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_glossary_categories_client_stub.call_rpc_count + end + end + + def test_create_glossary_term + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::GlossaryTerm.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + term_id = "hello world" + term = {} + + create_glossary_term_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_glossary_term, name + assert_kind_of ::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["term_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::GlossaryTerm), request["term"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_glossary_term({ parent: parent, term_id: term_id, term: term }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_glossary_term parent: parent, term_id: term_id, term: term do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_glossary_term ::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new(parent: parent, term_id: term_id, term: term) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_glossary_term({ parent: parent, term_id: term_id, term: term }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_glossary_term(::Google::Cloud::Dataplex::V1::CreateGlossaryTermRequest.new(parent: parent, term_id: term_id, term: term), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_glossary_term_client_stub.call_rpc_count + end + end + + def test_update_glossary_term + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::GlossaryTerm.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + term = {} + update_mask = {} + + update_glossary_term_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_glossary_term, name + assert_kind_of ::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::GlossaryTerm), request["term"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_glossary_term({ term: term, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_glossary_term term: term, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_glossary_term ::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new(term: term, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_glossary_term({ term: term, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_glossary_term(::Google::Cloud::Dataplex::V1::UpdateGlossaryTermRequest.new(term: term, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_glossary_term_client_stub.call_rpc_count + end + end + + def test_delete_glossary_term + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_glossary_term_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_glossary_term, name + assert_kind_of ::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_glossary_term({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_glossary_term name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_glossary_term ::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_glossary_term({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_glossary_term(::Google::Cloud::Dataplex::V1::DeleteGlossaryTermRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_glossary_term_client_stub.call_rpc_count + end + end + + def test_get_glossary_term + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::GlossaryTerm.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_glossary_term_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_glossary_term, name + assert_kind_of ::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_glossary_term_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_glossary_term({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_glossary_term name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_glossary_term ::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_glossary_term({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_glossary_term(::Google::Cloud::Dataplex::V1::GetGlossaryTermRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_glossary_term_client_stub.call_rpc_count + end + end + + def test_list_glossary_terms + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::ListGlossaryTermsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_glossary_terms_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_glossary_terms, name + assert_kind_of ::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_glossary_terms_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_glossary_terms({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_glossary_terms parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_glossary_terms ::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_glossary_terms({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_glossary_terms(::Google::Cloud::Dataplex::V1::ListGlossaryTermsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_glossary_terms_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client::Configuration, config + end + + def test_operations_client + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client.new do |config| + config.credentials = grpc_channel + end + end + + assert_kind_of ::Google::Cloud::Dataplex::V1::BusinessGlossaryService::Operations, client.operations_client + end +end diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_paths_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_paths_test.rb index ccff64e286c6..9198535d1726 100644 --- a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_paths_test.rb +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_paths_test.rb @@ -77,6 +77,18 @@ def test_entry_group_path end end + def test_entry_link_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::CatalogService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.entry_link_path project: "value0", location: "value1", entry_group: "value2", entry_link: "value3" + assert_equal "projects/value0/locations/value1/entryGroups/value2/entryLinks/value3", path + end + end + def test_entry_type_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do @@ -89,6 +101,18 @@ def test_entry_type_path end end + def test_glossary_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::CatalogService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.glossary_path project: "value0", location: "value1", glossary: "value2" + assert_equal "projects/value0/locations/value1/glossaries/value2", path + end + end + def test_location_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_rest_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_rest_test.rb index 46ea1a528d5a..3b18c4496e64 100644 --- a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_rest_test.rb +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_rest_test.rb @@ -1541,6 +1541,170 @@ def test_cancel_metadata_job end end + def test_create_entry_link + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::EntryLink.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + entry_link_id = "hello world" + entry_link = {} + + create_entry_link_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::CatalogService::Rest::ServiceStub.stub :transcode_create_entry_link_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_entry_link_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::CatalogService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_entry_link({ parent: parent, entry_link_id: entry_link_id, entry_link: entry_link }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_entry_link parent: parent, entry_link_id: entry_link_id, entry_link: entry_link do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_entry_link ::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest.new(parent: parent, entry_link_id: entry_link_id, entry_link: entry_link) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_entry_link({ parent: parent, entry_link_id: entry_link_id, entry_link: entry_link }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_entry_link(::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest.new(parent: parent, entry_link_id: entry_link_id, entry_link: entry_link), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_entry_link_client_stub.call_count + end + end + end + + def test_delete_entry_link + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::EntryLink.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_entry_link_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::CatalogService::Rest::ServiceStub.stub :transcode_delete_entry_link_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_entry_link_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::CatalogService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_entry_link({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_entry_link name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_entry_link ::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_entry_link({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_entry_link(::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_entry_link_client_stub.call_count + end + end + end + + def test_get_entry_link + # Create test objects. + client_result = ::Google::Cloud::Dataplex::V1::EntryLink.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_entry_link_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Dataplex::V1::CatalogService::Rest::ServiceStub.stub :transcode_get_entry_link_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_entry_link_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::CatalogService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_entry_link({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_entry_link name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_entry_link ::Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_entry_link({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_entry_link(::Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_entry_link_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_test.rb index ee104342f7c3..221c6c72d173 100644 --- a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_test.rb +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/catalog_service_test.rb @@ -1769,6 +1769,184 @@ def test_cancel_metadata_job end end + def test_create_entry_link + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::EntryLink.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + entry_link_id = "hello world" + entry_link = {} + + create_entry_link_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_entry_link, name + assert_kind_of ::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["entry_link_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Dataplex::V1::EntryLink), request["entry_link"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_entry_link_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::CatalogService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_entry_link({ parent: parent, entry_link_id: entry_link_id, entry_link: entry_link }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_entry_link parent: parent, entry_link_id: entry_link_id, entry_link: entry_link do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_entry_link ::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest.new(parent: parent, entry_link_id: entry_link_id, entry_link: entry_link) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_entry_link({ parent: parent, entry_link_id: entry_link_id, entry_link: entry_link }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_entry_link(::Google::Cloud::Dataplex::V1::CreateEntryLinkRequest.new(parent: parent, entry_link_id: entry_link_id, entry_link: entry_link), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_entry_link_client_stub.call_rpc_count + end + end + + def test_delete_entry_link + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::EntryLink.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_entry_link_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_entry_link, name + assert_kind_of ::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_entry_link_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::CatalogService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_entry_link({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_entry_link name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_entry_link ::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_entry_link({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_entry_link(::Google::Cloud::Dataplex::V1::DeleteEntryLinkRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_entry_link_client_stub.call_rpc_count + end + end + + def test_get_entry_link + # Create GRPC objects. + grpc_response = ::Google::Cloud::Dataplex::V1::EntryLink.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_entry_link_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_entry_link, name + assert_kind_of ::Google::Cloud::Dataplex::V1::GetEntryLinkRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_entry_link_client_stub do + # Create client + client = ::Google::Cloud::Dataplex::V1::CatalogService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_entry_link({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_entry_link name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_entry_link ::Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_entry_link({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_entry_link(::Google::Cloud::Dataplex::V1::GetEntryLinkRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_entry_link_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure diff --git a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/data_scan_service_paths_test.rb b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/data_scan_service_paths_test.rb index f50a77ab1ee1..3b3f5465d1a7 100644 --- a/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/data_scan_service_paths_test.rb +++ b/google-cloud-dataplex-v1/test/google/cloud/dataplex/v1/data_scan_service_paths_test.rb @@ -112,4 +112,16 @@ def test_location_path assert_equal "projects/value0/locations/value1", path end end + + def test_project_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Dataplex::V1::DataScanService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.project_path project: "value0" + assert_equal "projects/value0", path + end + end end diff --git a/google-cloud-dataplex/CHANGELOG.md b/google-cloud-dataplex/CHANGELOG.md index c36f6f8c36ba..b775370af4a0 100644 --- a/google-cloud-dataplex/CHANGELOG.md +++ b/google-cloud-dataplex/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 2.2.0 (2025-09-12) + +#### Features + +* A new service `BusinessGlossaryService` is added +#### Documentation + +* Update README in wrapper libraries ([#31012](https://github.com/googleapis/google-cloud-ruby/issues/31012)) + ### 2.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-dataplex/README.md b/google-cloud-dataplex/README.md index c437f6a4dcef..371885ff8b89 100644 --- a/google-cloud-dataplex/README.md +++ b/google-cloud-dataplex/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dataplex.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dataplex" + +client = Google::Cloud::Dataplex.dataplex_service +request = ::Google::Cloud::Dataplex::V1::CreateLakeRequest.new # (request fields as keyword arguments...) +response = client.create_lake request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-dataplex/lib/google/cloud/dataplex.rb b/google-cloud-dataplex/lib/google/cloud/dataplex.rb index 1dfc9e8057be..834dd8cf7000 100644 --- a/google-cloud-dataplex/lib/google/cloud/dataplex.rb +++ b/google-cloud-dataplex/lib/google/cloud/dataplex.rb @@ -119,6 +119,81 @@ def self.dataplex_service_available? version: :v1, transport: :grpc false end + ## + # Create a new client object for BusinessGlossaryService. + # + # By default, this returns an instance of + # [Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-dataplex-v1/latest/Google-Cloud-Dataplex-V1-BusinessGlossaryService-Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the BusinessGlossaryService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the BusinessGlossaryService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Dataplex.business_glossary_service_available?}. + # + # ## About BusinessGlossaryService + # + # BusinessGlossaryService provides APIs for managing business glossary + # resources for enterprise customers. + # The resources currently supported in Business Glossary are: + # 1. Glossary + # 2. GlossaryCategory + # 3. GlossaryTerm + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.business_glossary_service version: :v1, transport: :grpc, &block + require "google/cloud/dataplex/#{version.to_s.downcase}" + + package_name = Google::Cloud::Dataplex + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Dataplex.const_get(package_name).const_get(:BusinessGlossaryService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the BusinessGlossaryService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Dataplex.business_glossary_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the BusinessGlossaryService service, + # or if the versioned client gem needs an update to support the BusinessGlossaryService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.business_glossary_service_available? version: :v1, transport: :grpc + require "google/cloud/dataplex/#{version.to_s.downcase}" + package_name = Google::Cloud::Dataplex + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Dataplex.const_get package_name + return false unless service_module.const_defined? :BusinessGlossaryService + service_module = service_module.const_get :BusinessGlossaryService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for CatalogService. # @@ -140,10 +215,10 @@ def self.dataplex_service_available? version: :v1, transport: :grpc # ## About CatalogService # # The primary resources offered by this service are EntryGroups, EntryTypes, - # AspectTypes, and Entries. They collectively let data administrators organize, - # manage, secure, and catalog data located across cloud projects in their - # organization in a variety of storage systems, including Cloud Storage and - # BigQuery. + # AspectTypes, Entries and EntryLinks. They collectively let data + # administrators organize, manage, secure, and catalog data located across + # cloud projects in their organization in a variety of storage systems, + # including Cloud Storage and BigQuery. # # @param version [::String, ::Symbol] The API version to connect to. Optional. # Defaults to `:v1`. @@ -213,7 +288,7 @@ def self.catalog_service_available? version: :v1, transport: :grpc # # ## About CmekService # - # Dataplex Cmek Service + # Dataplex Universal Catalog Customer Managed Encryption Keys (CMEK) Service # # @param version [::String, ::Symbol] The API version to connect to. Optional. # Defaults to `:v1`. @@ -283,7 +358,8 @@ def self.cmek_service_available? version: :v1, transport: :grpc # # ## About ContentService # - # ContentService manages Notebook and SQL Scripts for Dataplex. + # ContentService manages Notebook and SQL Scripts for Dataplex Universal + # Catalog. # # @param version [::String, ::Symbol] The API version to connect to. Optional. # Defaults to `:v1`. diff --git a/google-cloud-dataplex/lib/google/cloud/dataplex/version.rb b/google-cloud-dataplex/lib/google/cloud/dataplex/version.rb index a18d7f0e8074..fdc9ba158b32 100644 --- a/google-cloud-dataplex/lib/google/cloud/dataplex/version.rb +++ b/google-cloud-dataplex/lib/google/cloud/dataplex/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Dataplex - VERSION = "2.1.1" + VERSION = "2.2.0" end end end diff --git a/google-cloud-dataplex/test/google/cloud/dataplex/client_test.rb b/google-cloud-dataplex/test/google/cloud/dataplex/client_test.rb index 8702f588a3ee..c98ebcf2449f 100644 --- a/google-cloud-dataplex/test/google/cloud/dataplex/client_test.rb +++ b/google-cloud-dataplex/test/google/cloud/dataplex/client_test.rb @@ -62,6 +62,27 @@ def test_dataplex_service_rest end end + def test_business_glossary_service_grpc + skip unless Google::Cloud::Dataplex.business_glossary_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Dataplex.business_glossary_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Client, client + end + end + + def test_business_glossary_service_rest + skip unless Google::Cloud::Dataplex.business_glossary_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Dataplex.business_glossary_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Dataplex::V1::BusinessGlossaryService::Rest::Client, client + end + end + def test_catalog_service_grpc skip unless Google::Cloud::Dataplex.catalog_service_available? transport: :grpc Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-dataproc-v1/CHANGELOG.md b/google-cloud-dataproc-v1/CHANGELOG.md index 0053190fc77a..26611d1e80ec 100644 --- a/google-cloud-dataproc-v1/CHANGELOG.md +++ b/google-cloud-dataproc-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.6.0 (2025-07-15) #### Features diff --git a/google-cloud-dataproc-v1/google-cloud-dataproc-v1.gemspec b/google-cloud-dataproc-v1/google-cloud-dataproc-v1.gemspec index 3d3c4158fdee..dc587c7da499 100644 --- a/google-cloud-dataproc-v1/google-cloud-dataproc-v1.gemspec +++ b/google-cloud-dataproc-v1/google-cloud-dataproc-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" end diff --git a/google-cloud-dataproc-v1/lib/google/cloud/dataproc/v1/version.rb b/google-cloud-dataproc-v1/lib/google/cloud/dataproc/v1/version.rb index bb37e4735aa2..16fcc832aaa3 100644 --- a/google-cloud-dataproc-v1/lib/google/cloud/dataproc/v1/version.rb +++ b/google-cloud-dataproc-v1/lib/google/cloud/dataproc/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dataproc module V1 - VERSION = "1.6.0" + VERSION = "1.7.0" end end end diff --git a/google-cloud-dataproc-v1/snippets/snippet_metadata_google.cloud.dataproc.v1.json b/google-cloud-dataproc-v1/snippets/snippet_metadata_google.cloud.dataproc.v1.json index dc5a8d483280..688636751758 100644 --- a/google-cloud-dataproc-v1/snippets/snippet_metadata_google.cloud.dataproc.v1.json +++ b/google-cloud-dataproc-v1/snippets/snippet_metadata_google.cloud.dataproc.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dataproc-v1", - "version": "1.6.0", + "version": "1.7.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dataproc/CHANGELOG.md b/google-cloud-dataproc/CHANGELOG.md index 9cd068bac2d5..357b399bf8d2 100644 --- a/google-cloud-dataproc/CHANGELOG.md +++ b/google-cloud-dataproc/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.7.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.7.2 (2025-05-27) #### Documentation diff --git a/google-cloud-dataproc/README.md b/google-cloud-dataproc/README.md index dc193911e54a..ffd1b6095d09 100644 --- a/google-cloud-dataproc/README.md +++ b/google-cloud-dataproc/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dataproc.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dataproc" + +client = Google::Cloud::Dataproc.autoscaling_policy_service +request = ::Google::Cloud::Dataproc::V1::CreateAutoscalingPolicyRequest.new # (request fields as keyword arguments...) +response = client.create_autoscaling_policy request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-dataproc client is a significant upgrade diff --git a/google-cloud-dataproc/lib/google/cloud/dataproc/version.rb b/google-cloud-dataproc/lib/google/cloud/dataproc/version.rb index b15f32da8404..52902715243c 100644 --- a/google-cloud-dataproc/lib/google/cloud/dataproc/version.rb +++ b/google-cloud-dataproc/lib/google/cloud/dataproc/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Dataproc - VERSION = "2.7.2" + VERSION = "2.7.3" end end end diff --git a/google-cloud-dataqna-v1alpha/CHANGELOG.md b/google-cloud-dataqna-v1alpha/CHANGELOG.md index f59f5a2689e9..ba3aeccbaabc 100644 --- a/google-cloud-dataqna-v1alpha/CHANGELOG.md +++ b/google-cloud-dataqna-v1alpha/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.10.0 (2025-05-12) #### Features diff --git a/google-cloud-dataqna-v1alpha/google-cloud-dataqna-v1alpha.gemspec b/google-cloud-dataqna-v1alpha/google-cloud-dataqna-v1alpha.gemspec index 01e2dda28278..8234372ca1d4 100644 --- a/google-cloud-dataqna-v1alpha/google-cloud-dataqna-v1alpha.gemspec +++ b/google-cloud-dataqna-v1alpha/google-cloud-dataqna-v1alpha.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-dataqna-v1alpha/lib/google/cloud/dataqna/v1alpha/version.rb b/google-cloud-dataqna-v1alpha/lib/google/cloud/dataqna/v1alpha/version.rb index d05377be9503..fec336cbc6b7 100644 --- a/google-cloud-dataqna-v1alpha/lib/google/cloud/dataqna/v1alpha/version.rb +++ b/google-cloud-dataqna-v1alpha/lib/google/cloud/dataqna/v1alpha/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DataQnA module V1alpha - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-dataqna-v1alpha/snippets/snippet_metadata_google.cloud.dataqna.v1alpha.json b/google-cloud-dataqna-v1alpha/snippets/snippet_metadata_google.cloud.dataqna.v1alpha.json index 8b566f748f2c..bd106f032ac5 100644 --- a/google-cloud-dataqna-v1alpha/snippets/snippet_metadata_google.cloud.dataqna.v1alpha.json +++ b/google-cloud-dataqna-v1alpha/snippets/snippet_metadata_google.cloud.dataqna.v1alpha.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dataqna-v1alpha", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dataqna/CHANGELOG.md b/google-cloud-dataqna/CHANGELOG.md index 25b8efc4147f..01044932c0ca 100644 --- a/google-cloud-dataqna/CHANGELOG.md +++ b/google-cloud-dataqna/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-dataqna/README.md b/google-cloud-dataqna/README.md index 2991a498f591..7b93d8ca7403 100644 --- a/google-cloud-dataqna/README.md +++ b/google-cloud-dataqna/README.md @@ -31,6 +31,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dataqna.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dataqna" + +client = Google::Cloud::DataQnA.auto_suggestion_service +request = ::Google::Cloud::DataQnA::V1alpha::SuggestQueriesRequest.new # (request fields as keyword arguments...) +response = client.suggest_queries request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-dataqna/lib/google/cloud/dataqna/version.rb b/google-cloud-dataqna/lib/google/cloud/dataqna/version.rb index 27574def6222..5c64400d31a7 100644 --- a/google-cloud-dataqna/lib/google/cloud/dataqna/version.rb +++ b/google-cloud-dataqna/lib/google/cloud/dataqna/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DataQnA - VERSION = "0.6.1" + VERSION = "0.6.2" end end end diff --git a/google-cloud-datastore-admin-v1/CHANGELOG.md b/google-cloud-datastore-admin-v1/CHANGELOG.md index d1d2f90fe044..d47c80124737 100644 --- a/google-cloud-datastore-admin-v1/CHANGELOG.md +++ b/google-cloud-datastore-admin-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-datastore-admin-v1/google-cloud-datastore-admin-v1.gemspec b/google-cloud-datastore-admin-v1/google-cloud-datastore-admin-v1.gemspec index 5840d1c8b83f..c8dcbec85e71 100644 --- a/google-cloud-datastore-admin-v1/google-cloud-datastore-admin-v1.gemspec +++ b/google-cloud-datastore-admin-v1/google-cloud-datastore-admin-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-datastore-admin-v1/lib/google/cloud/datastore/admin/v1/version.rb b/google-cloud-datastore-admin-v1/lib/google/cloud/datastore/admin/v1/version.rb index b70da966a4a6..e04f09ac8ca8 100644 --- a/google-cloud-datastore-admin-v1/lib/google/cloud/datastore/admin/v1/version.rb +++ b/google-cloud-datastore-admin-v1/lib/google/cloud/datastore/admin/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Datastore module Admin module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-datastore-admin-v1/snippets/snippet_metadata_google.datastore.admin.v1.json b/google-cloud-datastore-admin-v1/snippets/snippet_metadata_google.datastore.admin.v1.json index 113d437d7287..f4a9cbe18530 100644 --- a/google-cloud-datastore-admin-v1/snippets/snippet_metadata_google.datastore.admin.v1.json +++ b/google-cloud-datastore-admin-v1/snippets/snippet_metadata_google.datastore.admin.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-datastore-admin-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-datastore-admin/CHANGELOG.md b/google-cloud-datastore-admin/CHANGELOG.md index edcda2a794ec..0005139d24a5 100644 --- a/google-cloud-datastore-admin/CHANGELOG.md +++ b/google-cloud-datastore-admin/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-datastore-admin/README.md b/google-cloud-datastore-admin/README.md index b0e317ff82be..e364734c577b 100644 --- a/google-cloud-datastore-admin/README.md +++ b/google-cloud-datastore-admin/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datastore.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/datastore/admin" + +client = Google::Cloud::Datastore::Admin.datastore_admin +request = ::Google::Cloud::Datastore::Admin::V1::ExportEntitiesRequest.new # (request fields as keyword arguments...) +response = client.export_entities request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-datastore-admin/lib/google/cloud/datastore/admin/version.rb b/google-cloud-datastore-admin/lib/google/cloud/datastore/admin/version.rb index d3e62f28252f..fc4bc8903137 100644 --- a/google-cloud-datastore-admin/lib/google/cloud/datastore/admin/version.rb +++ b/google-cloud-datastore-admin/lib/google/cloud/datastore/admin/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Datastore module Admin - VERSION = "0.5.1" + VERSION = "0.5.2" end end end diff --git a/google-cloud-datastore-v1/CHANGELOG.md b/google-cloud-datastore-v1/CHANGELOG.md index 34ccc9edc401..d742dc5fa238 100644 --- a/google-cloud-datastore-v1/CHANGELOG.md +++ b/google-cloud-datastore-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.1 (2025-07-15) #### Documentation diff --git a/google-cloud-datastore-v1/google-cloud-datastore-v1.gemspec b/google-cloud-datastore-v1/google-cloud-datastore-v1.gemspec index 5c1cecce2a4f..1d0d1ff55855 100644 --- a/google-cloud-datastore-v1/google-cloud-datastore-v1.gemspec +++ b/google-cloud-datastore-v1/google-cloud-datastore-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-datastore-v1/lib/google/cloud/datastore/v1/version.rb b/google-cloud-datastore-v1/lib/google/cloud/datastore/v1/version.rb index 2262f04d807a..614ddceb28ab 100644 --- a/google-cloud-datastore-v1/lib/google/cloud/datastore/v1/version.rb +++ b/google-cloud-datastore-v1/lib/google/cloud/datastore/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Datastore module V1 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-datastore-v1/snippets/snippet_metadata_google.datastore.v1.json b/google-cloud-datastore-v1/snippets/snippet_metadata_google.datastore.v1.json index b782fba6f2ae..2c8d52fbd0fe 100644 --- a/google-cloud-datastore-v1/snippets/snippet_metadata_google.datastore.v1.json +++ b/google-cloud-datastore-v1/snippets/snippet_metadata_google.datastore.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-datastore-v1", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-datastream-v1/CHANGELOG.md b/google-cloud-datastream-v1/CHANGELOG.md index fa03eade595a..3808d4ce5bf3 100644 --- a/google-cloud-datastream-v1/CHANGELOG.md +++ b/google-cloud-datastream-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-08-12) #### Features diff --git a/google-cloud-datastream-v1/google-cloud-datastream-v1.gemspec b/google-cloud-datastream-v1/google-cloud-datastream-v1.gemspec index 1279ee0c9555..24f41042d1e4 100644 --- a/google-cloud-datastream-v1/google-cloud-datastream-v1.gemspec +++ b/google-cloud-datastream-v1/google-cloud-datastream-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-datastream-v1/lib/google/cloud/datastream/v1/version.rb b/google-cloud-datastream-v1/lib/google/cloud/datastream/v1/version.rb index e39395a922ab..7bd0d71b3ed9 100644 --- a/google-cloud-datastream-v1/lib/google/cloud/datastream/v1/version.rb +++ b/google-cloud-datastream-v1/lib/google/cloud/datastream/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Datastream module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-datastream-v1/snippets/snippet_metadata_google.cloud.datastream.v1.json b/google-cloud-datastream-v1/snippets/snippet_metadata_google.cloud.datastream.v1.json index d8cf9284bd0d..45957416663b 100644 --- a/google-cloud-datastream-v1/snippets/snippet_metadata_google.cloud.datastream.v1.json +++ b/google-cloud-datastream-v1/snippets/snippet_metadata_google.cloud.datastream.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-datastream-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-datastream-v1alpha1/CHANGELOG.md b/google-cloud-datastream-v1alpha1/CHANGELOG.md index c89004d586cf..4fef409e12c3 100644 --- a/google-cloud-datastream-v1alpha1/CHANGELOG.md +++ b/google-cloud-datastream-v1alpha1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.11.1 (2025-07-15) #### Documentation diff --git a/google-cloud-datastream-v1alpha1/google-cloud-datastream-v1alpha1.gemspec b/google-cloud-datastream-v1alpha1/google-cloud-datastream-v1alpha1.gemspec index 03de127a38a0..d7e1a4037463 100644 --- a/google-cloud-datastream-v1alpha1/google-cloud-datastream-v1alpha1.gemspec +++ b/google-cloud-datastream-v1alpha1/google-cloud-datastream-v1alpha1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-datastream-v1alpha1/lib/google/cloud/datastream/v1alpha1/version.rb b/google-cloud-datastream-v1alpha1/lib/google/cloud/datastream/v1alpha1/version.rb index 764930cd052f..4a7cf3946fbe 100644 --- a/google-cloud-datastream-v1alpha1/lib/google/cloud/datastream/v1alpha1/version.rb +++ b/google-cloud-datastream-v1alpha1/lib/google/cloud/datastream/v1alpha1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Datastream module V1alpha1 - VERSION = "0.11.1" + VERSION = "0.12.0" end end end diff --git a/google-cloud-datastream-v1alpha1/snippets/snippet_metadata_google.cloud.datastream.v1alpha1.json b/google-cloud-datastream-v1alpha1/snippets/snippet_metadata_google.cloud.datastream.v1alpha1.json index 412a54345811..37150bab10e2 100644 --- a/google-cloud-datastream-v1alpha1/snippets/snippet_metadata_google.cloud.datastream.v1alpha1.json +++ b/google-cloud-datastream-v1alpha1/snippets/snippet_metadata_google.cloud.datastream.v1alpha1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-datastream-v1alpha1", - "version": "0.11.1", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-datastream/CHANGELOG.md b/google-cloud-datastream/CHANGELOG.md index fdf66ef3ba1d..e932a7d29ed6 100644 --- a/google-cloud-datastream/CHANGELOG.md +++ b/google-cloud-datastream/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-datastream/README.md b/google-cloud-datastream/README.md index f940904b7dc2..219baa6339bc 100644 --- a/google-cloud-datastream/README.md +++ b/google-cloud-datastream/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/datastream.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/datastream" + +client = Google::Cloud::Datastream.datastream +request = ::Google::Cloud::Datastream::V1::ListConnectionProfilesRequest.new # (request fields as keyword arguments...) +response = client.list_connection_profiles request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-datastream/lib/google/cloud/datastream/version.rb b/google-cloud-datastream/lib/google/cloud/datastream/version.rb index 2c5d0a8aea57..ddfc812f55ae 100644 --- a/google-cloud-datastream/lib/google/cloud/datastream/version.rb +++ b/google-cloud-datastream/lib/google/cloud/datastream/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Datastream - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-deploy-v1/CHANGELOG.md b/google-cloud-deploy-v1/CHANGELOG.md index 9c15abab054a..bb724e345fff 100644 --- a/google-cloud-deploy-v1/CHANGELOG.md +++ b/google-cloud-deploy-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.2.0 (2025-05-12) #### Features diff --git a/google-cloud-deploy-v1/google-cloud-deploy-v1.gemspec b/google-cloud-deploy-v1/google-cloud-deploy-v1.gemspec index e2f41f6d3423..1052f6469a15 100644 --- a/google-cloud-deploy-v1/google-cloud-deploy-v1.gemspec +++ b/google-cloud-deploy-v1/google-cloud-deploy-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-deploy-v1/lib/google/cloud/deploy/v1/version.rb b/google-cloud-deploy-v1/lib/google/cloud/deploy/v1/version.rb index 379885624016..6ce0289754db 100644 --- a/google-cloud-deploy-v1/lib/google/cloud/deploy/v1/version.rb +++ b/google-cloud-deploy-v1/lib/google/cloud/deploy/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Deploy module V1 - VERSION = "2.2.0" + VERSION = "2.3.0" end end end diff --git a/google-cloud-deploy-v1/snippets/snippet_metadata_google.cloud.deploy.v1.json b/google-cloud-deploy-v1/snippets/snippet_metadata_google.cloud.deploy.v1.json index 42f9016ed303..95ab27adcde0 100644 --- a/google-cloud-deploy-v1/snippets/snippet_metadata_google.cloud.deploy.v1.json +++ b/google-cloud-deploy-v1/snippets/snippet_metadata_google.cloud.deploy.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-deploy-v1", - "version": "2.2.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-deploy/CHANGELOG.md b/google-cloud-deploy/CHANGELOG.md index d9a662f36bf9..9cadc6d9d224 100644 --- a/google-cloud-deploy/CHANGELOG.md +++ b/google-cloud-deploy/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-deploy/README.md b/google-cloud-deploy/README.md index a8e2fea4e7b3..8b23bb1c2d29 100644 --- a/google-cloud-deploy/README.md +++ b/google-cloud-deploy/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/clouddeploy.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/deploy" + +client = Google::Cloud::Deploy.cloud_deploy +request = ::Google::Cloud::Deploy::V1::ListDeliveryPipelinesRequest.new # (request fields as keyword arguments...) +response = client.list_delivery_pipelines request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-deploy/lib/google/cloud/deploy/version.rb b/google-cloud-deploy/lib/google/cloud/deploy/version.rb index eb7c054bc628..540eefb966c3 100644 --- a/google-cloud-deploy/lib/google/cloud/deploy/version.rb +++ b/google-cloud-deploy/lib/google/cloud/deploy/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Deploy - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-developer_connect-v1/CHANGELOG.md b/google-cloud-developer_connect-v1/CHANGELOG.md index ef50a5ddfa2f..8128c04004a9 100644 --- a/google-cloud-developer_connect-v1/CHANGELOG.md +++ b/google-cloud-developer_connect-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.2.0 (2025-06-24) #### Features diff --git a/google-cloud-developer_connect-v1/google-cloud-developer_connect-v1.gemspec b/google-cloud-developer_connect-v1/google-cloud-developer_connect-v1.gemspec index 36ab7ac269ac..736cb409d10a 100644 --- a/google-cloud-developer_connect-v1/google-cloud-developer_connect-v1.gemspec +++ b/google-cloud-developer_connect-v1/google-cloud-developer_connect-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-developer_connect-v1/lib/google/cloud/developer_connect/v1/version.rb b/google-cloud-developer_connect-v1/lib/google/cloud/developer_connect/v1/version.rb index f05d3d606f58..b793886dd818 100644 --- a/google-cloud-developer_connect-v1/lib/google/cloud/developer_connect/v1/version.rb +++ b/google-cloud-developer_connect-v1/lib/google/cloud/developer_connect/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DeveloperConnect module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-developer_connect-v1/snippets/snippet_metadata_google.cloud.developerconnect.v1.json b/google-cloud-developer_connect-v1/snippets/snippet_metadata_google.cloud.developerconnect.v1.json index e1fd2f0e6625..28e605610e18 100644 --- a/google-cloud-developer_connect-v1/snippets/snippet_metadata_google.cloud.developerconnect.v1.json +++ b/google-cloud-developer_connect-v1/snippets/snippet_metadata_google.cloud.developerconnect.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-developer_connect-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-developer_connect/CHANGELOG.md b/google-cloud-developer_connect/CHANGELOG.md index 89b1e98bdd11..8e957b8d9050 100644 --- a/google-cloud-developer_connect/CHANGELOG.md +++ b/google-cloud-developer_connect/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.0 (2025-06-24) #### Features diff --git a/google-cloud-developer_connect/README.md b/google-cloud-developer_connect/README.md index 3e5d1bd894de..2ee1487d797b 100644 --- a/google-cloud-developer_connect/README.md +++ b/google-cloud-developer_connect/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/developerconnect.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/developer_connect" + +client = Google::Cloud::DeveloperConnect.developer_connect +request = ::Google::Cloud::DeveloperConnect::V1::ListConnectionsRequest.new # (request fields as keyword arguments...) +response = client.list_connections request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-developer_connect/lib/google/cloud/developer_connect/version.rb b/google-cloud-developer_connect/lib/google/cloud/developer_connect/version.rb index 7e0fcc6c00d1..b3babe1613ab 100644 --- a/google-cloud-developer_connect/lib/google/cloud/developer_connect/version.rb +++ b/google-cloud-developer_connect/lib/google/cloud/developer_connect/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DeveloperConnect - VERSION = "2.1.0" + VERSION = "2.1.1" end end end diff --git a/google-cloud-device_streaming-v1/CHANGELOG.md b/google-cloud-device_streaming-v1/CHANGELOG.md index 77a207c5805b..5253b0472747 100644 --- a/google-cloud-device_streaming-v1/CHANGELOG.md +++ b/google-cloud-device_streaming-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-cloud-device_streaming-v1/google-cloud-device_streaming-v1.gemspec b/google-cloud-device_streaming-v1/google-cloud-device_streaming-v1.gemspec index 65411313d5fe..4a44eca09bf1 100644 --- a/google-cloud-device_streaming-v1/google-cloud-device_streaming-v1.gemspec +++ b/google-cloud-device_streaming-v1/google-cloud-device_streaming-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-device_streaming-v1/lib/google/cloud/device_streaming/v1/version.rb b/google-cloud-device_streaming-v1/lib/google/cloud/device_streaming/v1/version.rb index b81750a2a9cb..06aa3c74e01a 100644 --- a/google-cloud-device_streaming-v1/lib/google/cloud/device_streaming/v1/version.rb +++ b/google-cloud-device_streaming-v1/lib/google/cloud/device_streaming/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DeviceStreaming module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-device_streaming-v1/snippets/snippet_metadata_google.cloud.devicestreaming.v1.json b/google-cloud-device_streaming-v1/snippets/snippet_metadata_google.cloud.devicestreaming.v1.json index 3c4fea4150f2..05149bcad7fa 100644 --- a/google-cloud-device_streaming-v1/snippets/snippet_metadata_google.cloud.devicestreaming.v1.json +++ b/google-cloud-device_streaming-v1/snippets/snippet_metadata_google.cloud.devicestreaming.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-device_streaming-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-device_streaming/CHANGELOG.md b/google-cloud-device_streaming/CHANGELOG.md index eeae17becd52..fb4164b0a9a1 100644 --- a/google-cloud-device_streaming/CHANGELOG.md +++ b/google-cloud-device_streaming/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-cloud-device_streaming/README.md b/google-cloud-device_streaming/README.md index 93a2bc61909f..7c6514d56fd2 100644 --- a/google-cloud-device_streaming/README.md +++ b/google-cloud-device_streaming/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/devicestreaming.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/device_streaming" + +client = Google::Cloud::DeviceStreaming.direct_access_service +request = ::Google::Cloud::DeviceStreaming::V1::CreateDeviceSessionRequest.new # (request fields as keyword arguments...) +response = client.create_device_session request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-device_streaming/lib/google/cloud/device_streaming/version.rb b/google-cloud-device_streaming/lib/google/cloud/device_streaming/version.rb index 4499e22eb396..23b1f3da9f58 100644 --- a/google-cloud-device_streaming/lib/google/cloud/device_streaming/version.rb +++ b/google-cloud-device_streaming/lib/google/cloud/device_streaming/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DeviceStreaming - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-dialogflow-cx-v3/CHANGELOG.md b/google-cloud-dialogflow-cx-v3/CHANGELOG.md index 8de20a7b7f72..c26483bac421 100644 --- a/google-cloud-dialogflow-cx-v3/CHANGELOG.md +++ b/google-cloud-dialogflow-cx-v3/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.8.0 (2025-07-15) #### Features diff --git a/google-cloud-dialogflow-cx-v3/google-cloud-dialogflow-cx-v3.gemspec b/google-cloud-dialogflow-cx-v3/google-cloud-dialogflow-cx-v3.gemspec index d83d017a44c9..ac45eaa9f882 100644 --- a/google-cloud-dialogflow-cx-v3/google-cloud-dialogflow-cx-v3.gemspec +++ b/google-cloud-dialogflow-cx-v3/google-cloud-dialogflow-cx-v3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-dialogflow-cx-v3/lib/google/cloud/dialogflow/cx/v3/version.rb b/google-cloud-dialogflow-cx-v3/lib/google/cloud/dialogflow/cx/v3/version.rb index e301129661f2..5922c3a19c5d 100644 --- a/google-cloud-dialogflow-cx-v3/lib/google/cloud/dialogflow/cx/v3/version.rb +++ b/google-cloud-dialogflow-cx-v3/lib/google/cloud/dialogflow/cx/v3/version.rb @@ -22,7 +22,7 @@ module Cloud module Dialogflow module CX module V3 - VERSION = "1.8.0" + VERSION = "1.9.0" end end end diff --git a/google-cloud-dialogflow-cx-v3/snippets/snippet_metadata_google.cloud.dialogflow.cx.v3.json b/google-cloud-dialogflow-cx-v3/snippets/snippet_metadata_google.cloud.dialogflow.cx.v3.json index bea94be93ed8..9aae55ae2480 100644 --- a/google-cloud-dialogflow-cx-v3/snippets/snippet_metadata_google.cloud.dialogflow.cx.v3.json +++ b/google-cloud-dialogflow-cx-v3/snippets/snippet_metadata_google.cloud.dialogflow.cx.v3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dialogflow-cx-v3", - "version": "1.8.0", + "version": "1.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dialogflow-cx/CHANGELOG.md b/google-cloud-dialogflow-cx/CHANGELOG.md index 1e27d5ea7916..88b40f993819 100644 --- a/google-cloud-dialogflow-cx/CHANGELOG.md +++ b/google-cloud-dialogflow-cx/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-dialogflow-cx/README.md b/google-cloud-dialogflow-cx/README.md index a6b250a92c25..c27d9959e3b2 100644 --- a/google-cloud-dialogflow-cx/README.md +++ b/google-cloud-dialogflow-cx/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dialogflow.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dialogflow/cx" + +client = Google::Cloud::Dialogflow::CX.pages +request = ::Google::Cloud::Dialogflow::CX::V3::ListPagesRequest.new # (request fields as keyword arguments...) +response = client.list_pages request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-dialogflow-cx/lib/google/cloud/dialogflow/cx/version.rb b/google-cloud-dialogflow-cx/lib/google/cloud/dialogflow/cx/version.rb index 91c308d582c3..1ff5bad0df0e 100644 --- a/google-cloud-dialogflow-cx/lib/google/cloud/dialogflow/cx/version.rb +++ b/google-cloud-dialogflow-cx/lib/google/cloud/dialogflow/cx/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dialogflow module CX - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-dialogflow-v2/CHANGELOG.md b/google-cloud-dialogflow-v2/CHANGELOG.md index 2b36de9d7e7e..f694be01bb7b 100644 --- a/google-cloud-dialogflow-v2/CHANGELOG.md +++ b/google-cloud-dialogflow-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.10.1 (2025-07-15) #### Documentation diff --git a/google-cloud-dialogflow-v2/google-cloud-dialogflow-v2.gemspec b/google-cloud-dialogflow-v2/google-cloud-dialogflow-v2.gemspec index 8317c236de28..d3204ee85c79 100644 --- a/google-cloud-dialogflow-v2/google-cloud-dialogflow-v2.gemspec +++ b/google-cloud-dialogflow-v2/google-cloud-dialogflow-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-dialogflow-v2/lib/google/cloud/dialogflow/v2/version.rb b/google-cloud-dialogflow-v2/lib/google/cloud/dialogflow/v2/version.rb index 3c73191fbb4b..289faacd2bc3 100644 --- a/google-cloud-dialogflow-v2/lib/google/cloud/dialogflow/v2/version.rb +++ b/google-cloud-dialogflow-v2/lib/google/cloud/dialogflow/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dialogflow module V2 - VERSION = "1.10.1" + VERSION = "1.11.0" end end end diff --git a/google-cloud-dialogflow-v2/snippets/snippet_metadata_google.cloud.dialogflow.v2.json b/google-cloud-dialogflow-v2/snippets/snippet_metadata_google.cloud.dialogflow.v2.json index 8b486e175e45..3c5c7350e683 100644 --- a/google-cloud-dialogflow-v2/snippets/snippet_metadata_google.cloud.dialogflow.v2.json +++ b/google-cloud-dialogflow-v2/snippets/snippet_metadata_google.cloud.dialogflow.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dialogflow-v2", - "version": "1.10.1", + "version": "1.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dialogflow/CHANGELOG.md b/google-cloud-dialogflow/CHANGELOG.md index b9a0581801db..7a68d40effb2 100644 --- a/google-cloud-dialogflow/CHANGELOG.md +++ b/google-cloud-dialogflow/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.11.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.11.2 (2025-05-27) #### Documentation diff --git a/google-cloud-dialogflow/README.md b/google-cloud-dialogflow/README.md index 6f3eba1a9147..8ba03627adfb 100644 --- a/google-cloud-dialogflow/README.md +++ b/google-cloud-dialogflow/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dialogflow.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dialogflow" + +client = Google::Cloud::Dialogflow.agents +request = ::Google::Cloud::Dialogflow::V2::GetAgentRequest.new # (request fields as keyword arguments...) +response = client.get_agent request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-dialogflow client is a significant upgrade diff --git a/google-cloud-dialogflow/lib/google/cloud/dialogflow/version.rb b/google-cloud-dialogflow/lib/google/cloud/dialogflow/version.rb index 7698a8924fc0..38614507664f 100644 --- a/google-cloud-dialogflow/lib/google/cloud/dialogflow/version.rb +++ b/google-cloud-dialogflow/lib/google/cloud/dialogflow/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Dialogflow - VERSION = "1.11.2".freeze + VERSION = "1.11.3".freeze end end end diff --git a/google-cloud-discovery_engine-v1/CHANGELOG.md b/google-cloud-discovery_engine-v1/CHANGELOG.md index 480fd453fb49..36b5fa497624 100644 --- a/google-cloud-discovery_engine-v1/CHANGELOG.md +++ b/google-cloud-discovery_engine-v1/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### 2.5.0 (2025-09-11) + +#### Features + +* Added `ranking_expression_backed` and `rank_signals` fields related to the Custom Ranking feature ([#31004](https://github.com/googleapis/google-cloud-ruby/issues/31004)) +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 2.4.0 (2025-07-25) #### Features diff --git a/google-cloud-discovery_engine-v1/google-cloud-discovery_engine-v1.gemspec b/google-cloud-discovery_engine-v1/google-cloud-discovery_engine-v1.gemspec index 00ddffab98c6..94dabc53a975 100644 --- a/google-cloud-discovery_engine-v1/google-cloud-discovery_engine-v1.gemspec +++ b/google-cloud-discovery_engine-v1/google-cloud-discovery_engine-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/client.rb b/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/client.rb index 2b4261402a0d..15fd29847650 100644 --- a/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/client.rb +++ b/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/client.rb @@ -217,7 +217,7 @@ def logger # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil) + # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil, ranking_expression: nil, ranking_expression_backend: nil) # Pass arguments to `search` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -443,6 +443,99 @@ def logger # This feature is not supported for healthcare search. # @param relevance_score_spec [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec, ::Hash] # Optional. The specification for returning the relevance score. + # @param ranking_expression [::String] + # The ranking expression controls the customized ranking on retrieval + # documents. This overrides + # {::Google::Cloud::DiscoveryEngine::V1::ServingConfig#ranking_expression ServingConfig.ranking_expression}. + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". + # + # * ranking_expression = function, { " + ", function }; + # + # Supported functions: + # + # * double * relevance_score + # * double * dotProduct(embedding_field_path) + # + # Function variables: + # + # * `relevance_score`: pre-defined keywords, used for measure relevance + # between query and document. + # * `embedding_field_path`: the document embedding field + # used with query embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. + # + # Example ranking expression: + # + # If document has an embedding field doc_embedding, the ranking expression + # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult>] @@ -539,7 +632,7 @@ def search request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil) + # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil, ranking_expression: nil, ranking_expression_backend: nil) # Pass arguments to `search_lite` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -765,6 +858,99 @@ def search request, options = nil # This feature is not supported for healthcare search. # @param relevance_score_spec [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec, ::Hash] # Optional. The specification for returning the relevance score. + # @param ranking_expression [::String] + # The ranking expression controls the customized ranking on retrieval + # documents. This overrides + # {::Google::Cloud::DiscoveryEngine::V1::ServingConfig#ranking_expression ServingConfig.ranking_expression}. + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". + # + # * ranking_expression = function, { " + ", function }; + # + # Supported functions: + # + # * double * relevance_score + # * double * dotProduct(embedding_field_path) + # + # Function variables: + # + # * `relevance_score`: pre-defined keywords, used for measure relevance + # between query and document. + # * `embedding_field_path`: the document embedding field + # used with query embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. + # + # Example ranking expression: + # + # If document has an embedding field doc_embedding, the ranking expression + # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult>] diff --git a/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb b/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb index 458c9869407b..d8afe1edd333 100644 --- a/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb +++ b/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb @@ -210,7 +210,7 @@ def logger # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil) + # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil, ranking_expression: nil, ranking_expression_backend: nil) # Pass arguments to `search` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -436,6 +436,99 @@ def logger # This feature is not supported for healthcare search. # @param relevance_score_spec [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec, ::Hash] # Optional. The specification for returning the relevance score. + # @param ranking_expression [::String] + # The ranking expression controls the customized ranking on retrieval + # documents. This overrides + # {::Google::Cloud::DiscoveryEngine::V1::ServingConfig#ranking_expression ServingConfig.ranking_expression}. + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". + # + # * ranking_expression = function, { " + ", function }; + # + # Supported functions: + # + # * double * relevance_score + # * double * dotProduct(embedding_field_path) + # + # Function variables: + # + # * `relevance_score`: pre-defined keywords, used for measure relevance + # between query and document. + # * `embedding_field_path`: the document embedding field + # used with query embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. + # + # Example ranking expression: + # + # If document has an embedding field doc_embedding, the ranking expression + # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult>] # @yieldparam operation [::Gapic::Rest::TransportOperation] @@ -525,7 +618,7 @@ def search request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil) + # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, safe_search: nil, user_labels: nil, search_as_you_type_spec: nil, display_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, relevance_score_spec: nil, ranking_expression: nil, ranking_expression_backend: nil) # Pass arguments to `search_lite` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -751,6 +844,99 @@ def search request, options = nil # This feature is not supported for healthcare search. # @param relevance_score_spec [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec, ::Hash] # Optional. The specification for returning the relevance score. + # @param ranking_expression [::String] + # The ranking expression controls the customized ranking on retrieval + # documents. This overrides + # {::Google::Cloud::DiscoveryEngine::V1::ServingConfig#ranking_expression ServingConfig.ranking_expression}. + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". + # + # * ranking_expression = function, { " + ", function }; + # + # Supported functions: + # + # * double * relevance_score + # * double * dotProduct(embedding_field_path) + # + # Function variables: + # + # * `relevance_score`: pre-defined keywords, used for measure relevance + # between query and document. + # * `embedding_field_path`: the document embedding field + # used with query embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. + # + # Example ranking expression: + # + # If document has an embedding field doc_embedding, the ranking expression + # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult>] # @yieldparam operation [::Gapic::Rest::TransportOperation] diff --git a/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/version.rb b/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/version.rb index 13e962c216de..33fbe372504a 100644 --- a/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/version.rb +++ b/google-cloud-discovery_engine-v1/lib/google/cloud/discovery_engine/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DiscoveryEngine module V1 - VERSION = "2.4.0" + VERSION = "2.5.0" end end end diff --git a/google-cloud-discovery_engine-v1/lib/google/cloud/discoveryengine/v1/search_service_pb.rb b/google-cloud-discovery_engine-v1/lib/google/cloud/discoveryengine/v1/search_service_pb.rb index 042c7fe7392f..b232a597ae20 100644 --- a/google-cloud-discovery_engine-v1/lib/google/cloud/discoveryengine/v1/search_service_pb.rb +++ b/google-cloud-discovery_engine-v1/lib/google/cloud/discoveryengine/v1/search_service_pb.rb @@ -14,7 +14,7 @@ require 'google/protobuf/struct_pb' -descriptor_data = "\n4google/cloud/discoveryengine/v1/search_service.proto\x12\x1fgoogle.cloud.discoveryengine.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a+google/cloud/discoveryengine/v1/chunk.proto\x1a,google/cloud/discoveryengine/v1/common.proto\x1a.google/cloud/discoveryengine/v1/document.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xbc\x30\n\rSearchRequest\x12L\n\x0eserving_config\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,discoveryengine.googleapis.com/ServingConfig\x12:\n\x06\x62ranch\x18\x02 \x01(\tB*\xfa\x41\'\n%discoveryengine.googleapis.com/Branch\x12\r\n\x05query\x18\x03 \x01(\t\x12N\n\x0bimage_query\x18\x13 \x01(\x0b\x32\x39.google.cloud.discoveryengine.v1.SearchRequest.ImageQuery\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x12\n\npage_token\x18\x05 \x01(\t\x12\x0e\n\x06offset\x18\x06 \x01(\x05\x12\x19\n\x11one_box_page_size\x18/ \x01(\x05\x12V\n\x10\x64\x61ta_store_specs\x18 \x03(\x0b\x32<.google.cloud.discoveryengine.v1.SearchRequest.DataStoreSpec\x12\x0e\n\x06\x66ilter\x18\x07 \x01(\t\x12\x18\n\x10\x63\x61nonical_filter\x18\x1d \x01(\t\x12\x10\n\x08order_by\x18\x08 \x01(\t\x12<\n\tuser_info\x18\x15 \x01(\x0b\x32).google.cloud.discoveryengine.v1.UserInfo\x12\x15\n\rlanguage_code\x18# \x01(\t\x12M\n\x0b\x66\x61\x63\x65t_specs\x18\t \x03(\x0b\x32\x38.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec\x12L\n\nboost_spec\x18\n \x01(\x0b\x32\x38.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec\x12J\n\x06params\x18\x0b \x03(\x0b\x32:.google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry\x12_\n\x14query_expansion_spec\x18\r \x01(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec\x12\x61\n\x15spell_correction_spec\x18\x0e \x01(\x0b\x32\x42.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec\x12\x16\n\x0euser_pseudo_id\x18\x0f \x01(\t\x12]\n\x13\x63ontent_search_spec\x18\x18 \x01(\x0b\x32@.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec\x12\x13\n\x0bsafe_search\x18\x14 \x01(\x08\x12S\n\x0buser_labels\x18\x16 \x03(\x0b\x32>.google.cloud.discoveryengine.v1.SearchRequest.UserLabelsEntry\x12\x63\n\x17search_as_you_type_spec\x18\x1f \x01(\x0b\x32\x42.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec\x12U\n\x0c\x64isplay_spec\x18& \x01(\x0b\x32:.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpecB\x03\xe0\x41\x01\x12<\n\x07session\x18) \x01(\tB+\xfa\x41(\n&discoveryengine.googleapis.com/Session\x12P\n\x0csession_spec\x18* \x01(\x0b\x32:.google.cloud.discoveryengine.v1.SearchRequest.SessionSpec\x12^\n\x13relevance_threshold\x18, \x01(\x0e\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold\x12\x64\n\x14relevance_score_spec\x18\x34 \x01(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.RelevanceScoreSpecB\x03\xe0\x41\x01\x1a,\n\nImageQuery\x12\x15\n\x0bimage_bytes\x18\x01 \x01(\tH\x00\x42\x07\n\x05image\x1a\xe3\x01\n\rDataStoreSpec\x12\x44\n\ndata_store\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(discoveryengine.googleapis.com/DataStore\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12Q\n\nboost_spec\x18\x06 \x01(\x0b\x32\x38.google.cloud.discoveryengine.v1.SearchRequest.BoostSpecB\x03\xe0\x41\x01\x12$\n\x17\x63ustom_search_operators\x18\x07 \x01(\tB\x03\xe0\x41\x01\x1a\xfc\x02\n\tFacetSpec\x12Y\n\tfacet_key\x18\x01 \x01(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKeyB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x1c\n\x14\x65xcluded_filter_keys\x18\x03 \x03(\t\x12\x1f\n\x17\x65nable_dynamic_position\x18\x04 \x01(\x08\x1a\xc5\x01\n\x08\x46\x61\x63\x65tKey\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12<\n\tintervals\x18\x02 \x03(\x0b\x32).google.cloud.discoveryengine.v1.Interval\x12\x19\n\x11restricted_values\x18\x03 \x03(\t\x12\x10\n\x08prefixes\x18\x04 \x03(\t\x12\x10\n\x08\x63ontains\x18\x05 \x03(\t\x12\x18\n\x10\x63\x61se_insensitive\x18\x06 \x01(\x08\x12\x10\n\x08order_by\x18\x07 \x01(\t\x1a\xbc\x07\n\tBoostSpec\x12j\n\x15\x63ondition_boost_specs\x18\x01 \x03(\x0b\x32K.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec\x1a\xc2\x06\n\x12\x43onditionBoostSpec\x12\x11\n\tcondition\x18\x01 \x01(\t\x12\r\n\x05\x62oost\x18\x02 \x01(\x02\x12x\n\x12\x62oost_control_spec\x18\x03 \x01(\x0b\x32\\.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec\x1a\x8f\x05\n\x10\x42oostControlSpec\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x82\x01\n\x0e\x61ttribute_type\x18\x02 \x01(\x0e\x32j.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType\x12\x8a\x01\n\x12interpolation_type\x18\x03 \x01(\x0e\x32n.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType\x12\x81\x01\n\x0e\x63ontrol_points\x18\x04 \x03(\x0b\x32i.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint\x1a=\n\x0c\x43ontrolPoint\x12\x17\n\x0f\x61ttribute_value\x18\x01 \x01(\t\x12\x14\n\x0c\x62oost_amount\x18\x02 \x01(\x02\"M\n\rAttributeType\x12\x1e\n\x1a\x41TTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tNUMERICAL\x10\x01\x12\r\n\tFRESHNESS\x10\x02\"C\n\x11InterpolationType\x12\"\n\x1eINTERPOLATION_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06LINEAR\x10\x01\x1a\xd4\x01\n\x12QueryExpansionSpec\x12^\n\tcondition\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition\x12\x1e\n\x16pin_unexpanded_results\x18\x02 \x01(\x08\">\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xa9\x01\n\x13SpellCorrectionSpec\x12U\n\x04mode\x18\x01 \x01(\x0e\x32G.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode\";\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSUGGESTION_ONLY\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xa2\x0c\n\x11\x43ontentSearchSpec\x12\x62\n\x0csnippet_spec\x18\x01 \x01(\x0b\x32L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SnippetSpec\x12\x62\n\x0csummary_spec\x18\x02 \x01(\x0b\x32L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec\x12w\n\x17\x65xtractive_content_spec\x18\x03 \x01(\x0b\x32V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ExtractiveContentSpec\x12m\n\x12search_result_mode\x18\x04 \x01(\x0e\x32Q.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode\x12^\n\nchunk_spec\x18\x05 \x01(\x0b\x32J.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ChunkSpec\x1a`\n\x0bSnippetSpec\x12\x1d\n\x11max_snippet_count\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x1a\n\x0ereference_only\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x16\n\x0ereturn_snippet\x18\x03 \x01(\x08\x1a\xbc\x04\n\x0bSummarySpec\x12\x1c\n\x14summary_result_count\x18\x01 \x01(\x05\x12\x19\n\x11include_citations\x18\x02 \x01(\x08\x12 \n\x18ignore_adversarial_query\x18\x03 \x01(\x08\x12(\n ignore_non_summary_seeking_query\x18\x04 \x01(\x08\x12#\n\x1bignore_low_relevant_content\x18\t \x01(\x08\x12\'\n\x1aignore_jail_breaking_query\x18\n \x01(\x08\x42\x03\xe0\x41\x01\x12w\n\x11model_prompt_spec\x18\x05 \x01(\x0b\x32\\.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec\x12\x15\n\rlanguage_code\x18\x06 \x01(\t\x12j\n\nmodel_spec\x18\x07 \x01(\x0b\x32V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec\x12\x1b\n\x13use_semantic_chunks\x18\x08 \x01(\x08\x1a#\n\x0fModelPromptSpec\x12\x10\n\x08preamble\x18\x01 \x01(\t\x1a\x1c\n\tModelSpec\x12\x0f\n\x07version\x18\x01 \x01(\t\x1a\xc5\x01\n\x15\x45xtractiveContentSpec\x12#\n\x1bmax_extractive_answer_count\x18\x01 \x01(\x05\x12$\n\x1cmax_extractive_segment_count\x18\x02 \x01(\x05\x12\'\n\x1freturn_extractive_segment_score\x18\x03 \x01(\x08\x12\x1d\n\x15num_previous_segments\x18\x04 \x01(\x05\x12\x19\n\x11num_next_segments\x18\x05 \x01(\x05\x1a\x41\n\tChunkSpec\x12\x1b\n\x13num_previous_chunks\x18\x01 \x01(\x05\x12\x17\n\x0fnum_next_chunks\x18\x02 \x01(\x05\"Q\n\x10SearchResultMode\x12\"\n\x1eSEARCH_RESULT_MODE_UNSPECIFIED\x10\x00\x12\r\n\tDOCUMENTS\x10\x01\x12\n\n\x06\x43HUNKS\x10\x02\x1a\xc3\x01\n\x13SearchAsYouTypeSpec\x12_\n\tcondition\x18\x01 \x01(\x0e\x32L.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec.Condition\"K\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x08\n\x04\x41UTO\x10\x03\x1a\x98\x02\n\x0b\x44isplaySpec\x12{\n\x1cmatch_highlighting_condition\x18\x01 \x01(\x0e\x32U.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpec.MatchHighlightingCondition\"\x8b\x01\n\x1aMatchHighlightingCondition\x12,\n(MATCH_HIGHLIGHTING_CONDITION_UNSPECIFIED\x10\x00\x12\x1f\n\x1bMATCH_HIGHLIGHTING_DISABLED\x10\x01\x12\x1e\n\x1aMATCH_HIGHLIGHTING_ENABLED\x10\x02\x1aq\n\x0bSessionSpec\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12,\n\x1fsearch_result_persistence_count\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\"\n _search_result_persistence_count\x1a\x39\n\x12RelevanceScoreSpec\x12#\n\x16return_relevance_score\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x45\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1a\x31\n\x0fUserLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x12RelevanceThreshold\x12#\n\x1fRELEVANCE_THRESHOLD_UNSPECIFIED\x10\x00\x12\n\n\x06LOWEST\x10\x01\x12\x07\n\x03LOW\x10\x02\x12\n\n\x06MEDIUM\x10\x03\x12\x08\n\x04HIGH\x10\x04\"\xe8\x16\n\x0eSearchResponse\x12M\n\x07results\x18\x01 \x03(\x0b\x32<.google.cloud.discoveryengine.v1.SearchResponse.SearchResult\x12\x45\n\x06\x66\x61\x63\x65ts\x18\x02 \x03(\x0b\x32\x35.google.cloud.discoveryengine.v1.SearchResponse.Facet\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\x12\x19\n\x11\x61ttribution_token\x18\x04 \x01(\t\x12\x14\n\x0credirect_uri\x18\x0c \x01(\t\x12\x17\n\x0fnext_page_token\x18\x05 \x01(\t\x12\x17\n\x0f\x63orrected_query\x18\x07 \x01(\t\x12H\n\x07summary\x18\t \x01(\x0b\x32\x37.google.cloud.discoveryengine.v1.SearchResponse.Summary\x12`\n\x14query_expansion_info\x18\x0e \x01(\x0b\x32\x42.google.cloud.discoveryengine.v1.SearchResponse.QueryExpansionInfo\x12Q\n\x0csession_info\x18\x13 \x01(\x0b\x32;.google.cloud.discoveryengine.v1.SearchResponse.SessionInfo\x12T\n\x16search_link_promotions\x18\x17 \x03(\x0b\x32\x34.google.cloud.discoveryengine.v1.SearchLinkPromotion\x1a\xd9\x02\n\x0cSearchResult\x12\n\n\x02id\x18\x01 \x01(\t\x12;\n\x08\x64ocument\x18\x02 \x01(\x0b\x32).google.cloud.discoveryengine.v1.Document\x12\x35\n\x05\x63hunk\x18\x12 \x01(\x0b\x32&.google.cloud.discoveryengine.v1.Chunk\x12h\n\x0cmodel_scores\x18\x04 \x03(\x0b\x32M.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.ModelScoresEntryB\x03\xe0\x41\x03\x1a_\n\x10ModelScoresEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.google.cloud.discoveryengine.v1.DoubleList:\x02\x38\x01\x1a\xf9\x01\n\x05\x46\x61\x63\x65t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12P\n\x06values\x18\x02 \x03(\x0b\x32@.google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue\x12\x15\n\rdynamic_facet\x18\x03 \x01(\x08\x1az\n\nFacetValue\x12\x0f\n\x05value\x18\x01 \x01(\tH\x00\x12=\n\x08interval\x18\x02 \x01(\x0b\x32).google.cloud.discoveryengine.v1.IntervalH\x00\x12\r\n\x05\x63ount\x18\x03 \x01(\x03\x42\r\n\x0b\x66\x61\x63\x65t_value\x1a\xa1\x0c\n\x07Summary\x12\x14\n\x0csummary_text\x18\x01 \x01(\t\x12m\n\x17summary_skipped_reasons\x18\x02 \x03(\x0e\x32L.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummarySkippedReason\x12\x63\n\x11safety_attributes\x18\x03 \x01(\x0b\x32H.google.cloud.discoveryengine.v1.SearchResponse.Summary.SafetyAttributes\x12j\n\x15summary_with_metadata\x18\x04 \x01(\x0b\x32K.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata\x1a\x36\n\x10SafetyAttributes\x12\x12\n\ncategories\x18\x01 \x03(\t\x12\x0e\n\x06scores\x18\x02 \x03(\x02\x1ag\n\x10\x43itationMetadata\x12S\n\tcitations\x18\x01 \x03(\x0b\x32@.google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation\x1a\x8b\x01\n\x08\x43itation\x12\x13\n\x0bstart_index\x18\x01 \x01(\x03\x12\x11\n\tend_index\x18\x02 \x01(\x03\x12W\n\x07sources\x18\x03 \x03(\x0b\x32\x46.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationSource\x1a)\n\x0e\x43itationSource\x12\x17\n\x0freference_index\x18\x04 \x01(\x03\x1a\x8c\x02\n\tReference\x12\r\n\x05title\x18\x01 \x01(\t\x12\x41\n\x08\x64ocument\x18\x02 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'discoveryengine.googleapis.com/Document\x12\x0b\n\x03uri\x18\x03 \x01(\t\x12\x66\n\x0e\x63hunk_contents\x18\x04 \x03(\x0b\x32N.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.ChunkContent\x1a\x38\n\x0c\x43hunkContent\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x17\n\x0fpage_identifier\x18\x02 \x01(\t\x1a\xe2\x01\n\x13SummaryWithMetadata\x12\x0f\n\x07summary\x18\x01 \x01(\t\x12\x63\n\x11\x63itation_metadata\x18\x02 \x01(\x0b\x32H.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata\x12U\n\nreferences\x18\x03 \x03(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference\"\xf1\x02\n\x14SummarySkippedReason\x12&\n\"SUMMARY_SKIPPED_REASON_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x44VERSARIAL_QUERY_IGNORED\x10\x01\x12%\n!NON_SUMMARY_SEEKING_QUERY_IGNORED\x10\x02\x12\x1f\n\x1bOUT_OF_DOMAIN_QUERY_IGNORED\x10\x03\x12\x1e\n\x1aPOTENTIAL_POLICY_VIOLATION\x10\x04\x12\x19\n\x15LLM_ADDON_NOT_ENABLED\x10\x05\x12\x17\n\x13NO_RELEVANT_CONTENT\x10\x06\x12\x1f\n\x1bJAIL_BREAKING_QUERY_IGNORED\x10\x07\x12\x1d\n\x19\x43USTOMER_POLICY_VIOLATION\x10\x08\x12(\n$NON_SUMMARY_SEEKING_QUERY_IGNORED_V2\x10\t\x12\x0c\n\x08TIME_OUT\x10\n\x1aI\n\x12QueryExpansionInfo\x12\x16\n\x0e\x65xpanded_query\x18\x01 \x01(\x08\x12\x1b\n\x13pinned_result_count\x18\x02 \x01(\x03\x1a-\n\x0bSessionInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08query_id\x18\x02 \x01(\t2\x97\x07\n\rSearchService\x12\x8f\x03\n\x06Search\x12..google.cloud.discoveryengine.v1.SearchRequest\x1a/.google.cloud.discoveryengine.v1.SearchResponse\"\xa3\x02\x82\xd3\xe4\x93\x02\x9c\x02\"P/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search:\x01*Zc\"^/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search:\x01*Z`\"[/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search:\x01*\x12\x9f\x03\n\nSearchLite\x12..google.cloud.discoveryengine.v1.SearchRequest\x1a/.google.cloud.discoveryengine.v1.SearchResponse\"\xaf\x02\x82\xd3\xe4\x93\x02\xa8\x02\"T/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zg\"b/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zd\"_/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite:\x01*\x1aR\xca\x41\x1e\x64iscoveryengine.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x85\x02\n#com.google.cloud.discoveryengine.v1B\x12SearchServiceProtoP\x01ZMcloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb\xa2\x02\x0f\x44ISCOVERYENGINE\xaa\x02\x1fGoogle.Cloud.DiscoveryEngine.V1\xca\x02\x1fGoogle\\Cloud\\DiscoveryEngine\\V1\xea\x02\"Google::Cloud::DiscoveryEngine::V1b\x06proto3" +descriptor_data = "\n4google/cloud/discoveryengine/v1/search_service.proto\x12\x1fgoogle.cloud.discoveryengine.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a+google/cloud/discoveryengine/v1/chunk.proto\x1a,google/cloud/discoveryengine/v1/common.proto\x1a.google/cloud/discoveryengine/v1/document.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xca\x32\n\rSearchRequest\x12L\n\x0eserving_config\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,discoveryengine.googleapis.com/ServingConfig\x12:\n\x06\x62ranch\x18\x02 \x01(\tB*\xfa\x41\'\n%discoveryengine.googleapis.com/Branch\x12\r\n\x05query\x18\x03 \x01(\t\x12N\n\x0bimage_query\x18\x13 \x01(\x0b\x32\x39.google.cloud.discoveryengine.v1.SearchRequest.ImageQuery\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x12\n\npage_token\x18\x05 \x01(\t\x12\x0e\n\x06offset\x18\x06 \x01(\x05\x12\x19\n\x11one_box_page_size\x18/ \x01(\x05\x12V\n\x10\x64\x61ta_store_specs\x18 \x03(\x0b\x32<.google.cloud.discoveryengine.v1.SearchRequest.DataStoreSpec\x12\x0e\n\x06\x66ilter\x18\x07 \x01(\t\x12\x18\n\x10\x63\x61nonical_filter\x18\x1d \x01(\t\x12\x10\n\x08order_by\x18\x08 \x01(\t\x12<\n\tuser_info\x18\x15 \x01(\x0b\x32).google.cloud.discoveryengine.v1.UserInfo\x12\x15\n\rlanguage_code\x18# \x01(\t\x12M\n\x0b\x66\x61\x63\x65t_specs\x18\t \x03(\x0b\x32\x38.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec\x12L\n\nboost_spec\x18\n \x01(\x0b\x32\x38.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec\x12J\n\x06params\x18\x0b \x03(\x0b\x32:.google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry\x12_\n\x14query_expansion_spec\x18\r \x01(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec\x12\x61\n\x15spell_correction_spec\x18\x0e \x01(\x0b\x32\x42.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec\x12\x16\n\x0euser_pseudo_id\x18\x0f \x01(\t\x12]\n\x13\x63ontent_search_spec\x18\x18 \x01(\x0b\x32@.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec\x12\x13\n\x0bsafe_search\x18\x14 \x01(\x08\x12S\n\x0buser_labels\x18\x16 \x03(\x0b\x32>.google.cloud.discoveryengine.v1.SearchRequest.UserLabelsEntry\x12\x63\n\x17search_as_you_type_spec\x18\x1f \x01(\x0b\x32\x42.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec\x12U\n\x0c\x64isplay_spec\x18& \x01(\x0b\x32:.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpecB\x03\xe0\x41\x01\x12<\n\x07session\x18) \x01(\tB+\xfa\x41(\n&discoveryengine.googleapis.com/Session\x12P\n\x0csession_spec\x18* \x01(\x0b\x32:.google.cloud.discoveryengine.v1.SearchRequest.SessionSpec\x12^\n\x13relevance_threshold\x18, \x01(\x0e\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold\x12\x64\n\x14relevance_score_spec\x18\x34 \x01(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.RelevanceScoreSpecB\x03\xe0\x41\x01\x12\x1a\n\x12ranking_expression\x18\x1a \x01(\t\x12p\n\x1aranking_expression_backend\x18\x35 \x01(\x0e\x32G.google.cloud.discoveryengine.v1.SearchRequest.RankingExpressionBackendB\x03\xe0\x41\x01\x1a,\n\nImageQuery\x12\x15\n\x0bimage_bytes\x18\x01 \x01(\tH\x00\x42\x07\n\x05image\x1a\xe3\x01\n\rDataStoreSpec\x12\x44\n\ndata_store\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(discoveryengine.googleapis.com/DataStore\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12Q\n\nboost_spec\x18\x06 \x01(\x0b\x32\x38.google.cloud.discoveryengine.v1.SearchRequest.BoostSpecB\x03\xe0\x41\x01\x12$\n\x17\x63ustom_search_operators\x18\x07 \x01(\tB\x03\xe0\x41\x01\x1a\xfc\x02\n\tFacetSpec\x12Y\n\tfacet_key\x18\x01 \x01(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKeyB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x1c\n\x14\x65xcluded_filter_keys\x18\x03 \x03(\t\x12\x1f\n\x17\x65nable_dynamic_position\x18\x04 \x01(\x08\x1a\xc5\x01\n\x08\x46\x61\x63\x65tKey\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12<\n\tintervals\x18\x02 \x03(\x0b\x32).google.cloud.discoveryengine.v1.Interval\x12\x19\n\x11restricted_values\x18\x03 \x03(\t\x12\x10\n\x08prefixes\x18\x04 \x03(\t\x12\x10\n\x08\x63ontains\x18\x05 \x03(\t\x12\x18\n\x10\x63\x61se_insensitive\x18\x06 \x01(\x08\x12\x10\n\x08order_by\x18\x07 \x01(\t\x1a\xbc\x07\n\tBoostSpec\x12j\n\x15\x63ondition_boost_specs\x18\x01 \x03(\x0b\x32K.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec\x1a\xc2\x06\n\x12\x43onditionBoostSpec\x12\x11\n\tcondition\x18\x01 \x01(\t\x12\r\n\x05\x62oost\x18\x02 \x01(\x02\x12x\n\x12\x62oost_control_spec\x18\x03 \x01(\x0b\x32\\.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec\x1a\x8f\x05\n\x10\x42oostControlSpec\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x82\x01\n\x0e\x61ttribute_type\x18\x02 \x01(\x0e\x32j.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType\x12\x8a\x01\n\x12interpolation_type\x18\x03 \x01(\x0e\x32n.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType\x12\x81\x01\n\x0e\x63ontrol_points\x18\x04 \x03(\x0b\x32i.google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint\x1a=\n\x0c\x43ontrolPoint\x12\x17\n\x0f\x61ttribute_value\x18\x01 \x01(\t\x12\x14\n\x0c\x62oost_amount\x18\x02 \x01(\x02\"M\n\rAttributeType\x12\x1e\n\x1a\x41TTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tNUMERICAL\x10\x01\x12\r\n\tFRESHNESS\x10\x02\"C\n\x11InterpolationType\x12\"\n\x1eINTERPOLATION_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06LINEAR\x10\x01\x1a\xd4\x01\n\x12QueryExpansionSpec\x12^\n\tcondition\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition\x12\x1e\n\x16pin_unexpanded_results\x18\x02 \x01(\x08\">\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xa9\x01\n\x13SpellCorrectionSpec\x12U\n\x04mode\x18\x01 \x01(\x0e\x32G.google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode\";\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSUGGESTION_ONLY\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xa2\x0c\n\x11\x43ontentSearchSpec\x12\x62\n\x0csnippet_spec\x18\x01 \x01(\x0b\x32L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SnippetSpec\x12\x62\n\x0csummary_spec\x18\x02 \x01(\x0b\x32L.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec\x12w\n\x17\x65xtractive_content_spec\x18\x03 \x01(\x0b\x32V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ExtractiveContentSpec\x12m\n\x12search_result_mode\x18\x04 \x01(\x0e\x32Q.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SearchResultMode\x12^\n\nchunk_spec\x18\x05 \x01(\x0b\x32J.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ChunkSpec\x1a`\n\x0bSnippetSpec\x12\x1d\n\x11max_snippet_count\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x1a\n\x0ereference_only\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x16\n\x0ereturn_snippet\x18\x03 \x01(\x08\x1a\xbc\x04\n\x0bSummarySpec\x12\x1c\n\x14summary_result_count\x18\x01 \x01(\x05\x12\x19\n\x11include_citations\x18\x02 \x01(\x08\x12 \n\x18ignore_adversarial_query\x18\x03 \x01(\x08\x12(\n ignore_non_summary_seeking_query\x18\x04 \x01(\x08\x12#\n\x1bignore_low_relevant_content\x18\t \x01(\x08\x12\'\n\x1aignore_jail_breaking_query\x18\n \x01(\x08\x42\x03\xe0\x41\x01\x12w\n\x11model_prompt_spec\x18\x05 \x01(\x0b\x32\\.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec\x12\x15\n\rlanguage_code\x18\x06 \x01(\t\x12j\n\nmodel_spec\x18\x07 \x01(\x0b\x32V.google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec\x12\x1b\n\x13use_semantic_chunks\x18\x08 \x01(\x08\x1a#\n\x0fModelPromptSpec\x12\x10\n\x08preamble\x18\x01 \x01(\t\x1a\x1c\n\tModelSpec\x12\x0f\n\x07version\x18\x01 \x01(\t\x1a\xc5\x01\n\x15\x45xtractiveContentSpec\x12#\n\x1bmax_extractive_answer_count\x18\x01 \x01(\x05\x12$\n\x1cmax_extractive_segment_count\x18\x02 \x01(\x05\x12\'\n\x1freturn_extractive_segment_score\x18\x03 \x01(\x08\x12\x1d\n\x15num_previous_segments\x18\x04 \x01(\x05\x12\x19\n\x11num_next_segments\x18\x05 \x01(\x05\x1a\x41\n\tChunkSpec\x12\x1b\n\x13num_previous_chunks\x18\x01 \x01(\x05\x12\x17\n\x0fnum_next_chunks\x18\x02 \x01(\x05\"Q\n\x10SearchResultMode\x12\"\n\x1eSEARCH_RESULT_MODE_UNSPECIFIED\x10\x00\x12\r\n\tDOCUMENTS\x10\x01\x12\n\n\x06\x43HUNKS\x10\x02\x1a\xc3\x01\n\x13SearchAsYouTypeSpec\x12_\n\tcondition\x18\x01 \x01(\x0e\x32L.google.cloud.discoveryengine.v1.SearchRequest.SearchAsYouTypeSpec.Condition\"K\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x08\n\x04\x41UTO\x10\x03\x1a\x98\x02\n\x0b\x44isplaySpec\x12{\n\x1cmatch_highlighting_condition\x18\x01 \x01(\x0e\x32U.google.cloud.discoveryengine.v1.SearchRequest.DisplaySpec.MatchHighlightingCondition\"\x8b\x01\n\x1aMatchHighlightingCondition\x12,\n(MATCH_HIGHLIGHTING_CONDITION_UNSPECIFIED\x10\x00\x12\x1f\n\x1bMATCH_HIGHLIGHTING_DISABLED\x10\x01\x12\x1e\n\x1aMATCH_HIGHLIGHTING_ENABLED\x10\x02\x1aq\n\x0bSessionSpec\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12,\n\x1fsearch_result_persistence_count\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\"\n _search_result_persistence_count\x1a\x39\n\x12RelevanceScoreSpec\x12#\n\x16return_relevance_score\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x45\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1a\x31\n\x0fUserLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x12RelevanceThreshold\x12#\n\x1fRELEVANCE_THRESHOLD_UNSPECIFIED\x10\x00\x12\n\n\x06LOWEST\x10\x01\x12\x07\n\x03LOW\x10\x02\x12\n\n\x06MEDIUM\x10\x03\x12\x08\n\x04HIGH\x10\x04\"~\n\x18RankingExpressionBackend\x12*\n&RANKING_EXPRESSION_BACKEND_UNSPECIFIED\x10\x00\x12\x15\n\x11RANK_BY_EMBEDDING\x10\x03\x12\x13\n\x0fRANK_BY_FORMULA\x10\x04\"\x04\x08\x01\x10\x01\"\x04\x08\x02\x10\x02\"\xbe\x1c\n\x0eSearchResponse\x12M\n\x07results\x18\x01 \x03(\x0b\x32<.google.cloud.discoveryengine.v1.SearchResponse.SearchResult\x12\x45\n\x06\x66\x61\x63\x65ts\x18\x02 \x03(\x0b\x32\x35.google.cloud.discoveryengine.v1.SearchResponse.Facet\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\x12\x19\n\x11\x61ttribution_token\x18\x04 \x01(\t\x12\x14\n\x0credirect_uri\x18\x0c \x01(\t\x12\x17\n\x0fnext_page_token\x18\x05 \x01(\t\x12\x17\n\x0f\x63orrected_query\x18\x07 \x01(\t\x12H\n\x07summary\x18\t \x01(\x0b\x32\x37.google.cloud.discoveryengine.v1.SearchResponse.Summary\x12`\n\x14query_expansion_info\x18\x0e \x01(\x0b\x32\x42.google.cloud.discoveryengine.v1.SearchResponse.QueryExpansionInfo\x12Q\n\x0csession_info\x18\x13 \x01(\x0b\x32;.google.cloud.discoveryengine.v1.SearchResponse.SessionInfo\x12T\n\x16search_link_promotions\x18\x17 \x03(\x0b\x32\x34.google.cloud.discoveryengine.v1.SearchLinkPromotion\x1a\xaf\x08\n\x0cSearchResult\x12\n\n\x02id\x18\x01 \x01(\t\x12;\n\x08\x64ocument\x18\x02 \x01(\x0b\x32).google.cloud.discoveryengine.v1.Document\x12\x35\n\x05\x63hunk\x18\x12 \x01(\x0b\x32&.google.cloud.discoveryengine.v1.Chunk\x12h\n\x0cmodel_scores\x18\x04 \x03(\x0b\x32M.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.ModelScoresEntryB\x03\xe0\x41\x03\x12\x63\n\x0crank_signals\x18\x07 \x01(\x0b\x32H.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignalsB\x03\xe0\x41\x01\x1a_\n\x10ModelScoresEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12:\n\x05value\x18\x02 \x01(\x0b\x32+.google.cloud.discoveryengine.v1.DoubleList:\x02\x38\x01\x1a\xee\x04\n\x0bRankSignals\x12*\n\x18keyword_similarity_score\x18\x01 \x01(\x02\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12!\n\x0frelevance_score\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12+\n\x19semantic_similarity_score\x18\x03 \x01(\x02\x42\x03\xe0\x41\x01H\x02\x88\x01\x01\x12\x1b\n\tpctr_rank\x18\x04 \x01(\x02\x42\x03\xe0\x41\x01H\x03\x88\x01\x01\x12!\n\x0ftopicality_rank\x18\x06 \x01(\x02\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x12\x1e\n\x0c\x64ocument_age\x18\x07 \x01(\x02\x42\x03\xe0\x41\x01H\x05\x88\x01\x01\x12!\n\x0f\x62oosting_factor\x18\x08 \x01(\x02\x42\x03\xe0\x41\x01H\x06\x88\x01\x01\x12\x19\n\x0c\x64\x65\x66\x61ult_rank\x18 \x01(\x02\x42\x03\xe0\x41\x01\x12r\n\x0e\x63ustom_signals\x18! \x03(\x0b\x32U.google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignals.CustomSignalB\x03\xe0\x41\x01\x1a\x35\n\x0c\x43ustomSignal\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01\x42\x1b\n\x19_keyword_similarity_scoreB\x12\n\x10_relevance_scoreB\x1c\n\x1a_semantic_similarity_scoreB\x0c\n\n_pctr_rankB\x12\n\x10_topicality_rankB\x0f\n\r_document_ageB\x12\n\x10_boosting_factorJ\x04\x08\x05\x10\x06\x1a\xf9\x01\n\x05\x46\x61\x63\x65t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12P\n\x06values\x18\x02 \x03(\x0b\x32@.google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue\x12\x15\n\rdynamic_facet\x18\x03 \x01(\x08\x1az\n\nFacetValue\x12\x0f\n\x05value\x18\x01 \x01(\tH\x00\x12=\n\x08interval\x18\x02 \x01(\x0b\x32).google.cloud.discoveryengine.v1.IntervalH\x00\x12\r\n\x05\x63ount\x18\x03 \x01(\x03\x42\r\n\x0b\x66\x61\x63\x65t_value\x1a\xa1\x0c\n\x07Summary\x12\x14\n\x0csummary_text\x18\x01 \x01(\t\x12m\n\x17summary_skipped_reasons\x18\x02 \x03(\x0e\x32L.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummarySkippedReason\x12\x63\n\x11safety_attributes\x18\x03 \x01(\x0b\x32H.google.cloud.discoveryengine.v1.SearchResponse.Summary.SafetyAttributes\x12j\n\x15summary_with_metadata\x18\x04 \x01(\x0b\x32K.google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata\x1a\x36\n\x10SafetyAttributes\x12\x12\n\ncategories\x18\x01 \x03(\t\x12\x0e\n\x06scores\x18\x02 \x03(\x02\x1ag\n\x10\x43itationMetadata\x12S\n\tcitations\x18\x01 \x03(\x0b\x32@.google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation\x1a\x8b\x01\n\x08\x43itation\x12\x13\n\x0bstart_index\x18\x01 \x01(\x03\x12\x11\n\tend_index\x18\x02 \x01(\x03\x12W\n\x07sources\x18\x03 \x03(\x0b\x32\x46.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationSource\x1a)\n\x0e\x43itationSource\x12\x17\n\x0freference_index\x18\x04 \x01(\x03\x1a\x8c\x02\n\tReference\x12\r\n\x05title\x18\x01 \x01(\t\x12\x41\n\x08\x64ocument\x18\x02 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'discoveryengine.googleapis.com/Document\x12\x0b\n\x03uri\x18\x03 \x01(\t\x12\x66\n\x0e\x63hunk_contents\x18\x04 \x03(\x0b\x32N.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.ChunkContent\x1a\x38\n\x0c\x43hunkContent\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x17\n\x0fpage_identifier\x18\x02 \x01(\t\x1a\xe2\x01\n\x13SummaryWithMetadata\x12\x0f\n\x07summary\x18\x01 \x01(\t\x12\x63\n\x11\x63itation_metadata\x18\x02 \x01(\x0b\x32H.google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata\x12U\n\nreferences\x18\x03 \x03(\x0b\x32\x41.google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference\"\xf1\x02\n\x14SummarySkippedReason\x12&\n\"SUMMARY_SKIPPED_REASON_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x44VERSARIAL_QUERY_IGNORED\x10\x01\x12%\n!NON_SUMMARY_SEEKING_QUERY_IGNORED\x10\x02\x12\x1f\n\x1bOUT_OF_DOMAIN_QUERY_IGNORED\x10\x03\x12\x1e\n\x1aPOTENTIAL_POLICY_VIOLATION\x10\x04\x12\x19\n\x15LLM_ADDON_NOT_ENABLED\x10\x05\x12\x17\n\x13NO_RELEVANT_CONTENT\x10\x06\x12\x1f\n\x1bJAIL_BREAKING_QUERY_IGNORED\x10\x07\x12\x1d\n\x19\x43USTOMER_POLICY_VIOLATION\x10\x08\x12(\n$NON_SUMMARY_SEEKING_QUERY_IGNORED_V2\x10\t\x12\x0c\n\x08TIME_OUT\x10\n\x1aI\n\x12QueryExpansionInfo\x12\x16\n\x0e\x65xpanded_query\x18\x01 \x01(\x08\x12\x1b\n\x13pinned_result_count\x18\x02 \x01(\x03\x1a-\n\x0bSessionInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08query_id\x18\x02 \x01(\t2\x97\x07\n\rSearchService\x12\x8f\x03\n\x06Search\x12..google.cloud.discoveryengine.v1.SearchRequest\x1a/.google.cloud.discoveryengine.v1.SearchResponse\"\xa3\x02\x82\xd3\xe4\x93\x02\x9c\x02\"P/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search:\x01*Zc\"^/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search:\x01*Z`\"[/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search:\x01*\x12\x9f\x03\n\nSearchLite\x12..google.cloud.discoveryengine.v1.SearchRequest\x1a/.google.cloud.discoveryengine.v1.SearchResponse\"\xaf\x02\x82\xd3\xe4\x93\x02\xa8\x02\"T/v1/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zg\"b/v1/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zd\"_/v1/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite:\x01*\x1aR\xca\x41\x1e\x64iscoveryengine.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x85\x02\n#com.google.cloud.discoveryengine.v1B\x12SearchServiceProtoP\x01ZMcloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb\xa2\x02\x0f\x44ISCOVERYENGINE\xaa\x02\x1fGoogle.Cloud.DiscoveryEngine.V1\xca\x02\x1fGoogle\\Cloud\\DiscoveryEngine\\V1\xea\x02\"Google::Cloud::DiscoveryEngine::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -78,8 +78,11 @@ module V1 SearchRequest::SessionSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchRequest.SessionSpec").msgclass SearchRequest::RelevanceScoreSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchRequest.RelevanceScoreSpec").msgclass SearchRequest::RelevanceThreshold = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchRequest.RelevanceThreshold").enummodule + SearchRequest::RankingExpressionBackend = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchRequest.RankingExpressionBackend").enummodule SearchResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse").msgclass SearchResponse::SearchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse.SearchResult").msgclass + SearchResponse::SearchResult::RankSignals = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignals").msgclass + SearchResponse::SearchResult::RankSignals::CustomSignal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse.SearchResult.RankSignals.CustomSignal").msgclass SearchResponse::Facet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse.Facet").msgclass SearchResponse::Facet::FacetValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue").msgclass SearchResponse::Summary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1.SearchResponse.Summary").msgclass diff --git a/google-cloud-discovery_engine-v1/proto_docs/google/cloud/discoveryengine/v1/search_service.rb b/google-cloud-discovery_engine-v1/proto_docs/google/cloud/discoveryengine/v1/search_service.rb index 61c9ea4d5198..bd02908e6f30 100644 --- a/google-cloud-discovery_engine-v1/proto_docs/google/cloud/discoveryengine/v1/search_service.rb +++ b/google-cloud-discovery_engine-v1/proto_docs/google/cloud/discoveryengine/v1/search_service.rb @@ -274,6 +274,101 @@ module V1 # @!attribute [rw] relevance_score_spec # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec] # Optional. The specification for returning the relevance score. + # @!attribute [rw] ranking_expression + # @return [::String] + # The ranking expression controls the customized ranking on retrieval + # documents. This overrides + # {::Google::Cloud::DiscoveryEngine::V1::ServingConfig#ranking_expression ServingConfig.ranking_expression}. + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". + # + # * ranking_expression = function, { " + ", function }; + # + # Supported functions: + # + # * double * relevance_score + # * double * dotProduct(embedding_field_path) + # + # Function variables: + # + # * `relevance_score`: pre-defined keywords, used for measure relevance + # between query and document. + # * `embedding_field_path`: the document embedding field + # used with query embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. + # + # Example ranking expression: + # + # If document has an embedding field doc_embedding, the ranking expression + # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @!attribute [rw] ranking_expression_backend + # @return [::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. class SearchRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1073,6 +1168,19 @@ module RelevanceThreshold # High relevance threshold. HIGH = 4 end + + # The backend to use for the ranking expression evaluation. + module RankingExpressionBackend + # Default option for unspecified/unknown values. + RANKING_EXPRESSION_BACKEND_UNSPECIFIED = 0 + + # Ranking by custom embedding model, the default way to evaluate the + # ranking expression. + RANK_BY_EMBEDDING = 3 + + # Ranking by custom formula. + RANK_BY_FORMULA = 4 + end end # Response message for @@ -1158,6 +1266,9 @@ class SearchResponse # @!attribute [r] model_scores # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::DiscoveryEngine::V1::DoubleList}] # Output only. Google provided available scores. + # @!attribute [rw] rank_signals + # @return [::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult::RankSignals] + # A set of ranking signals associated with the result. class SearchResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1170,6 +1281,51 @@ class ModelScoresEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # A set of ranking signals. + # @!attribute [rw] keyword_similarity_score + # @return [::Float] + # Keyword matching adjustment. + # @!attribute [rw] relevance_score + # @return [::Float] + # Semantic relevance adjustment. + # @!attribute [rw] semantic_similarity_score + # @return [::Float] + # Semantic similarity adjustment. + # @!attribute [rw] pctr_rank + # @return [::Float] + # Predicted conversion rate adjustment as a rank. + # @!attribute [rw] topicality_rank + # @return [::Float] + # Topicality adjustment as a rank. + # @!attribute [rw] document_age + # @return [::Float] + # Age of the document in hours. + # @!attribute [rw] boosting_factor + # @return [::Float] + # Combined custom boosts for a doc. + # @!attribute [rw] default_rank + # @return [::Float] + # The default rank of the result. + # @!attribute [rw] custom_signals + # @return [::Array<::Google::Cloud::DiscoveryEngine::V1::SearchResponse::SearchResult::RankSignals::CustomSignal>] + # A list of custom clearbox signals. + class RankSignals + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Custom clearbox signal represented by name and value pair. + # @!attribute [rw] name + # @return [::String] + # Name of the signal. + # @!attribute [rw] value + # @return [::Float] + # Float value representing the ranking signal (e.g. 1.25 for BM25). + class CustomSignal + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end end # A facet result. diff --git a/google-cloud-discovery_engine-v1/snippets/snippet_metadata_google.cloud.discoveryengine.v1.json b/google-cloud-discovery_engine-v1/snippets/snippet_metadata_google.cloud.discoveryengine.v1.json index 0f3693cc60a8..c1d7fd2214ac 100644 --- a/google-cloud-discovery_engine-v1/snippets/snippet_metadata_google.cloud.discoveryengine.v1.json +++ b/google-cloud-discovery_engine-v1/snippets/snippet_metadata_google.cloud.discoveryengine.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-discovery_engine-v1", - "version": "2.4.0", + "version": "2.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_rest_test.rb b/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_rest_test.rb index 134c155eaf7f..7a1f71d31c6f 100644 --- a/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_rest_test.rb +++ b/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_rest_test.rb @@ -115,6 +115,8 @@ def test_search session_spec = {} relevance_threshold = :RELEVANCE_THRESHOLD_UNSPECIFIED relevance_score_spec = {} + ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED search_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| assert options.metadata.key? :"x-goog-api-client" @@ -130,27 +132,27 @@ def test_search end # Use hash object - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }) do |_result, response| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec do |_result, response| + client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - client.search ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec) do |_result, response| + client.search ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }, call_options) do |_result, response| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - client.search(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec), call_options) do |_result, response| + client.search(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend), call_options) do |_result, response| assert_equal http_response, response.underlying_op end @@ -197,6 +199,8 @@ def test_search_lite session_spec = {} relevance_threshold = :RELEVANCE_THRESHOLD_UNSPECIFIED relevance_score_spec = {} + ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED search_lite_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| assert options.metadata.key? :"x-goog-api-client" @@ -212,27 +216,27 @@ def test_search_lite end # Use hash object - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }) do |_result, response| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec do |_result, response| + client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - client.search_lite ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec) do |_result, response| + client.search_lite ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }, call_options) do |_result, response| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - client.search_lite(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec), call_options) do |_result, response| + client.search_lite(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend), call_options) do |_result, response| assert_equal http_response, response.underlying_op end diff --git a/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_test.rb b/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_test.rb index f6012957c12a..85c6b901250e 100644 --- a/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_test.rb +++ b/google-cloud-discovery_engine-v1/test/google/cloud/discovery_engine/v1/search_service_test.rb @@ -100,6 +100,8 @@ def test_search session_spec = {} relevance_threshold = :RELEVANCE_THRESHOLD_UNSPECIFIED relevance_score_spec = {} + ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED search_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| assert_equal :search, name @@ -133,6 +135,8 @@ def test_search assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1::SearchRequest::SessionSpec), request["session_spec"] assert_equal :RELEVANCE_THRESHOLD_UNSPECIFIED, request["relevance_threshold"] assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec), request["relevance_score_spec"] + assert_equal "hello world", request["ranking_expression"] + assert_equal :RANKING_EXPRESSION_BACKEND_UNSPECIFIED, request["ranking_expression_backend"] refute_nil options end @@ -143,35 +147,35 @@ def test_search end # Use hash object - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }) do |response, operation| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use named arguments - client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec do |response, operation| + client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object - client.search ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec) do |response, operation| + client.search ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use hash object with options - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }, grpc_options) do |response, operation| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }, grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object with options - client.search(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec), grpc_options) do |response, operation| + client.search(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend), grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation @@ -219,6 +223,8 @@ def test_search_lite session_spec = {} relevance_threshold = :RELEVANCE_THRESHOLD_UNSPECIFIED relevance_score_spec = {} + ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED search_lite_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| assert_equal :search_lite, name @@ -252,6 +258,8 @@ def test_search_lite assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1::SearchRequest::SessionSpec), request["session_spec"] assert_equal :RELEVANCE_THRESHOLD_UNSPECIFIED, request["relevance_threshold"] assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1::SearchRequest::RelevanceScoreSpec), request["relevance_score_spec"] + assert_equal "hello world", request["ranking_expression"] + assert_equal :RANKING_EXPRESSION_BACKEND_UNSPECIFIED, request["ranking_expression_backend"] refute_nil options end @@ -262,35 +270,35 @@ def test_search_lite end # Use hash object - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }) do |response, operation| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use named arguments - client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec do |response, operation| + client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object - client.search_lite ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec) do |response, operation| + client.search_lite ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use hash object with options - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec }, grpc_options) do |response, operation| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend }, grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object with options - client.search_lite(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec), grpc_options) do |response, operation| + client.search_lite(::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, safe_search: safe_search, user_labels: user_labels, search_as_you_type_spec: search_as_you_type_spec, display_spec: display_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, relevance_score_spec: relevance_score_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend), grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation diff --git a/google-cloud-discovery_engine-v1beta/CHANGELOG.md b/google-cloud-discovery_engine-v1beta/CHANGELOG.md index 8947440bdba2..ad88ac15523e 100644 --- a/google-cloud-discovery_engine-v1beta/CHANGELOG.md +++ b/google-cloud-discovery_engine-v1beta/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### 0.22.0 (2025-09-11) + +#### Features + +* Added `ranking_expression_backed` and `rank_signals` fields related to the Custom Ranking feature ([#31003](https://github.com/googleapis/google-cloud-ruby/issues/31003)) +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 0.21.0 (2025-07-28) #### Features diff --git a/google-cloud-discovery_engine-v1beta/google-cloud-discovery_engine-v1beta.gemspec b/google-cloud-discovery_engine-v1beta/google-cloud-discovery_engine-v1beta.gemspec index fa56ce247823..7bafe08b794a 100644 --- a/google-cloud-discovery_engine-v1beta/google-cloud-discovery_engine-v1beta.gemspec +++ b/google-cloud-discovery_engine-v1beta/google-cloud-discovery_engine-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/client.rb b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/client.rb index ae360fd26d9f..6151c87e9c8f 100644 --- a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/client.rb +++ b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/client.rb @@ -217,7 +217,7 @@ def logger # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) + # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, ranking_expression_backend: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) # Pass arguments to `search` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -397,8 +397,14 @@ def logger # The ranking expression controls the customized ranking on retrieval # documents. This overrides # {::Google::Cloud::DiscoveryEngine::V1beta::ServingConfig#ranking_expression ServingConfig.ranking_expression}. - # The ranking expression is a single function or multiple functions that are - # joined by "+". + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". # # * ranking_expression = function, { " + ", function }; # @@ -413,13 +419,73 @@ def logger # between query and document. # * `embedding_field_path`: the document embedding field # used with query embedding vector. - # * `dotProduct`: embedding function between embedding_field_path and query - # embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. # # Example ranking expression: # # If document has an embedding field doc_embedding, the ranking expression # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @param safe_search [::Boolean] # Whether to turn on safe search. This is only supported for # website search. @@ -586,7 +652,7 @@ def search request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) + # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, ranking_expression_backend: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) # Pass arguments to `search_lite` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -766,8 +832,14 @@ def search request, options = nil # The ranking expression controls the customized ranking on retrieval # documents. This overrides # {::Google::Cloud::DiscoveryEngine::V1beta::ServingConfig#ranking_expression ServingConfig.ranking_expression}. - # The ranking expression is a single function or multiple functions that are - # joined by "+". + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". # # * ranking_expression = function, { " + ", function }; # @@ -782,13 +854,73 @@ def search request, options = nil # between query and document. # * `embedding_field_path`: the document embedding field # used with query embedding vector. - # * `dotProduct`: embedding function between embedding_field_path and query - # embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. # # Example ranking expression: # # If document has an embedding field doc_embedding, the ranking expression # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @param safe_search [::Boolean] # Whether to turn on safe search. This is only supported for # website search. diff --git a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/rest/client.rb b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/rest/client.rb index be25cf56fb42..c22295a82c8c 100644 --- a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/rest/client.rb +++ b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/search_service/rest/client.rb @@ -210,7 +210,7 @@ def logger # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) + # @overload search(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, ranking_expression_backend: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) # Pass arguments to `search` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -390,8 +390,14 @@ def logger # The ranking expression controls the customized ranking on retrieval # documents. This overrides # {::Google::Cloud::DiscoveryEngine::V1beta::ServingConfig#ranking_expression ServingConfig.ranking_expression}. - # The ranking expression is a single function or multiple functions that are - # joined by "+". + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". # # * ranking_expression = function, { " + ", function }; # @@ -406,13 +412,73 @@ def logger # between query and document. # * `embedding_field_path`: the document embedding field # used with query embedding vector. - # * `dotProduct`: embedding function between embedding_field_path and query - # embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. # # Example ranking expression: # # If document has an embedding field doc_embedding, the ranking expression # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @param safe_search [::Boolean] # Whether to turn on safe search. This is only supported for # website search. @@ -572,7 +638,7 @@ def search request, options = nil # @param options [::Gapic::CallOptions, ::Hash] # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) + # @overload search_lite(serving_config: nil, branch: nil, query: nil, image_query: nil, page_size: nil, page_token: nil, offset: nil, one_box_page_size: nil, data_store_specs: nil, filter: nil, canonical_filter: nil, order_by: nil, user_info: nil, language_code: nil, region_code: nil, facet_specs: nil, boost_spec: nil, params: nil, query_expansion_spec: nil, spell_correction_spec: nil, user_pseudo_id: nil, content_search_spec: nil, embedding_spec: nil, ranking_expression: nil, ranking_expression_backend: nil, safe_search: nil, user_labels: nil, natural_language_query_understanding_spec: nil, search_as_you_type_spec: nil, session: nil, session_spec: nil, relevance_threshold: nil, personalization_spec: nil) # Pass arguments to `search_lite` via keyword arguments. Note that at # least one keyword argument is required. To specify no parameters, or to keep all # the default parameter values, pass an empty Hash as a request object (see above). @@ -752,8 +818,14 @@ def search request, options = nil # The ranking expression controls the customized ranking on retrieval # documents. This overrides # {::Google::Cloud::DiscoveryEngine::V1beta::ServingConfig#ranking_expression ServingConfig.ranking_expression}. - # The ranking expression is a single function or multiple functions that are - # joined by "+". + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". # # * ranking_expression = function, { " + ", function }; # @@ -768,13 +840,73 @@ def search request, options = nil # between query and document. # * `embedding_field_path`: the document embedding field # used with query embedding vector. - # * `dotProduct`: embedding function between embedding_field_path and query - # embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. # # Example ranking expression: # # If document has an embedding field doc_embedding, the ranking expression # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @param ranking_expression_backend [::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @param safe_search [::Boolean] # Whether to turn on safe search. This is only supported for # website search. diff --git a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/version.rb b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/version.rb index 3460616d5a90..491f8f26c283 100644 --- a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/version.rb +++ b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discovery_engine/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DiscoveryEngine module V1beta - VERSION = "0.21.0" + VERSION = "0.22.0" end end end diff --git a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discoveryengine/v1beta/search_service_pb.rb b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discoveryengine/v1beta/search_service_pb.rb index c62c3eee7ff6..bae02f1357c0 100644 --- a/google-cloud-discovery_engine-v1beta/lib/google/cloud/discoveryengine/v1beta/search_service_pb.rb +++ b/google-cloud-discovery_engine-v1beta/lib/google/cloud/discoveryengine/v1beta/search_service_pb.rb @@ -14,7 +14,7 @@ require 'google/protobuf/struct_pb' -descriptor_data = "\n8google/cloud/discoveryengine/v1beta/search_service.proto\x12#google.cloud.discoveryengine.v1beta\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a/google/cloud/discoveryengine/v1beta/chunk.proto\x1a\x30google/cloud/discoveryengine/v1beta/common.proto\x1a\x32google/cloud/discoveryengine/v1beta/document.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xc2\x34\n\rSearchRequest\x12L\n\x0eserving_config\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,discoveryengine.googleapis.com/ServingConfig\x12:\n\x06\x62ranch\x18\x02 \x01(\tB*\xfa\x41\'\n%discoveryengine.googleapis.com/Branch\x12\r\n\x05query\x18\x03 \x01(\t\x12R\n\x0bimage_query\x18\x13 \x01(\x0b\x32=.google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x12\n\npage_token\x18\x05 \x01(\t\x12\x0e\n\x06offset\x18\x06 \x01(\x05\x12\x19\n\x11one_box_page_size\x18/ \x01(\x05\x12Z\n\x10\x64\x61ta_store_specs\x18 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchRequest.DataStoreSpec\x12\x0e\n\x06\x66ilter\x18\x07 \x01(\t\x12\x18\n\x10\x63\x61nonical_filter\x18\x1d \x01(\t\x12\x10\n\x08order_by\x18\x08 \x01(\t\x12@\n\tuser_info\x18\x15 \x01(\x0b\x32-.google.cloud.discoveryengine.v1beta.UserInfo\x12\x15\n\rlanguage_code\x18# \x01(\t\x12\x13\n\x0bregion_code\x18$ \x01(\t\x12Q\n\x0b\x66\x61\x63\x65t_specs\x18\t \x03(\x0b\x32<.google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec\x12P\n\nboost_spec\x18\n \x01(\x0b\x32<.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec\x12N\n\x06params\x18\x0b \x03(\x0b\x32>.google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry\x12\x63\n\x14query_expansion_spec\x18\r \x01(\x0b\x32\x45.google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec\x12\x65\n\x15spell_correction_spec\x18\x0e \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec\x12\x16\n\x0euser_pseudo_id\x18\x0f \x01(\t\x12\x61\n\x13\x63ontent_search_spec\x18\x18 \x01(\x0b\x32\x44.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec\x12X\n\x0e\x65mbedding_spec\x18\x17 \x01(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec\x12\x1a\n\x12ranking_expression\x18\x1a \x01(\t\x12\x13\n\x0bsafe_search\x18\x14 \x01(\x08\x12W\n\x0buser_labels\x18\x16 \x03(\x0b\x32\x42.google.cloud.discoveryengine.v1beta.SearchRequest.UserLabelsEntry\x12\x8b\x01\n)natural_language_query_understanding_spec\x18\x1c \x01(\x0b\x32X.google.cloud.discoveryengine.v1beta.SearchRequest.NaturalLanguageQueryUnderstandingSpec\x12g\n\x17search_as_you_type_spec\x18\x1f \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchRequest.SearchAsYouTypeSpec\x12<\n\x07session\x18) \x01(\tB+\xfa\x41(\n&discoveryengine.googleapis.com/Session\x12T\n\x0csession_spec\x18* \x01(\x0b\x32>.google.cloud.discoveryengine.v1beta.SearchRequest.SessionSpec\x12\x62\n\x13relevance_threshold\x18, \x01(\x0e\x32\x45.google.cloud.discoveryengine.v1beta.SearchRequest.RelevanceThreshold\x12\x64\n\x14personalization_spec\x18. \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchRequest.PersonalizationSpec\x1a,\n\nImageQuery\x12\x15\n\x0bimage_bytes\x18\x01 \x01(\tH\x00\x42\x07\n\x05image\x1aj\n\rDataStoreSpec\x12\x44\n\ndata_store\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(discoveryengine.googleapis.com/DataStore\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x1a\x84\x03\n\tFacetSpec\x12]\n\tfacet_key\x18\x01 \x01(\x0b\x32\x45.google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKeyB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x1c\n\x14\x65xcluded_filter_keys\x18\x03 \x03(\t\x12\x1f\n\x17\x65nable_dynamic_position\x18\x04 \x01(\x08\x1a\xc9\x01\n\x08\x46\x61\x63\x65tKey\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12@\n\tintervals\x18\x02 \x03(\x0b\x32-.google.cloud.discoveryengine.v1beta.Interval\x12\x19\n\x11restricted_values\x18\x03 \x03(\t\x12\x10\n\x08prefixes\x18\x04 \x03(\t\x12\x10\n\x08\x63ontains\x18\x05 \x03(\t\x12\x18\n\x10\x63\x61se_insensitive\x18\x06 \x01(\x08\x12\x10\n\x08order_by\x18\x07 \x01(\t\x1a\xd0\x07\n\tBoostSpec\x12n\n\x15\x63ondition_boost_specs\x18\x01 \x03(\x0b\x32O.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec\x1a\xd2\x06\n\x12\x43onditionBoostSpec\x12\x11\n\tcondition\x18\x01 \x01(\t\x12\r\n\x05\x62oost\x18\x02 \x01(\x02\x12|\n\x12\x62oost_control_spec\x18\x03 \x01(\x0b\x32`.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec\x1a\x9b\x05\n\x10\x42oostControlSpec\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x86\x01\n\x0e\x61ttribute_type\x18\x02 \x01(\x0e\x32n.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType\x12\x8e\x01\n\x12interpolation_type\x18\x03 \x01(\x0e\x32r.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType\x12\x85\x01\n\x0e\x63ontrol_points\x18\x04 \x03(\x0b\x32m.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint\x1a=\n\x0c\x43ontrolPoint\x12\x17\n\x0f\x61ttribute_value\x18\x01 \x01(\t\x12\x14\n\x0c\x62oost_amount\x18\x02 \x01(\x02\"M\n\rAttributeType\x12\x1e\n\x1a\x41TTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tNUMERICAL\x10\x01\x12\r\n\tFRESHNESS\x10\x02\"C\n\x11InterpolationType\x12\"\n\x1eINTERPOLATION_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06LINEAR\x10\x01\x1a\xd8\x01\n\x12QueryExpansionSpec\x12\x62\n\tcondition\x18\x01 \x01(\x0e\x32O.google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.Condition\x12\x1e\n\x16pin_unexpanded_results\x18\x02 \x01(\x08\">\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xad\x01\n\x13SpellCorrectionSpec\x12Y\n\x04mode\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode\";\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSUGGESTION_ONLY\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xbe\x0c\n\x11\x43ontentSearchSpec\x12\x66\n\x0csnippet_spec\x18\x01 \x01(\x0b\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SnippetSpec\x12\x66\n\x0csummary_spec\x18\x02 \x01(\x0b\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec\x12{\n\x17\x65xtractive_content_spec\x18\x03 \x01(\x0b\x32Z.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ExtractiveContentSpec\x12q\n\x12search_result_mode\x18\x04 \x01(\x0e\x32U.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SearchResultMode\x12\x62\n\nchunk_spec\x18\x05 \x01(\x0b\x32N.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ChunkSpec\x1a`\n\x0bSnippetSpec\x12\x1d\n\x11max_snippet_count\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x1a\n\x0ereference_only\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x16\n\x0ereturn_snippet\x18\x03 \x01(\x08\x1a\xc4\x04\n\x0bSummarySpec\x12\x1c\n\x14summary_result_count\x18\x01 \x01(\x05\x12\x19\n\x11include_citations\x18\x02 \x01(\x08\x12 \n\x18ignore_adversarial_query\x18\x03 \x01(\x08\x12(\n ignore_non_summary_seeking_query\x18\x04 \x01(\x08\x12#\n\x1bignore_low_relevant_content\x18\t \x01(\x08\x12\'\n\x1aignore_jail_breaking_query\x18\n \x01(\x08\x42\x03\xe0\x41\x01\x12{\n\x11model_prompt_spec\x18\x05 \x01(\x0b\x32`.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec\x12\x15\n\rlanguage_code\x18\x06 \x01(\t\x12n\n\nmodel_spec\x18\x07 \x01(\x0b\x32Z.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec\x12\x1b\n\x13use_semantic_chunks\x18\x08 \x01(\x08\x1a#\n\x0fModelPromptSpec\x12\x10\n\x08preamble\x18\x01 \x01(\t\x1a\x1c\n\tModelSpec\x12\x0f\n\x07version\x18\x01 \x01(\t\x1a\xc5\x01\n\x15\x45xtractiveContentSpec\x12#\n\x1bmax_extractive_answer_count\x18\x01 \x01(\x05\x12$\n\x1cmax_extractive_segment_count\x18\x02 \x01(\x05\x12\'\n\x1freturn_extractive_segment_score\x18\x03 \x01(\x08\x12\x1d\n\x15num_previous_segments\x18\x04 \x01(\x05\x12\x19\n\x11num_next_segments\x18\x05 \x01(\x05\x1a\x41\n\tChunkSpec\x12\x1b\n\x13num_previous_chunks\x18\x01 \x01(\x05\x12\x17\n\x0fnum_next_chunks\x18\x02 \x01(\x05\"Q\n\x10SearchResultMode\x12\"\n\x1eSEARCH_RESULT_MODE_UNSPECIFIED\x10\x00\x12\r\n\tDOCUMENTS\x10\x01\x12\n\n\x06\x43HUNKS\x10\x02\x1a\xb3\x01\n\rEmbeddingSpec\x12k\n\x11\x65mbedding_vectors\x18\x01 \x03(\x0b\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector\x1a\x35\n\x0f\x45mbeddingVector\x12\x12\n\nfield_path\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x1a\xc4\x02\n%NaturalLanguageQueryUnderstandingSpec\x12\x97\x01\n\x1b\x66ilter_extraction_condition\x18\x01 \x01(\x0e\x32r.google.cloud.discoveryengine.v1beta.SearchRequest.NaturalLanguageQueryUnderstandingSpec.FilterExtractionCondition\x12.\n&geo_search_query_detection_field_names\x18\x02 \x03(\t\"Q\n\x19\x46ilterExtractionCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x1a\xbd\x01\n\x13SearchAsYouTypeSpec\x12\x63\n\tcondition\x18\x01 \x01(\x0e\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.SearchAsYouTypeSpec.Condition\"A\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x1aq\n\x0bSessionSpec\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12,\n\x1fsearch_result_persistence_count\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\"\n _search_result_persistence_count\x1a\xa6\x01\n\x13PersonalizationSpec\x12Y\n\x04mode\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchRequest.PersonalizationSpec.Mode\"4\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x1a\x45\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1a\x31\n\x0fUserLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x12RelevanceThreshold\x12#\n\x1fRELEVANCE_THRESHOLD_UNSPECIFIED\x10\x00\x12\n\n\x06LOWEST\x10\x01\x12\x07\n\x03LOW\x10\x02\x12\n\n\x06MEDIUM\x10\x03\x12\x08\n\x04HIGH\x10\x04\"\x9b\x30\n\x0eSearchResponse\x12Q\n\x07results\x18\x01 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult\x12I\n\x06\x66\x61\x63\x65ts\x18\x02 \x03(\x0b\x32\x39.google.cloud.discoveryengine.v1beta.SearchResponse.Facet\x12\x64\n\x14guided_search_result\x18\x08 \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\x12\x19\n\x11\x61ttribution_token\x18\x04 \x01(\t\x12\x14\n\x0credirect_uri\x18\x0c \x01(\t\x12\x17\n\x0fnext_page_token\x18\x05 \x01(\t\x12\x17\n\x0f\x63orrected_query\x18\x07 \x01(\t\x12L\n\x07summary\x18\t \x01(\x0b\x32;.google.cloud.discoveryengine.v1beta.SearchResponse.Summary\x12\x18\n\x10\x61pplied_controls\x18\n \x03(\t\x12\x65\n\x15geo_search_debug_info\x18\x10 \x03(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchResponse.GeoSearchDebugInfo\x12\x64\n\x14query_expansion_info\x18\x0e \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchResponse.QueryExpansionInfo\x12\x8c\x01\n)natural_language_query_understanding_info\x18\x0f \x01(\x0b\x32Y.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo\x12U\n\x0csession_info\x18\x13 \x01(\x0b\x32?.google.cloud.discoveryengine.v1beta.SearchResponse.SessionInfo\x12Y\n\x0fone_box_results\x18\x14 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchResponse.OneBoxResult\x1a\xe4\x02\n\x0cSearchResult\x12\n\n\x02id\x18\x01 \x01(\t\x12?\n\x08\x64ocument\x18\x02 \x01(\x0b\x32-.google.cloud.discoveryengine.v1beta.Document\x12\x39\n\x05\x63hunk\x18\x12 \x01(\x0b\x32*.google.cloud.discoveryengine.v1beta.Chunk\x12g\n\x0cmodel_scores\x18\x04 \x03(\x0b\x32Q.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry\x1a\x63\n\x10ModelScoresEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.discoveryengine.v1beta.DoubleList:\x02\x38\x01\x1a\x81\x02\n\x05\x46\x61\x63\x65t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12T\n\x06values\x18\x02 \x03(\x0b\x32\x44.google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue\x12\x15\n\rdynamic_facet\x18\x03 \x01(\x08\x1a~\n\nFacetValue\x12\x0f\n\x05value\x18\x01 \x01(\tH\x00\x12\x41\n\x08interval\x18\x02 \x01(\x0b\x32-.google.cloud.discoveryengine.v1beta.IntervalH\x00\x12\r\n\x05\x63ount\x18\x03 \x01(\x03\x42\r\n\x0b\x66\x61\x63\x65t_value\x1a\xf3\x01\n\x12GuidedSearchResult\x12y\n\x15refinement_attributes\x18\x01 \x03(\x0b\x32Z.google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.RefinementAttribute\x12\x1b\n\x13\x66ollow_up_questions\x18\x02 \x03(\t\x1a\x45\n\x13RefinementAttribute\x12\x15\n\rattribute_key\x18\x01 \x01(\t\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\t\x1a\xb3\x0c\n\x07Summary\x12\x14\n\x0csummary_text\x18\x01 \x01(\t\x12q\n\x17summary_skipped_reasons\x18\x02 \x03(\x0e\x32P.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummarySkippedReason\x12g\n\x11safety_attributes\x18\x03 \x01(\x0b\x32L.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SafetyAttributes\x12n\n\x15summary_with_metadata\x18\x04 \x01(\x0b\x32O.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata\x1a\x36\n\x10SafetyAttributes\x12\x12\n\ncategories\x18\x01 \x03(\t\x12\x0e\n\x06scores\x18\x02 \x03(\x02\x1ak\n\x10\x43itationMetadata\x12W\n\tcitations\x18\x01 \x03(\x0b\x32\x44.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation\x1a\x8f\x01\n\x08\x43itation\x12\x13\n\x0bstart_index\x18\x01 \x01(\x03\x12\x11\n\tend_index\x18\x02 \x01(\x03\x12[\n\x07sources\x18\x03 \x03(\x0b\x32J.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationSource\x1a)\n\x0e\x43itationSource\x12\x17\n\x0freference_index\x18\x04 \x01(\x03\x1a\x90\x02\n\tReference\x12\r\n\x05title\x18\x01 \x01(\t\x12\x41\n\x08\x64ocument\x18\x02 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'discoveryengine.googleapis.com/Document\x12\x0b\n\x03uri\x18\x03 \x01(\t\x12j\n\x0e\x63hunk_contents\x18\x04 \x03(\x0b\x32R.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference.ChunkContent\x1a\x38\n\x0c\x43hunkContent\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x17\n\x0fpage_identifier\x18\x02 \x01(\t\x1a\xea\x01\n\x13SummaryWithMetadata\x12\x0f\n\x07summary\x18\x01 \x01(\t\x12g\n\x11\x63itation_metadata\x18\x02 \x01(\x0b\x32L.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata\x12Y\n\nreferences\x18\x03 \x03(\x0b\x32\x45.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference\"\xe3\x02\n\x14SummarySkippedReason\x12&\n\"SUMMARY_SKIPPED_REASON_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x44VERSARIAL_QUERY_IGNORED\x10\x01\x12%\n!NON_SUMMARY_SEEKING_QUERY_IGNORED\x10\x02\x12\x1f\n\x1bOUT_OF_DOMAIN_QUERY_IGNORED\x10\x03\x12\x1e\n\x1aPOTENTIAL_POLICY_VIOLATION\x10\x04\x12\x19\n\x15LLM_ADDON_NOT_ENABLED\x10\x05\x12\x17\n\x13NO_RELEVANT_CONTENT\x10\x06\x12\x1f\n\x1bJAIL_BREAKING_QUERY_IGNORED\x10\x07\x12\x1d\n\x19\x43USTOMER_POLICY_VIOLATION\x10\x08\x12(\n$NON_SUMMARY_SEEKING_QUERY_IGNORED_V2\x10\t\x1aK\n\x12GeoSearchDebugInfo\x12\x1e\n\x16original_address_query\x18\x01 \x01(\t\x12\x15\n\rerror_message\x18\x02 \x01(\t\x1aI\n\x12QueryExpansionInfo\x12\x16\n\x0e\x65xpanded_query\x18\x01 \x01(\x08\x12\x1b\n\x13pinned_result_count\x18\x02 \x01(\x03\x1a\x81\x11\n%NaturalLanguageQueryUnderstandingInfo\x12\x19\n\x11\x65xtracted_filters\x18\x01 \x01(\t\x12\x17\n\x0frewritten_query\x18\x02 \x01(\t\x12\x98\x01\n\x1bstructured_extracted_filter\x18\x03 \x01(\x0b\x32s.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter\x1a\x88\x0f\n\x19StructuredExtractedFilter\x12\x92\x01\n\nexpression\x18\x01 \x01(\x0b\x32~.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1aM\n\x10StringConstraint\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\t\x12\x15\n\rquery_segment\x18\x03 \x01(\t\x1a\xfa\x02\n\x10NumberConstraint\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\xa4\x01\n\ncomparison\x18\x02 \x01(\x0e\x32\x8f\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraint.Comparison\x12\r\n\x05value\x18\x03 \x01(\x01\x12\x15\n\rquery_segment\x18\x04 \x01(\t\"\x84\x01\n\nComparison\x12\x1a\n\x16\x43OMPARISON_UNSPECIFIED\x10\x00\x12\n\n\x06\x45QUALS\x10\x01\x12\x14\n\x10LESS_THAN_EQUALS\x10\x02\x12\r\n\tLESS_THAN\x10\x03\x12\x17\n\x13GREATER_THAN_EQUALS\x10\x04\x12\x10\n\x0cGREATER_THAN\x10\x05\x1a{\n\x15GeolocationConstraint\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x10\n\x08latitude\x18\x04 \x01(\x01\x12\x11\n\tlongitude\x18\x05 \x01(\x01\x12\x18\n\x10radius_in_meters\x18\x03 \x01(\x02\x1a\xa5\x01\n\rAndExpression\x12\x93\x01\n\x0b\x65xpressions\x18\x01 \x03(\x0b\x32~.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1a\xa4\x01\n\x0cOrExpression\x12\x93\x01\n\x0b\x65xpressions\x18\x01 \x03(\x0b\x32~.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1a\xbd\x06\n\nExpression\x12\xa2\x01\n\x11string_constraint\x18\x01 \x01(\x0b\x32\x84\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.StringConstraintH\x00\x12\xa2\x01\n\x11number_constraint\x18\x02 \x01(\x0b\x32\x84\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraintH\x00\x12\xac\x01\n\x16geolocation_constraint\x18\x03 \x01(\x0b\x32\x89\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.GeolocationConstraintH\x00\x12\x96\x01\n\x08\x61nd_expr\x18\x04 \x01(\x0b\x32\x81\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.AndExpressionH\x00\x12\x94\x01\n\x07or_expr\x18\x05 \x01(\x0b\x32\x80\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.OrExpressionH\x00\x42\x06\n\x04\x65xpr\x1a-\n\x0bSessionInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08query_id\x18\x02 \x01(\t\x1a\xb5\x02\n\x0cOneBoxResult\x12\x61\n\x0cone_box_type\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchResponse.OneBoxResult.OneBoxType\x12X\n\x0esearch_results\x18\x02 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult\"h\n\nOneBoxType\x12\x1c\n\x18ONE_BOX_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06PEOPLE\x10\x01\x12\x10\n\x0cORGANIZATION\x10\x02\x12\t\n\x05SLACK\x10\x03\x12\x13\n\x0fKNOWLEDGE_GRAPH\x10\x04\x32\xbf\x07\n\rSearchService\x12\xa3\x03\n\x06Search\x12\x32.google.cloud.discoveryengine.v1beta.SearchRequest\x1a\x33.google.cloud.discoveryengine.v1beta.SearchResponse\"\xaf\x02\x82\xd3\xe4\x93\x02\xa8\x02\"T/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search:\x01*Zg\"b/v1beta/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search:\x01*Zd\"_/v1beta/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search:\x01*\x12\xb3\x03\n\nSearchLite\x12\x32.google.cloud.discoveryengine.v1beta.SearchRequest\x1a\x33.google.cloud.discoveryengine.v1beta.SearchResponse\"\xbb\x02\x82\xd3\xe4\x93\x02\xb4\x02\"X/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zk\"f/v1beta/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zh\"c/v1beta/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite:\x01*\x1aR\xca\x41\x1e\x64iscoveryengine.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x99\x02\n\'com.google.cloud.discoveryengine.v1betaB\x12SearchServiceProtoP\x01ZQcloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb\xa2\x02\x0f\x44ISCOVERYENGINE\xaa\x02#Google.Cloud.DiscoveryEngine.V1Beta\xca\x02#Google\\Cloud\\DiscoveryEngine\\V1beta\xea\x02&Google::Cloud::DiscoveryEngine::V1betab\x06proto3" +descriptor_data = "\n8google/cloud/discoveryengine/v1beta/search_service.proto\x12#google.cloud.discoveryengine.v1beta\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a/google/cloud/discoveryengine/v1beta/chunk.proto\x1a\x30google/cloud/discoveryengine/v1beta/common.proto\x1a\x32google/cloud/discoveryengine/v1beta/document.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xb8\x36\n\rSearchRequest\x12L\n\x0eserving_config\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,discoveryengine.googleapis.com/ServingConfig\x12:\n\x06\x62ranch\x18\x02 \x01(\tB*\xfa\x41\'\n%discoveryengine.googleapis.com/Branch\x12\r\n\x05query\x18\x03 \x01(\t\x12R\n\x0bimage_query\x18\x13 \x01(\x0b\x32=.google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery\x12\x11\n\tpage_size\x18\x04 \x01(\x05\x12\x12\n\npage_token\x18\x05 \x01(\t\x12\x0e\n\x06offset\x18\x06 \x01(\x05\x12\x19\n\x11one_box_page_size\x18/ \x01(\x05\x12Z\n\x10\x64\x61ta_store_specs\x18 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchRequest.DataStoreSpec\x12\x0e\n\x06\x66ilter\x18\x07 \x01(\t\x12\x18\n\x10\x63\x61nonical_filter\x18\x1d \x01(\t\x12\x10\n\x08order_by\x18\x08 \x01(\t\x12@\n\tuser_info\x18\x15 \x01(\x0b\x32-.google.cloud.discoveryengine.v1beta.UserInfo\x12\x15\n\rlanguage_code\x18# \x01(\t\x12\x13\n\x0bregion_code\x18$ \x01(\t\x12Q\n\x0b\x66\x61\x63\x65t_specs\x18\t \x03(\x0b\x32<.google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec\x12P\n\nboost_spec\x18\n \x01(\x0b\x32<.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec\x12N\n\x06params\x18\x0b \x03(\x0b\x32>.google.cloud.discoveryengine.v1beta.SearchRequest.ParamsEntry\x12\x63\n\x14query_expansion_spec\x18\r \x01(\x0b\x32\x45.google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec\x12\x65\n\x15spell_correction_spec\x18\x0e \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec\x12\x16\n\x0euser_pseudo_id\x18\x0f \x01(\t\x12\x61\n\x13\x63ontent_search_spec\x18\x18 \x01(\x0b\x32\x44.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec\x12X\n\x0e\x65mbedding_spec\x18\x17 \x01(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec\x12\x1a\n\x12ranking_expression\x18\x1a \x01(\t\x12t\n\x1aranking_expression_backend\x18\x35 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchRequest.RankingExpressionBackendB\x03\xe0\x41\x01\x12\x13\n\x0bsafe_search\x18\x14 \x01(\x08\x12W\n\x0buser_labels\x18\x16 \x03(\x0b\x32\x42.google.cloud.discoveryengine.v1beta.SearchRequest.UserLabelsEntry\x12\x8b\x01\n)natural_language_query_understanding_spec\x18\x1c \x01(\x0b\x32X.google.cloud.discoveryengine.v1beta.SearchRequest.NaturalLanguageQueryUnderstandingSpec\x12g\n\x17search_as_you_type_spec\x18\x1f \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchRequest.SearchAsYouTypeSpec\x12<\n\x07session\x18) \x01(\tB+\xfa\x41(\n&discoveryengine.googleapis.com/Session\x12T\n\x0csession_spec\x18* \x01(\x0b\x32>.google.cloud.discoveryengine.v1beta.SearchRequest.SessionSpec\x12\x62\n\x13relevance_threshold\x18, \x01(\x0e\x32\x45.google.cloud.discoveryengine.v1beta.SearchRequest.RelevanceThreshold\x12\x64\n\x14personalization_spec\x18. \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchRequest.PersonalizationSpec\x1a,\n\nImageQuery\x12\x15\n\x0bimage_bytes\x18\x01 \x01(\tH\x00\x42\x07\n\x05image\x1aj\n\rDataStoreSpec\x12\x44\n\ndata_store\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(discoveryengine.googleapis.com/DataStore\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x1a\x84\x03\n\tFacetSpec\x12]\n\tfacet_key\x18\x01 \x01(\x0b\x32\x45.google.cloud.discoveryengine.v1beta.SearchRequest.FacetSpec.FacetKeyB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x02 \x01(\x05\x12\x1c\n\x14\x65xcluded_filter_keys\x18\x03 \x03(\t\x12\x1f\n\x17\x65nable_dynamic_position\x18\x04 \x01(\x08\x1a\xc9\x01\n\x08\x46\x61\x63\x65tKey\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12@\n\tintervals\x18\x02 \x03(\x0b\x32-.google.cloud.discoveryengine.v1beta.Interval\x12\x19\n\x11restricted_values\x18\x03 \x03(\t\x12\x10\n\x08prefixes\x18\x04 \x03(\t\x12\x10\n\x08\x63ontains\x18\x05 \x03(\t\x12\x18\n\x10\x63\x61se_insensitive\x18\x06 \x01(\x08\x12\x10\n\x08order_by\x18\x07 \x01(\t\x1a\xd0\x07\n\tBoostSpec\x12n\n\x15\x63ondition_boost_specs\x18\x01 \x03(\x0b\x32O.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec\x1a\xd2\x06\n\x12\x43onditionBoostSpec\x12\x11\n\tcondition\x18\x01 \x01(\t\x12\r\n\x05\x62oost\x18\x02 \x01(\x02\x12|\n\x12\x62oost_control_spec\x18\x03 \x01(\x0b\x32`.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec\x1a\x9b\x05\n\x10\x42oostControlSpec\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x86\x01\n\x0e\x61ttribute_type\x18\x02 \x01(\x0e\x32n.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType\x12\x8e\x01\n\x12interpolation_type\x18\x03 \x01(\x0e\x32r.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType\x12\x85\x01\n\x0e\x63ontrol_points\x18\x04 \x03(\x0b\x32m.google.cloud.discoveryengine.v1beta.SearchRequest.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint\x1a=\n\x0c\x43ontrolPoint\x12\x17\n\x0f\x61ttribute_value\x18\x01 \x01(\t\x12\x14\n\x0c\x62oost_amount\x18\x02 \x01(\x02\"M\n\rAttributeType\x12\x1e\n\x1a\x41TTRIBUTE_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tNUMERICAL\x10\x01\x12\r\n\tFRESHNESS\x10\x02\"C\n\x11InterpolationType\x12\"\n\x1eINTERPOLATION_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06LINEAR\x10\x01\x1a\xd8\x01\n\x12QueryExpansionSpec\x12\x62\n\tcondition\x18\x01 \x01(\x0e\x32O.google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec.Condition\x12\x1e\n\x16pin_unexpanded_results\x18\x02 \x01(\x08\">\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xad\x01\n\x13SpellCorrectionSpec\x12Y\n\x04mode\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec.Mode\";\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSUGGESTION_ONLY\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x1a\xbe\x0c\n\x11\x43ontentSearchSpec\x12\x66\n\x0csnippet_spec\x18\x01 \x01(\x0b\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SnippetSpec\x12\x66\n\x0csummary_spec\x18\x02 \x01(\x0b\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec\x12{\n\x17\x65xtractive_content_spec\x18\x03 \x01(\x0b\x32Z.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ExtractiveContentSpec\x12q\n\x12search_result_mode\x18\x04 \x01(\x0e\x32U.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SearchResultMode\x12\x62\n\nchunk_spec\x18\x05 \x01(\x0b\x32N.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.ChunkSpec\x1a`\n\x0bSnippetSpec\x12\x1d\n\x11max_snippet_count\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\x1a\n\x0ereference_only\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x16\n\x0ereturn_snippet\x18\x03 \x01(\x08\x1a\xc4\x04\n\x0bSummarySpec\x12\x1c\n\x14summary_result_count\x18\x01 \x01(\x05\x12\x19\n\x11include_citations\x18\x02 \x01(\x08\x12 \n\x18ignore_adversarial_query\x18\x03 \x01(\x08\x12(\n ignore_non_summary_seeking_query\x18\x04 \x01(\x08\x12#\n\x1bignore_low_relevant_content\x18\t \x01(\x08\x12\'\n\x1aignore_jail_breaking_query\x18\n \x01(\x08\x42\x03\xe0\x41\x01\x12{\n\x11model_prompt_spec\x18\x05 \x01(\x0b\x32`.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec\x12\x15\n\rlanguage_code\x18\x06 \x01(\t\x12n\n\nmodel_spec\x18\x07 \x01(\x0b\x32Z.google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec\x12\x1b\n\x13use_semantic_chunks\x18\x08 \x01(\x08\x1a#\n\x0fModelPromptSpec\x12\x10\n\x08preamble\x18\x01 \x01(\t\x1a\x1c\n\tModelSpec\x12\x0f\n\x07version\x18\x01 \x01(\t\x1a\xc5\x01\n\x15\x45xtractiveContentSpec\x12#\n\x1bmax_extractive_answer_count\x18\x01 \x01(\x05\x12$\n\x1cmax_extractive_segment_count\x18\x02 \x01(\x05\x12\'\n\x1freturn_extractive_segment_score\x18\x03 \x01(\x08\x12\x1d\n\x15num_previous_segments\x18\x04 \x01(\x05\x12\x19\n\x11num_next_segments\x18\x05 \x01(\x05\x1a\x41\n\tChunkSpec\x12\x1b\n\x13num_previous_chunks\x18\x01 \x01(\x05\x12\x17\n\x0fnum_next_chunks\x18\x02 \x01(\x05\"Q\n\x10SearchResultMode\x12\"\n\x1eSEARCH_RESULT_MODE_UNSPECIFIED\x10\x00\x12\r\n\tDOCUMENTS\x10\x01\x12\n\n\x06\x43HUNKS\x10\x02\x1a\xb3\x01\n\rEmbeddingSpec\x12k\n\x11\x65mbedding_vectors\x18\x01 \x03(\x0b\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec.EmbeddingVector\x1a\x35\n\x0f\x45mbeddingVector\x12\x12\n\nfield_path\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x1a\xc4\x02\n%NaturalLanguageQueryUnderstandingSpec\x12\x97\x01\n\x1b\x66ilter_extraction_condition\x18\x01 \x01(\x0e\x32r.google.cloud.discoveryengine.v1beta.SearchRequest.NaturalLanguageQueryUnderstandingSpec.FilterExtractionCondition\x12.\n&geo_search_query_detection_field_names\x18\x02 \x03(\t\"Q\n\x19\x46ilterExtractionCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x1a\xbd\x01\n\x13SearchAsYouTypeSpec\x12\x63\n\tcondition\x18\x01 \x01(\x0e\x32P.google.cloud.discoveryengine.v1beta.SearchRequest.SearchAsYouTypeSpec.Condition\"A\n\tCondition\x12\x19\n\x15\x43ONDITION_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x1aq\n\x0bSessionSpec\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12,\n\x1fsearch_result_persistence_count\x18\x02 \x01(\x05H\x00\x88\x01\x01\x42\"\n _search_result_persistence_count\x1a\xa6\x01\n\x13PersonalizationSpec\x12Y\n\x04mode\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchRequest.PersonalizationSpec.Mode\"4\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x1a\x45\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\x1a\x31\n\x0fUserLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"d\n\x12RelevanceThreshold\x12#\n\x1fRELEVANCE_THRESHOLD_UNSPECIFIED\x10\x00\x12\n\n\x06LOWEST\x10\x01\x12\x07\n\x03LOW\x10\x02\x12\n\n\x06MEDIUM\x10\x03\x12\x08\n\x04HIGH\x10\x04\"~\n\x18RankingExpressionBackend\x12*\n&RANKING_EXPRESSION_BACKEND_UNSPECIFIED\x10\x00\x12\x15\n\x11RANK_BY_EMBEDDING\x10\x03\x12\x13\n\x0fRANK_BY_FORMULA\x10\x04\"\x04\x08\x01\x10\x01\"\x04\x08\x02\x10\x02\"\xf9\x35\n\x0eSearchResponse\x12Q\n\x07results\x18\x01 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult\x12I\n\x06\x66\x61\x63\x65ts\x18\x02 \x03(\x0b\x32\x39.google.cloud.discoveryengine.v1beta.SearchResponse.Facet\x12\x64\n\x14guided_search_result\x18\x08 \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\x12\x19\n\x11\x61ttribution_token\x18\x04 \x01(\t\x12\x14\n\x0credirect_uri\x18\x0c \x01(\t\x12\x17\n\x0fnext_page_token\x18\x05 \x01(\t\x12\x17\n\x0f\x63orrected_query\x18\x07 \x01(\t\x12L\n\x07summary\x18\t \x01(\x0b\x32;.google.cloud.discoveryengine.v1beta.SearchResponse.Summary\x12\x18\n\x10\x61pplied_controls\x18\n \x03(\t\x12\x65\n\x15geo_search_debug_info\x18\x10 \x03(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchResponse.GeoSearchDebugInfo\x12\x64\n\x14query_expansion_info\x18\x0e \x01(\x0b\x32\x46.google.cloud.discoveryengine.v1beta.SearchResponse.QueryExpansionInfo\x12\x8c\x01\n)natural_language_query_understanding_info\x18\x0f \x01(\x0b\x32Y.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo\x12U\n\x0csession_info\x18\x13 \x01(\x0b\x32?.google.cloud.discoveryengine.v1beta.SearchResponse.SessionInfo\x12Y\n\x0fone_box_results\x18\x14 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchResponse.OneBoxResult\x1a\xc2\x08\n\x0cSearchResult\x12\n\n\x02id\x18\x01 \x01(\t\x12?\n\x08\x64ocument\x18\x02 \x01(\x0b\x32-.google.cloud.discoveryengine.v1beta.Document\x12\x39\n\x05\x63hunk\x18\x12 \x01(\x0b\x32*.google.cloud.discoveryengine.v1beta.Chunk\x12g\n\x0cmodel_scores\x18\x04 \x03(\x0b\x32Q.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.ModelScoresEntry\x12g\n\x0crank_signals\x18\x07 \x01(\x0b\x32L.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.RankSignalsB\x03\xe0\x41\x01\x1a\x63\n\x10ModelScoresEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.google.cloud.discoveryengine.v1beta.DoubleList:\x02\x38\x01\x1a\xf2\x04\n\x0bRankSignals\x12*\n\x18keyword_similarity_score\x18\x01 \x01(\x02\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12!\n\x0frelevance_score\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12+\n\x19semantic_similarity_score\x18\x03 \x01(\x02\x42\x03\xe0\x41\x01H\x02\x88\x01\x01\x12\x1b\n\tpctr_rank\x18\x04 \x01(\x02\x42\x03\xe0\x41\x01H\x03\x88\x01\x01\x12!\n\x0ftopicality_rank\x18\x06 \x01(\x02\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x12\x1e\n\x0c\x64ocument_age\x18\x07 \x01(\x02\x42\x03\xe0\x41\x01H\x05\x88\x01\x01\x12!\n\x0f\x62oosting_factor\x18\x08 \x01(\x02\x42\x03\xe0\x41\x01H\x06\x88\x01\x01\x12\x19\n\x0c\x64\x65\x66\x61ult_rank\x18 \x01(\x02\x42\x03\xe0\x41\x01\x12v\n\x0e\x63ustom_signals\x18! \x03(\x0b\x32Y.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.RankSignals.CustomSignalB\x03\xe0\x41\x01\x1a\x35\n\x0c\x43ustomSignal\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\x02\x42\x03\xe0\x41\x01\x42\x1b\n\x19_keyword_similarity_scoreB\x12\n\x10_relevance_scoreB\x1c\n\x1a_semantic_similarity_scoreB\x0c\n\n_pctr_rankB\x12\n\x10_topicality_rankB\x0f\n\r_document_ageB\x12\n\x10_boosting_factorJ\x04\x08\x05\x10\x06\x1a\x81\x02\n\x05\x46\x61\x63\x65t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12T\n\x06values\x18\x02 \x03(\x0b\x32\x44.google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue\x12\x15\n\rdynamic_facet\x18\x03 \x01(\x08\x1a~\n\nFacetValue\x12\x0f\n\x05value\x18\x01 \x01(\tH\x00\x12\x41\n\x08interval\x18\x02 \x01(\x0b\x32-.google.cloud.discoveryengine.v1beta.IntervalH\x00\x12\r\n\x05\x63ount\x18\x03 \x01(\x03\x42\r\n\x0b\x66\x61\x63\x65t_value\x1a\xf3\x01\n\x12GuidedSearchResult\x12y\n\x15refinement_attributes\x18\x01 \x03(\x0b\x32Z.google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult.RefinementAttribute\x12\x1b\n\x13\x66ollow_up_questions\x18\x02 \x03(\t\x1a\x45\n\x13RefinementAttribute\x12\x15\n\rattribute_key\x18\x01 \x01(\t\x12\x17\n\x0f\x61ttribute_value\x18\x02 \x01(\t\x1a\xb3\x0c\n\x07Summary\x12\x14\n\x0csummary_text\x18\x01 \x01(\t\x12q\n\x17summary_skipped_reasons\x18\x02 \x03(\x0e\x32P.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummarySkippedReason\x12g\n\x11safety_attributes\x18\x03 \x01(\x0b\x32L.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SafetyAttributes\x12n\n\x15summary_with_metadata\x18\x04 \x01(\x0b\x32O.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.SummaryWithMetadata\x1a\x36\n\x10SafetyAttributes\x12\x12\n\ncategories\x18\x01 \x03(\t\x12\x0e\n\x06scores\x18\x02 \x03(\x02\x1ak\n\x10\x43itationMetadata\x12W\n\tcitations\x18\x01 \x03(\x0b\x32\x44.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Citation\x1a\x8f\x01\n\x08\x43itation\x12\x13\n\x0bstart_index\x18\x01 \x01(\x03\x12\x11\n\tend_index\x18\x02 \x01(\x03\x12[\n\x07sources\x18\x03 \x03(\x0b\x32J.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationSource\x1a)\n\x0e\x43itationSource\x12\x17\n\x0freference_index\x18\x04 \x01(\x03\x1a\x90\x02\n\tReference\x12\r\n\x05title\x18\x01 \x01(\t\x12\x41\n\x08\x64ocument\x18\x02 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'discoveryengine.googleapis.com/Document\x12\x0b\n\x03uri\x18\x03 \x01(\t\x12j\n\x0e\x63hunk_contents\x18\x04 \x03(\x0b\x32R.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference.ChunkContent\x1a\x38\n\x0c\x43hunkContent\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x17\n\x0fpage_identifier\x18\x02 \x01(\t\x1a\xea\x01\n\x13SummaryWithMetadata\x12\x0f\n\x07summary\x18\x01 \x01(\t\x12g\n\x11\x63itation_metadata\x18\x02 \x01(\x0b\x32L.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.CitationMetadata\x12Y\n\nreferences\x18\x03 \x03(\x0b\x32\x45.google.cloud.discoveryengine.v1beta.SearchResponse.Summary.Reference\"\xe3\x02\n\x14SummarySkippedReason\x12&\n\"SUMMARY_SKIPPED_REASON_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x44VERSARIAL_QUERY_IGNORED\x10\x01\x12%\n!NON_SUMMARY_SEEKING_QUERY_IGNORED\x10\x02\x12\x1f\n\x1bOUT_OF_DOMAIN_QUERY_IGNORED\x10\x03\x12\x1e\n\x1aPOTENTIAL_POLICY_VIOLATION\x10\x04\x12\x19\n\x15LLM_ADDON_NOT_ENABLED\x10\x05\x12\x17\n\x13NO_RELEVANT_CONTENT\x10\x06\x12\x1f\n\x1bJAIL_BREAKING_QUERY_IGNORED\x10\x07\x12\x1d\n\x19\x43USTOMER_POLICY_VIOLATION\x10\x08\x12(\n$NON_SUMMARY_SEEKING_QUERY_IGNORED_V2\x10\t\x1aK\n\x12GeoSearchDebugInfo\x12\x1e\n\x16original_address_query\x18\x01 \x01(\t\x12\x15\n\rerror_message\x18\x02 \x01(\t\x1aI\n\x12QueryExpansionInfo\x12\x16\n\x0e\x65xpanded_query\x18\x01 \x01(\x08\x12\x1b\n\x13pinned_result_count\x18\x02 \x01(\x03\x1a\x81\x11\n%NaturalLanguageQueryUnderstandingInfo\x12\x19\n\x11\x65xtracted_filters\x18\x01 \x01(\t\x12\x17\n\x0frewritten_query\x18\x02 \x01(\t\x12\x98\x01\n\x1bstructured_extracted_filter\x18\x03 \x01(\x0b\x32s.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter\x1a\x88\x0f\n\x19StructuredExtractedFilter\x12\x92\x01\n\nexpression\x18\x01 \x01(\x0b\x32~.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1aM\n\x10StringConstraint\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x0e\n\x06values\x18\x02 \x03(\t\x12\x15\n\rquery_segment\x18\x03 \x01(\t\x1a\xfa\x02\n\x10NumberConstraint\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\xa4\x01\n\ncomparison\x18\x02 \x01(\x0e\x32\x8f\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraint.Comparison\x12\r\n\x05value\x18\x03 \x01(\x01\x12\x15\n\rquery_segment\x18\x04 \x01(\t\"\x84\x01\n\nComparison\x12\x1a\n\x16\x43OMPARISON_UNSPECIFIED\x10\x00\x12\n\n\x06\x45QUALS\x10\x01\x12\x14\n\x10LESS_THAN_EQUALS\x10\x02\x12\r\n\tLESS_THAN\x10\x03\x12\x17\n\x13GREATER_THAN_EQUALS\x10\x04\x12\x10\n\x0cGREATER_THAN\x10\x05\x1a{\n\x15GeolocationConstraint\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x10\n\x08latitude\x18\x04 \x01(\x01\x12\x11\n\tlongitude\x18\x05 \x01(\x01\x12\x18\n\x10radius_in_meters\x18\x03 \x01(\x02\x1a\xa5\x01\n\rAndExpression\x12\x93\x01\n\x0b\x65xpressions\x18\x01 \x03(\x0b\x32~.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1a\xa4\x01\n\x0cOrExpression\x12\x93\x01\n\x0b\x65xpressions\x18\x01 \x03(\x0b\x32~.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.Expression\x1a\xbd\x06\n\nExpression\x12\xa2\x01\n\x11string_constraint\x18\x01 \x01(\x0b\x32\x84\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.StringConstraintH\x00\x12\xa2\x01\n\x11number_constraint\x18\x02 \x01(\x0b\x32\x84\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.NumberConstraintH\x00\x12\xac\x01\n\x16geolocation_constraint\x18\x03 \x01(\x0b\x32\x89\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.GeolocationConstraintH\x00\x12\x96\x01\n\x08\x61nd_expr\x18\x04 \x01(\x0b\x32\x81\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.AndExpressionH\x00\x12\x94\x01\n\x07or_expr\x18\x05 \x01(\x0b\x32\x80\x01.google.cloud.discoveryengine.v1beta.SearchResponse.NaturalLanguageQueryUnderstandingInfo.StructuredExtractedFilter.OrExpressionH\x00\x42\x06\n\x04\x65xpr\x1a-\n\x0bSessionInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08query_id\x18\x02 \x01(\t\x1a\xb5\x02\n\x0cOneBoxResult\x12\x61\n\x0cone_box_type\x18\x01 \x01(\x0e\x32K.google.cloud.discoveryengine.v1beta.SearchResponse.OneBoxResult.OneBoxType\x12X\n\x0esearch_results\x18\x02 \x03(\x0b\x32@.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult\"h\n\nOneBoxType\x12\x1c\n\x18ONE_BOX_TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06PEOPLE\x10\x01\x12\x10\n\x0cORGANIZATION\x10\x02\x12\t\n\x05SLACK\x10\x03\x12\x13\n\x0fKNOWLEDGE_GRAPH\x10\x04\x32\xbf\x07\n\rSearchService\x12\xa3\x03\n\x06Search\x12\x32.google.cloud.discoveryengine.v1beta.SearchRequest\x1a\x33.google.cloud.discoveryengine.v1beta.SearchResponse\"\xaf\x02\x82\xd3\xe4\x93\x02\xa8\x02\"T/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search:\x01*Zg\"b/v1beta/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search:\x01*Zd\"_/v1beta/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search:\x01*\x12\xb3\x03\n\nSearchLite\x12\x32.google.cloud.discoveryengine.v1beta.SearchRequest\x1a\x33.google.cloud.discoveryengine.v1beta.SearchResponse\"\xbb\x02\x82\xd3\xe4\x93\x02\xb4\x02\"X/v1beta/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zk\"f/v1beta/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:searchLite:\x01*Zh\"c/v1beta/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:searchLite:\x01*\x1aR\xca\x41\x1e\x64iscoveryengine.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x99\x02\n\'com.google.cloud.discoveryengine.v1betaB\x12SearchServiceProtoP\x01ZQcloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb\xa2\x02\x0f\x44ISCOVERYENGINE\xaa\x02#Google.Cloud.DiscoveryEngine.V1Beta\xca\x02#Google\\Cloud\\DiscoveryEngine\\V1beta\xea\x02&Google::Cloud::DiscoveryEngine::V1betab\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -81,8 +81,11 @@ module V1beta SearchRequest::PersonalizationSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchRequest.PersonalizationSpec").msgclass SearchRequest::PersonalizationSpec::Mode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchRequest.PersonalizationSpec.Mode").enummodule SearchRequest::RelevanceThreshold = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchRequest.RelevanceThreshold").enummodule + SearchRequest::RankingExpressionBackend = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchRequest.RankingExpressionBackend").enummodule SearchResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse").msgclass SearchResponse::SearchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult").msgclass + SearchResponse::SearchResult::RankSignals = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.RankSignals").msgclass + SearchResponse::SearchResult::RankSignals::CustomSignal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult.RankSignals.CustomSignal").msgclass SearchResponse::Facet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse.Facet").msgclass SearchResponse::Facet::FacetValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse.Facet.FacetValue").msgclass SearchResponse::GuidedSearchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.discoveryengine.v1beta.SearchResponse.GuidedSearchResult").msgclass diff --git a/google-cloud-discovery_engine-v1beta/proto_docs/google/cloud/discoveryengine/v1beta/search_service.rb b/google-cloud-discovery_engine-v1beta/proto_docs/google/cloud/discoveryengine/v1beta/search_service.rb index 74ad1eb74b85..91882e3ed3a1 100644 --- a/google-cloud-discovery_engine-v1beta/proto_docs/google/cloud/discoveryengine/v1beta/search_service.rb +++ b/google-cloud-discovery_engine-v1beta/proto_docs/google/cloud/discoveryengine/v1beta/search_service.rb @@ -223,8 +223,14 @@ module V1beta # The ranking expression controls the customized ranking on retrieval # documents. This overrides # {::Google::Cloud::DiscoveryEngine::V1beta::ServingConfig#ranking_expression ServingConfig.ranking_expression}. - # The ranking expression is a single function or multiple functions that are - # joined by "+". + # The syntax and supported features depend on the + # `ranking_expression_backend` value. If `ranking_expression_backend` is not + # provided, it defaults to `RANK_BY_EMBEDDING`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is not provided or set to `RANK_BY_EMBEDDING`, it should be a single + # function or multiple functions that are joined by "+". # # * ranking_expression = function, { " + ", function }; # @@ -239,13 +245,74 @@ module V1beta # between query and document. # * `embedding_field_path`: the document embedding field # used with query embedding vector. - # * `dotProduct`: embedding function between embedding_field_path and query - # embedding vector. + # * `dotProduct`: embedding function between `embedding_field_path` and + # query embedding vector. # # Example ranking expression: # # If document has an embedding field doc_embedding, the ranking expression # could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`. + # + # If + # {::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest#ranking_expression_backend ranking_expression_backend} + # is set to `RANK_BY_FORMULA`, the following expression types (and + # combinations of those chained using + or + # * operators) are supported: + # + # * `double` + # * `signal` + # * `log(signal)` + # * `exp(signal)` + # * `rr(signal, double > 0)` -- reciprocal rank transformation with second + # argument being a denominator constant. + # * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. + # * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns + # signal2 | double, else returns signal1. + # + # Here are a few examples of ranking formulas that use the supported + # ranking expression types: + # + # - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)` + # -- mostly rank by the logarithm of `keyword_similarity_score` with slight + # `semantic_smilarity_score` adjustment. + # - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 * + # is_nan(keyword_similarity_score)` -- rank by the exponent of + # `semantic_similarity_score` filling the value with 0 if it's NaN, also + # add constant 0.3 adjustment to the final score if + # `semantic_similarity_score` is NaN. + # - `0.2 * rr(semantic_similarity_score, 16) + 0.8 * + # rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank + # of `keyword_similarity_score` with slight adjustment of reciprocal rank + # of `semantic_smilarity_score`. + # + # The following signals are supported: + # + # * `semantic_similarity_score`: semantic similarity adjustment that is + # calculated using the embeddings generated by a proprietary Google model. + # This score determines how semantically similar a search query is to a + # document. + # * `keyword_similarity_score`: keyword match adjustment uses the Best + # Match 25 (BM25) ranking function. This score is calculated using a + # probabilistic model to estimate the probability that a document is + # relevant to a given query. + # * `relevance_score`: semantic relevance adjustment that uses a + # proprietary Google model to determine the meaning and intent behind a + # user's query in context with the content in the documents. + # * `pctr_rank`: predicted conversion rate adjustment as a rank use + # predicted Click-through rate (pCTR) to gauge the relevance and + # attractiveness of a search result from a user's perspective. A higher + # pCTR suggests that the result is more likely to satisfy the user's query + # and intent, making it a valuable signal for ranking. + # * `freshness_rank`: freshness adjustment as a rank + # * `document_age`: The time in hours elapsed since the document was last + # updated, a floating-point number (e.g., 0.25 means 15 minutes). + # * `topicality_rank`: topicality adjustment as a rank. Uses proprietary + # Google model to determine the keyword-based overlap between the query and + # the document. + # * `base_rank`: the default rank of the result + # @!attribute [rw] ranking_expression_backend + # @return [::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::RankingExpressionBackend] + # The backend to use for the ranking expression evaluation. # @!attribute [rw] safe_search # @return [::Boolean] # Whether to turn on safe search. This is only supported for @@ -1153,6 +1220,19 @@ module RelevanceThreshold # High relevance threshold. HIGH = 4 end + + # The backend to use for the ranking expression evaluation. + module RankingExpressionBackend + # Default option for unspecified/unknown values. + RANKING_EXPRESSION_BACKEND_UNSPECIFIED = 0 + + # Ranking by custom embedding model, the default way to evaluate the + # ranking expression. + RANK_BY_EMBEDDING = 3 + + # Ranking by custom formula. + RANK_BY_FORMULA = 4 + end end # Response message for @@ -1251,6 +1331,9 @@ class SearchResponse # @!attribute [rw] model_scores # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::DiscoveryEngine::V1beta::DoubleList}] # Google provided available scores. + # @!attribute [rw] rank_signals + # @return [::Google::Cloud::DiscoveryEngine::V1beta::SearchResponse::SearchResult::RankSignals] + # A set of ranking signals associated with the result. class SearchResult include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1263,6 +1346,51 @@ class ModelScoresEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # A set of ranking signals. + # @!attribute [rw] keyword_similarity_score + # @return [::Float] + # Keyword matching adjustment. + # @!attribute [rw] relevance_score + # @return [::Float] + # Semantic relevance adjustment. + # @!attribute [rw] semantic_similarity_score + # @return [::Float] + # Semantic similarity adjustment. + # @!attribute [rw] pctr_rank + # @return [::Float] + # Predicted conversion rate adjustment as a rank. + # @!attribute [rw] topicality_rank + # @return [::Float] + # Topicality adjustment as a rank. + # @!attribute [rw] document_age + # @return [::Float] + # Age of the document in hours. + # @!attribute [rw] boosting_factor + # @return [::Float] + # Combined custom boosts for a doc. + # @!attribute [rw] default_rank + # @return [::Float] + # The default rank of the result. + # @!attribute [rw] custom_signals + # @return [::Array<::Google::Cloud::DiscoveryEngine::V1beta::SearchResponse::SearchResult::RankSignals::CustomSignal>] + # A list of custom clearbox signals. + class RankSignals + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Custom clearbox signal represented by name and value pair. + # @!attribute [rw] name + # @return [::String] + # Name of the signal. + # @!attribute [rw] value + # @return [::Float] + # Float value representing the ranking signal (e.g. 1.25 for BM25). + class CustomSignal + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end end # A facet result. diff --git a/google-cloud-discovery_engine-v1beta/snippets/snippet_metadata_google.cloud.discoveryengine.v1beta.json b/google-cloud-discovery_engine-v1beta/snippets/snippet_metadata_google.cloud.discoveryengine.v1beta.json index 1dbcaddd1b99..158d3fa9f578 100644 --- a/google-cloud-discovery_engine-v1beta/snippets/snippet_metadata_google.cloud.discoveryengine.v1beta.json +++ b/google-cloud-discovery_engine-v1beta/snippets/snippet_metadata_google.cloud.discoveryengine.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-discovery_engine-v1beta", - "version": "0.21.0", + "version": "0.22.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_rest_test.rb b/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_rest_test.rb index 29ffa18bd52d..b047235ac204 100644 --- a/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_rest_test.rb +++ b/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_rest_test.rb @@ -110,6 +110,7 @@ def test_search content_search_spec = {} embedding_spec = {} ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED safe_search = true user_labels = {} natural_language_query_understanding_spec = {} @@ -133,27 +134,27 @@ def test_search end # Use hash object - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |_result, response| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |_result, response| + client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - client.search ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |_result, response| + client.search ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, call_options) do |_result, response| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - client.search(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), call_options) do |_result, response| + client.search(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), call_options) do |_result, response| assert_equal http_response, response.underlying_op end @@ -195,6 +196,7 @@ def test_search_lite content_search_spec = {} embedding_spec = {} ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED safe_search = true user_labels = {} natural_language_query_understanding_spec = {} @@ -218,27 +220,27 @@ def test_search_lite end # Use hash object - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |_result, response| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |_result, response| assert_equal http_response, response.underlying_op end # Use named arguments - client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |_result, response| + client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object - client.search_lite ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |_result, response| + client.search_lite ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |_result, response| assert_equal http_response, response.underlying_op end # Use hash object with options - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, call_options) do |_result, response| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, call_options) do |_result, response| assert_equal http_response, response.underlying_op end # Use protobuf object with options - client.search_lite(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), call_options) do |_result, response| + client.search_lite(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), call_options) do |_result, response| assert_equal http_response, response.underlying_op end diff --git a/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_test.rb b/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_test.rb index 502590b486ce..ab56515b857d 100644 --- a/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_test.rb +++ b/google-cloud-discovery_engine-v1beta/test/google/cloud/discovery_engine/v1beta/search_service_test.rb @@ -95,6 +95,7 @@ def test_search content_search_spec = {} embedding_spec = {} ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED safe_search = true user_labels = {} natural_language_query_understanding_spec = {} @@ -131,6 +132,7 @@ def test_search assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::ContentSearchSpec), request["content_search_spec"] assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::EmbeddingSpec), request["embedding_spec"] assert_equal "hello world", request["ranking_expression"] + assert_equal :RANKING_EXPRESSION_BACKEND_UNSPECIFIED, request["ranking_expression_backend"] assert_equal true, request["safe_search"] assert_equal({}, request["user_labels"].to_h) assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::NaturalLanguageQueryUnderstandingSpec), request["natural_language_query_understanding_spec"] @@ -149,35 +151,35 @@ def test_search end # Use hash object - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |response, operation| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use named arguments - client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |response, operation| + client.search serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object - client.search ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |response, operation| + client.search ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use hash object with options - client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, grpc_options) do |response, operation| + client.search({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object with options - client.search(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), grpc_options) do |response, operation| + client.search(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation @@ -220,6 +222,7 @@ def test_search_lite content_search_spec = {} embedding_spec = {} ranking_expression = "hello world" + ranking_expression_backend = :RANKING_EXPRESSION_BACKEND_UNSPECIFIED safe_search = true user_labels = {} natural_language_query_understanding_spec = {} @@ -256,6 +259,7 @@ def test_search_lite assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::ContentSearchSpec), request["content_search_spec"] assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::EmbeddingSpec), request["embedding_spec"] assert_equal "hello world", request["ranking_expression"] + assert_equal :RANKING_EXPRESSION_BACKEND_UNSPECIFIED, request["ranking_expression_backend"] assert_equal true, request["safe_search"] assert_equal({}, request["user_labels"].to_h) assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest::NaturalLanguageQueryUnderstandingSpec), request["natural_language_query_understanding_spec"] @@ -274,35 +278,35 @@ def test_search_lite end # Use hash object - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |response, operation| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use named arguments - client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |response, operation| + client.search_lite serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object - client.search_lite ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |response, operation| + client.search_lite ::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use hash object with options - client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, grpc_options) do |response, operation| + client.search_lite({ serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec }, grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation end # Use protobuf object with options - client.search_lite(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), grpc_options) do |response, operation| + client.search_lite(::Google::Cloud::DiscoveryEngine::V1beta::SearchRequest.new(serving_config: serving_config, branch: branch, query: query, image_query: image_query, page_size: page_size, page_token: page_token, offset: offset, one_box_page_size: one_box_page_size, data_store_specs: data_store_specs, filter: filter, canonical_filter: canonical_filter, order_by: order_by, user_info: user_info, language_code: language_code, region_code: region_code, facet_specs: facet_specs, boost_spec: boost_spec, params: params, query_expansion_spec: query_expansion_spec, spell_correction_spec: spell_correction_spec, user_pseudo_id: user_pseudo_id, content_search_spec: content_search_spec, embedding_spec: embedding_spec, ranking_expression: ranking_expression, ranking_expression_backend: ranking_expression_backend, safe_search: safe_search, user_labels: user_labels, natural_language_query_understanding_spec: natural_language_query_understanding_spec, search_as_you_type_spec: search_as_you_type_spec, session: session, session_spec: session_spec, relevance_threshold: relevance_threshold, personalization_spec: personalization_spec), grpc_options) do |response, operation| assert_kind_of Gapic::PagedEnumerable, response assert_equal grpc_response, response.response assert_equal grpc_operation, operation diff --git a/google-cloud-discovery_engine/CHANGELOG.md b/google-cloud-discovery_engine/CHANGELOG.md index 0c3dfe10c366..5198034a7f6a 100644 --- a/google-cloud-discovery_engine/CHANGELOG.md +++ b/google-cloud-discovery_engine/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.3.0 (2025-07-25) #### Features diff --git a/google-cloud-discovery_engine/README.md b/google-cloud-discovery_engine/README.md index aefb89cb60e8..f74844714036 100644 --- a/google-cloud-discovery_engine/README.md +++ b/google-cloud-discovery_engine/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/discoveryengine.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/discovery_engine" + +client = Google::Cloud::DiscoveryEngine.search_service +request = ::Google::Cloud::DiscoveryEngine::V1::SearchRequest.new # (request fields as keyword arguments...) +response = client.search request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-discovery_engine/lib/google/cloud/discovery_engine/version.rb b/google-cloud-discovery_engine/lib/google/cloud/discovery_engine/version.rb index e4d8909c0152..441152205746 100644 --- a/google-cloud-discovery_engine/lib/google/cloud/discovery_engine/version.rb +++ b/google-cloud-discovery_engine/lib/google/cloud/discovery_engine/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DiscoveryEngine - VERSION = "2.3.0" + VERSION = "2.3.1" end end end diff --git a/google-cloud-dlp-v2/CHANGELOG.md b/google-cloud-dlp-v2/CHANGELOG.md index e3173b8217c3..fb2539321f84 100644 --- a/google-cloud-dlp-v2/CHANGELOG.md +++ b/google-cloud-dlp-v2/CHANGELOG.md @@ -1,5 +1,20 @@ # Release History +### 1.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + +### 1.13.0 (2025-09-10) + +#### Features + +* add LocationSupport, Domain, DocumentFallbackLocation ([#30960](https://github.com/googleapis/google-cloud-ruby/issues/30960)) +#### Documentation + +* minor doc revision + ### 1.12.1 (2025-07-15) #### Documentation diff --git a/google-cloud-dlp-v2/google-cloud-dlp-v2.gemspec b/google-cloud-dlp-v2/google-cloud-dlp-v2.gemspec index 27911ef6a1a0..9172af24e46d 100644 --- a/google-cloud-dlp-v2/google-cloud-dlp-v2.gemspec +++ b/google-cloud-dlp-v2/google-cloud-dlp-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb index aaeac9527fe1..c86655f8e28b 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/client.rb @@ -4557,6 +4557,7 @@ def list_project_data_profiles request, options = nil # - `resource_visibility`: PUBLIC|RESTRICTED # - `status_code` - an RPC status code as defined in # https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + # # * The operator must be `=` or `!=`. # # Examples: @@ -4945,6 +4946,7 @@ def get_project_data_profile request, options = nil # - `resource_visibility`: PUBLIC|RESTRICTED # - `status_code` - an RPC status code as defined in # https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + # # * The operator must be `=` or `!=`. # # Examples: diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb index 8729675f9314..e7cd61d0186e 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/dlp_service/rest/client.rb @@ -4292,6 +4292,7 @@ def list_project_data_profiles request, options = nil # - `resource_visibility`: PUBLIC|RESTRICTED # - `status_code` - an RPC status code as defined in # https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + # # * The operator must be `=` or `!=`. # # Examples: @@ -4659,6 +4660,7 @@ def get_project_data_profile request, options = nil # - `resource_visibility`: PUBLIC|RESTRICTED # - `status_code` - an RPC status code as defined in # https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + # # * The operator must be `=` or `!=`. # # Examples: diff --git a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/version.rb b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/version.rb index 5b0af5c4f01a..f6260456560a 100644 --- a/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/version.rb +++ b/google-cloud-dlp-v2/lib/google/cloud/dlp/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Dlp module V2 - VERSION = "1.12.1" + VERSION = "1.14.0" end end end diff --git a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb index 89deb5da33eb..d1ecaebec2a4 100644 --- a/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb +++ b/google-cloud-dlp-v2/lib/google/privacy/dlp/v2/dlp_pb.rb @@ -19,7 +19,7 @@ require 'google/type/timeofday_pb' -descriptor_data = "\n\x1fgoogle/privacy/dlp/v2/dlp.proto\x12\x15google.privacy.dlp.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/privacy/dlp/v2/storage.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x16google/type/date.proto\x1a\x1bgoogle/type/dayofweek.proto\x1a\x1bgoogle/type/timeofday.proto\"G\n\x10\x45xcludeInfoTypes\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xa8\x01\n\x10\x45xcludeByHotword\x12\x42\n\rhotword_regex\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.Regex\x12P\n\tproximity\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity\"\xe7\x02\n\rExclusionRule\x12\x46\n\ndictionary\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x12\x45\n\x12\x65xclude_info_types\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeInfoTypesH\x00\x12\x45\n\x12\x65xclude_by_hotword\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeByHotwordH\x00\x12:\n\rmatching_type\x18\x04 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingTypeB\x06\n\x04type\"\xb1\x01\n\x0eInspectionRule\x12W\n\x0chotword_rule\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRuleH\x00\x12>\n\x0e\x65xclusion_rule\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.ExclusionRuleH\x00\x42\x06\n\x04type\"~\n\x11InspectionRuleSet\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\x05rules\x18\x02 \x03(\x0b\x32%.google.privacy.dlp.v2.InspectionRule\"\xac\x07\n\rInspectConfig\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12]\n\x1cmin_likelihood_per_info_type\x18\x0b \x03(\x0b\x32\x37.google.privacy.dlp.v2.InspectConfig.InfoTypeLikelihood\x12\x42\n\x06limits\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.InspectConfig.FindingLimits\x12\x15\n\rinclude_quote\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xclude_info_types\x18\x05 \x01(\x08\x12@\n\x11\x63ustom_info_types\x18\x06 \x03(\x0b\x32%.google.privacy.dlp.v2.CustomInfoType\x12=\n\x0f\x63ontent_options\x18\x08 \x03(\x0e\x32$.google.privacy.dlp.v2.ContentOption\x12:\n\x08rule_set\x18\n \x03(\x0b\x32(.google.privacy.dlp.v2.InspectionRuleSet\x1a\x83\x01\n\x12InfoTypeLikelihood\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x1a\x91\x02\n\rFindingLimits\x12\x1d\n\x15max_findings_per_item\x18\x01 \x01(\x05\x12 \n\x18max_findings_per_request\x18\x02 \x01(\x05\x12\x64\n\x1amax_findings_per_info_type\x18\x03 \x03(\x0b\x32@.google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit\x1aY\n\rInfoTypeLimit\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x14\n\x0cmax_findings\x18\x02 \x01(\x05\"\xf9\x02\n\x0f\x42yteContentItem\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.privacy.dlp.v2.ByteContentItem.BytesType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x97\x02\n\tBytesType\x12\x1a\n\x16\x42YTES_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05IMAGE\x10\x06\x12\x0e\n\nIMAGE_JPEG\x10\x01\x12\r\n\tIMAGE_BMP\x10\x02\x12\r\n\tIMAGE_PNG\x10\x03\x12\r\n\tIMAGE_SVG\x10\x04\x12\r\n\tTEXT_UTF8\x10\x05\x12\x11\n\rWORD_DOCUMENT\x10\x07\x12\x07\n\x03PDF\x10\x08\x12\x17\n\x13POWERPOINT_DOCUMENT\x10\t\x12\x12\n\x0e\x45XCEL_DOCUMENT\x10\n\x12\x08\n\x04\x41VRO\x10\x0b\x12\x07\n\x03\x43SV\x10\x0c\x12\x07\n\x03TSV\x10\r\x12\t\n\x05\x41UDIO\x10\x0f\x12\t\n\x05VIDEO\x10\x10\x12\x0e\n\nEXECUTABLE\x10\x11\x12\x0c\n\x08\x41I_MODEL\x10\x12\"\x97\x01\n\x0b\x43ontentItem\x12\x0f\n\x05value\x18\x03 \x01(\tH\x00\x12-\n\x05table\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.TableH\x00\x12;\n\tbyte_item\x18\x05 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItemH\x00\x42\x0b\n\tdata_item\"\x9d\x01\n\x05Table\x12/\n\x07headers\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12.\n\x04rows\x18\x02 \x03(\x0b\x32 .google.privacy.dlp.v2.Table.Row\x1a\x33\n\x03Row\x12,\n\x06values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\"]\n\rInspectResult\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\x12\x1a\n\x12\x66indings_truncated\x18\x02 \x01(\x08\"\xdf\x05\n\x07\x46inding\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x32\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x35\n\nlikelihood\x18\x03 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x31\n\x08location\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.Location\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\nquote_info\x18\x07 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo\x12\x35\n\rresource_name\x18\x08 \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x38\n\x0ctrigger_name\x18\t \x01(\tB\"\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12:\n\x06labels\x18\n \x03(\x0b\x32*.google.privacy.dlp.v2.Finding.LabelsEntry\x12\x33\n\x0fjob_create_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x08job_name\x18\r \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x12\n\nfinding_id\x18\x0f \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:[\xea\x41X\n\x1a\x64lp.googleapis.com/Finding\x12:projects/{project}/locations/{location}/findings/{finding}\"\xeb\x01\n\x08Location\x12\x30\n\nbyte_range\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x35\n\x0f\x63odepoint_range\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x41\n\x11\x63ontent_locations\x18\x07 \x03(\x0b\x32&.google.privacy.dlp.v2.ContentLocation\x12\x33\n\tcontainer\x18\x08 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\"\x97\x03\n\x0f\x43ontentLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12@\n\x0frecord_location\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.RecordLocationH\x00\x12>\n\x0eimage_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.ImageLocationH\x00\x12\x44\n\x11\x64ocument_location\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.DocumentLocationH\x00\x12\x44\n\x11metadata_location\x18\x08 \x01(\x0b\x32\'.google.privacy.dlp.v2.MetadataLocationH\x00\x12\x37\n\x13\x63ontainer_timestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x07 \x01(\tB\n\n\x08location\"\x94\x01\n\x10MetadataLocation\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.google.privacy.dlp.v2.MetadataType\x12\x44\n\rstorage_label\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.StorageMetadataLabelH\x00\x42\x07\n\x05label\"#\n\x14StorageMetadataLabel\x12\x0b\n\x03key\x18\x01 \x01(\t\"\'\n\x10\x44ocumentLocation\x12\x13\n\x0b\x66ile_offset\x18\x01 \x01(\x03\"\xb6\x01\n\x0eRecordLocation\x12\x34\n\nrecord_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.RecordKey\x12\x30\n\x08\x66ield_id\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12<\n\x0etable_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.TableLocation\"\"\n\rTableLocation\x12\x11\n\trow_index\x18\x01 \x01(\x03\"\xac\x01\n\tContainer\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x11\n\tfull_path\x18\x03 \x01(\t\x12\x11\n\troot_path\x18\x04 \x01(\t\x12\x15\n\rrelative_path\x18\x05 \x01(\t\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07version\x18\x07 \x01(\t\"#\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\"K\n\rImageLocation\x12:\n\x0e\x62ounding_boxes\x18\x01 \x03(\x0b\x32\".google.privacy.dlp.v2.BoundingBox\"G\n\x0b\x42oundingBox\x12\x0b\n\x03top\x18\x01 \x01(\x05\x12\x0c\n\x04left\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\"\xfc\x03\n\x12RedactImageRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12\x13\n\x0blocation_id\x18\x08 \x01(\t\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12_\n\x17image_redaction_configs\x18\x05 \x03(\x0b\x32>.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig\x12\x18\n\x10include_findings\x18\x06 \x01(\x08\x12\x39\n\tbyte_item\x18\x07 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItem\x1a\xa8\x01\n\x14ImageRedactionConfig\x12\x34\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x19\n\x0fredact_all_text\x18\x02 \x01(\x08H\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ColorB\x08\n\x06target\"1\n\x05\x43olor\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02\"\x83\x01\n\x13RedactImageResponse\x12\x16\n\x0eredacted_image\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65xtracted_text\x18\x02 \x01(\t\x12<\n\x0einspect_result\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult\"\xd8\x02\n\x18\x44\x65identifyContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12\x42\n\x11\x64\x65identify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18\x64\x65identify_template_name\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"\x8e\x01\n\x19\x44\x65identifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview\"\xdb\x02\n\x18ReidentifyContentRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12\x42\n\x11reidentify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18reidentify_template_name\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"\x8e\x01\n\x19ReidentifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview\"\xef\x01\n\x15InspectContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x03 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"N\n\x16InspectContentResponse\x12\x34\n\x06result\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult\"\xb7\x02\n\x13OutputStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x12N\n\routput_schema\x18\x03 \x01(\x0e\x32\x37.google.privacy.dlp.v2.OutputStorageConfig.OutputSchema\"\x90\x01\n\x0cOutputSchema\x12\x1d\n\x19OUTPUT_SCHEMA_UNSPECIFIED\x10\x00\x12\x11\n\rBASIC_COLUMNS\x10\x01\x12\x0f\n\x0bGCS_COLUMNS\x10\x02\x12\x15\n\x11\x44\x41TASTORE_COLUMNS\x10\x03\x12\x15\n\x11\x42IG_QUERY_COLUMNS\x10\x04\x12\x0f\n\x0b\x41LL_COLUMNS\x10\x05\x42\x06\n\x04type\"R\n\rInfoTypeStats\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\"\xc0\x04\n\x18InspectDataSourceDetails\x12[\n\x11requested_options\x18\x02 \x01(\x0b\x32@.google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions\x12\x46\n\x06result\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.InspectDataSourceDetails.Result\x1a\x9a\x01\n\x10RequestedOptions\x12I\n\x19snapshot_inspect_template\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12;\n\njob_config\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfig\x1a\xe1\x01\n\x06Result\x12\x17\n\x0fprocessed_bytes\x18\x01 \x01(\x03\x12\x1d\n\x15total_estimated_bytes\x18\x02 \x01(\x03\x12=\n\x0finfo_type_stats\x18\x03 \x03(\x0b\x32$.google.privacy.dlp.v2.InfoTypeStats\x12\x1a\n\x12num_rows_processed\x18\x05 \x01(\x03\x12\x44\n\x0chybrid_stats\x18\x07 \x01(\x0b\x32..google.privacy.dlp.v2.HybridInspectStatistics\"\xff\x01\n\x1c\x44\x61taProfileBigQueryRowSchema\x12@\n\rtable_profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfileH\x00\x12\x42\n\x0e\x63olumn_profile\x18\x02 \x01(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfileH\x00\x12I\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfileH\x00\x42\x0e\n\x0c\x64\x61ta_profile\"`\n\x17HybridInspectStatistics\x12\x17\n\x0fprocessed_count\x18\x01 \x01(\x03\x12\x15\n\raborted_count\x18\x02 \x01(\x03\x12\x15\n\rpending_count\x18\x03 \x01(\x03\"l\n\rActionDetails\x12P\n\x12\x64\x65identify_details\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DeidentifyDataSourceDetailsH\x00\x42\t\n\x07\x64\x65tails\"x\n\x19\x44\x65identifyDataSourceStats\x12\x19\n\x11transformed_bytes\x18\x01 \x01(\x03\x12\x1c\n\x14transformation_count\x18\x02 \x01(\x03\x12\"\n\x1atransformation_error_count\x18\x03 \x01(\x03\"\xf2\x03\n\x1b\x44\x65identifyDataSourceDetails\x12h\n\x11requested_options\x18\x01 \x01(\x0b\x32M.google.privacy.dlp.v2.DeidentifyDataSourceDetails.RequestedDeidentifyOptions\x12J\n\x10\x64\x65identify_stats\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DeidentifyDataSourceStats\x1a\x9c\x02\n\x1aRequestedDeidentifyOptions\x12O\n\x1csnapshot_deidentify_template\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Z\n\'snapshot_structured_deidentify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Q\n\x1esnapshot_image_redact_template\x18\x03 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\"\xfc\x02\n\x13InfoTypeDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12@\n\x0csupported_by\x18\x03 \x03(\x0e\x32*.google.privacy.dlp.v2.InfoTypeSupportedBy\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0f\n\x07\x65xample\x18\x08 \x01(\t\x12;\n\x08versions\x18\t \x03(\x0b\x32).google.privacy.dlp.v2.VersionDescription\x12;\n\ncategories\x18\n \x03(\x0b\x32\'.google.privacy.dlp.v2.InfoTypeCategory\x12\x42\n\x11sensitivity_score\x18\x0b \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12\x1b\n\x13specific_info_types\x18\x0c \x03(\t\"\x83\n\n\x10InfoTypeCategory\x12U\n\x11location_category\x18\x01 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.LocationCategoryH\x00\x12U\n\x11industry_category\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.IndustryCategoryH\x00\x12M\n\rtype_category\x18\x03 \x01(\x0e\x32\x34.google.privacy.dlp.v2.InfoTypeCategory.TypeCategoryH\x00\"\xe2\x05\n\x10LocationCategory\x12\x18\n\x14LOCATION_UNSPECIFIED\x10\x00\x12\n\n\x06GLOBAL\x10\x01\x12\r\n\tARGENTINA\x10\x02\x12\x0b\n\x07\x41RMENIA\x10\x33\x12\r\n\tAUSTRALIA\x10\x03\x12\x0e\n\nAZERBAIJAN\x10\x30\x12\x0b\n\x07\x42\x45LARUS\x10\x32\x12\x0b\n\x07\x42\x45LGIUM\x10\x04\x12\n\n\x06\x42RAZIL\x10\x05\x12\n\n\x06\x43\x41NADA\x10\x06\x12\t\n\x05\x43HILE\x10\x07\x12\t\n\x05\x43HINA\x10\x08\x12\x0c\n\x08\x43OLOMBIA\x10\t\x12\x0b\n\x07\x43ROATIA\x10*\x12\x0b\n\x07\x43ZECHIA\x10\x34\x12\x0b\n\x07\x44\x45NMARK\x10\n\x12\n\n\x06\x46RANCE\x10\x0b\x12\x0b\n\x07\x46INLAND\x10\x0c\x12\x0b\n\x07GERMANY\x10\r\x12\r\n\tHONG_KONG\x10\x0e\x12\t\n\x05INDIA\x10\x0f\x12\r\n\tINDONESIA\x10\x10\x12\x0b\n\x07IRELAND\x10\x11\x12\n\n\x06ISRAEL\x10\x12\x12\t\n\x05ITALY\x10\x13\x12\t\n\x05JAPAN\x10\x14\x12\x0e\n\nKAZAKHSTAN\x10/\x12\t\n\x05KOREA\x10\x15\x12\n\n\x06MEXICO\x10\x16\x12\x13\n\x0fTHE_NETHERLANDS\x10\x17\x12\x0f\n\x0bNEW_ZEALAND\x10)\x12\n\n\x06NORWAY\x10\x18\x12\x0c\n\x08PARAGUAY\x10\x19\x12\x08\n\x04PERU\x10\x1a\x12\n\n\x06POLAND\x10\x1b\x12\x0c\n\x08PORTUGAL\x10\x1c\x12\n\n\x06RUSSIA\x10,\x12\r\n\tSINGAPORE\x10\x1d\x12\x10\n\x0cSOUTH_AFRICA\x10\x1e\x12\t\n\x05SPAIN\x10\x1f\x12\n\n\x06SWEDEN\x10 \x12\x0f\n\x0bSWITZERLAND\x10+\x12\n\n\x06TAIWAN\x10!\x12\x0c\n\x08THAILAND\x10\"\x12\n\n\x06TURKEY\x10#\x12\x0b\n\x07UKRAINE\x10-\x12\x12\n\x0eUNITED_KINGDOM\x10$\x12\x11\n\rUNITED_STATES\x10%\x12\x0b\n\x07URUGUAY\x10&\x12\x0e\n\nUZBEKISTAN\x10.\x12\r\n\tVENEZUELA\x10\'\x12\x0c\n\x08INTERNAL\x10(\"]\n\x10IndustryCategory\x12\x18\n\x14INDUSTRY_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x46INANCE\x10\x01\x12\n\n\x06HEALTH\x10\x02\x12\x16\n\x12TELECOMMUNICATIONS\x10\x03\"\xa1\x01\n\x0cTypeCategory\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03PII\x10\x01\x12\x08\n\x04SPII\x10\x02\x12\x0f\n\x0b\x44\x45MOGRAPHIC\x10\x03\x12\x0e\n\nCREDENTIAL\x10\x04\x12\x11\n\rGOVERNMENT_ID\x10\x05\x12\x0c\n\x08\x44OCUMENT\x10\x06\x12\x1a\n\x16\x43ONTEXTUAL_INFORMATION\x10\x07\x12\n\n\x06\x43USTOM\x10\x08\x42\n\n\x08\x63\x61tegory\":\n\x12VersionDescription\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"b\n\x14ListInfoTypesRequest\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x15\n\rlanguage_code\x18\x01 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x12\x13\n\x0blocation_id\x18\x03 \x01(\t\"W\n\x15ListInfoTypesResponse\x12>\n\ninfo_types\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.InfoTypeDescription\"\xc1\x01\n\x15RiskAnalysisJobConfig\x12<\n\x0eprivacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12:\n\x0csource_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12.\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action\"\xbc\x01\n\x07QuasiId\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag\"\xbe\x02\n\x10StatisticalTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12T\n\tquasi_ids\x18\x01 \x03(\x0b\x32<.google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x1aY\n\x14QuasiIdentifierField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t\"\x93\x0f\n\rPrivacyMetric\x12[\n\x16numerical_stats_config\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfigH\x00\x12_\n\x18\x63\x61tegorical_stats_config\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfigH\x00\x12S\n\x12k_anonymity_config\x18\x03 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfigH\x00\x12S\n\x12l_diversity_config\x18\x04 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.LDiversityConfigH\x00\x12\\\n\x17k_map_estimation_config\x18\x05 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfigH\x00\x12n\n delta_presence_estimation_config\x18\x06 \x01(\x0b\x32\x42.google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfigH\x00\x1a\x45\n\x14NumericalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aG\n\x16\x43\x61tegoricalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1ay\n\x10KAnonymityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x32\n\tentity_id\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.EntityId\x1a\x82\x01\n\x10LDiversityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12;\n\x13sensitive_attribute\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1a\x81\x06\n\x14KMapEstimationConfig\x12]\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedFieldB\x03\xe0\x41\x02\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x62\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32H.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable\x1a\xc0\x01\n\x0bTaggedField\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag\x1a\xcd\x02\n\x0e\x41uxiliaryTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12m\n\tquasi_ids\x18\x01 \x03(\x0b\x32U.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x1aQ\n\x0cQuasiIdField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t\x1a\xaf\x01\n\x1d\x44\x65ltaPresenceEstimationConfig\x12\x36\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.QuasiIdB\x03\xe0\x41\x02\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x41\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32\'.google.privacy.dlp.v2.StatisticalTableB\x06\n\x04type\"\xc1\x1f\n\x1c\x41nalyzeDataSourceRiskDetails\x12\x46\n\x18requested_privacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12\x44\n\x16requested_source_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12j\n\x16numerical_stats_result\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResultH\x00\x12n\n\x18\x63\x61tegorical_stats_result\x18\x04 \x01(\x0b\x32J.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResultH\x00\x12\x62\n\x12k_anonymity_result\x18\x05 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResultH\x00\x12\x62\n\x12l_diversity_result\x18\x06 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResultH\x00\x12k\n\x17k_map_estimation_result\x18\x07 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResultH\x00\x12}\n delta_presence_estimation_result\x18\t \x01(\x0b\x32Q.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResultH\x00\x12k\n\x11requested_options\x18\n \x01(\x0b\x32P.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions\x1a\xaf\x01\n\x14NumericalStatsResult\x12/\n\tmin_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12/\n\tmax_value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x35\n\x0fquantile_values\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1a\x8d\x03\n\x16\x43\x61tegoricalStatsResult\x12\x95\x01\n!value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32j.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket\x1a\xda\x01\n\x1f\x43\x61tegoricalStatsHistogramBucket\x12#\n\x1bvalue_frequency_lower_bound\x18\x01 \x01(\x03\x12#\n\x1bvalue_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12<\n\rbucket_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb5\x04\n\x10KAnonymityResult\x12\x8b\x01\n#equivalence_class_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket\x1at\n\x1aKAnonymityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x1a\x9c\x02\n\x19KAnonymityHistogramBucket\x12*\n\"equivalence_class_size_lower_bound\x18\x01 \x01(\x03\x12*\n\"equivalence_class_size_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb0\x05\n\x10LDiversityResult\x12\x93\x01\n+sensitive_value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket\x1a\xe0\x01\n\x1aLDiversityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x12%\n\x1dnum_distinct_sensitive_values\x18\x03 \x01(\x03\x12\x43\n\x14top_sensitive_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x1a\xa2\x02\n\x19LDiversityHistogramBucket\x12-\n%sensitive_value_frequency_lower_bound\x18\x01 \x01(\x03\x12-\n%sensitive_value_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\x95\x04\n\x14KMapEstimationResult\x12\x8a\x01\n\x1ak_map_estimation_histogram\x18\x01 \x03(\x0b\x32\x66.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket\x1ar\n\x1bKMapEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1b\n\x13\x65stimated_anonymity\x18\x02 \x01(\x03\x1a\xfb\x01\n\x1dKMapEstimationHistogramBucket\x12\x15\n\rmin_anonymity\x18\x01 \x01(\x03\x12\x15\n\rmax_anonymity\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12{\n\rbucket_values\x18\x06 \x03(\x0b\x32\x64.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x1a\xe4\x04\n\x1d\x44\x65ltaPresenceEstimationResult\x12\xa5\x01\n#delta_presence_estimation_histogram\x18\x01 \x03(\x0b\x32x.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket\x1a}\n$DeltaPresenceEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1d\n\x15\x65stimated_probability\x18\x02 \x01(\x01\x1a\x9b\x02\n&DeltaPresenceEstimationHistogramBucket\x12\x17\n\x0fmin_probability\x18\x01 \x01(\x01\x12\x17\n\x0fmax_probability\x18\x02 \x01(\x01\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12\x8d\x01\n\rbucket_values\x18\x06 \x03(\x0b\x32v.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x1a`\n\x1cRequestedRiskAnalysisOptions\x12@\n\njob_config\x18\x01 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigB\x08\n\x06result\"L\n\x0eValueFrequency\x12+\n\x05value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\"\xb3\x02\n\x05Value\x12\x17\n\rinteger_value\x18\x01 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x17\n\rboolean_value\x18\x04 \x01(\x08H\x00\x12\x35\n\x0ftimestamp_value\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12,\n\ntime_value\x18\x06 \x01(\x0b\x32\x16.google.type.TimeOfDayH\x00\x12\'\n\ndate_value\x18\x07 \x01(\x0b\x32\x11.google.type.DateH\x00\x12\x33\n\x11\x64\x61y_of_week_value\x18\x08 \x01(\x0e\x32\x16.google.type.DayOfWeekH\x00\x42\x06\n\x04type\"Q\n\tQuoteInfo\x12\x34\n\tdate_time\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DateTimeH\x00\x42\x0e\n\x0cparsed_quote\"\xdf\x01\n\x08\x44\x61teTime\x12\x1f\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x11.google.type.Date\x12+\n\x0b\x64\x61y_of_week\x18\x02 \x01(\x0e\x32\x16.google.type.DayOfWeek\x12$\n\x04time\x18\x03 \x01(\x0b\x32\x16.google.type.TimeOfDay\x12;\n\ttime_zone\x18\x04 \x01(\x0b\x32(.google.privacy.dlp.v2.DateTime.TimeZone\x1a\"\n\x08TimeZone\x12\x16\n\x0eoffset_minutes\x18\x01 \x01(\x05\"\xf2\x02\n\x10\x44\x65identifyConfig\x12S\n\x19info_type_transformations\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x12N\n\x16record_transformations\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.RecordTransformationsH\x00\x12L\n\x15image_transformations\x18\x04 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageTransformationsH\x00\x12Y\n\x1dtransformation_error_handling\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.TransformationErrorHandlingB\x10\n\x0etransformation\"\xe5\x04\n\x14ImageTransformations\x12S\n\ntransforms\x18\x02 \x03(\x0b\x32?.google.privacy.dlp.v2.ImageTransformations.ImageTransformation\x1a\xf7\x03\n\x13ImageTransformation\x12p\n\x13selected_info_types\x18\x04 \x01(\x0b\x32Q.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypesH\x00\x12\x66\n\x0e\x61ll_info_types\x18\x05 \x01(\x0b\x32L.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypesH\x00\x12[\n\x08\x61ll_text\x18\x06 \x01(\x0b\x32G.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllTextH\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Color\x1aM\n\x11SelectedInfoTypes\x12\x38\n\ninfo_types\x18\x05 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeB\x03\xe0\x41\x02\x1a\x0e\n\x0c\x41llInfoTypes\x1a\t\n\x07\x41llTextB\x08\n\x06target\"\x85\x02\n\x1bTransformationErrorHandling\x12T\n\x0bthrow_error\x18\x01 \x01(\x0b\x32=.google.privacy.dlp.v2.TransformationErrorHandling.ThrowErrorH\x00\x12\x64\n\x13leave_untransformed\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformedH\x00\x1a\x0c\n\nThrowError\x1a\x14\n\x12LeaveUntransformedB\x06\n\x04mode\"\xca\x07\n\x17PrimitiveTransformation\x12\x43\n\x0ereplace_config\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.ReplaceValueConfigH\x00\x12<\n\rredact_config\x18\x02 \x01(\x0b\x32#.google.privacy.dlp.v2.RedactConfigH\x00\x12K\n\x15\x63haracter_mask_config\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.CharacterMaskConfigH\x00\x12Y\n\x1d\x63rypto_replace_ffx_fpe_config\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfigH\x00\x12V\n\x1b\x66ixed_size_bucketing_config\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.FixedSizeBucketingConfigH\x00\x12\x42\n\x10\x62ucketing_config\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.BucketingConfigH\x00\x12Y\n\x1dreplace_with_info_type_config\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.ReplaceWithInfoTypeConfigH\x00\x12\x41\n\x10time_part_config\x18\x08 \x01(\x0b\x32%.google.privacy.dlp.v2.TimePartConfigH\x00\x12\x45\n\x12\x63rypto_hash_config\x18\t \x01(\x0b\x32\'.google.privacy.dlp.v2.CryptoHashConfigH\x00\x12\x43\n\x11\x64\x61te_shift_config\x18\x0b \x01(\x0b\x32&.google.privacy.dlp.v2.DateShiftConfigH\x00\x12W\n\x1b\x63rypto_deterministic_config\x18\x0c \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoDeterministicConfigH\x00\x12S\n\x19replace_dictionary_config\x18\r \x01(\x0b\x32..google.privacy.dlp.v2.ReplaceDictionaryConfigH\x00\x42\x10\n\x0etransformation\"\xdc\x01\n\x0eTimePartConfig\x12G\n\x0fpart_to_extract\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.TimePartConfig.TimePart\"\x80\x01\n\x08TimePart\x12\x19\n\x15TIME_PART_UNSPECIFIED\x10\x00\x12\x08\n\x04YEAR\x10\x01\x12\t\n\x05MONTH\x10\x02\x12\x10\n\x0c\x44\x41Y_OF_MONTH\x10\x03\x12\x0f\n\x0b\x44\x41Y_OF_WEEK\x10\x04\x12\x10\n\x0cWEEK_OF_YEAR\x10\x05\x12\x0f\n\x0bHOUR_OF_DAY\x10\x06\"H\n\x10\x43ryptoHashConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\"\xc0\x01\n\x19\x43ryptoDeterministicConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\x12<\n\x13surrogate_info_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"E\n\x12ReplaceValueConfig\x12/\n\tnew_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\"q\n\x17ReplaceDictionaryConfig\x12N\n\tword_list\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordListH\x00\x42\x06\n\x04type\"\x1b\n\x19ReplaceWithInfoTypeConfig\"\x0e\n\x0cRedactConfig\"\xb6\x02\n\rCharsToIgnore\x12\x1c\n\x12\x63haracters_to_skip\x18\x01 \x01(\tH\x00\x12_\n\x1b\x63ommon_characters_to_ignore\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnoreH\x00\"\x97\x01\n\x13\x43ommonCharsToIgnore\x12&\n\"COMMON_CHARS_TO_IGNORE_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x14\n\x10\x41LPHA_UPPER_CASE\x10\x02\x12\x14\n\x10\x41LPHA_LOWER_CASE\x10\x03\x12\x0f\n\x0bPUNCTUATION\x10\x04\x12\x0e\n\nWHITESPACE\x10\x05\x42\x0c\n\ncharacters\"\xa3\x01\n\x13\x43haracterMaskConfig\x12\x19\n\x11masking_character\x18\x01 \x01(\t\x12\x16\n\x0enumber_to_mask\x18\x02 \x01(\x05\x12\x15\n\rreverse_order\x18\x03 \x01(\x08\x12\x42\n\x14\x63haracters_to_ignore\x18\x04 \x03(\x0b\x32$.google.privacy.dlp.v2.CharsToIgnore\"\xa4\x01\n\x18\x46ixedSizeBucketingConfig\x12\x36\n\x0blower_bound\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x36\n\x0bupper_bound\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x18\n\x0b\x62ucket_size\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\"\xf0\x01\n\x0f\x42ucketingConfig\x12>\n\x07\x62uckets\x18\x01 \x03(\x0b\x32-.google.privacy.dlp.v2.BucketingConfig.Bucket\x1a\x9c\x01\n\x06\x42ucket\x12)\n\x03min\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12)\n\x03max\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12<\n\x11replacement_value\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\"\xf9\x03\n\x19\x43ryptoReplaceFfxFpeConfig\x12\x39\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyB\x03\xe0\x41\x02\x12/\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x63\n\x0f\x63ommon_alphabet\x18\x04 \x01(\x0e\x32H.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabetH\x00\x12\x19\n\x0f\x63ustom_alphabet\x18\x05 \x01(\tH\x00\x12\x0f\n\x05radix\x18\x06 \x01(\x05H\x00\x12<\n\x13surrogate_info_type\x18\x08 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\x94\x01\n\x17\x46\x66xCommonNativeAlphabet\x12*\n&FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x0f\n\x0bHEXADECIMAL\x10\x02\x12\x1c\n\x18UPPER_CASE_ALPHA_NUMERIC\x10\x03\x12\x11\n\rALPHA_NUMERIC\x10\x04\x42\n\n\x08\x61lphabet\"\xd8\x01\n\tCryptoKey\x12>\n\ttransient\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.TransientCryptoKeyH\x00\x12>\n\tunwrapped\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.UnwrappedCryptoKeyH\x00\x12\x41\n\x0bkms_wrapped\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.KmsWrappedCryptoKeyH\x00\x42\x08\n\x06source\"\'\n\x12TransientCryptoKey\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"&\n\x12UnwrappedCryptoKey\x12\x10\n\x03key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\"M\n\x13KmsWrappedCryptoKey\x12\x18\n\x0bwrapped_key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x1c\n\x0f\x63rypto_key_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xc2\x01\n\x0f\x44\x61teShiftConfig\x12\x1d\n\x10upper_bound_days\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1d\n\x10lower_bound_days\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x36\n\ncrypto_key\x18\x04 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyH\x00\x42\x08\n\x06method\"\xa5\x02\n\x17InfoTypeTransformations\x12\x63\n\x0ftransformations\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformationB\x03\xe0\x41\x02\x1a\xa4\x01\n\x16InfoTypeTransformation\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12U\n\x18primitive_transformation\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationB\x03\xe0\x41\x02\"\xc0\x02\n\x13\x46ieldTransformation\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12\x39\n\tcondition\x18\x03 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition\x12R\n\x18primitive_transformation\x18\x04 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationH\x00\x12S\n\x19info_type_transformations\x18\x05 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x42\x10\n\x0etransformation\"\xa9\x01\n\x15RecordTransformations\x12I\n\x15\x66ield_transformations\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x45\n\x13record_suppressions\x18\x02 \x03(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression\"N\n\x11RecordSuppression\x12\x39\n\tcondition\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition\"\xdc\x04\n\x0fRecordCondition\x12G\n\x0b\x65xpressions\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.RecordCondition.Expressions\x1a\xae\x01\n\tCondition\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12@\n\x08operator\x18\x03 \x01(\x0e\x32).google.privacy.dlp.v2.RelationalOperatorB\x03\xe0\x41\x02\x12+\n\x05value\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1aR\n\nConditions\x12\x44\n\nconditions\x18\x01 \x03(\x0b\x32\x30.google.privacy.dlp.v2.RecordCondition.Condition\x1a\xfa\x01\n\x0b\x45xpressions\x12\\\n\x10logical_operator\x18\x01 \x01(\x0e\x32\x42.google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator\x12G\n\nconditions\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.RecordCondition.ConditionsH\x00\"<\n\x0fLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x42\x06\n\x04type\"\x83\x01\n\x16TransformationOverview\x12\x19\n\x11transformed_bytes\x18\x02 \x01(\x03\x12N\n\x18transformation_summaries\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.TransformationSummary\"\x9f\x05\n\x15TransformationSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12-\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x46\n\x0etransformation\x18\x03 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformation\x12I\n\x15\x66ield_transformations\x18\x05 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x41\n\x0frecord_suppress\x18\x06 \x01(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression\x12K\n\x07results\x18\x04 \x03(\x0b\x32:.google.privacy.dlp.v2.TransformationSummary.SummaryResult\x12\x19\n\x11transformed_bytes\x18\x07 \x01(\x03\x1a\x84\x01\n\rSummaryResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12S\n\x04\x63ode\x18\x02 \x01(\x0e\x32\x45.google.privacy.dlp.v2.TransformationSummary.TransformationResultCode\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"^\n\x18TransformationResultCode\x12*\n&TRANSFORMATION_RESULT_CODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\t\n\x05\x45RROR\x10\x02\"\xb0\x01\n\x19TransformationDescription\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).google.privacy.dlp.v2.TransformationType\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\tcondition\x18\x03 \x01(\t\x12\x32\n\tinfo_type\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xc6\x02\n\x15TransformationDetails\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12H\n\x0etransformation\x18\x03 \x03(\x0b\x32\x30.google.privacy.dlp.v2.TransformationDescription\x12I\n\x0estatus_details\x18\x04 \x01(\x0b\x32\x31.google.privacy.dlp.v2.TransformationResultStatus\x12\x19\n\x11transformed_bytes\x18\x05 \x01(\x03\x12N\n\x17transformation_location\x18\x06 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationLocation\"\xd9\x01\n\x16TransformationLocation\x12\x14\n\nfinding_id\x18\x01 \x01(\tH\x00\x12L\n\x15record_transformation\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.RecordTransformationH\x00\x12J\n\x0e\x63ontainer_type\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.TransformationContainerTypeB\x0f\n\rlocation_type\"\x9c\x01\n\x14RecordTransformation\x12\x30\n\x08\x66ield_id\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x37\n\x13\x63ontainer_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x03 \x01(\t\"\x94\x01\n\x1aTransformationResultStatus\x12Q\n\x12result_status_type\x18\x01 \x01(\x0e\x32\x35.google.privacy.dlp.v2.TransformationResultStatusType\x12#\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"c\n\"TransformationDetailsStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x42\x06\n\x04type\"U\n\x08Schedule\x12?\n\x1arecurrence_period_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x08\n\x06option\"\x08\n\x06Manual\"\xc2\x04\n\x0fInspectTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x0einspect_config\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig:\xc6\x02\xea\x41\xc2\x02\n\"dlp.googleapis.com/InspectTemplate\x12@organizations/{organization}/inspectTemplates/{inspect_template}\x12\x36projects/{project}/inspectTemplates/{inspect_template}\x12Uorganizations/{organization}/locations/{location}/inspectTemplates/{inspect_template}\x12Kprojects/{project}/locations/{location}/inspectTemplates/{inspect_template}\"\xe6\x04\n\x12\x44\x65identifyTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x11\x64\x65identify_config\x18\x06 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig:\xe1\x02\xea\x41\xdd\x02\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46organizations/{organization}/deidentifyTemplates/{deidentify_template}\x12\n\x0binspect_job\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12;\n\x08triggers\x18\x05 \x03(\x0b\x32).google.privacy.dlp.v2.JobTrigger.Trigger\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12=\n\x06status\x18\n \x01(\x0e\x32(.google.privacy.dlp.v2.JobTrigger.StatusB\x03\xe0\x41\x02\x1az\n\x07Trigger\x12\x33\n\x08schedule\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.ScheduleH\x00\x12/\n\x06manual\x18\x02 \x01(\x0b\x32\x1d.google.privacy.dlp.v2.ManualH\x00\x42\t\n\x07trigger\"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07HEALTHY\x10\x01\x12\n\n\x06PAUSED\x10\x02\x12\r\n\tCANCELLED\x10\x03:\x94\x01\xea\x41\x90\x01\n\x1d\x64lp.googleapis.com/JobTrigger\x12,projects/{project}/jobTriggers/{job_trigger}\x12\x41projects/{project}/locations/{location}/jobTriggers/{job_trigger}B\x05\n\x03job\"\xea\x08\n\x06\x41\x63tion\x12\x43\n\rsave_findings\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.Action.SaveFindingsH\x00\x12@\n\x07pub_sub\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.Action.PublishToPubSubH\x00\x12U\n\x17publish_summary_to_cscc\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishSummaryToCsccH\x00\x12q\n&publish_findings_to_cloud_data_catalog\x18\x05 \x01(\x0b\x32?.google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalogH\x00\x12>\n\ndeidentify\x18\x07 \x01(\x0b\x32(.google.privacy.dlp.v2.Action.DeidentifyH\x00\x12V\n\x17job_notification_emails\x18\x08 \x01(\x0b\x32\x33.google.privacy.dlp.v2.Action.JobNotificationEmailsH\x00\x12T\n\x16publish_to_stackdriver\x18\t \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishToStackdriverH\x00\x1aQ\n\x0cSaveFindings\x12\x41\n\routput_config\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.OutputStorageConfig\x1a \n\x0fPublishToPubSub\x12\r\n\x05topic\x18\x01 \x01(\t\x1a\x16\n\x14PublishSummaryToCscc\x1a#\n!PublishFindingsToCloudDataCatalog\x1a\xb3\x02\n\nDeidentify\x12J\n\x15transformation_config\x18\x07 \x01(\x0b\x32+.google.privacy.dlp.v2.TransformationConfig\x12h\n%transformation_details_storage_config\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.TransformationDetailsStorageConfig\x12#\n\x14\x63loud_storage_output\x18\t \x01(\tB\x03\xe0\x41\x02H\x00\x12@\n\x17\x66ile_types_to_transform\x18\x08 \x03(\x0e\x32\x1f.google.privacy.dlp.v2.FileTypeB\x08\n\x06output\x1a\x17\n\x15JobNotificationEmails\x1a\x16\n\x14PublishToStackdriverB\x08\n\x06\x61\x63tion\"z\n\x14TransformationConfig\x12\x1b\n\x13\x64\x65identify_template\x18\x01 \x01(\t\x12&\n\x1estructured_deidentify_template\x18\x02 \x01(\t\x12\x1d\n\x15image_redact_template\x18\x04 \x01(\t\"\xcb\x01\n\x1c\x43reateInspectTemplateRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/InspectTemplate\x12\x45\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplateB\x03\xe0\x41\x02\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"\xcb\x01\n\x1cUpdateInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/InspectTemplate\x12@\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"U\n\x19GetInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/InspectTemplate\"\xa7\x01\n\x1bListInspectTemplatesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/InspectTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"z\n\x1cListInspectTemplatesResponse\x12\x41\n\x11inspect_templates\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x1c\x44\x65leteInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/InspectTemplate\"\xb6\x01\n\x17\x43reateJobTriggerRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\x12;\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTriggerB\x03\xe0\x41\x02\x12\x12\n\ntrigger_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"P\n\x19\x41\x63tivateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\"\xb7\x01\n\x17UpdateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12\x36\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"K\n\x14GetJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\"\xb4\x01\n\x1c\x43reateDiscoveryConfigRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12\x11\n\tconfig_id\x18\x03 \x01(\t\"\xd0\x01\n\x1cUpdateDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"U\n\x19GetDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\x92\x01\n\x1bListDiscoveryConfigsRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\"z\n\x1cListDiscoveryConfigsResponse\x12\x41\n\x11\x64iscovery_configs\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x1c\x44\x65leteDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\xf6\x01\n\x13\x43reateDlpJobRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\x12>\n\x0binspect_job\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12@\n\x08risk_job\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigH\x00\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\tB\x05\n\x03job\"\xde\x01\n\x16ListJobTriggersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\x12/\n\x04type\x18\x06 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"k\n\x17ListJobTriggersResponse\x12\x37\n\x0cjob_triggers\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"N\n\x17\x44\x65leteJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\"\xdd\x01\n\x10InspectJobConfig\x12<\n\x0estorage_config\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.StorageConfig\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x1d\n\x15inspect_template_name\x18\x03 \x01(\t\x12.\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action\"\xf2\r\n\x11\x44\x61taProfileAction\x12\x46\n\x0b\x65xport_data\x18\x01 \x01(\x0b\x32/.google.privacy.dlp.v2.DataProfileAction.ExportH\x00\x12[\n\x14pub_sub_notification\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PubSubNotificationH\x00\x12[\n\x14publish_to_chronicle\x18\x03 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PublishToChronicleH\x00\x12\x61\n\x0epublish_to_scc\x18\x04 \x01(\x0b\x32G.google.privacy.dlp.v2.DataProfileAction.PublishToSecurityCommandCenterH\x00\x12N\n\rtag_resources\x18\x08 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DataProfileAction.TagResourcesH\x00\x12h\n\x1bpublish_to_dataplex_catalog\x18\t \x01(\x0b\x32\x41.google.privacy.dlp.v2.DataProfileAction.PublishToDataplexCatalogH\x00\x1a\x8a\x01\n\x06\x45xport\x12;\n\rprofile_table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x43\n\x15sample_findings_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x1a\x82\x03\n\x12PubSubNotification\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\x12K\n\x10pubsub_condition\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfilePubSubCondition\x12\x62\n\x11\x64\x65tail_of_message\x18\x04 \x01(\x0e\x32G.google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel\"i\n\x0b\x44\x65tailLevel\x12\x1c\n\x18\x44\x45TAIL_LEVEL_UNSPECIFIED\x10\x00\x12\x11\n\rTABLE_PROFILE\x10\x01\x12\x11\n\rRESOURCE_NAME\x10\x02\x12\x16\n\x12\x46ILE_STORE_PROFILE\x10\x03\x1a\x14\n\x12PublishToChronicle\x1a \n\x1ePublishToSecurityCommandCenter\x1a:\n\x18PublishToDataplexCatalog\x12\x1e\n\x16lower_data_risk_to_low\x18\x01 \x01(\x08\x1a\xb6\x03\n\x0cTagResources\x12Z\n\x0etag_conditions\x18\x01 \x03(\x0b\x32\x42.google.privacy.dlp.v2.DataProfileAction.TagResources.TagCondition\x12L\n\x1aprofile_generations_to_tag\x18\x02 \x03(\x0e\x32(.google.privacy.dlp.v2.ProfileGeneration\x12\x1e\n\x16lower_data_risk_to_low\x18\x03 \x01(\x08\x1a\xa9\x01\n\x0cTagCondition\x12K\n\x03tag\x18\x01 \x01(\x0b\x32>.google.privacy.dlp.v2.DataProfileAction.TagResources.TagValue\x12\x44\n\x11sensitivity_score\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScoreH\x00\x42\x06\n\x04type\x1a\x30\n\x08TagValue\x12\x1a\n\x10namespaced_value\x18\x01 \x01(\tH\x00\x42\x08\n\x06\x66ormat\"u\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_PROFILE\x10\x01\x12\x13\n\x0f\x43HANGED_PROFILE\x10\x02\x12\x13\n\x0fSCORE_INCREASED\x10\x03\x12\x11\n\rERROR_CHANGED\x10\x04\x42\x08\n\x06\x61\x63tion\"\xdd\x03\n\x12\x44\x61taProfileFinding\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x31\n\x08infotype\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\nquote_info\x18\x03 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo\x12\"\n\x1a\x64\x61ta_profile_resource_name\x18\x04 \x01(\t\x12\x12\n\nfinding_id\x18\x05 \x01(\t\x12-\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x08location\x18\x07 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfileFindingLocation\x12\x46\n\x13resource_visibility\x18\x08 \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x1a\n\x12\x66ull_resource_name\x18\t \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\n \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\"\xb7\x01\n\x1a\x44\x61taProfileFindingLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12g\n$data_profile_finding_record_location\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DataProfileFindingRecordLocationH\x00\x42\x18\n\x16location_extra_details\"Q\n DataProfileFindingRecordLocation\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"\xae\x02\n\x14\x44\x61taProfileJobConfig\x12<\n\x08location\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.DataProfileLocation\x12\x12\n\nproject_id\x18\x05 \x01(\t\x12\x61\n\x1dother_cloud_starting_location\x18\x08 \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x07 \x03(\t\x12\x46\n\x14\x64\x61ta_profile_actions\x18\x06 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\"[\n\rBigQueryRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x18\n\x10\x64\x61taset_id_regex\x18\x02 \x01(\t\x12\x16\n\x0etable_id_regex\x18\x03 \x01(\t\"I\n\x0f\x42igQueryRegexes\x12\x36\n\x08patterns\x18\x01 \x03(\x0b\x32$.google.privacy.dlp.v2.BigQueryRegex\"M\n\x12\x42igQueryTableTypes\x12\x37\n\x05types\x18\x01 \x03(\x0e\x32(.google.privacy.dlp.v2.BigQueryTableType\"\n\n\x08\x44isabled\"Q\n\x13\x44\x61taProfileLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\xeb\x07\n\x0f\x44iscoveryConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x0b \x01(\t\x12\x44\n\norg_config\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryConfig.OrgConfig\x12\x61\n\x1dother_cloud_starting_location\x18\x0c \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x03 \x03(\t\x12\x39\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\x12\x37\n\x07targets\x18\x05 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryTarget\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06status\x18\n \x01(\x0e\x32-.google.privacy.dlp.v2.DiscoveryConfig.StatusB\x03\xe0\x41\x02\x12K\n\x13processing_location\x18\r \x01(\x0b\x32).google.privacy.dlp.v2.ProcessingLocationB\x03\xe0\x41\x01\x1a\x63\n\tOrgConfig\x12\x42\n\x08location\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryStartingLocation\x12\x12\n\nproject_id\x18\x02 \x01(\t\"9\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06PAUSED\x10\x02:t\xea\x41q\n\"dlp.googleapis.com/DiscoveryConfig\x12Kprojects/{project}/locations/{location}/discoveryConfigs/{discovery_config}\"\xf6\x03\n\x0f\x44iscoveryTarget\x12J\n\x10\x62ig_query_target\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryDiscoveryTargetH\x00\x12J\n\x10\x63loud_sql_target\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.CloudSqlDiscoveryTargetH\x00\x12G\n\x0esecrets_target\x18\x03 \x01(\x0b\x32-.google.privacy.dlp.v2.SecretsDiscoveryTargetH\x00\x12R\n\x14\x63loud_storage_target\x18\x04 \x01(\x0b\x32\x32.google.privacy.dlp.v2.CloudStorageDiscoveryTargetH\x00\x12N\n\x12other_cloud_target\x18\x05 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudDiscoveryTargetH\x00\x12T\n\x15vertex_dataset_target\x18\x07 \x01(\x0b\x32\x33.google.privacy.dlp.v2.VertexDatasetDiscoveryTargetH\x00\x42\x08\n\x06target\"\xae\x02\n\x17\x42igQueryDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryBigQueryFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryBigQueryConditions\x12\x44\n\x07\x63\x61\x64\x65nce\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DiscoveryGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\x0b\n\tfrequency\"\xa0\x02\n\x17\x44iscoveryBigQueryFilter\x12@\n\x06tables\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryTableCollectionH\x00\x12]\n\x0cother_tables\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.DiscoveryBigQueryFilter.AllOtherBigQueryTablesH\x00\x12@\n\x0ftable_reference\x18\x03 \x01(\x0b\x32%.google.privacy.dlp.v2.TableReferenceH\x00\x1a\x18\n\x16\x41llOtherBigQueryTablesB\x08\n\x06\x66ilter\"g\n\x17\x42igQueryTableCollection\x12\x41\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.BigQueryRegexesH\x00\x42\t\n\x07pattern\"\x98\x03\n\x1b\x44iscoveryBigQueryConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x05types\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.BigQueryTableTypesH\x00\x12M\n\x0ftype_collection\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.BigQueryTableTypeCollectionH\x00\x12V\n\ror_conditions\x18\x04 \x01(\x0b\x32?.google.privacy.dlp.v2.DiscoveryBigQueryConditions.OrConditions\x1aQ\n\x0cOrConditions\x12\x15\n\rmin_row_count\x18\x01 \x01(\x05\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x10\n\x0eincluded_types\"\x83\x03\n\x1a\x44iscoveryGenerationCadence\x12V\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DiscoverySchemaModifiedCadence\x12T\n\x16table_modified_cadence\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryTableModifiedCadence\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x12L\n\x11refresh_frequency\x18\x04 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa6\x01\n\x1d\x44iscoveryTableModifiedCadence\x12?\n\x05types\x18\x01 \x03(\x0e\x32\x30.google.privacy.dlp.v2.BigQueryTableModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa8\x01\n\x1e\x44iscoverySchemaModifiedCadence\x12@\n\x05types\x18\x01 \x03(\x0e\x32\x31.google.privacy.dlp.v2.BigQuerySchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"o\n\'DiscoveryInspectTemplateModifiedCadence\x12\x44\n\tfrequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xbf\x02\n\x17\x43loudSqlDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryCloudSqlFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudSqlConditions\x12W\n\x12generation_cadence\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x89\x02\n\x17\x44iscoveryCloudSqlFilter\x12G\n\ncollection\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DatabaseResourceCollectionH\x00\x12\x42\n\x06others\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.AllOtherDatabaseResourcesH\x00\x12W\n\x1b\x64\x61tabase_resource_reference\x18\x03 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DatabaseResourceReferenceH\x00\x42\x08\n\x06\x66ilter\"r\n\x1a\x44\x61tabaseResourceCollection\x12I\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DatabaseResourceRegexesH\x00\x42\t\n\x07pattern\"Y\n\x17\x44\x61tabaseResourceRegexes\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32,.google.privacy.dlp.v2.DatabaseResourceRegex\"\x87\x01\n\x15\x44\x61tabaseResourceRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x16\n\x0einstance_regex\x18\x02 \x01(\t\x12\x16\n\x0e\x64\x61tabase_regex\x18\x03 \x01(\t\x12$\n\x1c\x64\x61tabase_resource_name_regex\x18\x04 \x01(\t\"\x1b\n\x19\x41llOtherDatabaseResources\"\x82\x01\n\x19\x44\x61tabaseResourceReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08instance\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08\x64\x61tabase\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x64\x61tabase_resource\x18\x04 \x01(\tB\x03\xe0\x41\x02\"\xda\x03\n\x1b\x44iscoveryCloudSqlConditions\x12`\n\x10\x64\x61tabase_engines\x18\x01 \x03(\x0e\x32\x41.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseEngineB\x03\xe0\x41\x01\x12V\n\x05types\x18\x03 \x03(\x0e\x32G.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseResourceType\"n\n\x0e\x44\x61tabaseEngine\x12\x1f\n\x1b\x44\x41TABASE_ENGINE_UNSPECIFIED\x10\x00\x12\"\n\x1e\x41LL_SUPPORTED_DATABASE_ENGINES\x10\x01\x12\t\n\x05MYSQL\x10\x02\x12\x0c\n\x08POSTGRES\x10\x03\"\x90\x01\n\x14\x44\x61tabaseResourceType\x12&\n\"DATABASE_RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12.\n*DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES\x10\x01\x12 \n\x1c\x44\x41TABASE_RESOURCE_TYPE_TABLE\x10\x02\"\x97\x05\n\"DiscoveryCloudSqlGenerationCadence\x12p\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32O.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence\x12L\n\x11refresh_frequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x1a\xc5\x02\n\x15SchemaModifiedCadence\x12y\n\x05types\x18\x01 \x03(\x0e\x32j.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence.CloudSqlSchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"k\n\x1a\x43loudSqlSchemaModification\x12\'\n#SQL_SCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_COLUMNS\x10\x01\x12\x13\n\x0fREMOVED_COLUMNS\x10\x02\"\x18\n\x16SecretsDiscoveryTarget\"\xdb\x02\n\x1b\x43loudStorageDiscoveryTarget\x12G\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudStorageFilterB\x03\xe0\x41\x02\x12L\n\nconditions\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryFileStoreConditionsB\x03\xe0\x41\x01\x12`\n\x12generation_cadence\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.DiscoveryCloudStorageGenerationCadenceB\x03\xe0\x41\x01H\x00\x12\x38\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledB\x03\xe0\x41\x01H\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x96\x02\n\x1b\x44iscoveryCloudStorageFilter\x12\x45\n\ncollection\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.FileStoreCollectionB\x03\xe0\x41\x01H\x00\x12\x65\n cloud_storage_resource_reference\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.CloudStorageResourceReferenceB\x03\xe0\x41\x01H\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"i\n\x13\x46ileStoreCollection\x12G\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.FileStoreRegexesB\x03\xe0\x41\x01H\x00\x42\t\n\x07pattern\"P\n\x10\x46ileStoreRegexes\x12<\n\x08patterns\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.FileStoreRegexB\x03\xe0\x41\x02\"p\n\x0e\x46ileStoreRegex\x12L\n\x13\x63loud_storage_regex\x18\x01 \x01(\x0b\x32(.google.privacy.dlp.v2.CloudStorageRegexB\x03\xe0\x41\x01H\x00\x42\x10\n\x0eresource_regex\"R\n\x11\x43loudStorageRegex\x12\x1d\n\x10project_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"R\n\x1d\x43loudStorageResourceReference\x12\x18\n\x0b\x62ucket_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xeb\x01\n&DiscoveryCloudStorageGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"\x9b\x05\n\x1f\x44iscoveryCloudStorageConditions\x12{\n\x1aincluded_object_attributes\x18\x01 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageObjectAttributeB\x03\xe0\x41\x02\x12{\n\x1aincluded_bucket_attributes\x18\x02 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageBucketAttributeB\x03\xe0\x41\x02\"\xe3\x01\n\x1b\x43loudStorageObjectAttribute\x12.\n*CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_OBJECTS\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x0c\n\x08NEARLINE\x10\x03\x12\x0c\n\x08\x43OLDLINE\x10\x04\x12\x0b\n\x07\x41RCHIVE\x10\x05\x12\x0c\n\x08REGIONAL\x10\x06\x12\x12\n\x0eMULTI_REGIONAL\x10\x07\x12 \n\x1c\x44URABLE_REDUCED_AVAILABILITY\x10\x08\"\x97\x01\n\x1b\x43loudStorageBucketAttribute\x12.\n*CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_BUCKETS\x10\x01\x12\x16\n\x12\x41UTOCLASS_DISABLED\x10\x02\x12\x15\n\x11\x41UTOCLASS_ENABLED\x10\x03\"\xf6\x01\n\x1c\x44iscoveryFileStoreConditions\x12\x36\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12/\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12_\n\x18\x63loud_storage_conditions\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.DiscoveryCloudStorageConditionsB\x03\xe0\x41\x01H\x00\x42\x0c\n\nconditions\"\x92\x03\n\x19OtherCloudDiscoveryTarget\x12\x44\n\x10\x64\x61ta_source_type\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceTypeB\x03\xe0\x41\x02\x12\x45\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryOtherCloudFilterB\x03\xe0\x41\x02\x12M\n\nconditions\x18\x03 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryOtherCloudConditionsB\x03\xe0\x41\x01\x12Y\n\x12generation_cadence\x18\x04 \x01(\x0b\x32;.google.privacy.dlp.v2.DiscoveryOtherCloudGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x05 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x86\x02\n\x19\x44iscoveryOtherCloudFilter\x12I\n\ncollection\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.OtherCloudResourceCollectionH\x00\x12S\n\x0fsingle_resource\x18\x02 \x01(\x0b\x32\x38.google.privacy.dlp.v2.OtherCloudSingleResourceReferenceH\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"v\n\x1cOtherCloudResourceCollection\x12K\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudResourceRegexesH\x00\x42\t\n\x07pattern\"]\n\x19OtherCloudResourceRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32..google.privacy.dlp.v2.OtherCloudResourceRegex\"y\n\x17OtherCloudResourceRegex\x12L\n\x16\x61mazon_s3_bucket_regex\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.AmazonS3BucketRegexH\x00\x42\x10\n\x0eresource_regex\"0\n\x0f\x41wsAccountRegex\x12\x1d\n\x10\x61\x63\x63ount_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\"x\n\x13\x41mazonS3BucketRegex\x12\x41\n\x11\x61ws_account_regex\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.AwsAccountRegex\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"r\n!OtherCloudSingleResourceReference\x12\x41\n\x10\x61mazon_s3_bucket\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.AmazonS3BucketH\x00\x42\n\n\x08resource\"%\n\nAwsAccount\x12\x17\n\naccount_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"b\n\x0e\x41mazonS3Bucket\x12\x36\n\x0b\x61ws_account\x18\x01 \x01(\x0b\x32!.google.privacy.dlp.v2.AwsAccount\x12\x18\n\x0b\x62ucket_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xb1\x01\n\x1d\x44iscoveryOtherCloudConditions\x12*\n\x07min_age\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12V\n\x1b\x61mazon_s3_bucket_conditions\x18\x02 \x01(\x0b\x32/.google.privacy.dlp.v2.AmazonS3BucketConditionsH\x00\x42\x0c\n\nconditions\"\xd9\x03\n\x18\x41mazonS3BucketConditions\x12U\n\x0c\x62ucket_types\x18\x01 \x03(\x0e\x32:.google.privacy.dlp.v2.AmazonS3BucketConditions.BucketTypeB\x03\xe0\x41\x01\x12g\n\x16object_storage_classes\x18\x02 \x03(\x0e\x32\x42.google.privacy.dlp.v2.AmazonS3BucketConditions.ObjectStorageClassB\x03\xe0\x41\x01\"T\n\nBucketType\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_ALL_SUPPORTED\x10\x01\x12\x18\n\x14TYPE_GENERAL_PURPOSE\x10\x02\"\xa6\x01\n\x12ObjectStorageClass\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_CLASSES\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x1e\n\x1aSTANDARD_INFREQUENT_ACCESS\x10\x04\x12\x1d\n\x19GLACIER_INSTANT_RETRIEVAL\x10\x06\x12\x17\n\x13INTELLIGENT_TIERING\x10\x07\"\xe9\x01\n$DiscoveryOtherCloudGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"W\n\x19\x44iscoveryStartingLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\x87\x02\n#OtherCloudDiscoveryStartingLocation\x12o\n\x0c\x61ws_location\x18\x01 \x01(\x0b\x32W.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocationH\x00\x1a\x63\n\x1c\x41wsDiscoveryStartingLocation\x12\x14\n\naccount_id\x18\x02 \x01(\tH\x00\x12$\n\x1a\x61ll_asset_inventory_assets\x18\x03 \x01(\x08H\x00\x42\x07\n\x05scopeB\n\n\x08location\"\x13\n\x11\x41llOtherResources\"\xd3\x02\n\x1cVertexDatasetDiscoveryTarget\x12H\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryVertexDatasetFilterB\x03\xe0\x41\x02\x12K\n\nconditions\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DiscoveryVertexDatasetConditions\x12\\\n\x12generation_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryVertexDatasetGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x8e\x02\n\x1c\x44iscoveryVertexDatasetFilter\x12\x44\n\ncollection\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.VertexDatasetCollectionH\x00\x12\x62\n!vertex_dataset_resource_reference\x18\x02 \x01(\x0b\x32\x35.google.privacy.dlp.v2.VertexDatasetResourceReferenceH\x00\x12:\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesH\x00\x42\x08\n\x06\x66ilter\"s\n\x17VertexDatasetCollection\x12M\n\x16vertex_dataset_regexes\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.VertexDatasetRegexesH\x00\x42\t\n\x07pattern\"X\n\x14VertexDatasetRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.VertexDatasetRegexB\x03\xe0\x41\x02\".\n\x12VertexDatasetRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\"D\n\x1eVertexDatasetResourceReference\x12\"\n\x15\x64\x61taset_resource_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x81\x01\n DiscoveryVertexDatasetConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xe2\x01\n\'DiscoveryVertexDatasetGenerationCadence\x12L\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\"\xdc\x06\n\x06\x44lpJob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x04type\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32&.google.privacy.dlp.v2.DlpJob.JobState\x12K\n\x0crisk_details\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetailsH\x00\x12J\n\x0finspect_details\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.InspectDataSourceDetailsH\x00\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_modified\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10job_trigger_name\x18\n \x01(\t\x12,\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12<\n\x0e\x61\x63tion_details\x18\x0c \x03(\x0b\x32$.google.privacy.dlp.v2.ActionDetails\"o\n\x08JobState\x12\x19\n\x15JOB_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x08\n\x04\x44ONE\x10\x03\x12\x0c\n\x08\x43\x41NCELED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\n\n\x06\x41\x43TIVE\x10\x06:\x7f\xea\x41|\n\x19\x64lp.googleapis.com/DlpJob\x12$projects/{project}/dlpJobs/{dlp_job}\x12\x39projects/{project}/locations/{location}/dlpJobs/{dlp_job}B\t\n\x07\x64\x65tails\"C\n\x10GetDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"\xd6\x01\n\x12ListDlpJobsRequest\x12\x31\n\x06parent\x18\x04 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x10\n\x08order_by\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"[\n\x13ListDlpJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.DlpJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"F\n\x13\x43\x61ncelDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"F\n\x13\x46inishDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"F\n\x13\x44\x65leteDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"\xd7\x01\n\x1f\x43reateDeidentifyTemplateRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12K\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplateB\x03\xe0\x41\x02\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"\xd7\x01\n\x1fUpdateDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"[\n\x1cGetDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\"\xad\x01\n\x1eListDeidentifyTemplatesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"\x83\x01\n\x1fListDeidentifyTemplatesResponse\x12G\n\x14\x64\x65identify_templates\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"^\n\x1f\x44\x65leteDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\"\xf4\x01\n\x1bLargeCustomDictionaryConfig\x12<\n\x0boutput_path\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePath\x12L\n\x16\x63loud_storage_file_set\x18\x02 \x01(\x0b\x32*.google.privacy.dlp.v2.CloudStorageFileSetH\x00\x12?\n\x0f\x62ig_query_field\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryFieldH\x00\x42\x08\n\x06source\"8\n\x1aLargeCustomDictionaryStats\x12\x1a\n\x12\x61pprox_num_phrases\x18\x01 \x01(\x03\"\xa6\x02\n\x14StoredInfoTypeConfig\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12U\n\x17large_custom_dictionary\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.LargeCustomDictionaryConfigH\x00\x12\x46\n\ndictionary\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x05 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x42\x06\n\x04type\"s\n\x13StoredInfoTypeStats\x12T\n\x17large_custom_dictionary\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.LargeCustomDictionaryStatsH\x00\x42\x06\n\x04type\"\xa9\x02\n\x15StoredInfoTypeVersion\x12;\n\x06\x63onfig\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\x05state\x18\x03 \x01(\x0e\x32*.google.privacy.dlp.v2.StoredInfoTypeState\x12,\n\x06\x65rrors\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12\x39\n\x05stats\x18\x05 \x01(\x0b\x32*.google.privacy.dlp.v2.StoredInfoTypeStats\"\xf1\x03\n\x0eStoredInfoType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x45\n\x0f\x63urrent_version\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion\x12\x46\n\x10pending_versions\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion:\xc1\x02\xea\x41\xbd\x02\n!dlp.googleapis.com/StoredInfoType\x12?organizations/{organization}/storedInfoTypes/{stored_info_type}\x12\x35projects/{project}/storedInfoTypes/{stored_info_type}\x12Torganizations/{organization}/locations/{location}/storedInfoTypes/{stored_info_type}\x12Jprojects/{project}/locations/{location}/storedInfoTypes/{stored_info_type}\"\xcc\x01\n\x1b\x43reateStoredInfoTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12@\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfigB\x03\xe0\x41\x02\x12\x1b\n\x13stored_info_type_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"\xc4\x01\n\x1bUpdateStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\x12;\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"S\n\x18GetStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\"\xa5\x01\n\x1aListStoredInfoTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"x\n\x1bListStoredInfoTypesResponse\x12@\n\x11stored_info_types\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.StoredInfoType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"V\n\x1b\x44\x65leteStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\"\x94\x01\n\x1eHybridInspectJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8c\x01\n\x1aHybridInspectDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8b\x01\n\x11HybridContentItem\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x44\n\x0f\x66inding_details\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.HybridFindingDetails\"\xb0\x02\n\x14HybridFindingDetails\x12;\n\x11\x63ontainer_details\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\x12\x13\n\x0b\x66ile_offset\x18\x02 \x01(\x03\x12\x12\n\nrow_offset\x18\x03 \x01(\x03\x12:\n\rtable_options\x18\x04 \x01(\x0b\x32#.google.privacy.dlp.v2.TableOptions\x12G\n\x06labels\x18\x05 \x03(\x0b\x32\x37.google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x17\n\x15HybridInspectResponse\"\xa8\x01\n\x1eListProjectDataProfilesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/ProjectDataProfile\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"\x84\x01\n\x1fListProjectDataProfilesResponse\x12H\n\x15project_data_profiles\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.ProjectDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa4\x01\n\x1cListTableDataProfilesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#dlp.googleapis.com/TableDataProfile\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"~\n\x1dListTableDataProfilesResponse\x12\x44\n\x13table_data_profiles\x18\x01 \x03(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa6\x01\n\x1dListColumnDataProfilesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$dlp.googleapis.com/ColumnDataProfile\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"\x81\x01\n\x1eListColumnDataProfilesResponse\x12\x46\n\x14\x63olumn_data_profiles\x18\x01 \x03(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xcb\x01\n\rDataRiskLevel\x12\x46\n\x05score\x18\x01 \x01(\x0e\x32\x37.google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore\"r\n\x12\x44\x61taRiskLevelScore\x12\x1a\n\x16RISK_SCORE_UNSPECIFIED\x10\x00\x12\x0c\n\x08RISK_LOW\x10\n\x12\x10\n\x0cRISK_UNKNOWN\x10\x0c\x12\x11\n\rRISK_MODERATE\x10\x14\x12\r\n\tRISK_HIGH\x10\x1e\"\xdc\x04\n\x12ProjectDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x11sensitivity_score\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x05 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12<\n\x0eprofile_status\x18\x07 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12 \n\x18table_data_profile_count\x18\t \x01(\x03\x12%\n\x1d\x66ile_store_data_profile_count\x18\n \x01(\x03:\xdd\x01\xea\x41\xd9\x01\n%dlp.googleapis.com/ProjectDataProfile\x12\\organizations/{organization}/locations/{location}/projectDataProfiles/{project_data_profile}\x12Rprojects/{project}/locations/{location}/projectDataProfiles/{project_data_profile}\"\xc9\x02\n\x19\x44\x61taProfileConfigSnapshot\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12I\n\x10\x64\x61ta_profile_job\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.DataProfileJobConfigB\x02\x18\x01\x12@\n\x10\x64iscovery_config\x18\x04 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12\x42\n\x1einspect_template_modified_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe3\r\n\x10TableDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18$ \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x02 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x18 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x1d \x01(\t\x12\x12\n\ndataset_id\x18\x19 \x01(\t\x12\x10\n\x08table_id\x18\x1a \x01(\t\x12\x15\n\rfull_resource\x18\x03 \x01(\t\x12<\n\x0eprofile_status\x18\x15 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12<\n\x05state\x18\x16 \x01(\x0e\x32-.google.privacy.dlp.v2.TableDataProfile.State\x12\x42\n\x11sensitivity_score\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12\x44\n\x14predicted_info_types\x18\x1b \x03(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x45\n\x10other_info_types\x18\x1c \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12\x36\n\x12last_modified_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x65xpiration_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x14scanned_column_count\x18\n \x01(\x03\x12\x1b\n\x13\x66\x61iled_column_count\x18\x0b \x01(\x03\x12\x18\n\x10table_size_bytes\x18\x0c \x01(\x03\x12\x11\n\trow_count\x18\r \x01(\x03\x12\x42\n\x11\x65ncryption_status\x18\x0e \x01(\x0e\x32\'.google.privacy.dlp.v2.EncryptionStatus\x12\x46\n\x13resource_visibility\x18\x0f \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12:\n\x16profile_last_generated\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12T\n\x0fresource_labels\x18\x11 \x03(\x0b\x32;.google.privacy.dlp.v2.TableDataProfile.ResourceLabelsEntry\x12/\n\x0b\x63reate_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x15sample_findings_table\x18% \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12(\n\x04tags\x18\' \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18) \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xd3\x01\xea\x41\xcf\x01\n#dlp.googleapis.com/TableDataProfile\x12Xorganizations/{organization}/locations/{location}/tableDataProfiles/{table_data_profile}\x12Nprojects/{project}/locations/{location}/tableDataProfiles/{table_data_profile}\"b\n\rProfileStatus\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"g\n\x0fInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12 \n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x42\x02\x18\x01\"\x88\x01\n\x14OtherInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x1c\n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x12\x1e\n\x16\x65xcluded_from_analysis\x18\x03 \x01(\x08\"\xc9\r\n\x11\x43olumnDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12<\n\x0eprofile_status\x18\x11 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12=\n\x05state\x18\x12 \x01(\x0e\x32..google.privacy.dlp.v2.ColumnDataProfile.State\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1a\n\x12table_data_profile\x18\x04 \x01(\t\x12\x1b\n\x13table_full_resource\x18\x05 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x13 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x14 \x01(\t\x12\x12\n\ndataset_id\x18\x15 \x01(\t\x12\x10\n\x08table_id\x18\x16 \x01(\t\x12\x0e\n\x06\x63olumn\x18\x06 \x01(\t\x12\x42\n\x11sensitivity_score\x18\x07 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12@\n\x10\x63olumn_info_type\x18\t \x01(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x42\n\rother_matches\x18\n \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12M\n\x19\x65stimated_null_percentage\x18\x17 \x01(\x0e\x32*.google.privacy.dlp.v2.NullPercentageLevel\x12O\n\x1a\x65stimated_uniqueness_score\x18\x18 \x01(\x0e\x32+.google.privacy.dlp.v2.UniquenessScoreLevel\x12\x17\n\x0f\x66ree_text_score\x18\r \x01(\x01\x12L\n\x0b\x63olumn_type\x18\x0e \x01(\x0e\x32\x37.google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType\x12P\n\x0cpolicy_state\x18\x0f \x01(\x0e\x32:.google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02\"\xff\x02\n\x0e\x43olumnDataType\x12 \n\x1c\x43OLUMN_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nTYPE_INT64\x10\x01\x12\r\n\tTYPE_BOOL\x10\x02\x12\x10\n\x0cTYPE_FLOAT64\x10\x03\x12\x0f\n\x0bTYPE_STRING\x10\x04\x12\x0e\n\nTYPE_BYTES\x10\x05\x12\x12\n\x0eTYPE_TIMESTAMP\x10\x06\x12\r\n\tTYPE_DATE\x10\x07\x12\r\n\tTYPE_TIME\x10\x08\x12\x11\n\rTYPE_DATETIME\x10\t\x12\x12\n\x0eTYPE_GEOGRAPHY\x10\n\x12\x10\n\x0cTYPE_NUMERIC\x10\x0b\x12\x0f\n\x0bTYPE_RECORD\x10\x0c\x12\x13\n\x0fTYPE_BIGNUMERIC\x10\r\x12\r\n\tTYPE_JSON\x10\x0e\x12\x11\n\rTYPE_INTERVAL\x10\x0f\x12\x13\n\x0fTYPE_RANGE_DATE\x10\x10\x12\x17\n\x13TYPE_RANGE_DATETIME\x10\x11\x12\x18\n\x14TYPE_RANGE_TIMESTAMP\x10\x12\"R\n\x11\x43olumnPolicyState\x12#\n\x1f\x43OLUMN_POLICY_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43OLUMN_POLICY_TAGGED\x10\x01:\xd8\x01\xea\x41\xd4\x01\n$dlp.googleapis.com/ColumnDataProfile\x12Zorganizations/{organization}/locations/{location}/columnDataProfiles/{column_data_profile}\x12Pprojects/{project}/locations/{location}/columnDataProfiles/{column_data_profile}\"\xb8\x0e\n\x14\x46ileStoreDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x03 \x01(\t\x12\x12\n\nproject_id\x18\x04 \x01(\t\x12\x1b\n\x13\x66ile_store_location\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x61ta_storage_locations\x18\x13 \x03(\t\x12\x15\n\rlocation_type\x18\x14 \x01(\t\x12\x17\n\x0f\x66ile_store_path\x18\x06 \x01(\t\x12\x15\n\rfull_resource\x18\x18 \x01(\t\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12<\n\x0eprofile_status\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12@\n\x05state\x18\t \x01(\x0e\x32\x31.google.privacy.dlp.v2.FileStoreDataProfile.State\x12:\n\x16profile_last_generated\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x46\n\x13resource_visibility\x18\x0b \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x42\n\x11sensitivity_score\x18\x0c \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\r \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12/\n\x0b\x63reate_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12last_modified_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12I\n\x16\x66ile_cluster_summaries\x18\x10 \x03(\x0b\x32).google.privacy.dlp.v2.FileClusterSummary\x12`\n\x13resource_attributes\x18\x11 \x03(\x0b\x32\x43.google.privacy.dlp.v2.FileStoreDataProfile.ResourceAttributesEntry\x12X\n\x0fresource_labels\x18\x12 \x03(\x0b\x32?.google.privacy.dlp.v2.FileStoreDataProfile.ResourceLabelsEntry\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x15 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x43\n\x15sample_findings_table\x18\x16 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x1b\n\x13\x66ile_store_is_empty\x18\x17 \x01(\x08\x12(\n\x04tags\x18\x19 \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18\x1a \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x1aW\n\x17ResourceAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value:\x02\x38\x01\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xe9\x01\xea\x41\xe5\x01\n\'dlp.googleapis.com/FileStoreDataProfile\x12\x61organizations/{organization}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\x12Wprojects/{project}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\"?\n\x03Tag\x12\x1c\n\x14namespaced_tag_value\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"(\n\x0fRelatedResource\x12\x15\n\rfull_resource\x18\x01 \x01(\t\"N\n\x18\x46ileStoreInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"+\n\x11\x46ileExtensionInfo\x12\x16\n\x0e\x66ile_extension\x18\x01 \x01(\t\"\x8c\x04\n\x12\x46ileClusterSummary\x12\x41\n\x11\x66ile_cluster_type\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.FileClusterType\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x02 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x42\n\x11sensitivity_score\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x04 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12,\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12I\n\x17\x66ile_extensions_scanned\x18\x07 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x46\n\x14\x66ile_extensions_seen\x18\x08 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x16\n\x0eno_files_exist\x18\t \x01(\x08\"[\n\x1cGetProjectDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"]\n\x1eGetFileStoreDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"\xc0\x01\n ListFileStoreDataProfilesRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'dlp.googleapis.com/FileStoreDataProfile\x12\x17\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8b\x01\n!ListFileStoreDataProfilesResponse\x12M\n\x18\x66ile_store_data_profiles\x18\x01 \x03(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"b\n!DeleteFileStoreDataProfileRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'dlp.googleapis.com/FileStoreDataProfile\"W\n\x1aGetTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"Y\n\x1bGetColumnDataProfileRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$dlp.googleapis.com/ColumnDataProfile\"\xea\x05\n\x1a\x44\x61taProfilePubSubCondition\x12X\n\x0b\x65xpressions\x18\x01 \x01(\x0b\x32\x43.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions\x1a\xe9\x01\n\x0fPubSubCondition\x12\x62\n\x12minimum_risk_score\x18\x01 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x12i\n\x19minimum_sensitivity_score\x18\x02 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x42\x07\n\x05value\x1a\xab\x02\n\x11PubSubExpressions\x12s\n\x10logical_operator\x18\x01 \x01(\x0e\x32Y.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator\x12U\n\nconditions\x18\x02 \x03(\x0b\x32\x41.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition\"J\n\x15PubSubLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x06\n\x02OR\x10\x01\x12\x07\n\x03\x41ND\x10\x02\"X\n\x12ProfileScoreBucket\x12$\n PROFILE_SCORE_BUCKET_UNSPECIFIED\x10\x00\x12\x08\n\x04HIGH\x10\x01\x12\x12\n\x0eMEDIUM_OR_HIGH\x10\x02\"\xe0\x01\n\x18\x44\x61taProfilePubSubMessage\x12\x38\n\x07profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12G\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\"\x8c\x01\n\x17\x43reateConnectionRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\"K\n\x14GetConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x95\x01\n\x16ListConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x97\x01\n\x18SearchConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"j\n\x17ListConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"l\n\x19SearchConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc0\x01\n\x17UpdateConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"N\n\x17\x44\x65leteConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x90\x03\n\nConnection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.google.privacy.dlp.v2.ConnectionStateB\x03\xe0\x41\x02\x12\x31\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12>\n\tcloud_sql\x18\x04 \x01(\x0b\x32).google.privacy.dlp.v2.CloudSqlPropertiesH\x00:\xb1\x01\xea\x41\xad\x01\n\x1d\x64lp.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}\x12Jorganizations/{organization}/locations/{location}/connections/{connection}B\x0c\n\nproperties\"[\n\x17SecretManagerCredential\x12\x15\n\x08username\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12)\n\x1cpassword_secret_version_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x17\n\x15\x43loudSqlIamCredential\"\xb5\x03\n\x12\x43loudSqlProperties\x12\x1f\n\x0f\x63onnection_name\x18\x01 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x01\x12K\n\x11username_password\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.SecretManagerCredentialH\x00\x12\x45\n\rcloud_sql_iam\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.CloudSqlIamCredentialH\x00\x12\x1c\n\x0fmax_connections\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12V\n\x0f\x64\x61tabase_engine\x18\x07 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngineB\x03\xe0\x41\x02\"f\n\x0e\x44\x61tabaseEngine\x12\x1b\n\x17\x44\x41TABASE_ENGINE_UNKNOWN\x10\x00\x12\x19\n\x15\x44\x41TABASE_ENGINE_MYSQL\x10\x01\x12\x1c\n\x18\x44\x41TABASE_ENGINE_POSTGRES\x10\x02\x42\x0c\n\ncredential\"Z\n\x1d\x44\x65leteTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"*\n\x0e\x44\x61taSourceType\x12\x18\n\x0b\x64\x61ta_source\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\xf4\x02\n\x0f\x46ileClusterType\x12\x41\n\x07\x63luster\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.FileClusterType.ClusterH\x00\"\x88\x02\n\x07\x43luster\x12\x17\n\x13\x43LUSTER_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43LUSTER_UNKNOWN\x10\x01\x12\x10\n\x0c\x43LUSTER_TEXT\x10\x02\x12\x1b\n\x17\x43LUSTER_STRUCTURED_DATA\x10\x03\x12\x17\n\x13\x43LUSTER_SOURCE_CODE\x10\x04\x12\x19\n\x15\x43LUSTER_RICH_DOCUMENT\x10\x05\x12\x11\n\rCLUSTER_IMAGE\x10\x06\x12\x13\n\x0f\x43LUSTER_ARCHIVE\x10\x07\x12\x16\n\x12\x43LUSTER_MULTIMEDIA\x10\x08\x12\x16\n\x12\x43LUSTER_EXECUTABLE\x10\t\x12\x14\n\x10\x43LUSTER_AI_MODEL\x10\nB\x13\n\x11\x66ile_cluster_type\"\xf7\x02\n\x12ProcessingLocation\x12`\n\x17image_fallback_location\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation\x1a\x17\n\x15MultiRegionProcessing\x1a\x12\n\x10GlobalProcessing\x1a\xd1\x01\n\x15ImageFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\"K\n\x17SaveToGcsFindingsOutput\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding*\xa0\x01\n\x1eTransformationResultStatusType\x12\x1a\n\x16STATE_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11INVALID_TRANSFORM\x10\x01\x12\"\n\x1e\x42IGQUERY_MAX_ROW_SIZE_EXCEEDED\x10\x02\x12\x1a\n\x16METADATA_UNRETRIEVABLE\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04*\x7f\n\x1bTransformationContainerType\x12\x1f\n\x1bTRANSFORM_UNKNOWN_CONTAINER\x10\x00\x12\x12\n\x0eTRANSFORM_BODY\x10\x01\x12\x16\n\x12TRANSFORM_METADATA\x10\x02\x12\x13\n\x0fTRANSFORM_TABLE\x10\x03*\xe0\x02\n\x12TransformationType\x12#\n\x1fTRANSFORMATION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12RECORD_SUPPRESSION\x10\x01\x12\x11\n\rREPLACE_VALUE\x10\x02\x12\x16\n\x12REPLACE_DICTIONARY\x10\x0f\x12\n\n\x06REDACT\x10\x03\x12\x12\n\x0e\x43HARACTER_MASK\x10\x04\x12\x1a\n\x16\x43RYPTO_REPLACE_FFX_FPE\x10\x05\x12\x18\n\x14\x46IXED_SIZE_BUCKETING\x10\x06\x12\r\n\tBUCKETING\x10\x07\x12\x1a\n\x16REPLACE_WITH_INFO_TYPE\x10\x08\x12\r\n\tTIME_PART\x10\t\x12\x0f\n\x0b\x43RYPTO_HASH\x10\n\x12\x0e\n\nDATE_SHIFT\x10\x0c\x12\x1f\n\x1b\x43RYPTO_DETERMINISTIC_CONFIG\x10\r\x12\x10\n\x0cREDACT_IMAGE\x10\x0e*r\n\x11ProfileGeneration\x12\"\n\x1ePROFILE_GENERATION_UNSPECIFIED\x10\x00\x12\x1a\n\x16PROFILE_GENERATION_NEW\x10\x01\x12\x1d\n\x19PROFILE_GENERATION_UPDATE\x10\x02*\x96\x01\n\x1b\x42igQueryTableTypeCollection\x12$\n BIG_QUERY_COLLECTION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x42IG_QUERY_COLLECTION_ALL_TYPES\x10\x01\x12-\n)BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES\x10\x02*\xa8\x01\n\x11\x42igQueryTableType\x12$\n BIG_QUERY_TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x42IG_QUERY_TABLE_TYPE_TABLE\x10\x01\x12*\n&BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE\x10\x02\x12!\n\x1d\x42IG_QUERY_TABLE_TYPE_SNAPSHOT\x10\x03*\x94\x01\n\x1a\x44\x61taProfileUpdateFrequency\x12 \n\x1cUPDATE_FREQUENCY_UNSPECIFIED\x10\x00\x12\x1a\n\x16UPDATE_FREQUENCY_NEVER\x10\x01\x12\x1a\n\x16UPDATE_FREQUENCY_DAILY\x10\x02\x12\x1c\n\x18UPDATE_FREQUENCY_MONTHLY\x10\x04*]\n\x19\x42igQueryTableModification\x12\"\n\x1eTABLE_MODIFICATION_UNSPECIFIED\x10\x00\x12\x1c\n\x18TABLE_MODIFIED_TIMESTAMP\x10\x01*u\n\x1a\x42igQuerySchemaModification\x12#\n\x1fSCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x16\n\x12SCHEMA_NEW_COLUMNS\x10\x01\x12\x1a\n\x16SCHEMA_REMOVED_COLUMNS\x10\x02*\xbb\x01\n\x12RelationalOperator\x12#\n\x1fRELATIONAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x45QUAL_TO\x10\x01\x12\x10\n\x0cNOT_EQUAL_TO\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x1a\n\x16GREATER_THAN_OR_EQUALS\x10\x05\x12\x17\n\x13LESS_THAN_OR_EQUALS\x10\x06\x12\n\n\x06\x45XISTS\x10\x07*\x8d\x01\n\x0cMatchingType\x12\x1d\n\x19MATCHING_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18MATCHING_TYPE_FULL_MATCH\x10\x01\x12\x1f\n\x1bMATCHING_TYPE_PARTIAL_MATCH\x10\x02\x12\x1f\n\x1bMATCHING_TYPE_INVERSE_MATCH\x10\x03*M\n\rContentOption\x12\x17\n\x13\x43ONTENT_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x43ONTENT_TEXT\x10\x01\x12\x11\n\rCONTENT_IMAGE\x10\x02*B\n\x0cMetadataType\x12\x1c\n\x18METADATATYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STORAGE_METADATA\x10\x02*P\n\x13InfoTypeSupportedBy\x12\x19\n\x15\x45NUM_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07INSPECT\x10\x01\x12\x11\n\rRISK_ANALYSIS\x10\x02*R\n\nDlpJobType\x12\x1c\n\x18\x44LP_JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bINSPECT_JOB\x10\x01\x12\x15\n\x11RISK_ANALYSIS_JOB\x10\x02*n\n\x13StoredInfoTypeState\x12&\n\"STORED_INFO_TYPE_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\t\n\x05READY\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x0b\n\x07INVALID\x10\x04*\xa3\x01\n\x12ResourceVisibility\x12#\n\x1fRESOURCE_VISIBILITY_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRESOURCE_VISIBILITY_PUBLIC\x10\n\x12$\n RESOURCE_VISIBILITY_INCONCLUSIVE\x10\x0f\x12\"\n\x1eRESOURCE_VISIBILITY_RESTRICTED\x10\x14*u\n\x10\x45ncryptionStatus\x12!\n\x1d\x45NCRYPTION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x45NCRYPTION_GOOGLE_MANAGED\x10\x01\x12\x1f\n\x1b\x45NCRYPTION_CUSTOMER_MANAGED\x10\x02*\xa9\x01\n\x13NullPercentageLevel\x12%\n!NULL_PERCENTAGE_LEVEL_UNSPECIFIED\x10\x00\x12\x1c\n\x18NULL_PERCENTAGE_VERY_LOW\x10\x01\x12\x17\n\x13NULL_PERCENTAGE_LOW\x10\x02\x12\x1a\n\x16NULL_PERCENTAGE_MEDIUM\x10\x03\x12\x18\n\x14NULL_PERCENTAGE_HIGH\x10\x04*\x90\x01\n\x14UniquenessScoreLevel\x12&\n\"UNIQUENESS_SCORE_LEVEL_UNSPECIFIED\x10\x00\x12\x18\n\x14UNIQUENESS_SCORE_LOW\x10\x01\x12\x1b\n\x17UNIQUENESS_SCORE_MEDIUM\x10\x02\x12\x19\n\x15UNIQUENESS_SCORE_HIGH\x10\x03*f\n\x0f\x43onnectionState\x12 \n\x1c\x43ONNECTION_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13MISSING_CREDENTIALS\x10\x01\x12\r\n\tAVAILABLE\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x32\xddv\n\nDlpService\x12\xdb\x01\n\x0eInspectContent\x12,.google.privacy.dlp.v2.InspectContentRequest\x1a-.google.privacy.dlp.v2.InspectContentResponse\"l\x82\xd3\xe4\x93\x02\x66\"\'/v2/{parent=projects/*}/content:inspect:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/content:inspect:\x01*\x12\xcc\x01\n\x0bRedactImage\x12).google.privacy.dlp.v2.RedactImageRequest\x1a*.google.privacy.dlp.v2.RedactImageResponse\"f\x82\xd3\xe4\x93\x02`\"$/v2/{parent=projects/*}/image:redact:\x01*Z5\"0/v2/{parent=projects/*/locations/*}/image:redact:\x01*\x12\xea\x01\n\x11\x44\x65identifyContent\x12/.google.privacy.dlp.v2.DeidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.DeidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:deidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:deidentify:\x01*\x12\xea\x01\n\x11ReidentifyContent\x12/.google.privacy.dlp.v2.ReidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.ReidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:reidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:reidentify:\x01*\x12\x99\x02\n\rListInfoTypes\x12+.google.privacy.dlp.v2.ListInfoTypesRequest\x1a,.google.privacy.dlp.v2.ListInfoTypesResponse\"\xac\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x9c\x01\x12\r/v2/infoTypesZ$\x12\"/v2/{parent=locations/*}/infoTypesZ/\x12-/v2/{parent=projects/*/locations/*}/infoTypesZ4\x12\x32/v2/{parent=organizations/*/locations/*}/infoTypes\x12\xf4\x02\n\x15\x43reateInspectTemplate\x12\x33.google.privacy.dlp.v2.CreateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xfd\x01\xda\x41\x17parent,inspect_template\x82\xd3\xe4\x93\x02\xdc\x01\"4/v2/{parent=projects/*/locations/*}/inspectTemplates:\x01*Z>\"9/v2/{parent=organizations/*/locations/*}/inspectTemplates:\x01*Z-\"(/v2/{parent=projects/*}/inspectTemplates:\x01*Z2\"-/v2/{parent=organizations/*}/inspectTemplates:\x01*\x12\xfe\x02\n\x15UpdateInspectTemplate\x12\x33.google.privacy.dlp.v2.UpdateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\x87\x02\xda\x41!name,inspect_template,update_mask\x82\xd3\xe4\x93\x02\xdc\x01\x32\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/inspectTemplates/*}:\x01*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\x01*Z22-/v2/{name=organizations/*/inspectTemplates/*}:\x01*\x12\xcf\x02\n\x12GetInspectTemplate\x12\x30.google.privacy.dlp.v2.GetInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z*\x12(/v2/{name=projects/*/inspectTemplates/*}Z/\x12-/v2/{name=organizations/*/inspectTemplates/*}\x12\xe2\x02\n\x14ListInspectTemplates\x12\x32.google.privacy.dlp.v2.ListInspectTemplatesRequest\x1a\x33.google.privacy.dlp.v2.ListInspectTemplatesResponse\"\xe0\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{parent=projects/*/locations/*}/inspectTemplatesZ;\x12\x39/v2/{parent=organizations/*/locations/*}/inspectTemplatesZ*\x12(/v2/{parent=projects/*}/inspectTemplatesZ/\x12-/v2/{parent=organizations/*}/inspectTemplates\x12\xc5\x02\n\x15\x44\x65leteInspectTemplate\x12\x33.google.privacy.dlp.v2.DeleteInspectTemplateRequest\x1a\x16.google.protobuf.Empty\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01*4/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;*9/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}Z/*-/v2/{name=organizations/*/inspectTemplates/*}\x12\x8c\x03\n\x18\x43reateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate\"\x8c\x02\xda\x41\x1aparent,deidentify_template\x82\xd3\xe4\x93\x02\xe8\x01\"0/v2/{parent=organizations/*}/deidentifyTemplates:\x01*ZA\"\x12\x12*\"9/v2/{parent=organizations/*/locations/*}/discoveryConfigs:\x01*\x12\x9a\x02\n\x15UpdateDiscoveryConfig\x12\x33.google.privacy.dlp.v2.UpdateDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\xa3\x01\xda\x41!name,discovery_config,update_mask\x82\xd3\xe4\x93\x02y24/v2/{name=projects/*/locations/*/discoveryConfigs/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/discoveryConfigs/*}:\x01*\x12\xf1\x01\n\x12GetDiscoveryConfig\x12\x30.google.privacy.dlp.v2.GetDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s\x12\x34/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\x84\x02\n\x14ListDiscoveryConfigs\x12\x32.google.privacy.dlp.v2.ListDiscoveryConfigsRequest\x1a\x33.google.privacy.dlp.v2.ListDiscoveryConfigsResponse\"\x82\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02s\x12\x34/v2/{parent=projects/*/locations/*}/discoveryConfigsZ;\x12\x39/v2/{parent=organizations/*/locations/*}/discoveryConfigs\x12\xe7\x01\n\x15\x44\x65leteDiscoveryConfig\x12\x33.google.privacy.dlp.v2.DeleteDiscoveryConfigRequest\x1a\x16.google.protobuf.Empty\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s*4/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;*9/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\xdf\x01\n\x0c\x43reateDlpJob\x12*.google.privacy.dlp.v2.CreateDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"\x83\x01\xda\x41\x12parent,inspect_job\xda\x41\x0fparent,risk_job\x82\xd3\xe4\x93\x02V\"\x1f/v2/{parent=projects/*}/dlpJobs:\x01*Z0\"+/v2/{parent=projects/*/locations/*}/dlpJobs:\x01*\x12\xfb\x01\n\x0bListDlpJobs\x12).google.privacy.dlp.v2.ListDlpJobsRequest\x1a*.google.privacy.dlp.v2.ListDlpJobsResponse\"\x94\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x84\x01\x12\x1f/v2/{parent=projects/*}/dlpJobsZ-\x12+/v2/{parent=projects/*/locations/*}/dlpJobsZ2\x12\x30/v2/{parent=organizations/*/locations/*}/dlpJobs\x12\xb2\x01\n\tGetDlpJob\x12\'.google.privacy.dlp.v2.GetDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"]\xda\x41\x04name\x82\xd3\xe4\x93\x02P\x12\x1f/v2/{name=projects/*/dlpJobs/*}Z-\x12+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xb1\x01\n\x0c\x44\x65leteDlpJob\x12*.google.privacy.dlp.v2.DeleteDlpJobRequest\x1a\x16.google.protobuf.Empty\"]\xda\x41\x04name\x82\xd3\xe4\x93\x02P*\x1f/v2/{name=projects/*/dlpJobs/*}Z-*+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xbe\x01\n\x0c\x43\x61ncelDlpJob\x12*.google.privacy.dlp.v2.CancelDlpJobRequest\x1a\x16.google.protobuf.Empty\"j\x82\xd3\xe4\x93\x02\x64\"&/v2/{name=projects/*/dlpJobs/*}:cancel:\x01*Z7\"2/v2/{name=projects/*/locations/*/dlpJobs/*}:cancel:\x01*\x12\xe3\x02\n\x14\x43reateStoredInfoType\x12\x32.google.privacy.dlp.v2.CreateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xef\x01\xda\x41\rparent,config\x82\xd3\xe4\x93\x02\xd8\x01\",/v2/{parent=organizations/*}/storedInfoTypes:\x01*Z=\"8/v2/{parent=organizations/*/locations/*}/storedInfoTypes:\x01*Z,\"\'/v2/{parent=projects/*}/storedInfoTypes:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/storedInfoTypes:\x01*\x12\xed\x02\n\x14UpdateStoredInfoType\x12\x32.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xf9\x01\xda\x41\x17name,config,update_mask\x82\xd3\xe4\x93\x02\xd8\x01\x32,/v2/{name=organizations/*/storedInfoTypes/*}:\x01*Z=28/v2/{name=organizations/*/locations/*/storedInfoTypes/*}:\x01*Z,2\'/v2/{name=projects/*/storedInfoTypes/*}:\x01*Z823/v2/{name=projects/*/locations/*/storedInfoTypes/*}:\x01*\x12\xc8\x02\n\x11GetStoredInfoType\x12/.google.privacy.dlp.v2.GetStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xda\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{name=organizations/*/storedInfoTypes/*}Z:\x12\x38/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)\x12\'/v2/{name=projects/*/storedInfoTypes/*}Z5\x12\x33/v2/{name=projects/*/locations/*/storedInfoTypes/*}\x12\xdb\x02\n\x13ListStoredInfoTypes\x12\x31.google.privacy.dlp.v2.ListStoredInfoTypesRequest\x1a\x32.google.privacy.dlp.v2.ListStoredInfoTypesResponse\"\xdc\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{parent=organizations/*}/storedInfoTypesZ:\x12\x38/v2/{parent=organizations/*/locations/*}/storedInfoTypesZ)\x12\'/v2/{parent=projects/*}/storedInfoTypesZ5\x12\x33/v2/{parent=projects/*/locations/*}/storedInfoTypes\x12\xbf\x02\n\x14\x44\x65leteStoredInfoType\x12\x32.google.privacy.dlp.v2.DeleteStoredInfoTypeRequest\x1a\x16.google.protobuf.Empty\"\xda\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xcc\x01*,/v2/{name=organizations/*/storedInfoTypes/*}Z:*8/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)*\'/v2/{name=projects/*/storedInfoTypes/*}Z5*3/v2/{name=projects/*/locations/*/storedInfoTypes/*}\x12\x93\x02\n\x17ListProjectDataProfiles\x12\x35.google.privacy.dlp.v2.ListProjectDataProfilesRequest\x1a\x36.google.privacy.dlp.v2.ListProjectDataProfilesResponse\"\x88\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02y\x12/v2/{parent=organizations/*/locations/*}/fileStoreDataProfilesZ;\x12\x39/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles\x12\x8a\x02\n\x17GetFileStoreDataProfile\x12\x35.google.privacy.dlp.v2.GetFileStoreDataProfileRequest\x1a+.google.privacy.dlp.v2.FileStoreDataProfile\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}\x12>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;\x12\x39/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xfb\x01\n\x1a\x44\x65leteFileStoreDataProfile\x12\x38.google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}*>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;*9/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xf6\x01\n\x13GetTableDataProfile\x12\x31.google.privacy.dlp.v2.GetTableDataProfileRequest\x1a\'.google.privacy.dlp.v2.TableDataProfile\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u\x12:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7\x12\x35/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xfb\x01\n\x14GetColumnDataProfile\x12\x32.google.privacy.dlp.v2.GetColumnDataProfileRequest\x1a(.google.privacy.dlp.v2.ColumnDataProfile\"\x84\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02w\x12;/v2/{name=organizations/*/locations/*/columnDataProfiles/*}Z8\x12\x36/v2/{name=projects/*/locations/*/columnDataProfiles/*}\x12\xeb\x01\n\x16\x44\x65leteTableDataProfile\x12\x34.google.privacy.dlp.v2.DeleteTableDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u*:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7*5/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xc3\x01\n\x13HybridInspectDlpJob\x12\x31.google.privacy.dlp.v2.HybridInspectDlpJobRequest\x1a,.google.privacy.dlp.v2.HybridInspectResponse\"K\xda\x41\x04name\x82\xd3\xe4\x93\x02>\"9/v2/{name=projects/*/locations/*/dlpJobs/*}:hybridInspect:\x01*\x12\x91\x01\n\x0c\x46inishDlpJob\x12*.google.privacy.dlp.v2.FinishDlpJobRequest\x1a\x16.google.protobuf.Empty\"=\x82\xd3\xe4\x93\x02\x37\"2/v2/{name=projects/*/locations/*/dlpJobs/*}:finish:\x01*\x12\xf2\x01\n\x10\x43reateConnection\x12..google.privacy.dlp.v2.CreateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"\x8a\x01\xda\x41\x12parent, connection\x82\xd3\xe4\x93\x02o\"//v2/{parent=projects/*/locations/*}/connections:\x01*Z9\"4/v2/{parent=organizations/*/locations/*}/connections:\x01*\x12\xd7\x01\n\rGetConnection\x12+.google.privacy.dlp.v2.GetConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i\x12//v2/{name=projects/*/locations/*/connections/*}Z6\x12\x34/v2/{name=organizations/*/locations/*/connections/*}\x12\xea\x01\n\x0fListConnections\x12-.google.privacy.dlp.v2.ListConnectionsRequest\x1a..google.privacy.dlp.v2.ListConnectionsResponse\"x\xda\x41\x06parent\x82\xd3\xe4\x93\x02i\x12//v2/{parent=projects/*/locations/*}/connectionsZ6\x12\x34/v2/{parent=organizations/*/locations/*}/connections\x12\xff\x01\n\x11SearchConnections\x12/.google.privacy.dlp.v2.SearchConnectionsRequest\x1a\x30.google.privacy.dlp.v2.SearchConnectionsResponse\"\x86\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02w\x12\x36/v2/{parent=projects/*/locations/*}/connections:searchZ=\x12;/v2/{parent=organizations/*/locations/*}/connections:search\x12\xd2\x01\n\x10\x44\x65leteConnection\x12..google.privacy.dlp.v2.DeleteConnectionRequest\x1a\x16.google.protobuf.Empty\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i*//v2/{name=projects/*/locations/*/connections/*}Z6*4/v2/{name=organizations/*/locations/*/connections/*}\x12\xe3\x01\n\x10UpdateConnection\x12..google.privacy.dlp.v2.UpdateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"|\xda\x41\x04name\x82\xd3\xe4\x93\x02o2//v2/{name=projects/*/locations/*/connections/*}:\x01*Z924/v2/{name=organizations/*/locations/*/connections/*}:\x01*\x1a\x46\xca\x41\x12\x64lp.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xeb\x02\n\x19\x63om.google.privacy.dlp.v2B\x08\x44lpProtoP\x01Z)cloud.google.com/go/dlp/apiv2/dlppb;dlppb\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2\xea\x02\x16Google::Cloud::Dlp::V2\xea\x41r\n\x1d\x64lp.googleapis.com/DlpContent\x12\x1dprojects/{project}/dlpContent\x12\x32projects/{project}/locations/{location}/dlpContent\xea\x41\\\n\'dlp.googleapis.com/OrganizationLocation\x12\x31organizations/{organization}/locations/{location}b\x06proto3" +descriptor_data = "\n\x1fgoogle/privacy/dlp/v2/dlp.proto\x12\x15google.privacy.dlp.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/privacy/dlp/v2/storage.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x16google/type/date.proto\x1a\x1bgoogle/type/dayofweek.proto\x1a\x1bgoogle/type/timeofday.proto\"G\n\x10\x45xcludeInfoTypes\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xa8\x01\n\x10\x45xcludeByHotword\x12\x42\n\rhotword_regex\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.Regex\x12P\n\tproximity\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity\"\xe7\x02\n\rExclusionRule\x12\x46\n\ndictionary\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x12\x45\n\x12\x65xclude_info_types\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeInfoTypesH\x00\x12\x45\n\x12\x65xclude_by_hotword\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.ExcludeByHotwordH\x00\x12:\n\rmatching_type\x18\x04 \x01(\x0e\x32#.google.privacy.dlp.v2.MatchingTypeB\x06\n\x04type\"\xb1\x01\n\x0eInspectionRule\x12W\n\x0chotword_rule\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRuleH\x00\x12>\n\x0e\x65xclusion_rule\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.ExclusionRuleH\x00\x42\x06\n\x04type\"~\n\x11InspectionRuleSet\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\x05rules\x18\x02 \x03(\x0b\x32%.google.privacy.dlp.v2.InspectionRule\"\xac\x07\n\rInspectConfig\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12]\n\x1cmin_likelihood_per_info_type\x18\x0b \x03(\x0b\x32\x37.google.privacy.dlp.v2.InspectConfig.InfoTypeLikelihood\x12\x42\n\x06limits\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.InspectConfig.FindingLimits\x12\x15\n\rinclude_quote\x18\x04 \x01(\x08\x12\x1a\n\x12\x65xclude_info_types\x18\x05 \x01(\x08\x12@\n\x11\x63ustom_info_types\x18\x06 \x03(\x0b\x32%.google.privacy.dlp.v2.CustomInfoType\x12=\n\x0f\x63ontent_options\x18\x08 \x03(\x0e\x32$.google.privacy.dlp.v2.ContentOption\x12:\n\x08rule_set\x18\n \x03(\x0b\x32(.google.privacy.dlp.v2.InspectionRuleSet\x1a\x83\x01\n\x12InfoTypeLikelihood\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x39\n\x0emin_likelihood\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x1a\x91\x02\n\rFindingLimits\x12\x1d\n\x15max_findings_per_item\x18\x01 \x01(\x05\x12 \n\x18max_findings_per_request\x18\x02 \x01(\x05\x12\x64\n\x1amax_findings_per_info_type\x18\x03 \x03(\x0b\x32@.google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit\x1aY\n\rInfoTypeLimit\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x14\n\x0cmax_findings\x18\x02 \x01(\x05\"\xf9\x02\n\x0f\x42yteContentItem\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.privacy.dlp.v2.ByteContentItem.BytesType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x97\x02\n\tBytesType\x12\x1a\n\x16\x42YTES_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05IMAGE\x10\x06\x12\x0e\n\nIMAGE_JPEG\x10\x01\x12\r\n\tIMAGE_BMP\x10\x02\x12\r\n\tIMAGE_PNG\x10\x03\x12\r\n\tIMAGE_SVG\x10\x04\x12\r\n\tTEXT_UTF8\x10\x05\x12\x11\n\rWORD_DOCUMENT\x10\x07\x12\x07\n\x03PDF\x10\x08\x12\x17\n\x13POWERPOINT_DOCUMENT\x10\t\x12\x12\n\x0e\x45XCEL_DOCUMENT\x10\n\x12\x08\n\x04\x41VRO\x10\x0b\x12\x07\n\x03\x43SV\x10\x0c\x12\x07\n\x03TSV\x10\r\x12\t\n\x05\x41UDIO\x10\x0f\x12\t\n\x05VIDEO\x10\x10\x12\x0e\n\nEXECUTABLE\x10\x11\x12\x0c\n\x08\x41I_MODEL\x10\x12\"\x97\x01\n\x0b\x43ontentItem\x12\x0f\n\x05value\x18\x03 \x01(\tH\x00\x12-\n\x05table\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.TableH\x00\x12;\n\tbyte_item\x18\x05 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItemH\x00\x42\x0b\n\tdata_item\"\x9d\x01\n\x05Table\x12/\n\x07headers\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12.\n\x04rows\x18\x02 \x03(\x0b\x32 .google.privacy.dlp.v2.Table.Row\x1a\x33\n\x03Row\x12,\n\x06values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\"]\n\rInspectResult\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\x12\x1a\n\x12\x66indings_truncated\x18\x02 \x01(\x08\"\xdf\x05\n\x07\x46inding\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x32\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x35\n\nlikelihood\x18\x03 \x01(\x0e\x32!.google.privacy.dlp.v2.Likelihood\x12\x31\n\x08location\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.Location\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\nquote_info\x18\x07 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo\x12\x35\n\rresource_name\x18\x08 \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x38\n\x0ctrigger_name\x18\t \x01(\tB\"\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12:\n\x06labels\x18\n \x03(\x0b\x32*.google.privacy.dlp.v2.Finding.LabelsEntry\x12\x33\n\x0fjob_create_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x08job_name\x18\r \x01(\tB\x1e\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12\x12\n\nfinding_id\x18\x0f \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:[\xea\x41X\n\x1a\x64lp.googleapis.com/Finding\x12:projects/{project}/locations/{location}/findings/{finding}\"\xeb\x01\n\x08Location\x12\x30\n\nbyte_range\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x35\n\x0f\x63odepoint_range\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Range\x12\x41\n\x11\x63ontent_locations\x18\x07 \x03(\x0b\x32&.google.privacy.dlp.v2.ContentLocation\x12\x33\n\tcontainer\x18\x08 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\"\x97\x03\n\x0f\x43ontentLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12@\n\x0frecord_location\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.RecordLocationH\x00\x12>\n\x0eimage_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.ImageLocationH\x00\x12\x44\n\x11\x64ocument_location\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.DocumentLocationH\x00\x12\x44\n\x11metadata_location\x18\x08 \x01(\x0b\x32\'.google.privacy.dlp.v2.MetadataLocationH\x00\x12\x37\n\x13\x63ontainer_timestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x07 \x01(\tB\n\n\x08location\"\x94\x01\n\x10MetadataLocation\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32#.google.privacy.dlp.v2.MetadataType\x12\x44\n\rstorage_label\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.StorageMetadataLabelH\x00\x42\x07\n\x05label\"#\n\x14StorageMetadataLabel\x12\x0b\n\x03key\x18\x01 \x01(\t\"\'\n\x10\x44ocumentLocation\x12\x13\n\x0b\x66ile_offset\x18\x01 \x01(\x03\"\xb6\x01\n\x0eRecordLocation\x12\x34\n\nrecord_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.RecordKey\x12\x30\n\x08\x66ield_id\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12<\n\x0etable_location\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.TableLocation\"\"\n\rTableLocation\x12\x11\n\trow_index\x18\x01 \x01(\x03\"\xac\x01\n\tContainer\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12\x11\n\tfull_path\x18\x03 \x01(\t\x12\x11\n\troot_path\x18\x04 \x01(\t\x12\x15\n\rrelative_path\x18\x05 \x01(\t\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07version\x18\x07 \x01(\t\"#\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x03\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x03\"K\n\rImageLocation\x12:\n\x0e\x62ounding_boxes\x18\x01 \x03(\x0b\x32\".google.privacy.dlp.v2.BoundingBox\"G\n\x0b\x42oundingBox\x12\x0b\n\x03top\x18\x01 \x01(\x05\x12\x0c\n\x04left\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\"\xfc\x03\n\x12RedactImageRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12\x13\n\x0blocation_id\x18\x08 \x01(\t\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12_\n\x17image_redaction_configs\x18\x05 \x03(\x0b\x32>.google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig\x12\x18\n\x10include_findings\x18\x06 \x01(\x08\x12\x39\n\tbyte_item\x18\x07 \x01(\x0b\x32&.google.privacy.dlp.v2.ByteContentItem\x1a\xa8\x01\n\x14ImageRedactionConfig\x12\x34\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x19\n\x0fredact_all_text\x18\x02 \x01(\x08H\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ColorB\x08\n\x06target\"1\n\x05\x43olor\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02\"\x83\x01\n\x13RedactImageResponse\x12\x16\n\x0eredacted_image\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65xtracted_text\x18\x02 \x01(\t\x12<\n\x0einspect_result\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult\"\xd8\x02\n\x18\x44\x65identifyContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12\x42\n\x11\x64\x65identify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18\x64\x65identify_template_name\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"\x8e\x01\n\x19\x44\x65identifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview\"\xdb\x02\n\x18ReidentifyContentRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12\x42\n\x11reidentify_config\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig\x12<\n\x0einspect_config\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x04 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12 \n\x18reidentify_template_name\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"\x8e\x01\n\x19ReidentifyContentResponse\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12?\n\x08overview\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationOverview\"\xef\x01\n\x15InspectContentRequest\x12\x32\n\x06parent\x18\x01 \x01(\tB\"\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/DlpContent\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x30\n\x04item\x18\x03 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x1d\n\x15inspect_template_name\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"N\n\x16InspectContentResponse\x12\x34\n\x06result\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectResult\"\xb7\x02\n\x13OutputStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x12N\n\routput_schema\x18\x03 \x01(\x0e\x32\x37.google.privacy.dlp.v2.OutputStorageConfig.OutputSchema\"\x90\x01\n\x0cOutputSchema\x12\x1d\n\x19OUTPUT_SCHEMA_UNSPECIFIED\x10\x00\x12\x11\n\rBASIC_COLUMNS\x10\x01\x12\x0f\n\x0bGCS_COLUMNS\x10\x02\x12\x15\n\x11\x44\x41TASTORE_COLUMNS\x10\x03\x12\x15\n\x11\x42IG_QUERY_COLUMNS\x10\x04\x12\x0f\n\x0b\x41LL_COLUMNS\x10\x05\x42\x06\n\x04type\"R\n\rInfoTypeStats\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\"\xc0\x04\n\x18InspectDataSourceDetails\x12[\n\x11requested_options\x18\x02 \x01(\x0b\x32@.google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions\x12\x46\n\x06result\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.InspectDataSourceDetails.Result\x1a\x9a\x01\n\x10RequestedOptions\x12I\n\x19snapshot_inspect_template\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12;\n\njob_config\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfig\x1a\xe1\x01\n\x06Result\x12\x17\n\x0fprocessed_bytes\x18\x01 \x01(\x03\x12\x1d\n\x15total_estimated_bytes\x18\x02 \x01(\x03\x12=\n\x0finfo_type_stats\x18\x03 \x03(\x0b\x32$.google.privacy.dlp.v2.InfoTypeStats\x12\x1a\n\x12num_rows_processed\x18\x05 \x01(\x03\x12\x44\n\x0chybrid_stats\x18\x07 \x01(\x0b\x32..google.privacy.dlp.v2.HybridInspectStatistics\"\xff\x01\n\x1c\x44\x61taProfileBigQueryRowSchema\x12@\n\rtable_profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfileH\x00\x12\x42\n\x0e\x63olumn_profile\x18\x02 \x01(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfileH\x00\x12I\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfileH\x00\x42\x0e\n\x0c\x64\x61ta_profile\"`\n\x17HybridInspectStatistics\x12\x17\n\x0fprocessed_count\x18\x01 \x01(\x03\x12\x15\n\raborted_count\x18\x02 \x01(\x03\x12\x15\n\rpending_count\x18\x03 \x01(\x03\"l\n\rActionDetails\x12P\n\x12\x64\x65identify_details\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DeidentifyDataSourceDetailsH\x00\x42\t\n\x07\x64\x65tails\"x\n\x19\x44\x65identifyDataSourceStats\x12\x19\n\x11transformed_bytes\x18\x01 \x01(\x03\x12\x1c\n\x14transformation_count\x18\x02 \x01(\x03\x12\"\n\x1atransformation_error_count\x18\x03 \x01(\x03\"\xf2\x03\n\x1b\x44\x65identifyDataSourceDetails\x12h\n\x11requested_options\x18\x01 \x01(\x0b\x32M.google.privacy.dlp.v2.DeidentifyDataSourceDetails.RequestedDeidentifyOptions\x12J\n\x10\x64\x65identify_stats\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DeidentifyDataSourceStats\x1a\x9c\x02\n\x1aRequestedDeidentifyOptions\x12O\n\x1csnapshot_deidentify_template\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Z\n\'snapshot_structured_deidentify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12Q\n\x1esnapshot_image_redact_template\x18\x03 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\"\xdf\x01\n\x0fLocationSupport\x12Z\n\x15regionalization_scope\x18\x01 \x01(\x0e\x32;.google.privacy.dlp.v2.LocationSupport.RegionalizationScope\x12\x11\n\tlocations\x18\x02 \x03(\t\"]\n\x14RegionalizationScope\x12%\n!REGIONALIZATION_SCOPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REGIONAL\x10\x01\x12\x10\n\x0c\x41NY_LOCATION\x10\x02\"\xbe\x03\n\x13InfoTypeDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12@\n\x0csupported_by\x18\x03 \x03(\x0e\x32*.google.privacy.dlp.v2.InfoTypeSupportedBy\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12@\n\x10location_support\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.LocationSupport\x12\x0f\n\x07\x65xample\x18\x08 \x01(\t\x12;\n\x08versions\x18\t \x03(\x0b\x32).google.privacy.dlp.v2.VersionDescription\x12;\n\ncategories\x18\n \x03(\x0b\x32\'.google.privacy.dlp.v2.InfoTypeCategory\x12\x42\n\x11sensitivity_score\x18\x0b \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12\x1b\n\x13specific_info_types\x18\x0c \x03(\t\"\x90\n\n\x10InfoTypeCategory\x12U\n\x11location_category\x18\x01 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.LocationCategoryH\x00\x12U\n\x11industry_category\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.InfoTypeCategory.IndustryCategoryH\x00\x12M\n\rtype_category\x18\x03 \x01(\x0e\x32\x34.google.privacy.dlp.v2.InfoTypeCategory.TypeCategoryH\x00\"\xef\x05\n\x10LocationCategory\x12\x18\n\x14LOCATION_UNSPECIFIED\x10\x00\x12\n\n\x06GLOBAL\x10\x01\x12\r\n\tARGENTINA\x10\x02\x12\x0b\n\x07\x41RMENIA\x10\x33\x12\r\n\tAUSTRALIA\x10\x03\x12\x0b\n\x07\x41USTRIA\x10\x35\x12\x0e\n\nAZERBAIJAN\x10\x30\x12\x0b\n\x07\x42\x45LARUS\x10\x32\x12\x0b\n\x07\x42\x45LGIUM\x10\x04\x12\n\n\x06\x42RAZIL\x10\x05\x12\n\n\x06\x43\x41NADA\x10\x06\x12\t\n\x05\x43HILE\x10\x07\x12\t\n\x05\x43HINA\x10\x08\x12\x0c\n\x08\x43OLOMBIA\x10\t\x12\x0b\n\x07\x43ROATIA\x10*\x12\x0b\n\x07\x43ZECHIA\x10\x34\x12\x0b\n\x07\x44\x45NMARK\x10\n\x12\n\n\x06\x46RANCE\x10\x0b\x12\x0b\n\x07\x46INLAND\x10\x0c\x12\x0b\n\x07GERMANY\x10\r\x12\r\n\tHONG_KONG\x10\x0e\x12\t\n\x05INDIA\x10\x0f\x12\r\n\tINDONESIA\x10\x10\x12\x0b\n\x07IRELAND\x10\x11\x12\n\n\x06ISRAEL\x10\x12\x12\t\n\x05ITALY\x10\x13\x12\t\n\x05JAPAN\x10\x14\x12\x0e\n\nKAZAKHSTAN\x10/\x12\t\n\x05KOREA\x10\x15\x12\n\n\x06MEXICO\x10\x16\x12\x13\n\x0fTHE_NETHERLANDS\x10\x17\x12\x0f\n\x0bNEW_ZEALAND\x10)\x12\n\n\x06NORWAY\x10\x18\x12\x0c\n\x08PARAGUAY\x10\x19\x12\x08\n\x04PERU\x10\x1a\x12\n\n\x06POLAND\x10\x1b\x12\x0c\n\x08PORTUGAL\x10\x1c\x12\n\n\x06RUSSIA\x10,\x12\r\n\tSINGAPORE\x10\x1d\x12\x10\n\x0cSOUTH_AFRICA\x10\x1e\x12\t\n\x05SPAIN\x10\x1f\x12\n\n\x06SWEDEN\x10 \x12\x0f\n\x0bSWITZERLAND\x10+\x12\n\n\x06TAIWAN\x10!\x12\x0c\n\x08THAILAND\x10\"\x12\n\n\x06TURKEY\x10#\x12\x0b\n\x07UKRAINE\x10-\x12\x12\n\x0eUNITED_KINGDOM\x10$\x12\x11\n\rUNITED_STATES\x10%\x12\x0b\n\x07URUGUAY\x10&\x12\x0e\n\nUZBEKISTAN\x10.\x12\r\n\tVENEZUELA\x10\'\x12\x0c\n\x08INTERNAL\x10(\"]\n\x10IndustryCategory\x12\x18\n\x14INDUSTRY_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x46INANCE\x10\x01\x12\n\n\x06HEALTH\x10\x02\x12\x16\n\x12TELECOMMUNICATIONS\x10\x03\"\xa1\x01\n\x0cTypeCategory\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03PII\x10\x01\x12\x08\n\x04SPII\x10\x02\x12\x0f\n\x0b\x44\x45MOGRAPHIC\x10\x03\x12\x0e\n\nCREDENTIAL\x10\x04\x12\x11\n\rGOVERNMENT_ID\x10\x05\x12\x0c\n\x08\x44OCUMENT\x10\x06\x12\x1a\n\x16\x43ONTEXTUAL_INFORMATION\x10\x07\x12\n\n\x06\x43USTOM\x10\x08\x42\n\n\x08\x63\x61tegory\":\n\x12VersionDescription\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"b\n\x14ListInfoTypesRequest\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x15\n\rlanguage_code\x18\x01 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x12\x13\n\x0blocation_id\x18\x03 \x01(\t\"W\n\x15ListInfoTypesResponse\x12>\n\ninfo_types\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.InfoTypeDescription\"\xc1\x01\n\x15RiskAnalysisJobConfig\x12<\n\x0eprivacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12:\n\x0csource_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12.\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action\"\xbc\x01\n\x07QuasiId\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag\"\xbe\x02\n\x10StatisticalTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12T\n\tquasi_ids\x18\x01 \x03(\x0b\x32<.google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x1aY\n\x14QuasiIdentifierField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t\"\x93\x0f\n\rPrivacyMetric\x12[\n\x16numerical_stats_config\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfigH\x00\x12_\n\x18\x63\x61tegorical_stats_config\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfigH\x00\x12S\n\x12k_anonymity_config\x18\x03 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfigH\x00\x12S\n\x12l_diversity_config\x18\x04 \x01(\x0b\x32\x35.google.privacy.dlp.v2.PrivacyMetric.LDiversityConfigH\x00\x12\\\n\x17k_map_estimation_config\x18\x05 \x01(\x0b\x32\x39.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfigH\x00\x12n\n delta_presence_estimation_config\x18\x06 \x01(\x0b\x32\x42.google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfigH\x00\x1a\x45\n\x14NumericalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1aG\n\x16\x43\x61tegoricalStatsConfig\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1ay\n\x10KAnonymityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x32\n\tentity_id\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.EntityId\x1a\x82\x01\n\x10LDiversityConfig\x12\x31\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12;\n\x13sensitive_attribute\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x1a\x81\x06\n\x14KMapEstimationConfig\x12]\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedFieldB\x03\xe0\x41\x02\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x62\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32H.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable\x1a\xc0\x01\n\x0bTaggedField\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12\x34\n\tinfo_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeH\x00\x12\x14\n\ncustom_tag\x18\x03 \x01(\tH\x00\x12*\n\x08inferred\x18\x04 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x05\n\x03tag\x1a\xcd\x02\n\x0e\x41uxiliaryTable\x12\x38\n\x05table\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableB\x03\xe0\x41\x02\x12m\n\tquasi_ids\x18\x01 \x03(\x0b\x32U.google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdFieldB\x03\xe0\x41\x02\x12?\n\x12relative_frequency\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x1aQ\n\x0cQuasiIdField\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x12\n\ncustom_tag\x18\x02 \x01(\t\x1a\xaf\x01\n\x1d\x44\x65ltaPresenceEstimationConfig\x12\x36\n\tquasi_ids\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.QuasiIdB\x03\xe0\x41\x02\x12\x13\n\x0bregion_code\x18\x02 \x01(\t\x12\x41\n\x10\x61uxiliary_tables\x18\x03 \x03(\x0b\x32\'.google.privacy.dlp.v2.StatisticalTableB\x06\n\x04type\"\xc1\x1f\n\x1c\x41nalyzeDataSourceRiskDetails\x12\x46\n\x18requested_privacy_metric\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.PrivacyMetric\x12\x44\n\x16requested_source_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12j\n\x16numerical_stats_result\x18\x03 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResultH\x00\x12n\n\x18\x63\x61tegorical_stats_result\x18\x04 \x01(\x0b\x32J.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResultH\x00\x12\x62\n\x12k_anonymity_result\x18\x05 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResultH\x00\x12\x62\n\x12l_diversity_result\x18\x06 \x01(\x0b\x32\x44.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResultH\x00\x12k\n\x17k_map_estimation_result\x18\x07 \x01(\x0b\x32H.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResultH\x00\x12}\n delta_presence_estimation_result\x18\t \x01(\x0b\x32Q.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResultH\x00\x12k\n\x11requested_options\x18\n \x01(\x0b\x32P.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions\x1a\xaf\x01\n\x14NumericalStatsResult\x12/\n\tmin_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12/\n\tmax_value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x35\n\x0fquantile_values\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1a\x8d\x03\n\x16\x43\x61tegoricalStatsResult\x12\x95\x01\n!value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32j.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket\x1a\xda\x01\n\x1f\x43\x61tegoricalStatsHistogramBucket\x12#\n\x1bvalue_frequency_lower_bound\x18\x01 \x01(\x03\x12#\n\x1bvalue_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12<\n\rbucket_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb5\x04\n\x10KAnonymityResult\x12\x8b\x01\n#equivalence_class_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket\x1at\n\x1aKAnonymityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x1a\x9c\x02\n\x19KAnonymityHistogramBucket\x12*\n\"equivalence_class_size_lower_bound\x18\x01 \x01(\x03\x12*\n\"equivalence_class_size_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\xb0\x05\n\x10LDiversityResult\x12\x93\x01\n+sensitive_value_frequency_histogram_buckets\x18\x05 \x03(\x0b\x32^.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket\x1a\xe0\x01\n\x1aLDiversityEquivalenceClass\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1e\n\x16\x65quivalence_class_size\x18\x02 \x01(\x03\x12%\n\x1dnum_distinct_sensitive_values\x18\x03 \x01(\x03\x12\x43\n\x14top_sensitive_values\x18\x04 \x03(\x0b\x32%.google.privacy.dlp.v2.ValueFrequency\x1a\xa2\x02\n\x19LDiversityHistogramBucket\x12-\n%sensitive_value_frequency_lower_bound\x18\x01 \x01(\x03\x12-\n%sensitive_value_frequency_upper_bound\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x03 \x01(\x03\x12v\n\rbucket_values\x18\x04 \x03(\x0b\x32_.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass\x12\x1a\n\x12\x62ucket_value_count\x18\x05 \x01(\x03\x1a\x95\x04\n\x14KMapEstimationResult\x12\x8a\x01\n\x1ak_map_estimation_histogram\x18\x01 \x03(\x0b\x32\x66.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket\x1ar\n\x1bKMapEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1b\n\x13\x65stimated_anonymity\x18\x02 \x01(\x03\x1a\xfb\x01\n\x1dKMapEstimationHistogramBucket\x12\x15\n\rmin_anonymity\x18\x01 \x01(\x03\x12\x15\n\rmax_anonymity\x18\x02 \x01(\x03\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12{\n\rbucket_values\x18\x06 \x03(\x0b\x32\x64.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x1a\xe4\x04\n\x1d\x44\x65ltaPresenceEstimationResult\x12\xa5\x01\n#delta_presence_estimation_histogram\x18\x01 \x03(\x0b\x32x.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket\x1a}\n$DeltaPresenceEstimationQuasiIdValues\x12\x36\n\x10quasi_ids_values\x18\x01 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\x1d\n\x15\x65stimated_probability\x18\x02 \x01(\x01\x1a\x9b\x02\n&DeltaPresenceEstimationHistogramBucket\x12\x17\n\x0fmin_probability\x18\x01 \x01(\x01\x12\x17\n\x0fmax_probability\x18\x02 \x01(\x01\x12\x13\n\x0b\x62ucket_size\x18\x05 \x01(\x03\x12\x8d\x01\n\rbucket_values\x18\x06 \x03(\x0b\x32v.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues\x12\x1a\n\x12\x62ucket_value_count\x18\x07 \x01(\x03\x1a`\n\x1cRequestedRiskAnalysisOptions\x12@\n\njob_config\x18\x01 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigB\x08\n\x06result\"L\n\x0eValueFrequency\x12+\n\x05value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12\r\n\x05\x63ount\x18\x02 \x01(\x03\"\xb3\x02\n\x05Value\x12\x17\n\rinteger_value\x18\x01 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x17\n\rboolean_value\x18\x04 \x01(\x08H\x00\x12\x35\n\x0ftimestamp_value\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12,\n\ntime_value\x18\x06 \x01(\x0b\x32\x16.google.type.TimeOfDayH\x00\x12\'\n\ndate_value\x18\x07 \x01(\x0b\x32\x11.google.type.DateH\x00\x12\x33\n\x11\x64\x61y_of_week_value\x18\x08 \x01(\x0e\x32\x16.google.type.DayOfWeekH\x00\x42\x06\n\x04type\"Q\n\tQuoteInfo\x12\x34\n\tdate_time\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DateTimeH\x00\x42\x0e\n\x0cparsed_quote\"\xdf\x01\n\x08\x44\x61teTime\x12\x1f\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x11.google.type.Date\x12+\n\x0b\x64\x61y_of_week\x18\x02 \x01(\x0e\x32\x16.google.type.DayOfWeek\x12$\n\x04time\x18\x03 \x01(\x0b\x32\x16.google.type.TimeOfDay\x12;\n\ttime_zone\x18\x04 \x01(\x0b\x32(.google.privacy.dlp.v2.DateTime.TimeZone\x1a\"\n\x08TimeZone\x12\x16\n\x0eoffset_minutes\x18\x01 \x01(\x05\"\xf2\x02\n\x10\x44\x65identifyConfig\x12S\n\x19info_type_transformations\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x12N\n\x16record_transformations\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.RecordTransformationsH\x00\x12L\n\x15image_transformations\x18\x04 \x01(\x0b\x32+.google.privacy.dlp.v2.ImageTransformationsH\x00\x12Y\n\x1dtransformation_error_handling\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.TransformationErrorHandlingB\x10\n\x0etransformation\"\xe5\x04\n\x14ImageTransformations\x12S\n\ntransforms\x18\x02 \x03(\x0b\x32?.google.privacy.dlp.v2.ImageTransformations.ImageTransformation\x1a\xf7\x03\n\x13ImageTransformation\x12p\n\x13selected_info_types\x18\x04 \x01(\x0b\x32Q.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypesH\x00\x12\x66\n\x0e\x61ll_info_types\x18\x05 \x01(\x0b\x32L.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypesH\x00\x12[\n\x08\x61ll_text\x18\x06 \x01(\x0b\x32G.google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllTextH\x00\x12\x35\n\x0fredaction_color\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Color\x1aM\n\x11SelectedInfoTypes\x12\x38\n\ninfo_types\x18\x05 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoTypeB\x03\xe0\x41\x02\x1a\x0e\n\x0c\x41llInfoTypes\x1a\t\n\x07\x41llTextB\x08\n\x06target\"\x85\x02\n\x1bTransformationErrorHandling\x12T\n\x0bthrow_error\x18\x01 \x01(\x0b\x32=.google.privacy.dlp.v2.TransformationErrorHandling.ThrowErrorH\x00\x12\x64\n\x13leave_untransformed\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformedH\x00\x1a\x0c\n\nThrowError\x1a\x14\n\x12LeaveUntransformedB\x06\n\x04mode\"\xca\x07\n\x17PrimitiveTransformation\x12\x43\n\x0ereplace_config\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.ReplaceValueConfigH\x00\x12<\n\rredact_config\x18\x02 \x01(\x0b\x32#.google.privacy.dlp.v2.RedactConfigH\x00\x12K\n\x15\x63haracter_mask_config\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.CharacterMaskConfigH\x00\x12Y\n\x1d\x63rypto_replace_ffx_fpe_config\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfigH\x00\x12V\n\x1b\x66ixed_size_bucketing_config\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.FixedSizeBucketingConfigH\x00\x12\x42\n\x10\x62ucketing_config\x18\x06 \x01(\x0b\x32&.google.privacy.dlp.v2.BucketingConfigH\x00\x12Y\n\x1dreplace_with_info_type_config\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.ReplaceWithInfoTypeConfigH\x00\x12\x41\n\x10time_part_config\x18\x08 \x01(\x0b\x32%.google.privacy.dlp.v2.TimePartConfigH\x00\x12\x45\n\x12\x63rypto_hash_config\x18\t \x01(\x0b\x32\'.google.privacy.dlp.v2.CryptoHashConfigH\x00\x12\x43\n\x11\x64\x61te_shift_config\x18\x0b \x01(\x0b\x32&.google.privacy.dlp.v2.DateShiftConfigH\x00\x12W\n\x1b\x63rypto_deterministic_config\x18\x0c \x01(\x0b\x32\x30.google.privacy.dlp.v2.CryptoDeterministicConfigH\x00\x12S\n\x19replace_dictionary_config\x18\r \x01(\x0b\x32..google.privacy.dlp.v2.ReplaceDictionaryConfigH\x00\x42\x10\n\x0etransformation\"\xdc\x01\n\x0eTimePartConfig\x12G\n\x0fpart_to_extract\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.TimePartConfig.TimePart\"\x80\x01\n\x08TimePart\x12\x19\n\x15TIME_PART_UNSPECIFIED\x10\x00\x12\x08\n\x04YEAR\x10\x01\x12\t\n\x05MONTH\x10\x02\x12\x10\n\x0c\x44\x41Y_OF_MONTH\x10\x03\x12\x0f\n\x0b\x44\x41Y_OF_WEEK\x10\x04\x12\x10\n\x0cWEEK_OF_YEAR\x10\x05\x12\x0f\n\x0bHOUR_OF_DAY\x10\x06\"H\n\x10\x43ryptoHashConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\"\xc0\x01\n\x19\x43ryptoDeterministicConfig\x12\x34\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKey\x12<\n\x13surrogate_info_type\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"E\n\x12ReplaceValueConfig\x12/\n\tnew_value\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\"q\n\x17ReplaceDictionaryConfig\x12N\n\tword_list\x18\x01 \x01(\x0b\x32\x39.google.privacy.dlp.v2.CustomInfoType.Dictionary.WordListH\x00\x42\x06\n\x04type\"\x1b\n\x19ReplaceWithInfoTypeConfig\"\x0e\n\x0cRedactConfig\"\xb6\x02\n\rCharsToIgnore\x12\x1c\n\x12\x63haracters_to_skip\x18\x01 \x01(\tH\x00\x12_\n\x1b\x63ommon_characters_to_ignore\x18\x02 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnoreH\x00\"\x97\x01\n\x13\x43ommonCharsToIgnore\x12&\n\"COMMON_CHARS_TO_IGNORE_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x14\n\x10\x41LPHA_UPPER_CASE\x10\x02\x12\x14\n\x10\x41LPHA_LOWER_CASE\x10\x03\x12\x0f\n\x0bPUNCTUATION\x10\x04\x12\x0e\n\nWHITESPACE\x10\x05\x42\x0c\n\ncharacters\"\xa3\x01\n\x13\x43haracterMaskConfig\x12\x19\n\x11masking_character\x18\x01 \x01(\t\x12\x16\n\x0enumber_to_mask\x18\x02 \x01(\x05\x12\x15\n\rreverse_order\x18\x03 \x01(\x08\x12\x42\n\x14\x63haracters_to_ignore\x18\x04 \x03(\x0b\x32$.google.privacy.dlp.v2.CharsToIgnore\"\xa4\x01\n\x18\x46ixedSizeBucketingConfig\x12\x36\n\x0blower_bound\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x36\n\x0bupper_bound\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\x12\x18\n\x0b\x62ucket_size\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\"\xf0\x01\n\x0f\x42ucketingConfig\x12>\n\x07\x62uckets\x18\x01 \x03(\x0b\x32-.google.privacy.dlp.v2.BucketingConfig.Bucket\x1a\x9c\x01\n\x06\x42ucket\x12)\n\x03min\x18\x01 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12)\n\x03max\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x12<\n\x11replacement_value\x18\x03 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.ValueB\x03\xe0\x41\x02\"\xf9\x03\n\x19\x43ryptoReplaceFfxFpeConfig\x12\x39\n\ncrypto_key\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyB\x03\xe0\x41\x02\x12/\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x63\n\x0f\x63ommon_alphabet\x18\x04 \x01(\x0e\x32H.google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabetH\x00\x12\x19\n\x0f\x63ustom_alphabet\x18\x05 \x01(\tH\x00\x12\x0f\n\x05radix\x18\x06 \x01(\x05H\x00\x12<\n\x13surrogate_info_type\x18\x08 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\x94\x01\n\x17\x46\x66xCommonNativeAlphabet\x12*\n&FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED\x10\x00\x12\x0b\n\x07NUMERIC\x10\x01\x12\x0f\n\x0bHEXADECIMAL\x10\x02\x12\x1c\n\x18UPPER_CASE_ALPHA_NUMERIC\x10\x03\x12\x11\n\rALPHA_NUMERIC\x10\x04\x42\n\n\x08\x61lphabet\"\xd8\x01\n\tCryptoKey\x12>\n\ttransient\x18\x01 \x01(\x0b\x32).google.privacy.dlp.v2.TransientCryptoKeyH\x00\x12>\n\tunwrapped\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.UnwrappedCryptoKeyH\x00\x12\x41\n\x0bkms_wrapped\x18\x03 \x01(\x0b\x32*.google.privacy.dlp.v2.KmsWrappedCryptoKeyH\x00\x42\x08\n\x06source\"\'\n\x12TransientCryptoKey\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"&\n\x12UnwrappedCryptoKey\x12\x10\n\x03key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\"M\n\x13KmsWrappedCryptoKey\x12\x18\n\x0bwrapped_key\x18\x01 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x1c\n\x0f\x63rypto_key_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xc2\x01\n\x0f\x44\x61teShiftConfig\x12\x1d\n\x10upper_bound_days\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1d\n\x10lower_bound_days\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\x12/\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x36\n\ncrypto_key\x18\x04 \x01(\x0b\x32 .google.privacy.dlp.v2.CryptoKeyH\x00\x42\x08\n\x06method\"\xa5\x02\n\x17InfoTypeTransformations\x12\x63\n\x0ftransformations\x18\x01 \x03(\x0b\x32\x45.google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformationB\x03\xe0\x41\x02\x1a\xa4\x01\n\x16InfoTypeTransformation\x12\x33\n\ninfo_types\x18\x01 \x03(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12U\n\x18primitive_transformation\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationB\x03\xe0\x41\x02\"\xc0\x02\n\x13\x46ieldTransformation\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12\x39\n\tcondition\x18\x03 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition\x12R\n\x18primitive_transformation\x18\x04 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformationH\x00\x12S\n\x19info_type_transformations\x18\x05 \x01(\x0b\x32..google.privacy.dlp.v2.InfoTypeTransformationsH\x00\x42\x10\n\x0etransformation\"\xa9\x01\n\x15RecordTransformations\x12I\n\x15\x66ield_transformations\x18\x01 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x45\n\x13record_suppressions\x18\x02 \x03(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression\"N\n\x11RecordSuppression\x12\x39\n\tcondition\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.RecordCondition\"\xdc\x04\n\x0fRecordCondition\x12G\n\x0b\x65xpressions\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.RecordCondition.Expressions\x1a\xae\x01\n\tCondition\x12\x32\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldIdB\x03\xe0\x41\x02\x12@\n\x08operator\x18\x03 \x01(\x0e\x32).google.privacy.dlp.v2.RelationalOperatorB\x03\xe0\x41\x02\x12+\n\x05value\x18\x04 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value\x1aR\n\nConditions\x12\x44\n\nconditions\x18\x01 \x03(\x0b\x32\x30.google.privacy.dlp.v2.RecordCondition.Condition\x1a\xfa\x01\n\x0b\x45xpressions\x12\\\n\x10logical_operator\x18\x01 \x01(\x0e\x32\x42.google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator\x12G\n\nconditions\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.RecordCondition.ConditionsH\x00\"<\n\x0fLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x42\x06\n\x04type\"\x83\x01\n\x16TransformationOverview\x12\x19\n\x11transformed_bytes\x18\x02 \x01(\x03\x12N\n\x18transformation_summaries\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.TransformationSummary\"\x9f\x05\n\x15TransformationSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12-\n\x05\x66ield\x18\x02 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x46\n\x0etransformation\x18\x03 \x01(\x0b\x32..google.privacy.dlp.v2.PrimitiveTransformation\x12I\n\x15\x66ield_transformations\x18\x05 \x03(\x0b\x32*.google.privacy.dlp.v2.FieldTransformation\x12\x41\n\x0frecord_suppress\x18\x06 \x01(\x0b\x32(.google.privacy.dlp.v2.RecordSuppression\x12K\n\x07results\x18\x04 \x03(\x0b\x32:.google.privacy.dlp.v2.TransformationSummary.SummaryResult\x12\x19\n\x11transformed_bytes\x18\x07 \x01(\x03\x1a\x84\x01\n\rSummaryResult\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12S\n\x04\x63ode\x18\x02 \x01(\x0e\x32\x45.google.privacy.dlp.v2.TransformationSummary.TransformationResultCode\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\t\"^\n\x18TransformationResultCode\x12*\n&TRANSFORMATION_RESULT_CODE_UNSPECIFIED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\t\n\x05\x45RROR\x10\x02\"\xb0\x01\n\x19TransformationDescription\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).google.privacy.dlp.v2.TransformationType\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x11\n\tcondition\x18\x03 \x01(\t\x12\x32\n\tinfo_type\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"\xc6\x02\n\x15TransformationDetails\x12\x15\n\rresource_name\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12H\n\x0etransformation\x18\x03 \x03(\x0b\x32\x30.google.privacy.dlp.v2.TransformationDescription\x12I\n\x0estatus_details\x18\x04 \x01(\x0b\x32\x31.google.privacy.dlp.v2.TransformationResultStatus\x12\x19\n\x11transformed_bytes\x18\x05 \x01(\x03\x12N\n\x17transformation_location\x18\x06 \x01(\x0b\x32-.google.privacy.dlp.v2.TransformationLocation\"\xd9\x01\n\x16TransformationLocation\x12\x14\n\nfinding_id\x18\x01 \x01(\tH\x00\x12L\n\x15record_transformation\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.RecordTransformationH\x00\x12J\n\x0e\x63ontainer_type\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.TransformationContainerTypeB\x0f\n\rlocation_type\"\x9c\x01\n\x14RecordTransformation\x12\x30\n\x08\x66ield_id\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\x12\x37\n\x13\x63ontainer_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11\x63ontainer_version\x18\x03 \x01(\t\"\x94\x01\n\x1aTransformationResultStatus\x12Q\n\x12result_status_type\x18\x01 \x01(\x0e\x32\x35.google.privacy.dlp.v2.TransformationResultStatusType\x12#\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"c\n\"TransformationDetailsStorageConfig\x12\x35\n\x05table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTableH\x00\x42\x06\n\x04type\"U\n\x08Schedule\x12?\n\x1arecurrence_period_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x42\x08\n\x06option\"\x08\n\x06Manual\"\xc2\x04\n\x0fInspectTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x0einspect_config\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig:\xc6\x02\xea\x41\xc2\x02\n\"dlp.googleapis.com/InspectTemplate\x12@organizations/{organization}/inspectTemplates/{inspect_template}\x12\x36projects/{project}/inspectTemplates/{inspect_template}\x12Uorganizations/{organization}/locations/{location}/inspectTemplates/{inspect_template}\x12Kprojects/{project}/locations/{location}/inspectTemplates/{inspect_template}\"\xe6\x04\n\x12\x44\x65identifyTemplate\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x11\x64\x65identify_config\x18\x06 \x01(\x0b\x32\'.google.privacy.dlp.v2.DeidentifyConfig:\xe1\x02\xea\x41\xdd\x02\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46organizations/{organization}/deidentifyTemplates/{deidentify_template}\x12\n\x0binspect_job\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12;\n\x08triggers\x18\x05 \x03(\x0b\x32).google.privacy.dlp.v2.JobTrigger.Trigger\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12=\n\x06status\x18\n \x01(\x0e\x32(.google.privacy.dlp.v2.JobTrigger.StatusB\x03\xe0\x41\x02\x1az\n\x07Trigger\x12\x33\n\x08schedule\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.ScheduleH\x00\x12/\n\x06manual\x18\x02 \x01(\x0b\x32\x1d.google.privacy.dlp.v2.ManualH\x00\x42\t\n\x07trigger\"H\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07HEALTHY\x10\x01\x12\n\n\x06PAUSED\x10\x02\x12\r\n\tCANCELLED\x10\x03:\x94\x01\xea\x41\x90\x01\n\x1d\x64lp.googleapis.com/JobTrigger\x12,projects/{project}/jobTriggers/{job_trigger}\x12\x41projects/{project}/locations/{location}/jobTriggers/{job_trigger}B\x05\n\x03job\"\xea\x08\n\x06\x41\x63tion\x12\x43\n\rsave_findings\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.Action.SaveFindingsH\x00\x12@\n\x07pub_sub\x18\x02 \x01(\x0b\x32-.google.privacy.dlp.v2.Action.PublishToPubSubH\x00\x12U\n\x17publish_summary_to_cscc\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishSummaryToCsccH\x00\x12q\n&publish_findings_to_cloud_data_catalog\x18\x05 \x01(\x0b\x32?.google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalogH\x00\x12>\n\ndeidentify\x18\x07 \x01(\x0b\x32(.google.privacy.dlp.v2.Action.DeidentifyH\x00\x12V\n\x17job_notification_emails\x18\x08 \x01(\x0b\x32\x33.google.privacy.dlp.v2.Action.JobNotificationEmailsH\x00\x12T\n\x16publish_to_stackdriver\x18\t \x01(\x0b\x32\x32.google.privacy.dlp.v2.Action.PublishToStackdriverH\x00\x1aQ\n\x0cSaveFindings\x12\x41\n\routput_config\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.OutputStorageConfig\x1a \n\x0fPublishToPubSub\x12\r\n\x05topic\x18\x01 \x01(\t\x1a\x16\n\x14PublishSummaryToCscc\x1a#\n!PublishFindingsToCloudDataCatalog\x1a\xb3\x02\n\nDeidentify\x12J\n\x15transformation_config\x18\x07 \x01(\x0b\x32+.google.privacy.dlp.v2.TransformationConfig\x12h\n%transformation_details_storage_config\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.TransformationDetailsStorageConfig\x12#\n\x14\x63loud_storage_output\x18\t \x01(\tB\x03\xe0\x41\x02H\x00\x12@\n\x17\x66ile_types_to_transform\x18\x08 \x03(\x0e\x32\x1f.google.privacy.dlp.v2.FileTypeB\x08\n\x06output\x1a\x17\n\x15JobNotificationEmails\x1a\x16\n\x14PublishToStackdriverB\x08\n\x06\x61\x63tion\"z\n\x14TransformationConfig\x12\x1b\n\x13\x64\x65identify_template\x18\x01 \x01(\t\x12&\n\x1estructured_deidentify_template\x18\x02 \x01(\t\x12\x1d\n\x15image_redact_template\x18\x04 \x01(\t\"\xcb\x01\n\x1c\x43reateInspectTemplateRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/InspectTemplate\x12\x45\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplateB\x03\xe0\x41\x02\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"\xcb\x01\n\x1cUpdateInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/InspectTemplate\x12@\n\x10inspect_template\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"U\n\x19GetInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/InspectTemplate\"\xa7\x01\n\x1bListInspectTemplatesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/InspectTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"z\n\x1cListInspectTemplatesResponse\x12\x41\n\x11inspect_templates\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.InspectTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x1c\x44\x65leteInspectTemplateRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/InspectTemplate\"\xb6\x01\n\x17\x43reateJobTriggerRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\x12;\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTriggerB\x03\xe0\x41\x02\x12\x12\n\ntrigger_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"P\n\x19\x41\x63tivateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\"\xb7\x01\n\x17UpdateJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12\x36\n\x0bjob_trigger\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"K\n\x14GetJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\"\xb4\x01\n\x1c\x43reateDiscoveryConfigRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12\x11\n\tconfig_id\x18\x03 \x01(\t\"\xd0\x01\n\x1cUpdateDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\x12\x45\n\x10\x64iscovery_config\x18\x02 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"U\n\x19GetDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\x92\x01\n\x1bListDiscoveryConfigsRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"dlp.googleapis.com/DiscoveryConfig\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\"z\n\x1cListDiscoveryConfigsResponse\x12\x41\n\x11\x64iscovery_configs\x18\x01 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"X\n\x1c\x44\x65leteDiscoveryConfigRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"dlp.googleapis.com/DiscoveryConfig\"\xf6\x01\n\x13\x43reateDlpJobRequest\x12\x31\n\x06parent\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\x12>\n\x0binspect_job\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.InspectJobConfigH\x00\x12@\n\x08risk_job\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.RiskAnalysisJobConfigH\x00\x12\x0e\n\x06job_id\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\tB\x05\n\x03job\"\xde\x01\n\x16ListJobTriggersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/JobTrigger\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\x12/\n\x04type\x18\x06 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"k\n\x17ListJobTriggersResponse\x12\x37\n\x0cjob_triggers\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.JobTrigger\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"N\n\x17\x44\x65leteJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\"\xdd\x01\n\x10InspectJobConfig\x12<\n\x0estorage_config\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.StorageConfig\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12\x1d\n\x15inspect_template_name\x18\x03 \x01(\t\x12.\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Action\"\xf2\r\n\x11\x44\x61taProfileAction\x12\x46\n\x0b\x65xport_data\x18\x01 \x01(\x0b\x32/.google.privacy.dlp.v2.DataProfileAction.ExportH\x00\x12[\n\x14pub_sub_notification\x18\x02 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PubSubNotificationH\x00\x12[\n\x14publish_to_chronicle\x18\x03 \x01(\x0b\x32;.google.privacy.dlp.v2.DataProfileAction.PublishToChronicleH\x00\x12\x61\n\x0epublish_to_scc\x18\x04 \x01(\x0b\x32G.google.privacy.dlp.v2.DataProfileAction.PublishToSecurityCommandCenterH\x00\x12N\n\rtag_resources\x18\x08 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DataProfileAction.TagResourcesH\x00\x12h\n\x1bpublish_to_dataplex_catalog\x18\t \x01(\x0b\x32\x41.google.privacy.dlp.v2.DataProfileAction.PublishToDataplexCatalogH\x00\x1a\x8a\x01\n\x06\x45xport\x12;\n\rprofile_table\x18\x01 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x43\n\x15sample_findings_table\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x1a\x82\x03\n\x12PubSubNotification\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\x12K\n\x10pubsub_condition\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfilePubSubCondition\x12\x62\n\x11\x64\x65tail_of_message\x18\x04 \x01(\x0e\x32G.google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel\"i\n\x0b\x44\x65tailLevel\x12\x1c\n\x18\x44\x45TAIL_LEVEL_UNSPECIFIED\x10\x00\x12\x11\n\rTABLE_PROFILE\x10\x01\x12\x11\n\rRESOURCE_NAME\x10\x02\x12\x16\n\x12\x46ILE_STORE_PROFILE\x10\x03\x1a\x14\n\x12PublishToChronicle\x1a \n\x1ePublishToSecurityCommandCenter\x1a:\n\x18PublishToDataplexCatalog\x12\x1e\n\x16lower_data_risk_to_low\x18\x01 \x01(\x08\x1a\xb6\x03\n\x0cTagResources\x12Z\n\x0etag_conditions\x18\x01 \x03(\x0b\x32\x42.google.privacy.dlp.v2.DataProfileAction.TagResources.TagCondition\x12L\n\x1aprofile_generations_to_tag\x18\x02 \x03(\x0e\x32(.google.privacy.dlp.v2.ProfileGeneration\x12\x1e\n\x16lower_data_risk_to_low\x18\x03 \x01(\x08\x1a\xa9\x01\n\x0cTagCondition\x12K\n\x03tag\x18\x01 \x01(\x0b\x32>.google.privacy.dlp.v2.DataProfileAction.TagResources.TagValue\x12\x44\n\x11sensitivity_score\x18\x02 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScoreH\x00\x42\x06\n\x04type\x1a\x30\n\x08TagValue\x12\x1a\n\x10namespaced_value\x18\x01 \x01(\tH\x00\x42\x08\n\x06\x66ormat\"u\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_PROFILE\x10\x01\x12\x13\n\x0f\x43HANGED_PROFILE\x10\x02\x12\x13\n\x0fSCORE_INCREASED\x10\x03\x12\x11\n\rERROR_CHANGED\x10\x04\x42\x08\n\x06\x61\x63tion\"\xdd\x03\n\x12\x44\x61taProfileFinding\x12\r\n\x05quote\x18\x01 \x01(\t\x12\x31\n\x08infotype\x18\x02 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x34\n\nquote_info\x18\x03 \x01(\x0b\x32 .google.privacy.dlp.v2.QuoteInfo\x12\"\n\x1a\x64\x61ta_profile_resource_name\x18\x04 \x01(\t\x12\x12\n\nfinding_id\x18\x05 \x01(\t\x12-\n\ttimestamp\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x08location\x18\x07 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DataProfileFindingLocation\x12\x46\n\x13resource_visibility\x18\x08 \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x1a\n\x12\x66ull_resource_name\x18\t \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\n \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\"\xb7\x01\n\x1a\x44\x61taProfileFindingLocation\x12\x16\n\x0e\x63ontainer_name\x18\x01 \x01(\t\x12g\n$data_profile_finding_record_location\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DataProfileFindingRecordLocationH\x00\x42\x18\n\x16location_extra_details\"Q\n DataProfileFindingRecordLocation\x12-\n\x05\x66ield\x18\x01 \x01(\x0b\x32\x1e.google.privacy.dlp.v2.FieldId\"\xae\x02\n\x14\x44\x61taProfileJobConfig\x12<\n\x08location\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.DataProfileLocation\x12\x12\n\nproject_id\x18\x05 \x01(\t\x12\x61\n\x1dother_cloud_starting_location\x18\x08 \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x07 \x03(\t\x12\x46\n\x14\x64\x61ta_profile_actions\x18\x06 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\"[\n\rBigQueryRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x18\n\x10\x64\x61taset_id_regex\x18\x02 \x01(\t\x12\x16\n\x0etable_id_regex\x18\x03 \x01(\t\"I\n\x0f\x42igQueryRegexes\x12\x36\n\x08patterns\x18\x01 \x03(\x0b\x32$.google.privacy.dlp.v2.BigQueryRegex\"M\n\x12\x42igQueryTableTypes\x12\x37\n\x05types\x18\x01 \x03(\x0e\x32(.google.privacy.dlp.v2.BigQueryTableType\"\n\n\x08\x44isabled\"Q\n\x13\x44\x61taProfileLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\xeb\x07\n\x0f\x44iscoveryConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x0b \x01(\t\x12\x44\n\norg_config\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryConfig.OrgConfig\x12\x61\n\x1dother_cloud_starting_location\x18\x0c \x01(\x0b\x32:.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation\x12\x19\n\x11inspect_templates\x18\x03 \x03(\t\x12\x39\n\x07\x61\x63tions\x18\x04 \x03(\x0b\x32(.google.privacy.dlp.v2.DataProfileAction\x12\x37\n\x07targets\x18\x05 \x03(\x0b\x32&.google.privacy.dlp.v2.DiscoveryTarget\x12\x31\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rlast_run_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06status\x18\n \x01(\x0e\x32-.google.privacy.dlp.v2.DiscoveryConfig.StatusB\x03\xe0\x41\x02\x12K\n\x13processing_location\x18\r \x01(\x0b\x32).google.privacy.dlp.v2.ProcessingLocationB\x03\xe0\x41\x01\x1a\x63\n\tOrgConfig\x12\x42\n\x08location\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryStartingLocation\x12\x12\n\nproject_id\x18\x02 \x01(\t\"9\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06PAUSED\x10\x02:t\xea\x41q\n\"dlp.googleapis.com/DiscoveryConfig\x12Kprojects/{project}/locations/{location}/discoveryConfigs/{discovery_config}\"\xf6\x03\n\x0f\x44iscoveryTarget\x12J\n\x10\x62ig_query_target\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryDiscoveryTargetH\x00\x12J\n\x10\x63loud_sql_target\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.CloudSqlDiscoveryTargetH\x00\x12G\n\x0esecrets_target\x18\x03 \x01(\x0b\x32-.google.privacy.dlp.v2.SecretsDiscoveryTargetH\x00\x12R\n\x14\x63loud_storage_target\x18\x04 \x01(\x0b\x32\x32.google.privacy.dlp.v2.CloudStorageDiscoveryTargetH\x00\x12N\n\x12other_cloud_target\x18\x05 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudDiscoveryTargetH\x00\x12T\n\x15vertex_dataset_target\x18\x07 \x01(\x0b\x32\x33.google.privacy.dlp.v2.VertexDatasetDiscoveryTargetH\x00\x42\x08\n\x06target\"\xae\x02\n\x17\x42igQueryDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryBigQueryFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryBigQueryConditions\x12\x44\n\x07\x63\x61\x64\x65nce\x18\x03 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DiscoveryGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\x0b\n\tfrequency\"\xa0\x02\n\x17\x44iscoveryBigQueryFilter\x12@\n\x06tables\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.BigQueryTableCollectionH\x00\x12]\n\x0cother_tables\x18\x02 \x01(\x0b\x32\x45.google.privacy.dlp.v2.DiscoveryBigQueryFilter.AllOtherBigQueryTablesH\x00\x12@\n\x0ftable_reference\x18\x03 \x01(\x0b\x32%.google.privacy.dlp.v2.TableReferenceH\x00\x1a\x18\n\x16\x41llOtherBigQueryTablesB\x08\n\x06\x66ilter\"g\n\x17\x42igQueryTableCollection\x12\x41\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.BigQueryRegexesH\x00\x42\t\n\x07pattern\"\x98\x03\n\x1b\x44iscoveryBigQueryConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12:\n\x05types\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.BigQueryTableTypesH\x00\x12M\n\x0ftype_collection\x18\x03 \x01(\x0e\x32\x32.google.privacy.dlp.v2.BigQueryTableTypeCollectionH\x00\x12V\n\ror_conditions\x18\x04 \x01(\x0b\x32?.google.privacy.dlp.v2.DiscoveryBigQueryConditions.OrConditions\x1aQ\n\x0cOrConditions\x12\x15\n\rmin_row_count\x18\x01 \x01(\x05\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x10\n\x0eincluded_types\"\x83\x03\n\x1a\x44iscoveryGenerationCadence\x12V\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32\x35.google.privacy.dlp.v2.DiscoverySchemaModifiedCadence\x12T\n\x16table_modified_cadence\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryTableModifiedCadence\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x12L\n\x11refresh_frequency\x18\x04 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa6\x01\n\x1d\x44iscoveryTableModifiedCadence\x12?\n\x05types\x18\x01 \x03(\x0e\x32\x30.google.privacy.dlp.v2.BigQueryTableModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xa8\x01\n\x1e\x44iscoverySchemaModifiedCadence\x12@\n\x05types\x18\x01 \x03(\x0e\x32\x31.google.privacy.dlp.v2.BigQuerySchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"o\n\'DiscoveryInspectTemplateModifiedCadence\x12\x44\n\tfrequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"\xbf\x02\n\x17\x43loudSqlDiscoveryTarget\x12\x43\n\x06\x66ilter\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DiscoveryCloudSqlFilterB\x03\xe0\x41\x02\x12\x46\n\nconditions\x18\x02 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudSqlConditions\x12W\n\x12generation_cadence\x18\x03 \x01(\x0b\x32\x39.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x89\x02\n\x17\x44iscoveryCloudSqlFilter\x12G\n\ncollection\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.DatabaseResourceCollectionH\x00\x12\x42\n\x06others\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.AllOtherDatabaseResourcesH\x00\x12W\n\x1b\x64\x61tabase_resource_reference\x18\x03 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DatabaseResourceReferenceH\x00\x42\x08\n\x06\x66ilter\"r\n\x1a\x44\x61tabaseResourceCollection\x12I\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.DatabaseResourceRegexesH\x00\x42\t\n\x07pattern\"Y\n\x17\x44\x61tabaseResourceRegexes\x12>\n\x08patterns\x18\x01 \x03(\x0b\x32,.google.privacy.dlp.v2.DatabaseResourceRegex\"\x87\x01\n\x15\x44\x61tabaseResourceRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\x12\x16\n\x0einstance_regex\x18\x02 \x01(\t\x12\x16\n\x0e\x64\x61tabase_regex\x18\x03 \x01(\t\x12$\n\x1c\x64\x61tabase_resource_name_regex\x18\x04 \x01(\t\"\x1b\n\x19\x41llOtherDatabaseResources\"\x82\x01\n\x19\x44\x61tabaseResourceReference\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08instance\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08\x64\x61tabase\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11\x64\x61tabase_resource\x18\x04 \x01(\tB\x03\xe0\x41\x02\"\xda\x03\n\x1b\x44iscoveryCloudSqlConditions\x12`\n\x10\x64\x61tabase_engines\x18\x01 \x03(\x0e\x32\x41.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseEngineB\x03\xe0\x41\x01\x12V\n\x05types\x18\x03 \x03(\x0e\x32G.google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseResourceType\"n\n\x0e\x44\x61tabaseEngine\x12\x1f\n\x1b\x44\x41TABASE_ENGINE_UNSPECIFIED\x10\x00\x12\"\n\x1e\x41LL_SUPPORTED_DATABASE_ENGINES\x10\x01\x12\t\n\x05MYSQL\x10\x02\x12\x0c\n\x08POSTGRES\x10\x03\"\x90\x01\n\x14\x44\x61tabaseResourceType\x12&\n\"DATABASE_RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12.\n*DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES\x10\x01\x12 \n\x1c\x44\x41TABASE_RESOURCE_TYPE_TABLE\x10\x02\"\x97\x05\n\"DiscoveryCloudSqlGenerationCadence\x12p\n\x17schema_modified_cadence\x18\x01 \x01(\x0b\x32O.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence\x12L\n\x11refresh_frequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\x1a\xc5\x02\n\x15SchemaModifiedCadence\x12y\n\x05types\x18\x01 \x03(\x0e\x32j.google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence.CloudSqlSchemaModification\x12\x44\n\tfrequency\x18\x02 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\"k\n\x1a\x43loudSqlSchemaModification\x12\'\n#SQL_SCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x0f\n\x0bNEW_COLUMNS\x10\x01\x12\x13\n\x0fREMOVED_COLUMNS\x10\x02\"\x18\n\x16SecretsDiscoveryTarget\"\xdb\x02\n\x1b\x43loudStorageDiscoveryTarget\x12G\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x32.google.privacy.dlp.v2.DiscoveryCloudStorageFilterB\x03\xe0\x41\x02\x12L\n\nconditions\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryFileStoreConditionsB\x03\xe0\x41\x01\x12`\n\x12generation_cadence\x18\x02 \x01(\x0b\x32=.google.privacy.dlp.v2.DiscoveryCloudStorageGenerationCadenceB\x03\xe0\x41\x01H\x00\x12\x38\n\x08\x64isabled\x18\x03 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledB\x03\xe0\x41\x01H\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x96\x02\n\x1b\x44iscoveryCloudStorageFilter\x12\x45\n\ncollection\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.FileStoreCollectionB\x03\xe0\x41\x01H\x00\x12\x65\n cloud_storage_resource_reference\x18\x02 \x01(\x0b\x32\x34.google.privacy.dlp.v2.CloudStorageResourceReferenceB\x03\xe0\x41\x01H\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"i\n\x13\x46ileStoreCollection\x12G\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.FileStoreRegexesB\x03\xe0\x41\x01H\x00\x42\t\n\x07pattern\"P\n\x10\x46ileStoreRegexes\x12<\n\x08patterns\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.FileStoreRegexB\x03\xe0\x41\x02\"p\n\x0e\x46ileStoreRegex\x12L\n\x13\x63loud_storage_regex\x18\x01 \x01(\x0b\x32(.google.privacy.dlp.v2.CloudStorageRegexB\x03\xe0\x41\x01H\x00\x42\x10\n\x0eresource_regex\"R\n\x11\x43loudStorageRegex\x12\x1d\n\x10project_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"R\n\x1d\x43loudStorageResourceReference\x12\x18\n\x0b\x62ucket_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nproject_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xeb\x01\n&DiscoveryCloudStorageGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"\x9b\x05\n\x1f\x44iscoveryCloudStorageConditions\x12{\n\x1aincluded_object_attributes\x18\x01 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageObjectAttributeB\x03\xe0\x41\x02\x12{\n\x1aincluded_bucket_attributes\x18\x02 \x03(\x0e\x32R.google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageBucketAttributeB\x03\xe0\x41\x02\"\xe3\x01\n\x1b\x43loudStorageObjectAttribute\x12.\n*CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_OBJECTS\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x0c\n\x08NEARLINE\x10\x03\x12\x0c\n\x08\x43OLDLINE\x10\x04\x12\x0b\n\x07\x41RCHIVE\x10\x05\x12\x0c\n\x08REGIONAL\x10\x06\x12\x12\n\x0eMULTI_REGIONAL\x10\x07\x12 \n\x1c\x44URABLE_REDUCED_AVAILABILITY\x10\x08\"\x97\x01\n\x1b\x43loudStorageBucketAttribute\x12.\n*CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_BUCKETS\x10\x01\x12\x16\n\x12\x41UTOCLASS_DISABLED\x10\x02\x12\x15\n\x11\x41UTOCLASS_ENABLED\x10\x03\"\xf6\x01\n\x1c\x44iscoveryFileStoreConditions\x12\x36\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12/\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12_\n\x18\x63loud_storage_conditions\x18\x03 \x01(\x0b\x32\x36.google.privacy.dlp.v2.DiscoveryCloudStorageConditionsB\x03\xe0\x41\x01H\x00\x42\x0c\n\nconditions\"\x92\x03\n\x19OtherCloudDiscoveryTarget\x12\x44\n\x10\x64\x61ta_source_type\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceTypeB\x03\xe0\x41\x02\x12\x45\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DiscoveryOtherCloudFilterB\x03\xe0\x41\x02\x12M\n\nconditions\x18\x03 \x01(\x0b\x32\x34.google.privacy.dlp.v2.DiscoveryOtherCloudConditionsB\x03\xe0\x41\x01\x12Y\n\x12generation_cadence\x18\x04 \x01(\x0b\x32;.google.privacy.dlp.v2.DiscoveryOtherCloudGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x05 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x86\x02\n\x19\x44iscoveryOtherCloudFilter\x12I\n\ncollection\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.OtherCloudResourceCollectionH\x00\x12S\n\x0fsingle_resource\x18\x02 \x01(\x0b\x32\x38.google.privacy.dlp.v2.OtherCloudSingleResourceReferenceH\x00\x12?\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesB\x03\xe0\x41\x01H\x00\x42\x08\n\x06\x66ilter\"v\n\x1cOtherCloudResourceCollection\x12K\n\x0finclude_regexes\x18\x01 \x01(\x0b\x32\x30.google.privacy.dlp.v2.OtherCloudResourceRegexesH\x00\x42\t\n\x07pattern\"]\n\x19OtherCloudResourceRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32..google.privacy.dlp.v2.OtherCloudResourceRegex\"y\n\x17OtherCloudResourceRegex\x12L\n\x16\x61mazon_s3_bucket_regex\x18\x01 \x01(\x0b\x32*.google.privacy.dlp.v2.AmazonS3BucketRegexH\x00\x42\x10\n\x0eresource_regex\"0\n\x0f\x41wsAccountRegex\x12\x1d\n\x10\x61\x63\x63ount_id_regex\x18\x01 \x01(\tB\x03\xe0\x41\x01\"x\n\x13\x41mazonS3BucketRegex\x12\x41\n\x11\x61ws_account_regex\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.AwsAccountRegex\x12\x1e\n\x11\x62ucket_name_regex\x18\x02 \x01(\tB\x03\xe0\x41\x01\"r\n!OtherCloudSingleResourceReference\x12\x41\n\x10\x61mazon_s3_bucket\x18\x01 \x01(\x0b\x32%.google.privacy.dlp.v2.AmazonS3BucketH\x00\x42\n\n\x08resource\"%\n\nAwsAccount\x12\x17\n\naccount_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"b\n\x0e\x41mazonS3Bucket\x12\x36\n\x0b\x61ws_account\x18\x01 \x01(\x0b\x32!.google.privacy.dlp.v2.AwsAccount\x12\x18\n\x0b\x62ucket_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xb1\x01\n\x1d\x44iscoveryOtherCloudConditions\x12*\n\x07min_age\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12V\n\x1b\x61mazon_s3_bucket_conditions\x18\x02 \x01(\x0b\x32/.google.privacy.dlp.v2.AmazonS3BucketConditionsH\x00\x42\x0c\n\nconditions\"\xd9\x03\n\x18\x41mazonS3BucketConditions\x12U\n\x0c\x62ucket_types\x18\x01 \x03(\x0e\x32:.google.privacy.dlp.v2.AmazonS3BucketConditions.BucketTypeB\x03\xe0\x41\x01\x12g\n\x16object_storage_classes\x18\x02 \x03(\x0e\x32\x42.google.privacy.dlp.v2.AmazonS3BucketConditions.ObjectStorageClassB\x03\xe0\x41\x01\"T\n\nBucketType\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_ALL_SUPPORTED\x10\x01\x12\x18\n\x14TYPE_GENERAL_PURPOSE\x10\x02\"\xa6\x01\n\x12ObjectStorageClass\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x19\n\x15\x41LL_SUPPORTED_CLASSES\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x12\x1e\n\x1aSTANDARD_INFREQUENT_ACCESS\x10\x04\x12\x1d\n\x19GLACIER_INSTANT_RETRIEVAL\x10\x06\x12\x17\n\x13INTELLIGENT_TIERING\x10\x07\"\xe9\x01\n$DiscoveryOtherCloudGenerationCadence\x12Q\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequencyB\x03\xe0\x41\x01\x12n\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadenceB\x03\xe0\x41\x01\"W\n\x19\x44iscoveryStartingLocation\x12\x19\n\x0forganization_id\x18\x01 \x01(\x03H\x00\x12\x13\n\tfolder_id\x18\x02 \x01(\x03H\x00\x42\n\n\x08location\"\x87\x02\n#OtherCloudDiscoveryStartingLocation\x12o\n\x0c\x61ws_location\x18\x01 \x01(\x0b\x32W.google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocationH\x00\x1a\x63\n\x1c\x41wsDiscoveryStartingLocation\x12\x14\n\naccount_id\x18\x02 \x01(\tH\x00\x12$\n\x1a\x61ll_asset_inventory_assets\x18\x03 \x01(\x08H\x00\x42\x07\n\x05scopeB\n\n\x08location\"\x13\n\x11\x41llOtherResources\"\xd3\x02\n\x1cVertexDatasetDiscoveryTarget\x12H\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\x33.google.privacy.dlp.v2.DiscoveryVertexDatasetFilterB\x03\xe0\x41\x02\x12K\n\nconditions\x18\x02 \x01(\x0b\x32\x37.google.privacy.dlp.v2.DiscoveryVertexDatasetConditions\x12\\\n\x12generation_cadence\x18\x03 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryVertexDatasetGenerationCadenceH\x00\x12\x33\n\x08\x64isabled\x18\x04 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.DisabledH\x00\x42\t\n\x07\x63\x61\x64\x65nce\"\x8e\x02\n\x1c\x44iscoveryVertexDatasetFilter\x12\x44\n\ncollection\x18\x01 \x01(\x0b\x32..google.privacy.dlp.v2.VertexDatasetCollectionH\x00\x12\x62\n!vertex_dataset_resource_reference\x18\x02 \x01(\x0b\x32\x35.google.privacy.dlp.v2.VertexDatasetResourceReferenceH\x00\x12:\n\x06others\x18\x64 \x01(\x0b\x32(.google.privacy.dlp.v2.AllOtherResourcesH\x00\x42\x08\n\x06\x66ilter\"s\n\x17VertexDatasetCollection\x12M\n\x16vertex_dataset_regexes\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.VertexDatasetRegexesH\x00\x42\t\n\x07pattern\"X\n\x14VertexDatasetRegexes\x12@\n\x08patterns\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.VertexDatasetRegexB\x03\xe0\x41\x02\".\n\x12VertexDatasetRegex\x12\x18\n\x10project_id_regex\x18\x01 \x01(\t\"D\n\x1eVertexDatasetResourceReference\x12\"\n\x15\x64\x61taset_resource_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x81\x01\n DiscoveryVertexDatasetConditions\x12\x31\n\rcreated_after\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x07min_age\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xe2\x01\n\'DiscoveryVertexDatasetGenerationCadence\x12L\n\x11refresh_frequency\x18\x01 \x01(\x0e\x32\x31.google.privacy.dlp.v2.DataProfileUpdateFrequency\x12i\n!inspect_template_modified_cadence\x18\x02 \x01(\x0b\x32>.google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence\"\xdc\x06\n\x06\x44lpJob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x04type\x18\x02 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32&.google.privacy.dlp.v2.DlpJob.JobState\x12K\n\x0crisk_details\x18\x04 \x01(\x0b\x32\x33.google.privacy.dlp.v2.AnalyzeDataSourceRiskDetailsH\x00\x12J\n\x0finspect_details\x18\x05 \x01(\x0b\x32/.google.privacy.dlp.v2.InspectDataSourceDetailsH\x00\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_modified\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10job_trigger_name\x18\n \x01(\t\x12,\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12<\n\x0e\x61\x63tion_details\x18\x0c \x03(\x0b\x32$.google.privacy.dlp.v2.ActionDetails\"o\n\x08JobState\x12\x19\n\x15JOB_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x08\n\x04\x44ONE\x10\x03\x12\x0c\n\x08\x43\x41NCELED\x10\x04\x12\n\n\x06\x46\x41ILED\x10\x05\x12\n\n\x06\x41\x43TIVE\x10\x06:\x7f\xea\x41|\n\x19\x64lp.googleapis.com/DlpJob\x12$projects/{project}/dlpJobs/{dlp_job}\x12\x39projects/{project}/locations/{location}/dlpJobs/{dlp_job}B\t\n\x07\x64\x65tails\"C\n\x10GetDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"\xd6\x01\n\x12ListDlpJobsRequest\x12\x31\n\x06parent\x18\x04 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\x12\x19\x64lp.googleapis.com/DlpJob\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.google.privacy.dlp.v2.DlpJobType\x12\x10\n\x08order_by\x18\x06 \x01(\t\x12\x13\n\x0blocation_id\x18\x07 \x01(\t\"[\n\x13ListDlpJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x1d.google.privacy.dlp.v2.DlpJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"F\n\x13\x43\x61ncelDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"F\n\x13\x46inishDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"F\n\x13\x44\x65leteDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\"\xd7\x01\n\x1f\x43reateDeidentifyTemplateRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12K\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplateB\x03\xe0\x41\x02\x12\x13\n\x0btemplate_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"\xd7\x01\n\x1fUpdateDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\x12\x46\n\x13\x64\x65identify_template\x18\x02 \x01(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"[\n\x1cGetDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\"\xad\x01\n\x1eListDeidentifyTemplatesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/DeidentifyTemplate\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"\x83\x01\n\x1fListDeidentifyTemplatesResponse\x12G\n\x14\x64\x65identify_templates\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.DeidentifyTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"^\n\x1f\x44\x65leteDeidentifyTemplateRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/DeidentifyTemplate\"\xf4\x01\n\x1bLargeCustomDictionaryConfig\x12<\n\x0boutput_path\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.CloudStoragePath\x12L\n\x16\x63loud_storage_file_set\x18\x02 \x01(\x0b\x32*.google.privacy.dlp.v2.CloudStorageFileSetH\x00\x12?\n\x0f\x62ig_query_field\x18\x03 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryFieldH\x00\x42\x08\n\x06source\"8\n\x1aLargeCustomDictionaryStats\x12\x1a\n\x12\x61pprox_num_phrases\x18\x01 \x01(\x03\"\xa6\x02\n\x14StoredInfoTypeConfig\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12U\n\x17large_custom_dictionary\x18\x03 \x01(\x0b\x32\x32.google.privacy.dlp.v2.LargeCustomDictionaryConfigH\x00\x12\x46\n\ndictionary\x18\x04 \x01(\x0b\x32\x30.google.privacy.dlp.v2.CustomInfoType.DictionaryH\x00\x12<\n\x05regex\x18\x05 \x01(\x0b\x32+.google.privacy.dlp.v2.CustomInfoType.RegexH\x00\x42\x06\n\x04type\"s\n\x13StoredInfoTypeStats\x12T\n\x17large_custom_dictionary\x18\x01 \x01(\x0b\x32\x31.google.privacy.dlp.v2.LargeCustomDictionaryStatsH\x00\x42\x06\n\x04type\"\xa9\x02\n\x15StoredInfoTypeVersion\x12;\n\x06\x63onfig\x18\x01 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\x05state\x18\x03 \x01(\x0e\x32*.google.privacy.dlp.v2.StoredInfoTypeState\x12,\n\x06\x65rrors\x18\x04 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12\x39\n\x05stats\x18\x05 \x01(\x0b\x32*.google.privacy.dlp.v2.StoredInfoTypeStats\"\xf1\x03\n\x0eStoredInfoType\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x45\n\x0f\x63urrent_version\x18\x02 \x01(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion\x12\x46\n\x10pending_versions\x18\x03 \x03(\x0b\x32,.google.privacy.dlp.v2.StoredInfoTypeVersion:\xc1\x02\xea\x41\xbd\x02\n!dlp.googleapis.com/StoredInfoType\x12?organizations/{organization}/storedInfoTypes/{stored_info_type}\x12\x35projects/{project}/storedInfoTypes/{stored_info_type}\x12Torganizations/{organization}/locations/{location}/storedInfoTypes/{stored_info_type}\x12Jprojects/{project}/locations/{location}/storedInfoTypes/{stored_info_type}\"\xcc\x01\n\x1b\x43reateStoredInfoTypeRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12@\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfigB\x03\xe0\x41\x02\x12\x1b\n\x13stored_info_type_id\x18\x03 \x01(\t\x12\x13\n\x0blocation_id\x18\x04 \x01(\t\"\xc4\x01\n\x1bUpdateStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\x12;\n\x06\x63onfig\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.StoredInfoTypeConfig\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"S\n\x18GetStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\"\xa5\x01\n\x1aListStoredInfoTypesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!dlp.googleapis.com/StoredInfoType\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x13\n\x0blocation_id\x18\x05 \x01(\t\"x\n\x1bListStoredInfoTypesResponse\x12@\n\x11stored_info_types\x18\x01 \x03(\x0b\x32%.google.privacy.dlp.v2.StoredInfoType\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"V\n\x1b\x44\x65leteStoredInfoTypeRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!dlp.googleapis.com/StoredInfoType\"\x94\x01\n\x1eHybridInspectJobTriggerRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/JobTrigger\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8c\x01\n\x1aHybridInspectDlpJobRequest\x12/\n\x04name\x18\x01 \x01(\tB!\xe0\x41\x02\xfa\x41\x1b\n\x19\x64lp.googleapis.com/DlpJob\x12=\n\x0bhybrid_item\x18\x03 \x01(\x0b\x32(.google.privacy.dlp.v2.HybridContentItem\"\x8b\x01\n\x11HybridContentItem\x12\x30\n\x04item\x18\x01 \x01(\x0b\x32\".google.privacy.dlp.v2.ContentItem\x12\x44\n\x0f\x66inding_details\x18\x02 \x01(\x0b\x32+.google.privacy.dlp.v2.HybridFindingDetails\"\xb0\x02\n\x14HybridFindingDetails\x12;\n\x11\x63ontainer_details\x18\x01 \x01(\x0b\x32 .google.privacy.dlp.v2.Container\x12\x13\n\x0b\x66ile_offset\x18\x02 \x01(\x03\x12\x12\n\nrow_offset\x18\x03 \x01(\x03\x12:\n\rtable_options\x18\x04 \x01(\x0b\x32#.google.privacy.dlp.v2.TableOptions\x12G\n\x06labels\x18\x05 \x03(\x0b\x32\x37.google.privacy.dlp.v2.HybridFindingDetails.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x17\n\x15HybridInspectResponse\"\xa8\x01\n\x1eListProjectDataProfilesRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%dlp.googleapis.com/ProjectDataProfile\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"\x84\x01\n\x1fListProjectDataProfilesResponse\x12H\n\x15project_data_profiles\x18\x01 \x03(\x0b\x32).google.privacy.dlp.v2.ProjectDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa4\x01\n\x1cListTableDataProfilesRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#dlp.googleapis.com/TableDataProfile\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"~\n\x1dListTableDataProfilesResponse\x12\x44\n\x13table_data_profiles\x18\x01 \x03(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xa6\x01\n\x1dListColumnDataProfilesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$dlp.googleapis.com/ColumnDataProfile\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"\x81\x01\n\x1eListColumnDataProfilesResponse\x12\x46\n\x14\x63olumn_data_profiles\x18\x01 \x03(\x0b\x32(.google.privacy.dlp.v2.ColumnDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xcb\x01\n\rDataRiskLevel\x12\x46\n\x05score\x18\x01 \x01(\x0e\x32\x37.google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore\"r\n\x12\x44\x61taRiskLevelScore\x12\x1a\n\x16RISK_SCORE_UNSPECIFIED\x10\x00\x12\x0c\n\x08RISK_LOW\x10\n\x12\x10\n\x0cRISK_UNKNOWN\x10\x0c\x12\x11\n\rRISK_MODERATE\x10\x14\x12\r\n\tRISK_HIGH\x10\x1e\"\xdc\x04\n\x12ProjectDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x11sensitivity_score\x18\x04 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x05 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12<\n\x0eprofile_status\x18\x07 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12 \n\x18table_data_profile_count\x18\t \x01(\x03\x12%\n\x1d\x66ile_store_data_profile_count\x18\n \x01(\x03:\xdd\x01\xea\x41\xd9\x01\n%dlp.googleapis.com/ProjectDataProfile\x12\\organizations/{organization}/locations/{location}/projectDataProfiles/{project_data_profile}\x12Rprojects/{project}/locations/{location}/projectDataProfiles/{project_data_profile}\"\xc9\x02\n\x19\x44\x61taProfileConfigSnapshot\x12<\n\x0einspect_config\x18\x02 \x01(\x0b\x32$.google.privacy.dlp.v2.InspectConfig\x12I\n\x10\x64\x61ta_profile_job\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.DataProfileJobConfigB\x02\x18\x01\x12@\n\x10\x64iscovery_config\x18\x04 \x01(\x0b\x32&.google.privacy.dlp.v2.DiscoveryConfig\x12\x1d\n\x15inspect_template_name\x18\x05 \x01(\t\x12\x42\n\x1einspect_template_modified_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x93\x0e\n\x10TableDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18$ \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x02 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x18 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x1d \x01(\t\x12\x12\n\ndataset_id\x18\x19 \x01(\t\x12\x10\n\x08table_id\x18\x1a \x01(\t\x12\x15\n\rfull_resource\x18\x03 \x01(\t\x12<\n\x0eprofile_status\x18\x15 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12<\n\x05state\x18\x16 \x01(\x0e\x32-.google.privacy.dlp.v2.TableDataProfile.State\x12\x42\n\x11sensitivity_score\x18\x05 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x06 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12\x44\n\x14predicted_info_types\x18\x1b \x03(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x45\n\x10other_info_types\x18\x1c \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12\x36\n\x12last_modified_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x65xpiration_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x14scanned_column_count\x18\n \x01(\x03\x12\x1b\n\x13\x66\x61iled_column_count\x18\x0b \x01(\x03\x12\x18\n\x10table_size_bytes\x18\x0c \x01(\x03\x12\x11\n\trow_count\x18\r \x01(\x03\x12\x42\n\x11\x65ncryption_status\x18\x0e \x01(\x0e\x32\'.google.privacy.dlp.v2.EncryptionStatus\x12\x46\n\x13resource_visibility\x18\x0f \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12:\n\x16profile_last_generated\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12T\n\x0fresource_labels\x18\x11 \x03(\x0b\x32;.google.privacy.dlp.v2.TableDataProfile.ResourceLabelsEntry\x12/\n\x0b\x63reate_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x15sample_findings_table\x18% \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12(\n\x04tags\x18\' \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18) \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x12.\n\x07\x64omains\x18/ \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Domain\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xd3\x01\xea\x41\xcf\x01\n#dlp.googleapis.com/TableDataProfile\x12Xorganizations/{organization}/locations/{location}/tableDataProfiles/{table_data_profile}\x12Nprojects/{project}/locations/{location}/tableDataProfiles/{table_data_profile}\"b\n\rProfileStatus\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"g\n\x0fInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12 \n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x42\x02\x18\x01\"\x88\x01\n\x14OtherInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\x12\x1c\n\x14\x65stimated_prevalence\x18\x02 \x01(\x05\x12\x1e\n\x16\x65xcluded_from_analysis\x18\x03 \x01(\x08\"\xc9\r\n\x11\x43olumnDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12<\n\x0eprofile_status\x18\x11 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12=\n\x05state\x18\x12 \x01(\x0e\x32..google.privacy.dlp.v2.ColumnDataProfile.State\x12:\n\x16profile_last_generated\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1a\n\x12table_data_profile\x18\x04 \x01(\t\x12\x1b\n\x13table_full_resource\x18\x05 \x01(\t\x12\x1a\n\x12\x64\x61taset_project_id\x18\x13 \x01(\t\x12\x18\n\x10\x64\x61taset_location\x18\x14 \x01(\t\x12\x12\n\ndataset_id\x18\x15 \x01(\t\x12\x10\n\x08table_id\x18\x16 \x01(\t\x12\x0e\n\x06\x63olumn\x18\x06 \x01(\t\x12\x42\n\x11sensitivity_score\x18\x07 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12@\n\x10\x63olumn_info_type\x18\t \x01(\x0b\x32&.google.privacy.dlp.v2.InfoTypeSummary\x12\x42\n\rother_matches\x18\n \x03(\x0b\x32+.google.privacy.dlp.v2.OtherInfoTypeSummary\x12M\n\x19\x65stimated_null_percentage\x18\x17 \x01(\x0e\x32*.google.privacy.dlp.v2.NullPercentageLevel\x12O\n\x1a\x65stimated_uniqueness_score\x18\x18 \x01(\x0e\x32+.google.privacy.dlp.v2.UniquenessScoreLevel\x12\x17\n\x0f\x66ree_text_score\x18\r \x01(\x01\x12L\n\x0b\x63olumn_type\x18\x0e \x01(\x0e\x32\x37.google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType\x12P\n\x0cpolicy_state\x18\x0f \x01(\x0e\x32:.google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02\"\xff\x02\n\x0e\x43olumnDataType\x12 \n\x1c\x43OLUMN_DATA_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nTYPE_INT64\x10\x01\x12\r\n\tTYPE_BOOL\x10\x02\x12\x10\n\x0cTYPE_FLOAT64\x10\x03\x12\x0f\n\x0bTYPE_STRING\x10\x04\x12\x0e\n\nTYPE_BYTES\x10\x05\x12\x12\n\x0eTYPE_TIMESTAMP\x10\x06\x12\r\n\tTYPE_DATE\x10\x07\x12\r\n\tTYPE_TIME\x10\x08\x12\x11\n\rTYPE_DATETIME\x10\t\x12\x12\n\x0eTYPE_GEOGRAPHY\x10\n\x12\x10\n\x0cTYPE_NUMERIC\x10\x0b\x12\x0f\n\x0bTYPE_RECORD\x10\x0c\x12\x13\n\x0fTYPE_BIGNUMERIC\x10\r\x12\r\n\tTYPE_JSON\x10\x0e\x12\x11\n\rTYPE_INTERVAL\x10\x0f\x12\x13\n\x0fTYPE_RANGE_DATE\x10\x10\x12\x17\n\x13TYPE_RANGE_DATETIME\x10\x11\x12\x18\n\x14TYPE_RANGE_TIMESTAMP\x10\x12\"R\n\x11\x43olumnPolicyState\x12#\n\x1f\x43OLUMN_POLICY_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43OLUMN_POLICY_TAGGED\x10\x01:\xd8\x01\xea\x41\xd4\x01\n$dlp.googleapis.com/ColumnDataProfile\x12Zorganizations/{organization}/locations/{location}/columnDataProfiles/{column_data_profile}\x12Pprojects/{project}/locations/{location}/columnDataProfiles/{column_data_profile}\"\xe8\x0e\n\x14\x46ileStoreDataProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12?\n\x10\x64\x61ta_source_type\x18\x02 \x01(\x0b\x32%.google.privacy.dlp.v2.DataSourceType\x12\x1c\n\x14project_data_profile\x18\x03 \x01(\t\x12\x12\n\nproject_id\x18\x04 \x01(\t\x12\x1b\n\x13\x66ile_store_location\x18\x05 \x01(\t\x12\x1e\n\x16\x64\x61ta_storage_locations\x18\x13 \x03(\t\x12\x15\n\rlocation_type\x18\x14 \x01(\t\x12\x17\n\x0f\x66ile_store_path\x18\x06 \x01(\t\x12\x15\n\rfull_resource\x18\x18 \x01(\t\x12I\n\x0f\x63onfig_snapshot\x18\x07 \x01(\x0b\x32\x30.google.privacy.dlp.v2.DataProfileConfigSnapshot\x12<\n\x0eprofile_status\x18\x08 \x01(\x0b\x32$.google.privacy.dlp.v2.ProfileStatus\x12@\n\x05state\x18\t \x01(\x0e\x32\x31.google.privacy.dlp.v2.FileStoreDataProfile.State\x12:\n\x16profile_last_generated\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x46\n\x13resource_visibility\x18\x0b \x01(\x0e\x32).google.privacy.dlp.v2.ResourceVisibility\x12\x42\n\x11sensitivity_score\x18\x0c \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\r \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12/\n\x0b\x63reate_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12last_modified_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12I\n\x16\x66ile_cluster_summaries\x18\x10 \x03(\x0b\x32).google.privacy.dlp.v2.FileClusterSummary\x12`\n\x13resource_attributes\x18\x11 \x03(\x0b\x32\x43.google.privacy.dlp.v2.FileStoreDataProfile.ResourceAttributesEntry\x12X\n\x0fresource_labels\x18\x12 \x03(\x0b\x32?.google.privacy.dlp.v2.FileStoreDataProfile.ResourceLabelsEntry\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x15 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x43\n\x15sample_findings_table\x18\x16 \x01(\x0b\x32$.google.privacy.dlp.v2.BigQueryTable\x12\x1b\n\x13\x66ile_store_is_empty\x18\x17 \x01(\x08\x12(\n\x04tags\x18\x19 \x03(\x0b\x32\x1a.google.privacy.dlp.v2.Tag\x12\x41\n\x11related_resources\x18\x1a \x03(\x0b\x32&.google.privacy.dlp.v2.RelatedResource\x12.\n\x07\x64omains\x18\x1b \x03(\x0b\x32\x1d.google.privacy.dlp.v2.Domain\x1aW\n\x17ResourceAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.google.privacy.dlp.v2.Value:\x02\x38\x01\x1a\x35\n\x13ResourceLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"5\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x08\n\x04\x44ONE\x10\x02:\xe9\x01\xea\x41\xe5\x01\n\'dlp.googleapis.com/FileStoreDataProfile\x12\x61organizations/{organization}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\x12Wprojects/{project}/locations/{location}/fileStoreDataProfiles/{file_store_data_profile}\"?\n\x03Tag\x12\x1c\n\x14namespaced_tag_value\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\"(\n\x0fRelatedResource\x12\x15\n\rfull_resource\x18\x01 \x01(\t\"N\n\x18\x46ileStoreInfoTypeSummary\x12\x32\n\tinfo_type\x18\x01 \x01(\x0b\x32\x1f.google.privacy.dlp.v2.InfoType\"+\n\x11\x46ileExtensionInfo\x12\x16\n\x0e\x66ile_extension\x18\x01 \x01(\t\"\x8c\x04\n\x12\x46ileClusterSummary\x12\x41\n\x11\x66ile_cluster_type\x18\x01 \x01(\x0b\x32&.google.privacy.dlp.v2.FileClusterType\x12W\n\x1e\x66ile_store_info_type_summaries\x18\x02 \x03(\x0b\x32/.google.privacy.dlp.v2.FileStoreInfoTypeSummary\x12\x42\n\x11sensitivity_score\x18\x03 \x01(\x0b\x32\'.google.privacy.dlp.v2.SensitivityScore\x12=\n\x0f\x64\x61ta_risk_level\x18\x04 \x01(\x0b\x32$.google.privacy.dlp.v2.DataRiskLevel\x12,\n\x06\x65rrors\x18\x06 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.Error\x12I\n\x17\x66ile_extensions_scanned\x18\x07 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x46\n\x14\x66ile_extensions_seen\x18\x08 \x03(\x0b\x32(.google.privacy.dlp.v2.FileExtensionInfo\x12\x16\n\x0eno_files_exist\x18\t \x01(\x08\"[\n\x1cGetProjectDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"]\n\x1eGetFileStoreDataProfileRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%dlp.googleapis.com/ProjectDataProfile\"\xc0\x01\n ListFileStoreDataProfilesRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'dlp.googleapis.com/FileStoreDataProfile\x12\x17\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8b\x01\n!ListFileStoreDataProfilesResponse\x12M\n\x18\x66ile_store_data_profiles\x18\x01 \x03(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"b\n!DeleteFileStoreDataProfileRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'dlp.googleapis.com/FileStoreDataProfile\"W\n\x1aGetTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"Y\n\x1bGetColumnDataProfileRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$dlp.googleapis.com/ColumnDataProfile\"\xea\x05\n\x1a\x44\x61taProfilePubSubCondition\x12X\n\x0b\x65xpressions\x18\x01 \x01(\x0b\x32\x43.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions\x1a\xe9\x01\n\x0fPubSubCondition\x12\x62\n\x12minimum_risk_score\x18\x01 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x12i\n\x19minimum_sensitivity_score\x18\x02 \x01(\x0e\x32\x44.google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucketH\x00\x42\x07\n\x05value\x1a\xab\x02\n\x11PubSubExpressions\x12s\n\x10logical_operator\x18\x01 \x01(\x0e\x32Y.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator\x12U\n\nconditions\x18\x02 \x03(\x0b\x32\x41.google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition\"J\n\x15PubSubLogicalOperator\x12 \n\x1cLOGICAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x06\n\x02OR\x10\x01\x12\x07\n\x03\x41ND\x10\x02\"X\n\x12ProfileScoreBucket\x12$\n PROFILE_SCORE_BUCKET_UNSPECIFIED\x10\x00\x12\x08\n\x04HIGH\x10\x01\x12\x12\n\x0eMEDIUM_OR_HIGH\x10\x02\"\xe0\x01\n\x18\x44\x61taProfilePubSubMessage\x12\x38\n\x07profile\x18\x01 \x01(\x0b\x32\'.google.privacy.dlp.v2.TableDataProfile\x12G\n\x12\x66ile_store_profile\x18\x03 \x01(\x0b\x32+.google.privacy.dlp.v2.FileStoreDataProfile\x12\x41\n\x05\x65vent\x18\x02 \x01(\x0e\x32\x32.google.privacy.dlp.v2.DataProfileAction.EventType\"\x8c\x01\n\x17\x43reateConnectionRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\"K\n\x14GetConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x95\x01\n\x16ListConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x97\x01\n\x18SearchConnectionsRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1d\x64lp.googleapis.com/Connection\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"j\n\x17ListConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"l\n\x19SearchConnectionsResponse\x12\x36\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32!.google.privacy.dlp.v2.Connection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc0\x01\n\x17UpdateConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\x12:\n\nconnection\x18\x02 \x01(\x0b\x32!.google.privacy.dlp.v2.ConnectionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"N\n\x17\x44\x65leteConnectionRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1d\x64lp.googleapis.com/Connection\"\x90\x03\n\nConnection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.google.privacy.dlp.v2.ConnectionStateB\x03\xe0\x41\x02\x12\x31\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x1c.google.privacy.dlp.v2.ErrorB\x03\xe0\x41\x03\x12>\n\tcloud_sql\x18\x04 \x01(\x0b\x32).google.privacy.dlp.v2.CloudSqlPropertiesH\x00:\xb1\x01\xea\x41\xad\x01\n\x1d\x64lp.googleapis.com/Connection\x12@projects/{project}/locations/{location}/connections/{connection}\x12Jorganizations/{organization}/locations/{location}/connections/{connection}B\x0c\n\nproperties\"[\n\x17SecretManagerCredential\x12\x15\n\x08username\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12)\n\x1cpassword_secret_version_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x17\n\x15\x43loudSqlIamCredential\"\xb5\x03\n\x12\x43loudSqlProperties\x12\x1f\n\x0f\x63onnection_name\x18\x01 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x01\x12K\n\x11username_password\x18\x02 \x01(\x0b\x32..google.privacy.dlp.v2.SecretManagerCredentialH\x00\x12\x45\n\rcloud_sql_iam\x18\x03 \x01(\x0b\x32,.google.privacy.dlp.v2.CloudSqlIamCredentialH\x00\x12\x1c\n\x0fmax_connections\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12V\n\x0f\x64\x61tabase_engine\x18\x07 \x01(\x0e\x32\x38.google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngineB\x03\xe0\x41\x02\"f\n\x0e\x44\x61tabaseEngine\x12\x1b\n\x17\x44\x41TABASE_ENGINE_UNKNOWN\x10\x00\x12\x19\n\x15\x44\x41TABASE_ENGINE_MYSQL\x10\x01\x12\x1c\n\x18\x44\x41TABASE_ENGINE_POSTGRES\x10\x02\x42\x0c\n\ncredential\"Z\n\x1d\x44\x65leteTableDataProfileRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#dlp.googleapis.com/TableDataProfile\"*\n\x0e\x44\x61taSourceType\x12\x18\n\x0b\x64\x61ta_source\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\xf4\x02\n\x0f\x46ileClusterType\x12\x41\n\x07\x63luster\x18\x01 \x01(\x0e\x32..google.privacy.dlp.v2.FileClusterType.ClusterH\x00\"\x88\x02\n\x07\x43luster\x12\x17\n\x13\x43LUSTER_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43LUSTER_UNKNOWN\x10\x01\x12\x10\n\x0c\x43LUSTER_TEXT\x10\x02\x12\x1b\n\x17\x43LUSTER_STRUCTURED_DATA\x10\x03\x12\x17\n\x13\x43LUSTER_SOURCE_CODE\x10\x04\x12\x19\n\x15\x43LUSTER_RICH_DOCUMENT\x10\x05\x12\x11\n\rCLUSTER_IMAGE\x10\x06\x12\x13\n\x0f\x43LUSTER_ARCHIVE\x10\x07\x12\x16\n\x12\x43LUSTER_MULTIMEDIA\x10\x08\x12\x16\n\x12\x43LUSTER_EXECUTABLE\x10\t\x12\x14\n\x10\x43LUSTER_AI_MODEL\x10\nB\x13\n\x11\x66ile_cluster_type\"\xb6\x05\n\x12ProcessingLocation\x12`\n\x17image_fallback_location\x18\x01 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation\x12\x66\n\x1a\x64ocument_fallback_location\x18\x02 \x01(\x0b\x32\x42.google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation\x1a\x17\n\x15MultiRegionProcessing\x1a\x12\n\x10GlobalProcessing\x1a\xd1\x01\n\x15ImageFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\x1a\xd4\x01\n\x18\x44ocumentFallbackLocation\x12`\n\x17multi_region_processing\x18\x64 \x01(\x0b\x32?.google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing\x12V\n\x11global_processing\x18\xc8\x01 \x01(\x0b\x32:.google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing\"K\n\x17SaveToGcsFindingsOutput\x12\x30\n\x08\x66indings\x18\x01 \x03(\x0b\x32\x1e.google.privacy.dlp.v2.Finding\"\xb7\x02\n\x06\x44omain\x12\x38\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32&.google.privacy.dlp.v2.Domain.Category\x12\x35\n\x07signals\x18\x02 \x03(\x0e\x32$.google.privacy.dlp.v2.Domain.Signal\"6\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x06\n\x02\x41I\x10\x01\x12\x08\n\x04\x43ODE\x10\x02\"\x83\x01\n\x06Signal\x12\x16\n\x12SIGNAL_UNSPECIFIED\x10\x00\x12\t\n\x05MODEL\x10\x01\x12\x12\n\x0eTEXT_EMBEDDING\x10\x02\x12\x11\n\rVERTEX_PLUGIN\x10\x03\x12\x11\n\rVECTOR_PLUGIN\x10\x04\x12\x0f\n\x0bSOURCE_CODE\x10\x05\x12\x0b\n\x07SERVICE\x10\x06*\xa0\x01\n\x1eTransformationResultStatusType\x12\x1a\n\x16STATE_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11INVALID_TRANSFORM\x10\x01\x12\"\n\x1e\x42IGQUERY_MAX_ROW_SIZE_EXCEEDED\x10\x02\x12\x1a\n\x16METADATA_UNRETRIEVABLE\x10\x03\x12\x0b\n\x07SUCCESS\x10\x04*\x7f\n\x1bTransformationContainerType\x12\x1f\n\x1bTRANSFORM_UNKNOWN_CONTAINER\x10\x00\x12\x12\n\x0eTRANSFORM_BODY\x10\x01\x12\x16\n\x12TRANSFORM_METADATA\x10\x02\x12\x13\n\x0fTRANSFORM_TABLE\x10\x03*\xe0\x02\n\x12TransformationType\x12#\n\x1fTRANSFORMATION_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12RECORD_SUPPRESSION\x10\x01\x12\x11\n\rREPLACE_VALUE\x10\x02\x12\x16\n\x12REPLACE_DICTIONARY\x10\x0f\x12\n\n\x06REDACT\x10\x03\x12\x12\n\x0e\x43HARACTER_MASK\x10\x04\x12\x1a\n\x16\x43RYPTO_REPLACE_FFX_FPE\x10\x05\x12\x18\n\x14\x46IXED_SIZE_BUCKETING\x10\x06\x12\r\n\tBUCKETING\x10\x07\x12\x1a\n\x16REPLACE_WITH_INFO_TYPE\x10\x08\x12\r\n\tTIME_PART\x10\t\x12\x0f\n\x0b\x43RYPTO_HASH\x10\n\x12\x0e\n\nDATE_SHIFT\x10\x0c\x12\x1f\n\x1b\x43RYPTO_DETERMINISTIC_CONFIG\x10\r\x12\x10\n\x0cREDACT_IMAGE\x10\x0e*r\n\x11ProfileGeneration\x12\"\n\x1ePROFILE_GENERATION_UNSPECIFIED\x10\x00\x12\x1a\n\x16PROFILE_GENERATION_NEW\x10\x01\x12\x1d\n\x19PROFILE_GENERATION_UPDATE\x10\x02*\x96\x01\n\x1b\x42igQueryTableTypeCollection\x12$\n BIG_QUERY_COLLECTION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x42IG_QUERY_COLLECTION_ALL_TYPES\x10\x01\x12-\n)BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES\x10\x02*\xa8\x01\n\x11\x42igQueryTableType\x12$\n BIG_QUERY_TABLE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x42IG_QUERY_TABLE_TYPE_TABLE\x10\x01\x12*\n&BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE\x10\x02\x12!\n\x1d\x42IG_QUERY_TABLE_TYPE_SNAPSHOT\x10\x03*\x94\x01\n\x1a\x44\x61taProfileUpdateFrequency\x12 \n\x1cUPDATE_FREQUENCY_UNSPECIFIED\x10\x00\x12\x1a\n\x16UPDATE_FREQUENCY_NEVER\x10\x01\x12\x1a\n\x16UPDATE_FREQUENCY_DAILY\x10\x02\x12\x1c\n\x18UPDATE_FREQUENCY_MONTHLY\x10\x04*]\n\x19\x42igQueryTableModification\x12\"\n\x1eTABLE_MODIFICATION_UNSPECIFIED\x10\x00\x12\x1c\n\x18TABLE_MODIFIED_TIMESTAMP\x10\x01*u\n\x1a\x42igQuerySchemaModification\x12#\n\x1fSCHEMA_MODIFICATION_UNSPECIFIED\x10\x00\x12\x16\n\x12SCHEMA_NEW_COLUMNS\x10\x01\x12\x1a\n\x16SCHEMA_REMOVED_COLUMNS\x10\x02*\xbb\x01\n\x12RelationalOperator\x12#\n\x1fRELATIONAL_OPERATOR_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x45QUAL_TO\x10\x01\x12\x10\n\x0cNOT_EQUAL_TO\x10\x02\x12\x10\n\x0cGREATER_THAN\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x1a\n\x16GREATER_THAN_OR_EQUALS\x10\x05\x12\x17\n\x13LESS_THAN_OR_EQUALS\x10\x06\x12\n\n\x06\x45XISTS\x10\x07*\x8d\x01\n\x0cMatchingType\x12\x1d\n\x19MATCHING_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18MATCHING_TYPE_FULL_MATCH\x10\x01\x12\x1f\n\x1bMATCHING_TYPE_PARTIAL_MATCH\x10\x02\x12\x1f\n\x1bMATCHING_TYPE_INVERSE_MATCH\x10\x03*M\n\rContentOption\x12\x17\n\x13\x43ONTENT_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x43ONTENT_TEXT\x10\x01\x12\x11\n\rCONTENT_IMAGE\x10\x02*B\n\x0cMetadataType\x12\x1c\n\x18METADATATYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STORAGE_METADATA\x10\x02*P\n\x13InfoTypeSupportedBy\x12\x19\n\x15\x45NUM_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07INSPECT\x10\x01\x12\x11\n\rRISK_ANALYSIS\x10\x02*R\n\nDlpJobType\x12\x1c\n\x18\x44LP_JOB_TYPE_UNSPECIFIED\x10\x00\x12\x0f\n\x0bINSPECT_JOB\x10\x01\x12\x15\n\x11RISK_ANALYSIS_JOB\x10\x02*n\n\x13StoredInfoTypeState\x12&\n\"STORED_INFO_TYPE_STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\t\n\x05READY\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x0b\n\x07INVALID\x10\x04*\xa3\x01\n\x12ResourceVisibility\x12#\n\x1fRESOURCE_VISIBILITY_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRESOURCE_VISIBILITY_PUBLIC\x10\n\x12$\n RESOURCE_VISIBILITY_INCONCLUSIVE\x10\x0f\x12\"\n\x1eRESOURCE_VISIBILITY_RESTRICTED\x10\x14*u\n\x10\x45ncryptionStatus\x12!\n\x1d\x45NCRYPTION_STATUS_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x45NCRYPTION_GOOGLE_MANAGED\x10\x01\x12\x1f\n\x1b\x45NCRYPTION_CUSTOMER_MANAGED\x10\x02*\xa9\x01\n\x13NullPercentageLevel\x12%\n!NULL_PERCENTAGE_LEVEL_UNSPECIFIED\x10\x00\x12\x1c\n\x18NULL_PERCENTAGE_VERY_LOW\x10\x01\x12\x17\n\x13NULL_PERCENTAGE_LOW\x10\x02\x12\x1a\n\x16NULL_PERCENTAGE_MEDIUM\x10\x03\x12\x18\n\x14NULL_PERCENTAGE_HIGH\x10\x04*\x90\x01\n\x14UniquenessScoreLevel\x12&\n\"UNIQUENESS_SCORE_LEVEL_UNSPECIFIED\x10\x00\x12\x18\n\x14UNIQUENESS_SCORE_LOW\x10\x01\x12\x1b\n\x17UNIQUENESS_SCORE_MEDIUM\x10\x02\x12\x19\n\x15UNIQUENESS_SCORE_HIGH\x10\x03*f\n\x0f\x43onnectionState\x12 \n\x1c\x43ONNECTION_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13MISSING_CREDENTIALS\x10\x01\x12\r\n\tAVAILABLE\x10\x02\x12\t\n\x05\x45RROR\x10\x03\x32\xddv\n\nDlpService\x12\xdb\x01\n\x0eInspectContent\x12,.google.privacy.dlp.v2.InspectContentRequest\x1a-.google.privacy.dlp.v2.InspectContentResponse\"l\x82\xd3\xe4\x93\x02\x66\"\'/v2/{parent=projects/*}/content:inspect:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/content:inspect:\x01*\x12\xcc\x01\n\x0bRedactImage\x12).google.privacy.dlp.v2.RedactImageRequest\x1a*.google.privacy.dlp.v2.RedactImageResponse\"f\x82\xd3\xe4\x93\x02`\"$/v2/{parent=projects/*}/image:redact:\x01*Z5\"0/v2/{parent=projects/*/locations/*}/image:redact:\x01*\x12\xea\x01\n\x11\x44\x65identifyContent\x12/.google.privacy.dlp.v2.DeidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.DeidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:deidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:deidentify:\x01*\x12\xea\x01\n\x11ReidentifyContent\x12/.google.privacy.dlp.v2.ReidentifyContentRequest\x1a\x30.google.privacy.dlp.v2.ReidentifyContentResponse\"r\x82\xd3\xe4\x93\x02l\"*/v2/{parent=projects/*}/content:reidentify:\x01*Z;\"6/v2/{parent=projects/*/locations/*}/content:reidentify:\x01*\x12\x99\x02\n\rListInfoTypes\x12+.google.privacy.dlp.v2.ListInfoTypesRequest\x1a,.google.privacy.dlp.v2.ListInfoTypesResponse\"\xac\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x9c\x01\x12\r/v2/infoTypesZ$\x12\"/v2/{parent=locations/*}/infoTypesZ/\x12-/v2/{parent=projects/*/locations/*}/infoTypesZ4\x12\x32/v2/{parent=organizations/*/locations/*}/infoTypes\x12\xf4\x02\n\x15\x43reateInspectTemplate\x12\x33.google.privacy.dlp.v2.CreateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xfd\x01\xda\x41\x17parent,inspect_template\x82\xd3\xe4\x93\x02\xdc\x01\"4/v2/{parent=projects/*/locations/*}/inspectTemplates:\x01*Z>\"9/v2/{parent=organizations/*/locations/*}/inspectTemplates:\x01*Z-\"(/v2/{parent=projects/*}/inspectTemplates:\x01*Z2\"-/v2/{parent=organizations/*}/inspectTemplates:\x01*\x12\xfe\x02\n\x15UpdateInspectTemplate\x12\x33.google.privacy.dlp.v2.UpdateInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\x87\x02\xda\x41!name,inspect_template,update_mask\x82\xd3\xe4\x93\x02\xdc\x01\x32\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/inspectTemplates/*}:\x01*Z-2(/v2/{name=projects/*/inspectTemplates/*}:\x01*Z22-/v2/{name=organizations/*/inspectTemplates/*}:\x01*\x12\xcf\x02\n\x12GetInspectTemplate\x12\x30.google.privacy.dlp.v2.GetInspectTemplateRequest\x1a&.google.privacy.dlp.v2.InspectTemplate\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z*\x12(/v2/{name=projects/*/inspectTemplates/*}Z/\x12-/v2/{name=organizations/*/inspectTemplates/*}\x12\xe2\x02\n\x14ListInspectTemplates\x12\x32.google.privacy.dlp.v2.ListInspectTemplatesRequest\x1a\x33.google.privacy.dlp.v2.ListInspectTemplatesResponse\"\xe0\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xd0\x01\x12\x34/v2/{parent=projects/*/locations/*}/inspectTemplatesZ;\x12\x39/v2/{parent=organizations/*/locations/*}/inspectTemplatesZ*\x12(/v2/{parent=projects/*}/inspectTemplatesZ/\x12-/v2/{parent=organizations/*}/inspectTemplates\x12\xc5\x02\n\x15\x44\x65leteInspectTemplate\x12\x33.google.privacy.dlp.v2.DeleteInspectTemplateRequest\x1a\x16.google.protobuf.Empty\"\xde\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xd0\x01*4/v2/{name=projects/*/locations/*/inspectTemplates/*}Z;*9/v2/{name=organizations/*/locations/*/inspectTemplates/*}Z**(/v2/{name=projects/*/inspectTemplates/*}Z/*-/v2/{name=organizations/*/inspectTemplates/*}\x12\x8c\x03\n\x18\x43reateDeidentifyTemplate\x12\x36.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest\x1a).google.privacy.dlp.v2.DeidentifyTemplate\"\x8c\x02\xda\x41\x1aparent,deidentify_template\x82\xd3\xe4\x93\x02\xe8\x01\"0/v2/{parent=organizations/*}/deidentifyTemplates:\x01*ZA\"\x12\x12*\"9/v2/{parent=organizations/*/locations/*}/discoveryConfigs:\x01*\x12\x9a\x02\n\x15UpdateDiscoveryConfig\x12\x33.google.privacy.dlp.v2.UpdateDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\xa3\x01\xda\x41!name,discovery_config,update_mask\x82\xd3\xe4\x93\x02y24/v2/{name=projects/*/locations/*/discoveryConfigs/*}:\x01*Z>29/v2/{name=organizations/*/locations/*/discoveryConfigs/*}:\x01*\x12\xf1\x01\n\x12GetDiscoveryConfig\x12\x30.google.privacy.dlp.v2.GetDiscoveryConfigRequest\x1a&.google.privacy.dlp.v2.DiscoveryConfig\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s\x12\x34/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;\x12\x39/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\x84\x02\n\x14ListDiscoveryConfigs\x12\x32.google.privacy.dlp.v2.ListDiscoveryConfigsRequest\x1a\x33.google.privacy.dlp.v2.ListDiscoveryConfigsResponse\"\x82\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02s\x12\x34/v2/{parent=projects/*/locations/*}/discoveryConfigsZ;\x12\x39/v2/{parent=organizations/*/locations/*}/discoveryConfigs\x12\xe7\x01\n\x15\x44\x65leteDiscoveryConfig\x12\x33.google.privacy.dlp.v2.DeleteDiscoveryConfigRequest\x1a\x16.google.protobuf.Empty\"\x80\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02s*4/v2/{name=projects/*/locations/*/discoveryConfigs/*}Z;*9/v2/{name=organizations/*/locations/*/discoveryConfigs/*}\x12\xdf\x01\n\x0c\x43reateDlpJob\x12*.google.privacy.dlp.v2.CreateDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"\x83\x01\xda\x41\x12parent,inspect_job\xda\x41\x0fparent,risk_job\x82\xd3\xe4\x93\x02V\"\x1f/v2/{parent=projects/*}/dlpJobs:\x01*Z0\"+/v2/{parent=projects/*/locations/*}/dlpJobs:\x01*\x12\xfb\x01\n\x0bListDlpJobs\x12).google.privacy.dlp.v2.ListDlpJobsRequest\x1a*.google.privacy.dlp.v2.ListDlpJobsResponse\"\x94\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x84\x01\x12\x1f/v2/{parent=projects/*}/dlpJobsZ-\x12+/v2/{parent=projects/*/locations/*}/dlpJobsZ2\x12\x30/v2/{parent=organizations/*/locations/*}/dlpJobs\x12\xb2\x01\n\tGetDlpJob\x12\'.google.privacy.dlp.v2.GetDlpJobRequest\x1a\x1d.google.privacy.dlp.v2.DlpJob\"]\xda\x41\x04name\x82\xd3\xe4\x93\x02P\x12\x1f/v2/{name=projects/*/dlpJobs/*}Z-\x12+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xb1\x01\n\x0c\x44\x65leteDlpJob\x12*.google.privacy.dlp.v2.DeleteDlpJobRequest\x1a\x16.google.protobuf.Empty\"]\xda\x41\x04name\x82\xd3\xe4\x93\x02P*\x1f/v2/{name=projects/*/dlpJobs/*}Z-*+/v2/{name=projects/*/locations/*/dlpJobs/*}\x12\xbe\x01\n\x0c\x43\x61ncelDlpJob\x12*.google.privacy.dlp.v2.CancelDlpJobRequest\x1a\x16.google.protobuf.Empty\"j\x82\xd3\xe4\x93\x02\x64\"&/v2/{name=projects/*/dlpJobs/*}:cancel:\x01*Z7\"2/v2/{name=projects/*/locations/*/dlpJobs/*}:cancel:\x01*\x12\xe3\x02\n\x14\x43reateStoredInfoType\x12\x32.google.privacy.dlp.v2.CreateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xef\x01\xda\x41\rparent,config\x82\xd3\xe4\x93\x02\xd8\x01\",/v2/{parent=organizations/*}/storedInfoTypes:\x01*Z=\"8/v2/{parent=organizations/*/locations/*}/storedInfoTypes:\x01*Z,\"\'/v2/{parent=projects/*}/storedInfoTypes:\x01*Z8\"3/v2/{parent=projects/*/locations/*}/storedInfoTypes:\x01*\x12\xed\x02\n\x14UpdateStoredInfoType\x12\x32.google.privacy.dlp.v2.UpdateStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xf9\x01\xda\x41\x17name,config,update_mask\x82\xd3\xe4\x93\x02\xd8\x01\x32,/v2/{name=organizations/*/storedInfoTypes/*}:\x01*Z=28/v2/{name=organizations/*/locations/*/storedInfoTypes/*}:\x01*Z,2\'/v2/{name=projects/*/storedInfoTypes/*}:\x01*Z823/v2/{name=projects/*/locations/*/storedInfoTypes/*}:\x01*\x12\xc8\x02\n\x11GetStoredInfoType\x12/.google.privacy.dlp.v2.GetStoredInfoTypeRequest\x1a%.google.privacy.dlp.v2.StoredInfoType\"\xda\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{name=organizations/*/storedInfoTypes/*}Z:\x12\x38/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)\x12\'/v2/{name=projects/*/storedInfoTypes/*}Z5\x12\x33/v2/{name=projects/*/locations/*/storedInfoTypes/*}\x12\xdb\x02\n\x13ListStoredInfoTypes\x12\x31.google.privacy.dlp.v2.ListStoredInfoTypesRequest\x1a\x32.google.privacy.dlp.v2.ListStoredInfoTypesResponse\"\xdc\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xcc\x01\x12,/v2/{parent=organizations/*}/storedInfoTypesZ:\x12\x38/v2/{parent=organizations/*/locations/*}/storedInfoTypesZ)\x12\'/v2/{parent=projects/*}/storedInfoTypesZ5\x12\x33/v2/{parent=projects/*/locations/*}/storedInfoTypes\x12\xbf\x02\n\x14\x44\x65leteStoredInfoType\x12\x32.google.privacy.dlp.v2.DeleteStoredInfoTypeRequest\x1a\x16.google.protobuf.Empty\"\xda\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02\xcc\x01*,/v2/{name=organizations/*/storedInfoTypes/*}Z:*8/v2/{name=organizations/*/locations/*/storedInfoTypes/*}Z)*\'/v2/{name=projects/*/storedInfoTypes/*}Z5*3/v2/{name=projects/*/locations/*/storedInfoTypes/*}\x12\x93\x02\n\x17ListProjectDataProfiles\x12\x35.google.privacy.dlp.v2.ListProjectDataProfilesRequest\x1a\x36.google.privacy.dlp.v2.ListProjectDataProfilesResponse\"\x88\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02y\x12/v2/{parent=organizations/*/locations/*}/fileStoreDataProfilesZ;\x12\x39/v2/{parent=projects/*/locations/*}/fileStoreDataProfiles\x12\x8a\x02\n\x17GetFileStoreDataProfile\x12\x35.google.privacy.dlp.v2.GetFileStoreDataProfileRequest\x1a+.google.privacy.dlp.v2.FileStoreDataProfile\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}\x12>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;\x12\x39/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xfb\x01\n\x1a\x44\x65leteFileStoreDataProfile\x12\x38.google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x8a\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02}*>/v2/{name=organizations/*/locations/*/fileStoreDataProfiles/*}Z;*9/v2/{name=projects/*/locations/*/fileStoreDataProfiles/*}\x12\xf6\x01\n\x13GetTableDataProfile\x12\x31.google.privacy.dlp.v2.GetTableDataProfileRequest\x1a\'.google.privacy.dlp.v2.TableDataProfile\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u\x12:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7\x12\x35/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xfb\x01\n\x14GetColumnDataProfile\x12\x32.google.privacy.dlp.v2.GetColumnDataProfileRequest\x1a(.google.privacy.dlp.v2.ColumnDataProfile\"\x84\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02w\x12;/v2/{name=organizations/*/locations/*/columnDataProfiles/*}Z8\x12\x36/v2/{name=projects/*/locations/*/columnDataProfiles/*}\x12\xeb\x01\n\x16\x44\x65leteTableDataProfile\x12\x34.google.privacy.dlp.v2.DeleteTableDataProfileRequest\x1a\x16.google.protobuf.Empty\"\x82\x01\xda\x41\x04name\x82\xd3\xe4\x93\x02u*:/v2/{name=organizations/*/locations/*/tableDataProfiles/*}Z7*5/v2/{name=projects/*/locations/*/tableDataProfiles/*}\x12\xc3\x01\n\x13HybridInspectDlpJob\x12\x31.google.privacy.dlp.v2.HybridInspectDlpJobRequest\x1a,.google.privacy.dlp.v2.HybridInspectResponse\"K\xda\x41\x04name\x82\xd3\xe4\x93\x02>\"9/v2/{name=projects/*/locations/*/dlpJobs/*}:hybridInspect:\x01*\x12\x91\x01\n\x0c\x46inishDlpJob\x12*.google.privacy.dlp.v2.FinishDlpJobRequest\x1a\x16.google.protobuf.Empty\"=\x82\xd3\xe4\x93\x02\x37\"2/v2/{name=projects/*/locations/*/dlpJobs/*}:finish:\x01*\x12\xf2\x01\n\x10\x43reateConnection\x12..google.privacy.dlp.v2.CreateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"\x8a\x01\xda\x41\x12parent, connection\x82\xd3\xe4\x93\x02o\"//v2/{parent=projects/*/locations/*}/connections:\x01*Z9\"4/v2/{parent=organizations/*/locations/*}/connections:\x01*\x12\xd7\x01\n\rGetConnection\x12+.google.privacy.dlp.v2.GetConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i\x12//v2/{name=projects/*/locations/*/connections/*}Z6\x12\x34/v2/{name=organizations/*/locations/*/connections/*}\x12\xea\x01\n\x0fListConnections\x12-.google.privacy.dlp.v2.ListConnectionsRequest\x1a..google.privacy.dlp.v2.ListConnectionsResponse\"x\xda\x41\x06parent\x82\xd3\xe4\x93\x02i\x12//v2/{parent=projects/*/locations/*}/connectionsZ6\x12\x34/v2/{parent=organizations/*/locations/*}/connections\x12\xff\x01\n\x11SearchConnections\x12/.google.privacy.dlp.v2.SearchConnectionsRequest\x1a\x30.google.privacy.dlp.v2.SearchConnectionsResponse\"\x86\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02w\x12\x36/v2/{parent=projects/*/locations/*}/connections:searchZ=\x12;/v2/{parent=organizations/*/locations/*}/connections:search\x12\xd2\x01\n\x10\x44\x65leteConnection\x12..google.privacy.dlp.v2.DeleteConnectionRequest\x1a\x16.google.protobuf.Empty\"v\xda\x41\x04name\x82\xd3\xe4\x93\x02i*//v2/{name=projects/*/locations/*/connections/*}Z6*4/v2/{name=organizations/*/locations/*/connections/*}\x12\xe3\x01\n\x10UpdateConnection\x12..google.privacy.dlp.v2.UpdateConnectionRequest\x1a!.google.privacy.dlp.v2.Connection\"|\xda\x41\x04name\x82\xd3\xe4\x93\x02o2//v2/{name=projects/*/locations/*/connections/*}:\x01*Z924/v2/{name=organizations/*/locations/*/connections/*}:\x01*\x1a\x46\xca\x41\x12\x64lp.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xeb\x02\n\x19\x63om.google.privacy.dlp.v2B\x08\x44lpProtoP\x01Z)cloud.google.com/go/dlp/apiv2/dlppb;dlppb\xaa\x02\x13Google.Cloud.Dlp.V2\xca\x02\x13Google\\Cloud\\Dlp\\V2\xea\x02\x16Google::Cloud::Dlp::V2\xea\x41r\n\x1d\x64lp.googleapis.com/DlpContent\x12\x1dprojects/{project}/dlpContent\x12\x32projects/{project}/locations/{location}/dlpContent\xea\x41\\\n\'dlp.googleapis.com/OrganizationLocation\x12\x31organizations/{organization}/locations/{location}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -106,6 +106,8 @@ module V2 DeidentifyDataSourceStats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.DeidentifyDataSourceStats").msgclass DeidentifyDataSourceDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.DeidentifyDataSourceDetails").msgclass DeidentifyDataSourceDetails::RequestedDeidentifyOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.DeidentifyDataSourceDetails.RequestedDeidentifyOptions").msgclass + LocationSupport = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.LocationSupport").msgclass + LocationSupport::RegionalizationScope = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.LocationSupport.RegionalizationScope").enummodule InfoTypeDescription = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.InfoTypeDescription").msgclass InfoTypeCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.InfoTypeCategory").msgclass InfoTypeCategory::LocationCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.InfoTypeCategory.LocationCategory").enummodule @@ -418,7 +420,11 @@ module V2 ProcessingLocation::MultiRegionProcessing = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing").msgclass ProcessingLocation::GlobalProcessing = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing").msgclass ProcessingLocation::ImageFallbackLocation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation").msgclass + ProcessingLocation::DocumentFallbackLocation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation").msgclass SaveToGcsFindingsOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.SaveToGcsFindingsOutput").msgclass + Domain = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Domain").msgclass + Domain::Category = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Domain.Category").enummodule + Domain::Signal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.Domain.Signal").enummodule TransformationResultStatusType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.TransformationResultStatusType").enummodule TransformationContainerType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.TransformationContainerType").enummodule TransformationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.privacy.dlp.v2.TransformationType").enummodule diff --git a/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb b/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb index f65cdeedbc14..665ae42adf98 100644 --- a/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb +++ b/google-cloud-dlp-v2/proto_docs/google/privacy/dlp/v2/dlp.rb @@ -1088,7 +1088,7 @@ class RequestedOptions extend ::Google::Protobuf::MessageExts::ClassMethods end - # All result fields mentioned below are updated while the job is processing. + # All Result fields are updated while the job is processing. # @!attribute [rw] processed_bytes # @return [::Integer] # Total size in bytes that were processed. @@ -1210,6 +1210,32 @@ class RequestedDeidentifyOptions end end + # Locations at which a feature can be used. + # @!attribute [rw] regionalization_scope + # @return [::Google::Cloud::Dlp::V2::LocationSupport::RegionalizationScope] + # The current scope for location on this feature. This may expand over time. + # @!attribute [rw] locations + # @return [::Array<::String>] + # Specific locations where the feature may be used. + # Examples: us-central1, us, asia, global + # If scope is ANY_LOCATION, no regions will be listed. + class LocationSupport + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The location scope for a feature. + module RegionalizationScope + # Invalid. + REGIONALIZATION_SCOPE_UNSPECIFIED = 0 + + # Feature may be used with one or more regions. See locations for details. + REGIONAL = 1 + + # Feature may be used anywhere. Default value. + ANY_LOCATION = 2 + end + end + # InfoType description. # @!attribute [rw] name # @return [::String] @@ -1224,6 +1250,9 @@ class RequestedDeidentifyOptions # @return [::String] # Description of the infotype. Translated when language is provided in the # request. + # @!attribute [rw] location_support + # @return [::Google::Cloud::Dlp::V2::LocationSupport] + # Locations at which this feature can be used. May change over time. # @!attribute [rw] example # @return [::String] # A sample that is a true positive for this infoType. @@ -1289,6 +1318,9 @@ module LocationCategory # The infoType is typically used in Australia. AUSTRALIA = 3 + # The infoType is typically used in Austria. + AUSTRIA = 53 + # The infoType is typically used in Azerbaijan. AZERBAIJAN = 48 @@ -1564,7 +1596,7 @@ class RiskAnalysisJobConfig # @return [::String] # A column can be tagged with a custom tag. In this case, the user must # indicate an auxiliary table that contains statistical information on - # the possible values of this column (below). + # the possible values of this column. # # Note: The following fields are mutually exclusive: `custom_tag`, `info_type`, `inferred`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] inferred @@ -1608,7 +1640,7 @@ class StatisticalTable # @return [::String] # A column can be tagged with a custom tag. In this case, the user must # indicate an auxiliary table that contains statistical information on - # the possible values of this column (below). + # the possible values of this column. class QuasiIdentifierField include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1754,7 +1786,7 @@ class KMapEstimationConfig # @return [::String] # A column can be tagged with a custom tag. In this case, the user must # indicate an auxiliary table that contains statistical information on - # the possible values of this column (below). + # the possible values of this column. # # Note: The following fields are mutually exclusive: `custom_tag`, `info_type`, `inferred`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] inferred @@ -3730,12 +3762,12 @@ class PublishFindingsToCloudDataCatalog # @!attribute [rw] file_types_to_transform # @return [::Array<::Google::Cloud::Dlp::V2::FileType>] # List of user-specified file type groups to transform. If specified, only - # the files with these file types will be transformed. If empty, all - # supported files will be transformed. Supported types may be automatically - # added over time. If a file type is set in this field that isn't supported - # by the Deidentify action then the job will fail and will not be - # successfully created/started. Currently the only file types supported - # are: IMAGES, TEXT_FILES, CSV, TSV. + # the files with these file types are transformed. If empty, all + # supported files are transformed. Supported types may be automatically + # added over time. Any unsupported file types that are set in this field + # are excluded from de-identification. An error is recorded for each + # unsupported file in the TransformationDetails output table. Currently the + # only file types supported are: IMAGES, TEXT_FILES, CSV, TSV. class Deidentify include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -6757,6 +6789,7 @@ class ListProjectDataProfilesResponse # - `resource_visibility`: PUBLIC|RESTRICTED # - `status_code` - an RPC status code as defined in # https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + # # * The operator must be `=` or `!=`. # # Examples: @@ -6994,7 +7027,8 @@ class DataProfileConfigSnapshot # May be empty if the profile is still being generated. # @!attribute [rw] state # @return [::Google::Cloud::Dlp::V2::TableDataProfile::State] - # State of a profile. + # State of a profile. This will always be set to DONE when the table data + # profile is written to another service like BigQuery or Pub/Sub. # @!attribute [rw] sensitivity_score # @return [::Google::Cloud::Dlp::V2::SensitivityScore] # The sensitivity score of this table. @@ -7055,6 +7089,9 @@ class DataProfileConfigSnapshot # @!attribute [rw] related_resources # @return [::Array<::Google::Cloud::Dlp::V2::RelatedResource>] # Resources related to this profile. + # @!attribute [rw] domains + # @return [::Array<::Google::Cloud::Dlp::V2::Domain>] + # Domains associated with the profile. class TableDataProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -7397,6 +7434,9 @@ module ColumnPolicyState # @!attribute [rw] related_resources # @return [::Array<::Google::Cloud::Dlp::V2::RelatedResource>] # Resources related to this profile. + # @!attribute [rw] domains + # @return [::Array<::Google::Cloud::Dlp::V2::Domain>] + # Domains associated with the profile. class FileStoreDataProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -7605,6 +7645,7 @@ class GetFileStoreDataProfileRequest # - `resource_visibility`: PUBLIC|RESTRICTED # - `status_code` - an RPC status code as defined in # https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + # # * The operator must be `=` or `!=`. # # Examples: @@ -8040,42 +8081,61 @@ module Cluster # ProcessingLocation will redirect OCR to a location where OCR is provided. # @!attribute [rw] image_fallback_location # @return [::Google::Cloud::Dlp::V2::ProcessingLocation::ImageFallbackLocation] - # Image processing will fall back using this configuration. + # Image processing falls back using this configuration. + # @!attribute [rw] document_fallback_location + # @return [::Google::Cloud::Dlp::V2::ProcessingLocation::DocumentFallbackLocation] + # Document processing falls back using this configuration. class ProcessingLocation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Processing will happen in a multi-region that contains the current region + # Processing occurs in a multi-region that contains the current region # if available. class MultiRegionProcessing include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Processing will happen in the global region. + # Processing occurs in the global region. class GlobalProcessing include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Configure image processing to fall back to the configured processing option - # below if unavailable in the request location. + # Configure image processing to fall back to any of the following processing + # options if image processing is unavailable in the original request + # location. # @!attribute [rw] multi_region_processing # @return [::Google::Cloud::Dlp::V2::ProcessingLocation::MultiRegionProcessing] - # Processing will happen in a multi-region that contains the current region + # Processing occurs in a multi-region that contains the current region # if available. # @!attribute [rw] global_processing # @return [::Google::Cloud::Dlp::V2::ProcessingLocation::GlobalProcessing] - # Processing will happen in the global region. + # Processing occurs in the global region. class ImageFallbackLocation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Configure document processing to fall back to any of the following + # processing options if document processing is unavailable in the original + # request location. + # @!attribute [rw] multi_region_processing + # @return [::Google::Cloud::Dlp::V2::ProcessingLocation::MultiRegionProcessing] + # Processing occurs in a multi-region that contains the current region + # if available. + # @!attribute [rw] global_processing + # @return [::Google::Cloud::Dlp::V2::ProcessingLocation::GlobalProcessing] + # Processing occurs in the global region. + class DocumentFallbackLocation + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end # Collection of findings saved to a Cloud Storage bucket. This is used as the # proto schema for textproto files created when specifying a cloud storage - # path to save inspection findings. + # path to save Inspect findings. # @!attribute [rw] findings # @return [::Array<::Google::Cloud::Dlp::V2::Finding>] # List of findings. @@ -8084,6 +8144,63 @@ class SaveToGcsFindingsOutput extend ::Google::Protobuf::MessageExts::ClassMethods end + # A domain represents a thematic category that a data profile can fall under. + # @!attribute [rw] category + # @return [::Google::Cloud::Dlp::V2::Domain::Category] + # A domain category that this profile is related to. + # @!attribute [rw] signals + # @return [::Array<::Google::Cloud::Dlp::V2::Domain::Signal>] + # The collection of signals that influenced selection of the category. + class Domain + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # This enum defines the various domain categories a data profile can fall + # under. + module Category + # Category unspecified. + CATEGORY_UNSPECIFIED = 0 + + # Indicates that the data profile is related to artificial intelligence. + # When set, all findings stored to Security Command Center will set the + # corresponding AI domain field of `Finding` objects. + AI = 1 + + # Indicates that the data profile is related to code. + CODE = 2 + end + + # The signal used to determine the category. + # This list may increase over time. + module Signal + # Unused. + SIGNAL_UNSPECIFIED = 0 + + # One or more machine learning models are present. + MODEL = 1 + + # A table appears to be a text embedding. + TEXT_EMBEDDING = 2 + + # The [Cloud SQL Vertex + # AI](https://cloud.google.com/sql/docs/postgres/integrate-cloud-sql-with-vertex-ai) + # plugin is installed on the database. + VERTEX_PLUGIN = 3 + + # Support for [Cloud SQL vector + # embeddings](https://cloud.google.com/sql/docs/mysql/enable-vector-search) + # is enabled on the database. + VECTOR_PLUGIN = 4 + + # Source code is present. + SOURCE_CODE = 5 + + # If the service determines the category type. For example, Vertex AI + # assets would always have a `Category` of `AI`. + SERVICE = 6 + end + end + # Enum of possible outcomes of transformations. SUCCESS if transformation and # storing of transformation was successful, otherwise, reason for not # transforming. diff --git a/google-cloud-dlp-v2/snippets/snippet_metadata_google.privacy.dlp.v2.json b/google-cloud-dlp-v2/snippets/snippet_metadata_google.privacy.dlp.v2.json index 33d5fc51eb0d..a33651c29ef6 100644 --- a/google-cloud-dlp-v2/snippets/snippet_metadata_google.privacy.dlp.v2.json +++ b/google-cloud-dlp-v2/snippets/snippet_metadata_google.privacy.dlp.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-dlp-v2", - "version": "1.12.1", + "version": "1.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-dlp/CHANGELOG.md b/google-cloud-dlp/CHANGELOG.md index da2d49231695..4d39a5a497bf 100644 --- a/google-cloud-dlp/CHANGELOG.md +++ b/google-cloud-dlp/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.8.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.8.2 (2025-05-27) #### Documentation diff --git a/google-cloud-dlp/README.md b/google-cloud-dlp/README.md index 31399228ac26..ac087ed1435b 100644 --- a/google-cloud-dlp/README.md +++ b/google-cloud-dlp/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/dlp.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/dlp" + +client = Google::Cloud::Dlp.dlp_service +request = ::Google::Cloud::Dlp::V2::InspectContentRequest.new # (request fields as keyword arguments...) +response = client.inspect_content request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-dlp client is a significant upgrade diff --git a/google-cloud-dlp/lib/google/cloud/dlp/version.rb b/google-cloud-dlp/lib/google/cloud/dlp/version.rb index c3493c906727..a2243a227575 100644 --- a/google-cloud-dlp/lib/google/cloud/dlp/version.rb +++ b/google-cloud-dlp/lib/google/cloud/dlp/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Dlp - VERSION = "1.8.2" + VERSION = "1.8.3" end end end diff --git a/google-cloud-document_ai-v1/CHANGELOG.md b/google-cloud-document_ai-v1/CHANGELOG.md index 702df3c5b3df..e6e81b01c58c 100644 --- a/google-cloud-document_ai-v1/CHANGELOG.md +++ b/google-cloud-document_ai-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.7.0 (2025-08-26) #### Features diff --git a/google-cloud-document_ai-v1/google-cloud-document_ai-v1.gemspec b/google-cloud-document_ai-v1/google-cloud-document_ai-v1.gemspec index 8d983a647a14..d89289421e00 100644 --- a/google-cloud-document_ai-v1/google-cloud-document_ai-v1.gemspec +++ b/google-cloud-document_ai-v1/google-cloud-document_ai-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-document_ai-v1/lib/google/cloud/document_ai/v1/version.rb b/google-cloud-document_ai-v1/lib/google/cloud/document_ai/v1/version.rb index 4b0725ff89cc..b5b312d4bd7f 100644 --- a/google-cloud-document_ai-v1/lib/google/cloud/document_ai/v1/version.rb +++ b/google-cloud-document_ai-v1/lib/google/cloud/document_ai/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DocumentAI module V1 - VERSION = "1.7.0" + VERSION = "1.8.0" end end end diff --git a/google-cloud-document_ai-v1/snippets/snippet_metadata_google.cloud.documentai.v1.json b/google-cloud-document_ai-v1/snippets/snippet_metadata_google.cloud.documentai.v1.json index e6a1319ee53f..5e019635b521 100644 --- a/google-cloud-document_ai-v1/snippets/snippet_metadata_google.cloud.documentai.v1.json +++ b/google-cloud-document_ai-v1/snippets/snippet_metadata_google.cloud.documentai.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-document_ai-v1", - "version": "1.7.0", + "version": "1.8.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-document_ai-v1beta3/CHANGELOG.md b/google-cloud-document_ai-v1beta3/CHANGELOG.md index c58cc98fa9ec..a84c6322c290 100644 --- a/google-cloud-document_ai-v1beta3/CHANGELOG.md +++ b/google-cloud-document_ai-v1beta3/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.44.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.43.1 (2025-07-15) #### Documentation diff --git a/google-cloud-document_ai-v1beta3/google-cloud-document_ai-v1beta3.gemspec b/google-cloud-document_ai-v1beta3/google-cloud-document_ai-v1beta3.gemspec index 534d46eb22ca..789e7f705008 100644 --- a/google-cloud-document_ai-v1beta3/google-cloud-document_ai-v1beta3.gemspec +++ b/google-cloud-document_ai-v1beta3/google-cloud-document_ai-v1beta3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-document_ai-v1beta3/lib/google/cloud/document_ai/v1beta3/version.rb b/google-cloud-document_ai-v1beta3/lib/google/cloud/document_ai/v1beta3/version.rb index 83af4f9a2507..0f63a6f0c597 100644 --- a/google-cloud-document_ai-v1beta3/lib/google/cloud/document_ai/v1beta3/version.rb +++ b/google-cloud-document_ai-v1beta3/lib/google/cloud/document_ai/v1beta3/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module DocumentAI module V1beta3 - VERSION = "0.43.1" + VERSION = "0.44.0" end end end diff --git a/google-cloud-document_ai-v1beta3/snippets/snippet_metadata_google.cloud.documentai.v1beta3.json b/google-cloud-document_ai-v1beta3/snippets/snippet_metadata_google.cloud.documentai.v1beta3.json index 39b5452e5003..0f745dfc5120 100644 --- a/google-cloud-document_ai-v1beta3/snippets/snippet_metadata_google.cloud.documentai.v1beta3.json +++ b/google-cloud-document_ai-v1beta3/snippets/snippet_metadata_google.cloud.documentai.v1beta3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-document_ai-v1beta3", - "version": "0.43.1", + "version": "0.44.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-document_ai/CHANGELOG.md b/google-cloud-document_ai/CHANGELOG.md index 5d8deb683dd3..b353c837916c 100644 --- a/google-cloud-document_ai/CHANGELOG.md +++ b/google-cloud-document_ai/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-document_ai/README.md b/google-cloud-document_ai/README.md index dfd5acd0904c..e70591f40bba 100644 --- a/google-cloud-document_ai/README.md +++ b/google-cloud-document_ai/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/documentai.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/document_ai" + +client = Google::Cloud::DocumentAI.document_processor_service +request = ::Google::Cloud::DocumentAI::V1::ProcessRequest.new # (request fields as keyword arguments...) +response = client.process_document request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-document_ai/lib/google/cloud/document_ai/version.rb b/google-cloud-document_ai/lib/google/cloud/document_ai/version.rb index 29fc6f63898d..75ee88a065db 100644 --- a/google-cloud-document_ai/lib/google/cloud/document_ai/version.rb +++ b/google-cloud-document_ai/lib/google/cloud/document_ai/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module DocumentAI - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-domains-v1/CHANGELOG.md b/google-cloud-domains-v1/CHANGELOG.md index 95e736fc7344..4f60e62f4730 100644 --- a/google-cloud-domains-v1/CHANGELOG.md +++ b/google-cloud-domains-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-domains-v1/google-cloud-domains-v1.gemspec b/google-cloud-domains-v1/google-cloud-domains-v1.gemspec index a684029c6808..c7c87defcfe4 100644 --- a/google-cloud-domains-v1/google-cloud-domains-v1.gemspec +++ b/google-cloud-domains-v1/google-cloud-domains-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-domains-v1/lib/google/cloud/domains/v1/version.rb b/google-cloud-domains-v1/lib/google/cloud/domains/v1/version.rb index a727cb95aefd..85c755e0ecb3 100644 --- a/google-cloud-domains-v1/lib/google/cloud/domains/v1/version.rb +++ b/google-cloud-domains-v1/lib/google/cloud/domains/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Domains module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-domains-v1/snippets/snippet_metadata_google.cloud.domains.v1.json b/google-cloud-domains-v1/snippets/snippet_metadata_google.cloud.domains.v1.json index bfa9e2108672..e99aa010e493 100644 --- a/google-cloud-domains-v1/snippets/snippet_metadata_google.cloud.domains.v1.json +++ b/google-cloud-domains-v1/snippets/snippet_metadata_google.cloud.domains.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-domains-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-domains-v1beta1/CHANGELOG.md b/google-cloud-domains-v1beta1/CHANGELOG.md index efb3fe89eee0..fa0705651fa6 100644 --- a/google-cloud-domains-v1beta1/CHANGELOG.md +++ b/google-cloud-domains-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-domains-v1beta1/google-cloud-domains-v1beta1.gemspec b/google-cloud-domains-v1beta1/google-cloud-domains-v1beta1.gemspec index bb1252d3991c..db836ceb6837 100644 --- a/google-cloud-domains-v1beta1/google-cloud-domains-v1beta1.gemspec +++ b/google-cloud-domains-v1beta1/google-cloud-domains-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-domains-v1beta1/lib/google/cloud/domains/v1beta1/version.rb b/google-cloud-domains-v1beta1/lib/google/cloud/domains/v1beta1/version.rb index d81f1d934925..d208fa74502b 100644 --- a/google-cloud-domains-v1beta1/lib/google/cloud/domains/v1beta1/version.rb +++ b/google-cloud-domains-v1beta1/lib/google/cloud/domains/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Domains module V1beta1 - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-domains-v1beta1/snippets/snippet_metadata_google.cloud.domains.v1beta1.json b/google-cloud-domains-v1beta1/snippets/snippet_metadata_google.cloud.domains.v1beta1.json index 53e0e89fc0d8..d7b1db07c634 100644 --- a/google-cloud-domains-v1beta1/snippets/snippet_metadata_google.cloud.domains.v1beta1.json +++ b/google-cloud-domains-v1beta1/snippets/snippet_metadata_google.cloud.domains.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-domains-v1beta1", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-domains/CHANGELOG.md b/google-cloud-domains/CHANGELOG.md index 21077d8dba8c..e45103cf88d8 100644 --- a/google-cloud-domains/CHANGELOG.md +++ b/google-cloud-domains/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-domains/README.md b/google-cloud-domains/README.md index e0bf962ca65d..928aed05ec28 100644 --- a/google-cloud-domains/README.md +++ b/google-cloud-domains/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/domains.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/domains" + +client = Google::Cloud::Domains.domains +request = ::Google::Cloud::Domains::V1beta1::SearchDomainsRequest.new # (request fields as keyword arguments...) +response = client.search_domains request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-domains/lib/google/cloud/domains/version.rb b/google-cloud-domains/lib/google/cloud/domains/version.rb index 829a881fb08e..a40ec96f5122 100644 --- a/google-cloud-domains/lib/google/cloud/domains/version.rb +++ b/google-cloud-domains/lib/google/cloud/domains/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Domains - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-edge_container-v1/CHANGELOG.md b/google-cloud-edge_container-v1/CHANGELOG.md index a9835f65e857..b31be757257a 100644 --- a/google-cloud-edge_container-v1/CHANGELOG.md +++ b/google-cloud-edge_container-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-edge_container-v1/google-cloud-edge_container-v1.gemspec b/google-cloud-edge_container-v1/google-cloud-edge_container-v1.gemspec index 06e54d91b880..c444224ede47 100644 --- a/google-cloud-edge_container-v1/google-cloud-edge_container-v1.gemspec +++ b/google-cloud-edge_container-v1/google-cloud-edge_container-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-edge_container-v1/lib/google/cloud/edge_container/v1/version.rb b/google-cloud-edge_container-v1/lib/google/cloud/edge_container/v1/version.rb index 72abc2ba6389..aa2007ff8569 100644 --- a/google-cloud-edge_container-v1/lib/google/cloud/edge_container/v1/version.rb +++ b/google-cloud-edge_container-v1/lib/google/cloud/edge_container/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module EdgeContainer module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-edge_container-v1/snippets/snippet_metadata_google.cloud.edgecontainer.v1.json b/google-cloud-edge_container-v1/snippets/snippet_metadata_google.cloud.edgecontainer.v1.json index 3ec2576885a5..4defa1bdccf1 100644 --- a/google-cloud-edge_container-v1/snippets/snippet_metadata_google.cloud.edgecontainer.v1.json +++ b/google-cloud-edge_container-v1/snippets/snippet_metadata_google.cloud.edgecontainer.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-edge_container-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-edge_container/CHANGELOG.md b/google-cloud-edge_container/CHANGELOG.md index 7426a41521ff..0b7185091aae 100644 --- a/google-cloud-edge_container/CHANGELOG.md +++ b/google-cloud-edge_container/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-edge_container/README.md b/google-cloud-edge_container/README.md index bb0b94297453..bfe6298a6cf2 100644 --- a/google-cloud-edge_container/README.md +++ b/google-cloud-edge_container/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/edgecontainer.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/edge_container" + +client = Google::Cloud::EdgeContainer.edge_container +request = ::Google::Cloud::EdgeContainer::V1::ListClustersRequest.new # (request fields as keyword arguments...) +response = client.list_clusters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-edge_container/lib/google/cloud/edge_container/version.rb b/google-cloud-edge_container/lib/google/cloud/edge_container/version.rb index 0748d76b5007..50a1ffefd67e 100644 --- a/google-cloud-edge_container/lib/google/cloud/edge_container/version.rb +++ b/google-cloud-edge_container/lib/google/cloud/edge_container/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module EdgeContainer - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-edge_network-v1/CHANGELOG.md b/google-cloud-edge_network-v1/CHANGELOG.md index ae2531feedbb..977d3a5ecdfb 100644 --- a/google-cloud-edge_network-v1/CHANGELOG.md +++ b/google-cloud-edge_network-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-edge_network-v1/google-cloud-edge_network-v1.gemspec b/google-cloud-edge_network-v1/google-cloud-edge_network-v1.gemspec index edccb579d0db..02f73110edd4 100644 --- a/google-cloud-edge_network-v1/google-cloud-edge_network-v1.gemspec +++ b/google-cloud-edge_network-v1/google-cloud-edge_network-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-edge_network-v1/lib/google/cloud/edge_network/v1/version.rb b/google-cloud-edge_network-v1/lib/google/cloud/edge_network/v1/version.rb index e110fab2160d..05cefce9a73e 100644 --- a/google-cloud-edge_network-v1/lib/google/cloud/edge_network/v1/version.rb +++ b/google-cloud-edge_network-v1/lib/google/cloud/edge_network/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module EdgeNetwork module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-edge_network-v1/snippets/snippet_metadata_google.cloud.edgenetwork.v1.json b/google-cloud-edge_network-v1/snippets/snippet_metadata_google.cloud.edgenetwork.v1.json index 6ce36b7a8190..b65d0181039c 100644 --- a/google-cloud-edge_network-v1/snippets/snippet_metadata_google.cloud.edgenetwork.v1.json +++ b/google-cloud-edge_network-v1/snippets/snippet_metadata_google.cloud.edgenetwork.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-edge_network-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-edge_network/CHANGELOG.md b/google-cloud-edge_network/CHANGELOG.md index 95e0875b206f..059b127117be 100644 --- a/google-cloud-edge_network/CHANGELOG.md +++ b/google-cloud-edge_network/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-edge_network/README.md b/google-cloud-edge_network/README.md index 0e804d934b34..941dbe127fe3 100644 --- a/google-cloud-edge_network/README.md +++ b/google-cloud-edge_network/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/edgenetwork.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/edge_network" + +client = Google::Cloud::EdgeNetwork.edge_network +request = ::Google::Cloud::EdgeNetwork::V1::InitializeZoneRequest.new # (request fields as keyword arguments...) +response = client.initialize_zone request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-edge_network/lib/google/cloud/edge_network/version.rb b/google-cloud-edge_network/lib/google/cloud/edge_network/version.rb index d2a2865ead98..934c344f1bad 100644 --- a/google-cloud-edge_network/lib/google/cloud/edge_network/version.rb +++ b/google-cloud-edge_network/lib/google/cloud/edge_network/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module EdgeNetwork - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-error_reporting-v1beta1/CHANGELOG.md b/google-cloud-error_reporting-v1beta1/CHANGELOG.md index 7dd0696f0df6..a354de8c6fa9 100644 --- a/google-cloud-error_reporting-v1beta1/CHANGELOG.md +++ b/google-cloud-error_reporting-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.14.0 (2025-05-12) #### Features diff --git a/google-cloud-error_reporting-v1beta1/google-cloud-error_reporting-v1beta1.gemspec b/google-cloud-error_reporting-v1beta1/google-cloud-error_reporting-v1beta1.gemspec index f899d8d33882..d880fda33063 100644 --- a/google-cloud-error_reporting-v1beta1/google-cloud-error_reporting-v1beta1.gemspec +++ b/google-cloud-error_reporting-v1beta1/google-cloud-error_reporting-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-error_reporting-v1beta1/lib/google/cloud/error_reporting/v1beta1/version.rb b/google-cloud-error_reporting-v1beta1/lib/google/cloud/error_reporting/v1beta1/version.rb index e8237a144e31..620deae04160 100644 --- a/google-cloud-error_reporting-v1beta1/lib/google/cloud/error_reporting/v1beta1/version.rb +++ b/google-cloud-error_reporting-v1beta1/lib/google/cloud/error_reporting/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ErrorReporting module V1beta1 - VERSION = "0.14.0" + VERSION = "0.15.0" end end end diff --git a/google-cloud-error_reporting-v1beta1/snippets/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json b/google-cloud-error_reporting-v1beta1/snippets/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json index 9fea2464b2b2..7c31d9d54976 100644 --- a/google-cloud-error_reporting-v1beta1/snippets/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json +++ b/google-cloud-error_reporting-v1beta1/snippets/snippet_metadata_google.devtools.clouderrorreporting.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-error_reporting-v1beta1", - "version": "0.14.0", + "version": "0.15.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-essential_contacts-v1/CHANGELOG.md b/google-cloud-essential_contacts-v1/CHANGELOG.md index 735c20bf6571..51d7a22132a6 100644 --- a/google-cloud-essential_contacts-v1/CHANGELOG.md +++ b/google-cloud-essential_contacts-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-essential_contacts-v1/google-cloud-essential_contacts-v1.gemspec b/google-cloud-essential_contacts-v1/google-cloud-essential_contacts-v1.gemspec index 6f4866d18699..58de2ae5e762 100644 --- a/google-cloud-essential_contacts-v1/google-cloud-essential_contacts-v1.gemspec +++ b/google-cloud-essential_contacts-v1/google-cloud-essential_contacts-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-essential_contacts-v1/lib/google/cloud/essential_contacts/v1/version.rb b/google-cloud-essential_contacts-v1/lib/google/cloud/essential_contacts/v1/version.rb index 98c4f056f477..aecf6a62fdf8 100644 --- a/google-cloud-essential_contacts-v1/lib/google/cloud/essential_contacts/v1/version.rb +++ b/google-cloud-essential_contacts-v1/lib/google/cloud/essential_contacts/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module EssentialContacts module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-essential_contacts-v1/snippets/snippet_metadata_google.cloud.essentialcontacts.v1.json b/google-cloud-essential_contacts-v1/snippets/snippet_metadata_google.cloud.essentialcontacts.v1.json index 1f04a9447b20..41ca30b312df 100644 --- a/google-cloud-essential_contacts-v1/snippets/snippet_metadata_google.cloud.essentialcontacts.v1.json +++ b/google-cloud-essential_contacts-v1/snippets/snippet_metadata_google.cloud.essentialcontacts.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-essential_contacts-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-essential_contacts/CHANGELOG.md b/google-cloud-essential_contacts/CHANGELOG.md index 3b44c3bf0ea6..50e807504d5d 100644 --- a/google-cloud-essential_contacts/CHANGELOG.md +++ b/google-cloud-essential_contacts/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-essential_contacts/README.md b/google-cloud-essential_contacts/README.md index 538b02c5b90e..5cbde69e337d 100644 --- a/google-cloud-essential_contacts/README.md +++ b/google-cloud-essential_contacts/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/essentialcontacts.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/essential_contacts" + +client = Google::Cloud::EssentialContacts.essential_contacts_service +request = ::Google::Cloud::EssentialContacts::V1::CreateContactRequest.new # (request fields as keyword arguments...) +response = client.create_contact request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-essential_contacts/lib/google/cloud/essential_contacts/version.rb b/google-cloud-essential_contacts/lib/google/cloud/essential_contacts/version.rb index 2320ecbe45f2..c5fef62c72d9 100644 --- a/google-cloud-essential_contacts/lib/google/cloud/essential_contacts/version.rb +++ b/google-cloud-essential_contacts/lib/google/cloud/essential_contacts/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module EssentialContacts - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-eventarc-publishing-v1/CHANGELOG.md b/google-cloud-eventarc-publishing-v1/CHANGELOG.md index 5a61b4042231..4196f680b5a3 100644 --- a/google-cloud-eventarc-publishing-v1/CHANGELOG.md +++ b/google-cloud-eventarc-publishing-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.1 (2025-07-15) #### Documentation diff --git a/google-cloud-eventarc-publishing-v1/google-cloud-eventarc-publishing-v1.gemspec b/google-cloud-eventarc-publishing-v1/google-cloud-eventarc-publishing-v1.gemspec index 13430899f43a..8e3d1d7363d7 100644 --- a/google-cloud-eventarc-publishing-v1/google-cloud-eventarc-publishing-v1.gemspec +++ b/google-cloud-eventarc-publishing-v1/google-cloud-eventarc-publishing-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-eventarc-publishing-v1/lib/google/cloud/eventarc/publishing/v1/version.rb b/google-cloud-eventarc-publishing-v1/lib/google/cloud/eventarc/publishing/v1/version.rb index 2a0bdd4c954c..e4304397efdd 100644 --- a/google-cloud-eventarc-publishing-v1/lib/google/cloud/eventarc/publishing/v1/version.rb +++ b/google-cloud-eventarc-publishing-v1/lib/google/cloud/eventarc/publishing/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Eventarc module Publishing module V1 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-eventarc-publishing-v1/snippets/snippet_metadata_google.cloud.eventarc.publishing.v1.json b/google-cloud-eventarc-publishing-v1/snippets/snippet_metadata_google.cloud.eventarc.publishing.v1.json index ff73812cb983..d9e67e64a500 100644 --- a/google-cloud-eventarc-publishing-v1/snippets/snippet_metadata_google.cloud.eventarc.publishing.v1.json +++ b/google-cloud-eventarc-publishing-v1/snippets/snippet_metadata_google.cloud.eventarc.publishing.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-eventarc-publishing-v1", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-eventarc-publishing/CHANGELOG.md b/google-cloud-eventarc-publishing/CHANGELOG.md index 647f2984d17b..71386c8bf83b 100644 --- a/google-cloud-eventarc-publishing/CHANGELOG.md +++ b/google-cloud-eventarc-publishing/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.4 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.3 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-eventarc-publishing/README.md b/google-cloud-eventarc-publishing/README.md index 3d15b10efb20..799c323688b8 100644 --- a/google-cloud-eventarc-publishing/README.md +++ b/google-cloud-eventarc-publishing/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/eventarcpublishing.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/eventarc/publishing" + +client = Google::Cloud::Eventarc::Publishing.publisher +request = ::Google::Cloud::Eventarc::Publishing::V1::PublishChannelConnectionEventsRequest.new # (request fields as keyword arguments...) +response = client.publish_channel_connection_events request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-eventarc-publishing/lib/google/cloud/eventarc/publishing/version.rb b/google-cloud-eventarc-publishing/lib/google/cloud/eventarc/publishing/version.rb index 48b4d14d0f82..746696f888dd 100644 --- a/google-cloud-eventarc-publishing/lib/google/cloud/eventarc/publishing/version.rb +++ b/google-cloud-eventarc-publishing/lib/google/cloud/eventarc/publishing/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Eventarc module Publishing - VERSION = "1.3.3" + VERSION = "1.3.4" end end end diff --git a/google-cloud-eventarc-v1/CHANGELOG.md b/google-cloud-eventarc-v1/CHANGELOG.md index 0775580d3c5a..539b504322c1 100644 --- a/google-cloud-eventarc-v1/CHANGELOG.md +++ b/google-cloud-eventarc-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 2.3.0 (2025-09-17) + +#### Features + +* add new fields to Eventarc resources ([#31518](https://github.com/googleapis/google-cloud-ruby/issues/31518)) + +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-eventarc-v1/google-cloud-eventarc-v1.gemspec b/google-cloud-eventarc-v1/google-cloud-eventarc-v1.gemspec index 7a1efe91dd2e..88e91d7a851a 100644 --- a/google-cloud-eventarc-v1/google-cloud-eventarc-v1.gemspec +++ b/google-cloud-eventarc-v1/google-cloud-eventarc-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/bindings_override.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/bindings_override.rb index 6779045ffd72..3b52fa6a8156 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/bindings_override.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/bindings_override.rb @@ -114,6 +114,14 @@ def self.configure ], body: nil ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :get, + uri_template: "/v1/{resource}:getIamPolicy", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/kafkaSources/[^/]+/?$}, false] + ], + body: nil + ), Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( uri_method: :get, uri_template: "/v1/{resource}:getIamPolicy", @@ -173,6 +181,14 @@ def self.configure ], body: "*" ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :post, + uri_template: "/v1/{resource}:setIamPolicy", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/kafkaSources/[^/]+/?$}, false] + ], + body: "*" + ), Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( uri_method: :post, uri_template: "/v1/{resource}:setIamPolicy", @@ -232,6 +248,14 @@ def self.configure ], body: "*" ), + Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( + uri_method: :post, + uri_template: "/v1/{resource}:testIamPermissions", + matches: [ + ["resource", %r{^projects/[^/]+/locations/[^/]+/kafkaSources/[^/]+/?$}, false] + ], + body: "*" + ), Gapic::Rest::GrpcTranscoder::HttpBinding.create_with_validation( uri_method: :post, uri_template: "/v1/{resource}:testIamPermissions", diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_connection_pb.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_connection_pb.rb index 08a7a47af908..3ba7d0551de8 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_connection_pb.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_connection_pb.rb @@ -9,7 +9,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n1google/cloud/eventarc/v1/channel_connection.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa7\x03\n\x11\x43hannelConnection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x38\n\x07\x63hannel\x18\x05 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x65ventarc.googleapis.com/Channel\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1d\n\x10\x61\x63tivation_token\x18\x08 \x01(\tB\x03\xe0\x41\x04:\xa7\x01\xea\x41\xa3\x01\n)eventarc.googleapis.com/ChannelConnection\x12Oprojects/{project}/locations/{location}/channelConnections/{channel_connection}*\x12\x63hannelConnections2\x11\x63hannelConnectionB\xc6\x01\n\x1c\x63om.google.cloud.eventarc.v1B\x16\x43hannelConnectionProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1b\x06proto3" +descriptor_data = "\n1google/cloud/eventarc/v1/channel_connection.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa4\x04\n\x11\x43hannelConnection\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x38\n\x07\x63hannel\x18\x05 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x65ventarc.googleapis.com/Channel\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1d\n\x10\x61\x63tivation_token\x18\x08 \x01(\tB\x03\xe0\x41\x04\x12L\n\x06labels\x18\t \x03(\x0b\x32\x37.google.cloud.eventarc.v1.ChannelConnection.LabelsEntryB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xa7\x01\xea\x41\xa3\x01\n)eventarc.googleapis.com/ChannelConnection\x12Oprojects/{project}/locations/{location}/channelConnections/{channel_connection}*\x12\x63hannelConnections2\x11\x63hannelConnectionB\xc6\x01\n\x1c\x63om.google.cloud.eventarc.v1B\x16\x43hannelConnectionProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_pb.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_pb.rb index 33c14e23aacf..1f27d9bc928e 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_pb.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/channel_pb.rb @@ -9,7 +9,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n&google/cloud/eventarc/v1/channel.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcb\x04\n\x07\x43hannel\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x10\n\x08provider\x18\x07 \x01(\t\x12\x1b\n\x0cpubsub_topic\x18\x08 \x01(\tB\x03\xe0\x41\x03H\x00\x12;\n\x05state\x18\t \x01(\x0e\x32\'.google.cloud.eventarc.v1.Channel.StateB\x03\xe0\x41\x03\x12\x1d\n\x10\x61\x63tivation_token\x18\n \x01(\tB\x03\xe0\x41\x03\x12?\n\x0f\x63rypto_key_name\x18\x0b \x01(\tB&\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x1a\n\rsatisfies_pzs\x18\x0c \x01(\x08\x42\x03\xe0\x41\x03\"E\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08INACTIVE\x10\x03:s\xea\x41p\n\x1f\x65ventarc.googleapis.com/Channel\x12:projects/{project}/locations/{location}/channels/{channel}*\x08\x63hannels2\x07\x63hannelB\x0b\n\ttransportB\xbc\x01\n\x1c\x63om.google.cloud.eventarc.v1B\x0c\x43hannelProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1b\x06proto3" +descriptor_data = "\n&google/cloud/eventarc/v1/channel.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc1\x05\n\x07\x43hannel\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x10\n\x08provider\x18\x07 \x01(\t\x12\x1b\n\x0cpubsub_topic\x18\x08 \x01(\tB\x03\xe0\x41\x03H\x00\x12;\n\x05state\x18\t \x01(\x0e\x32\'.google.cloud.eventarc.v1.Channel.StateB\x03\xe0\x41\x03\x12\x1d\n\x10\x61\x63tivation_token\x18\n \x01(\tB\x03\xe0\x41\x03\x12\x42\n\x0f\x63rypto_key_name\x18\x0b \x01(\tB)\xe0\x41\x01\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x1a\n\rsatisfies_pzs\x18\x0c \x01(\x08\x42\x03\xe0\x41\x03\x12\x42\n\x06labels\x18\r \x03(\x0b\x32-.google.cloud.eventarc.v1.Channel.LabelsEntryB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"E\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08INACTIVE\x10\x03:s\xea\x41p\n\x1f\x65ventarc.googleapis.com/Channel\x12:projects/{project}/locations/{location}/channels/{channel}*\x08\x63hannels2\x07\x63hannelB\x0b\n\ttransportB\xbc\x01\n\x1c\x63om.google.cloud.eventarc.v1B\x0c\x43hannelProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/enrollment_pb.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/enrollment_pb.rb index 9d54f0f19fb0..e785e1b4a6a7 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/enrollment_pb.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/enrollment_pb.rb @@ -9,7 +9,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n)google/cloud/eventarc/v1/enrollment.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbe\x05\n\nEnrollment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x45\n\x06labels\x18\x06 \x03(\x0b\x32\x30.google.cloud.eventarc.v1.Enrollment.LabelsEntryB\x03\xe0\x41\x01\x12O\n\x0b\x61nnotations\x18\x07 \x03(\x0b\x32\x35.google.cloud.eventarc.v1.Enrollment.AnnotationsEntryB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tcel_match\x18\t \x01(\tB\x03\xe0\x41\x02\x12?\n\x0bmessage_bus\x18\n \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"eventarc.googleapis.com/MessageBus\x12\x18\n\x0b\x64\x65stination\x18\x0b \x01(\tB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x82\x01\xea\x41\x7f\n\"eventarc.googleapis.com/Enrollment\x12@projects/{project}/locations/{location}/enrollments/{enrollment}*\x0b\x65nrollments2\nenrollmentB\xbf\x01\n\x1c\x63om.google.cloud.eventarc.v1B\x0f\x45nrollmentProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1b\x06proto3" +descriptor_data = "\n)google/cloud/eventarc/v1/enrollment.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xc1\x05\n\nEnrollment\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x10\n\x03uid\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x45\n\x06labels\x18\x06 \x03(\x0b\x32\x30.google.cloud.eventarc.v1.Enrollment.LabelsEntryB\x03\xe0\x41\x01\x12O\n\x0b\x61nnotations\x18\x07 \x03(\x0b\x32\x35.google.cloud.eventarc.v1.Enrollment.AnnotationsEntryB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tcel_match\x18\t \x01(\tB\x03\xe0\x41\x02\x12\x42\n\x0bmessage_bus\x18\n \x01(\tB-\xe0\x41\x02\xe0\x41\x05\xfa\x41$\n\"eventarc.googleapis.com/MessageBus\x12\x18\n\x0b\x64\x65stination\x18\x0b \x01(\tB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x82\x01\xea\x41\x7f\n\"eventarc.googleapis.com/Enrollment\x12@projects/{project}/locations/{location}/enrollments/{enrollment}*\x0b\x65nrollments2\nenrollmentB\xbf\x01\n\x1c\x63om.google.cloud.eventarc.v1B\x0f\x45nrollmentProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/client.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/client.rb index b8bc27d71c68..28beada18def 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/client.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/client.rb @@ -1925,7 +1925,9 @@ def delete_channel_connection request, options = nil end ## - # Get a GoogleChannelConfig + # Get a GoogleChannelConfig. + # The name of the GoogleChannelConfig in the response is ALWAYS coded with + # projectID. # # @overload get_google_channel_config(request, options = nil) # Pass arguments to `get_google_channel_config` via a request object, either of type @@ -2202,7 +2204,7 @@ def get_message_bus request, options = nil # the default parameter values, pass an empty Hash as a request object (see above). # # @param parent [::String] - # Required. The parent collection to list triggers on. + # Required. The parent collection to list message buses on. # @param page_size [::Integer] # Optional. The maximum number of results to return on each page. # @@ -2411,7 +2413,7 @@ def list_message_bus_enrollments request, options = nil # Required. The message bus to create. # @param message_bus_id [::String] # Required. The user-provided ID to be assigned to the MessageBus. It should - # match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$) + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. @@ -2914,7 +2916,7 @@ def list_enrollments request, options = nil # Required. The enrollment to create. # @param enrollment_id [::String] # Required. The user-provided ID to be assigned to the Enrollment. It should - # match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$). + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. @@ -3416,7 +3418,8 @@ def list_pipelines request, options = nil # @param pipeline [::Google::Cloud::Eventarc::V1::Pipeline, ::Hash] # Required. The pipeline to create. # @param pipeline_id [::String] - # Required. The user-provided ID to be assigned to the Pipeline. + # Required. The user-provided ID to be assigned to the Pipeline. It should + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. @@ -3919,7 +3922,7 @@ def list_google_api_sources request, options = nil # Required. The google api source to create. # @param google_api_source_id [::String] # Required. The user-provided ID to be assigned to the GoogleApiSource. It - # should match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$). + # should match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/rest/client.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/rest/client.rb index 3352aa844059..39038b8c6480 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/rest/client.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc/rest/client.rb @@ -1808,7 +1808,9 @@ def delete_channel_connection request, options = nil end ## - # Get a GoogleChannelConfig + # Get a GoogleChannelConfig. + # The name of the GoogleChannelConfig in the response is ALWAYS coded with + # projectID. # # @overload get_google_channel_config(request, options = nil) # Pass arguments to `get_google_channel_config` via a request object, either of type @@ -2064,7 +2066,7 @@ def get_message_bus request, options = nil # the default parameter values, pass an empty Hash as a request object (see above). # # @param parent [::String] - # Required. The parent collection to list triggers on. + # Required. The parent collection to list message buses on. # @param page_size [::Integer] # Optional. The maximum number of results to return on each page. # @@ -2259,7 +2261,7 @@ def list_message_bus_enrollments request, options = nil # Required. The message bus to create. # @param message_bus_id [::String] # Required. The user-provided ID to be assigned to the MessageBus. It should - # match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$) + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. @@ -2727,7 +2729,7 @@ def list_enrollments request, options = nil # Required. The enrollment to create. # @param enrollment_id [::String] # Required. The user-provided ID to be assigned to the Enrollment. It should - # match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$). + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. @@ -3194,7 +3196,8 @@ def list_pipelines request, options = nil # @param pipeline [::Google::Cloud::Eventarc::V1::Pipeline, ::Hash] # Required. The pipeline to create. # @param pipeline_id [::String] - # Required. The user-provided ID to be assigned to the Pipeline. + # Required. The user-provided ID to be assigned to the Pipeline. It should + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. @@ -3662,7 +3665,7 @@ def list_google_api_sources request, options = nil # Required. The google api source to create. # @param google_api_source_id [::String] # Required. The user-provided ID to be assigned to the GoogleApiSource. It - # should match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$). + # should match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param validate_only [::Boolean] # Optional. If set, validate the request and preview the review, but do not # post it. diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc_services_pb.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc_services_pb.rb index 081df8b05f3f..5ac934eca55f 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc_services_pb.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/eventarc_services_pb.rb @@ -66,7 +66,9 @@ class Service rpc :CreateChannelConnection, ::Google::Cloud::Eventarc::V1::CreateChannelConnectionRequest, ::Google::Longrunning::Operation # Delete a single ChannelConnection. rpc :DeleteChannelConnection, ::Google::Cloud::Eventarc::V1::DeleteChannelConnectionRequest, ::Google::Longrunning::Operation - # Get a GoogleChannelConfig + # Get a GoogleChannelConfig. + # The name of the GoogleChannelConfig in the response is ALWAYS coded with + # projectID. rpc :GetGoogleChannelConfig, ::Google::Cloud::Eventarc::V1::GetGoogleChannelConfigRequest, ::Google::Cloud::Eventarc::V1::GoogleChannelConfig # Update a single GoogleChannelConfig rpc :UpdateGoogleChannelConfig, ::Google::Cloud::Eventarc::V1::UpdateGoogleChannelConfigRequest, ::Google::Cloud::Eventarc::V1::GoogleChannelConfig diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/google_channel_config_pb.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/google_channel_config_pb.rb index 69bae0517aaa..a13ab31abd3f 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/google_channel_config_pb.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/google_channel_config_pb.rb @@ -9,7 +9,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n4google/cloud/eventarc/v1/google_channel_config.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa7\x02\n\x13GoogleChannelConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x0f\x63rypto_key_name\x18\x07 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey:\x82\x01\xea\x41\x7f\n+eventarc.googleapis.com/GoogleChannelConfig\x12;projects/{project}/locations/{location}/googleChannelConfig2\x13googleChannelConfigB\xc3\x02\n\x1c\x63om.google.cloud.eventarc.v1B\x18GoogleChannelConfigProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1\xea\x41x\n!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}b\x06proto3" +descriptor_data = "\n4google/cloud/eventarc/v1/google_channel_config.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbd\x03\n\x13GoogleChannelConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x0f\x63rypto_key_name\x18\x07 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12N\n\x06labels\x18\x08 \x03(\x0b\x32\x39.google.cloud.eventarc.v1.GoogleChannelConfig.LabelsEntryB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x99\x01\xea\x41\x95\x01\n+eventarc.googleapis.com/GoogleChannelConfig\x12;projects/{project}/locations/{location}/googleChannelConfig*\x14googleChannelConfigs2\x13googleChannelConfigB\xc3\x02\n\x1c\x63om.google.cloud.eventarc.v1B\x18GoogleChannelConfigProtoP\x01Z8cloud.google.com/go/eventarc/apiv1/eventarcpb;eventarcpb\xaa\x02\x18Google.Cloud.Eventarc.V1\xca\x02\x18Google\\Cloud\\Eventarc\\V1\xea\x02\x1bGoogle::Cloud::Eventarc::V1\xea\x41x\n!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/pipeline_pb.rb b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/pipeline_pb.rb index a0a45875580e..30e691747f84 100644 --- a/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/pipeline_pb.rb +++ b/google-cloud-eventarc-v1/lib/google/cloud/eventarc/v1/pipeline_pb.rb @@ -12,7 +12,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n\'google/cloud/eventarc/v1/pipeline.proto\x12\x18google.cloud.eventarc.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a-google/cloud/eventarc/v1/logging_config.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe1\x17\n\x08Pipeline\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32..google.cloud.eventarc.v1.Pipeline.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x03uid\x18\x05 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12M\n\x0b\x61nnotations\x18\x06 \x03(\x0b\x32\x33.google.cloud.eventarc.v1.Pipeline.AnnotationsEntryB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12I\n\x0c\x64\x65stinations\x18\x08 \x03(\x0b\x32..google.cloud.eventarc.v1.Pipeline.DestinationB\x03\xe0\x41\x02\x12\x45\n\nmediations\x18\t \x03(\x0b\x32,.google.cloud.eventarc.v1.Pipeline.MediationB\x03\xe0\x41\x01\x12\x42\n\x0f\x63rypto_key_name\x18\n \x01(\tB)\xe0\x41\x01\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12Z\n\x14input_payload_format\x18\x0b \x01(\x0b\x32\x37.google.cloud.eventarc.v1.Pipeline.MessagePayloadFormatB\x03\xe0\x41\x01\x12\x44\n\x0elogging_config\x18\x0c \x01(\x0b\x32\'.google.cloud.eventarc.v1.LoggingConfigB\x03\xe0\x41\x01\x12I\n\x0cretry_policy\x18\r \x01(\x0b\x32..google.cloud.eventarc.v1.Pipeline.RetryPolicyB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x63 \x01(\t\x1a\x9f\x03\n\x14MessagePayloadFormat\x12_\n\x08protobuf\x18\x01 \x01(\x0b\x32\x46.google.cloud.eventarc.v1.Pipeline.MessagePayloadFormat.ProtobufFormatB\x03\xe0\x41\x01H\x00\x12W\n\x04\x61vro\x18\x02 \x01(\x0b\x32\x42.google.cloud.eventarc.v1.Pipeline.MessagePayloadFormat.AvroFormatB\x03\xe0\x41\x01H\x00\x12W\n\x04json\x18\x03 \x01(\x0b\x32\x42.google.cloud.eventarc.v1.Pipeline.MessagePayloadFormat.JsonFormatB\x03\xe0\x41\x01H\x00\x1a\x0c\n\nJsonFormat\x1a\x30\n\x0eProtobufFormat\x12\x1e\n\x11schema_definition\x18\x01 \x01(\tB\x03\xe0\x41\x01\x1a,\n\nAvroFormat\x12\x1e\n\x11schema_definition\x18\x01 \x01(\tB\x03\xe0\x41\x01\x42\x06\n\x04kind\x1a\xe5\t\n\x0b\x44\x65stination\x12Y\n\x0enetwork_config\x18\x01 \x01(\x0b\x32<.google.cloud.eventarc.v1.Pipeline.Destination.NetworkConfigB\x03\xe0\x41\x01\x12Y\n\rhttp_endpoint\x18\x02 \x01(\x0b\x32;.google.cloud.eventarc.v1.Pipeline.Destination.HttpEndpointB\x03\xe0\x41\x01H\x00\x12=\n\x08workflow\x18\x03 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!workflows.googleapis.com/WorkflowH\x00\x12\x41\n\x0bmessage_bus\x18\x04 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"eventarc.googleapis.com/MessageBusH\x00\x12\x34\n\x05topic\x18\x08 \x01(\tB#\xe0\x41\x01\xfa\x41\x1d\n\x1bpubsub.googleapis.com/TopicH\x00\x12g\n\x15\x61uthentication_config\x18\x05 \x01(\x0b\x32\x43.google.cloud.eventarc.v1.Pipeline.Destination.AuthenticationConfigB\x03\xe0\x41\x01\x12[\n\x15output_payload_format\x18\x06 \x01(\x0b\x32\x37.google.cloud.eventarc.v1.Pipeline.MessagePayloadFormatB\x03\xe0\x41\x01\x1a]\n\rNetworkConfig\x12L\n\x12network_attachment\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(compute.googleapis.com/NetworkAttachment\x1aG\n\x0cHttpEndpoint\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12%\n\x18message_binding_template\x18\x03 \x01(\tB\x03\xe0\x41\x01\x1a\xdf\x03\n\x14\x41uthenticationConfig\x12i\n\x0bgoogle_oidc\x18\x01 \x01(\x0b\x32M.google.cloud.eventarc.v1.Pipeline.Destination.AuthenticationConfig.OidcTokenB\x03\xe0\x41\x01H\x00\x12j\n\x0boauth_token\x18\x02 \x01(\x0b\x32N.google.cloud.eventarc.v1.Pipeline.Destination.AuthenticationConfig.OAuthTokenB\x03\xe0\x41\x01H\x00\x1a\x66\n\tOidcToken\x12\x42\n\x0fservice_account\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12\x15\n\x08\x61udience\x18\x02 \x01(\tB\x03\xe0\x41\x01\x1a\x64\n\nOAuthToken\x12\x42\n\x0fservice_account\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12\x12\n\x05scope\x18\x02 \x01(\tB\x03\xe0\x41\x01\x42\"\n authentication_method_descriptorB\x18\n\x16\x64\x65stination_descriptor\x1a\xb7\x01\n\tMediation\x12Z\n\x0etransformation\x18\x01 \x01(\x0b\x32;.google.cloud.eventarc.v1.Pipeline.Mediation.TransformationB\x03\xe0\x41\x01H\x00\x1a\x36\n\x0eTransformation\x12$\n\x17transformation_template\x18\x01 \x01(\tB\x03\xe0\x41\x01\x42\x16\n\x14mediation_descriptor\x1a\x9a\x01\n\x0bRetryPolicy\x12\x19\n\x0cmax_attempts\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x37\n\x0fmin_retry_delay\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12\x37\n\x0fmax_retry_delay\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:x\xea\x41u\n eventarc.googleapis.com/Pipeline\x12 ::String}] + # Optional. Resource labels. class Channel include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # State lists all the possible states of a Channel module State # Default value. This value is unused. diff --git a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/channel_connection.rb b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/channel_connection.rb index 8154c7ba5f48..542fc99486c7 100644 --- a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/channel_connection.rb +++ b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/channel_connection.rb @@ -49,9 +49,21 @@ module V1 # Input only. Activation token for the channel. The token will be used # during the creation of ChannelConnection to bind the channel with the # provider project. This field will not be stored in the provider resource. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. Resource labels. class ChannelConnection include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end end end diff --git a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/enrollment.rb b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/enrollment.rb index 4ed4c44e8bad..09e4917f7874 100644 --- a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/enrollment.rb +++ b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/enrollment.rb @@ -59,8 +59,8 @@ module V1 # applies to. # @!attribute [rw] message_bus # @return [::String] - # Required. Resource name of the message bus identifying the source of the - # messages. It matches the form + # Required. Immutable. Resource name of the message bus identifying the + # source of the messages. It matches the form # projects/\\{project}/locations/\\{location}/messageBuses/\\{messageBus}. # @!attribute [rw] destination # @return [::String] diff --git a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/eventarc.rb b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/eventarc.rb index ec9d281bf827..ef234a6ee7f4 100644 --- a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/eventarc.rb +++ b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/eventarc.rb @@ -402,7 +402,7 @@ class GetMessageBusRequest # The request message for the ListMessageBuses method. # @!attribute [rw] parent # @return [::String] - # Required. The parent collection to list triggers on. + # Required. The parent collection to list message buses on. # @!attribute [rw] page_size # @return [::Integer] # Optional. The maximum number of results to return on each page. @@ -493,7 +493,7 @@ class ListMessageBusEnrollmentsResponse # @!attribute [rw] message_bus_id # @return [::String] # Required. The user-provided ID to be assigned to the MessageBus. It should - # match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$) + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] validate_only # @return [::Boolean] # Optional. If set, validate the request and preview the review, but do not @@ -612,7 +612,7 @@ class ListEnrollmentsResponse # @!attribute [rw] enrollment_id # @return [::String] # Required. The user-provided ID to be assigned to the Enrollment. It should - # match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$). + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] validate_only # @return [::Boolean] # Optional. If set, validate the request and preview the review, but do not @@ -730,7 +730,8 @@ class ListPipelinesResponse # Required. The pipeline to create. # @!attribute [rw] pipeline_id # @return [::String] - # Required. The user-provided ID to be assigned to the Pipeline. + # Required. The user-provided ID to be assigned to the Pipeline. It should + # match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] validate_only # @return [::Boolean] # Optional. If set, validate the request and preview the review, but do not @@ -849,7 +850,7 @@ class ListGoogleApiSourcesResponse # @!attribute [rw] google_api_source_id # @return [::String] # Required. The user-provided ID to be assigned to the GoogleApiSource. It - # should match the format (^[a-z]([a-z0-9-]\\{0,61}[a-z0-9])?$). + # should match the format `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] validate_only # @return [::Boolean] # Optional. If set, validate the request and preview the review, but do not diff --git a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/google_channel_config.rb b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/google_channel_config.rb index 08d206d3ccf9..4f4f9291ca46 100644 --- a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/google_channel_config.rb +++ b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/google_channel_config.rb @@ -30,6 +30,8 @@ module V1 # @return [::String] # Required. The resource name of the config. Must be in the format of, # `projects/{project}/locations/{location}/googleChannelConfig`. + # In API responses, the config name always includes the projectID, regardless + # of whether the projectID or projectNumber was provided. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The last-modified time. @@ -40,9 +42,21 @@ module V1 # # It must match the pattern # `projects/*/locations/*/keyRings/*/cryptoKeys/*`. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. Resource labels. class GoogleChannelConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end end end diff --git a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/pipeline.rb b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/pipeline.rb index a856de8f247e..ceeba998732c 100644 --- a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/pipeline.rb +++ b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/pipeline.rb @@ -86,11 +86,15 @@ module V1 # @!attribute [rw] retry_policy # @return [::Google::Cloud::Eventarc::V1::Pipeline::RetryPolicy] # Optional. The retry policy to use in the pipeline. - # @!attribute [rw] etag + # @!attribute [r] etag # @return [::String] # Output only. This checksum is computed by the server based on the value of # other fields, and might be sent only on create requests to ensure that the # client has an up-to-date value before proceeding. + # @!attribute [r] satisfies_pzs + # @return [::Boolean] + # Output only. Whether or not this Pipeline satisfies the requirements of + # physical zone separation class Pipeline include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -181,9 +185,9 @@ class AvroFormat # @return [::Google::Cloud::Eventarc::V1::Pipeline::Destination::AuthenticationConfig] # Optional. An authentication config used to authenticate message requests, # such that destinations can verify the source. For example, this can be - # used with private GCP destinations that require GCP credentials to access - # like Cloud Run. This field is optional and should be set only by users - # interested in authenticated push + # used with private Google Cloud destinations that require Google Cloud + # credentials for access like Cloud Run. This field is optional and should + # be set only by users interested in authenticated push. # @!attribute [rw] output_payload_format # @return [::Google::Cloud::Eventarc::V1::Pipeline::MessagePayloadFormat] # Optional. The message format before it is delivered to the destination. @@ -209,7 +213,7 @@ class NetworkConfig # Represents a HTTP endpoint destination. # @!attribute [rw] uri # @return [::String] - # Required. The URI of the HTTP enpdoint. + # Required. The URI of the HTTP endpoint. # # The value must be a RFC2396 URI string. # Examples: `https://svc.us-central1.p.local:8080/route`. @@ -221,10 +225,11 @@ class NetworkConfig # # If a binding expression is not specified here, the message # is treated as a CloudEvent and is mapped to the HTTP request according - # to the CloudEvent HTTP Protocol Binding Binary Content Mode. In this - # representation, all fields except the `data` and `datacontenttype` - # field on the message are mapped to HTTP request headers with a prefix - # of `ce-`. + # to the CloudEvent HTTP Protocol Binding Binary Content Mode + # (https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/http-protocol-binding.md#31-binary-content-mode). + # In this representation, all fields except the `data` and + # `datacontenttype` field on the message are mapped to HTTP request + # headers with a prefix of `ce-`. # # To construct the HTTP request payload and the value of the content-type # HTTP header, the payload format is defined as follows: @@ -254,7 +259,7 @@ class NetworkConfig # - If a map named `headers` exists on the result of the expression, # then its key/value pairs are directly mapped to the HTTP request # headers. The headers values are constructed from the corresponding - # value type’s canonical representation. If the `headers` field doesn’t + # value type's canonical representation. If the `headers` field doesn't # exist then the resulting HTTP request will be the headers of the # CloudEvent HTTP Binding Binary Content Mode representation of the final # message. Note: If the specified binding expression, has updated the @@ -296,6 +301,11 @@ class NetworkConfig # "body": "new-body" # } # ``` + # - The default binding for the message payload can be accessed using the + # `body` variable. It conatins a string representation of the message + # payload in the format specified by the `output_payload_format` field. + # If the `input_payload_format` field is not set, the `body` + # variable contains the same message payload bytes that were published. # # Additionally, the following CEL extension functions are provided for # use in this CEL expression: @@ -353,33 +363,28 @@ class NetworkConfig # - toMap: # [map1, map2, ...].toMap() -> map # - Converts a CEL list of CEL maps to a single CEL map - # - toDestinationPayloadFormat(): - # message.data.toDestinationPayloadFormat() -> string or bytes - # - Converts the message data to the destination payload format - # specified in Pipeline.Destination.output_payload_format - # - This function is meant to be applied to the message.data field. - # - If the destination payload format is not set, the function will - # return the message data unchanged. # - toCloudEventJsonWithPayloadFormat: # message.toCloudEventJsonWithPayloadFormat() -> map # - Converts a message to the corresponding structure of JSON - # format for CloudEvents - # - This function applies toDestinationPayloadFormat() to the - # message data. It also sets the corresponding datacontenttype of + # format for CloudEvents. + # - It converts `data` to destination payload format + # specified in `output_payload_format`. If `output_payload_format` is + # not set, the data will remain unchanged. + # - It also sets the corresponding datacontenttype of # the CloudEvent, as indicated by - # Pipeline.Destination.output_payload_format. If no - # output_payload_format is set it will use the existing - # datacontenttype on the CloudEvent if present, else leave - # datacontenttype absent. + # `output_payload_format`. If no + # `output_payload_format` is set it will use the value of the + # "datacontenttype" attribute on the CloudEvent if present, else + # remove "datacontenttype" attribute. # - This function expects that the content of the message will - # adhere to the standard CloudEvent format. If it doesn’t then this + # adhere to the standard CloudEvent format. If it doesn't then this # function will fail. # - The result is a CEL map that corresponds to the JSON # representation of the CloudEvent. To convert that data to a JSON # string it can be chained with the toJsonString function. # # The Pipeline expects that the message it receives adheres to the - # standard CloudEvent format. If it doesn’t then the outgoing message + # standard CloudEvent format. If it doesn't then the outgoing message # request may fail with a persistent error. class HttpEndpoint include ::Google::Protobuf::MessageExts @@ -390,7 +395,7 @@ class HttpEndpoint # @!attribute [rw] google_oidc # @return [::Google::Cloud::Eventarc::V1::Pipeline::Destination::AuthenticationConfig::OidcToken] # Optional. This authenticate method will apply Google OIDC tokens - # signed by a GCP service account to the requests. + # signed by a Google Cloud service account to the requests. # # Note: The following fields are mutually exclusive: `google_oidc`, `oauth_token`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] oauth_token @@ -409,15 +414,15 @@ class AuthenticationConfig extend ::Google::Protobuf::MessageExts::ClassMethods # Represents a config used to authenticate with a Google OIDC token using - # a GCP service account. Use this authentication method to invoke your - # Cloud Run and Cloud Functions destinations or HTTP endpoints that - # support Google OIDC. + # a Google Cloud service account. Use this authentication method to + # invoke your Cloud Run and Cloud Functions destinations or HTTP + # endpoints that support Google OIDC. # @!attribute [rw] service_account # @return [::String] # Required. Service account email used to generate the OIDC Token. # The principal who calls this API must have # iam.serviceAccounts.actAs permission in the service account. See - # https://cloud.google.com/iam/docs/understanding-service-accounts?hl=en#sa_common + # https://cloud.google.com/iam/docs/understanding-service-accounts # for more information. Eventarc service agents must have # roles/roles/iam.serviceAccountTokenCreator role to allow the # Pipeline to create OpenID tokens for authenticated requests. @@ -441,7 +446,7 @@ class OidcToken # token](https://developers.google.com/identity/protocols/OAuth2). # The principal who calls this API must have # iam.serviceAccounts.actAs permission in the service account. See - # https://cloud.google.com/iam/docs/understanding-service-accounts?hl=en#sa_common + # https://cloud.google.com/iam/docs/understanding-service-accounts # for more information. Eventarc service agents must have # roles/roles/iam.serviceAccountTokenCreator role to allow Pipeline # to create OAuth2 tokens for authenticated requests. @@ -539,7 +544,7 @@ class Mediation # datacontenttype on the CloudEvent if present, else leave # datacontenttype absent. # - This function expects that the content of the message will - # adhere to the standard CloudEvent format. If it doesn’t then this + # adhere to the standard CloudEvent format. If it doesn't then this # function will fail. # - The result is a CEL map that corresponds to the JSON # representation of the CloudEvent. To convert that data to a JSON diff --git a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/trigger.rb b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/trigger.rb index 5f1bb4e9b613..738b29988ee3 100644 --- a/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/trigger.rb +++ b/google-cloud-eventarc-v1/proto_docs/google/cloud/eventarc/v1/trigger.rb @@ -280,7 +280,7 @@ class Pubsub # Represents a HTTP endpoint destination. # @!attribute [rw] uri # @return [::String] - # Required. The URI of the HTTP enpdoint. + # Required. The URI of the HTTP endpoint. # # The value must be a RFC2396 URI string. # Examples: `http://10.10.10.8:80/route`, diff --git a/google-cloud-eventarc-v1/snippets/snippet_metadata_google.cloud.eventarc.v1.json b/google-cloud-eventarc-v1/snippets/snippet_metadata_google.cloud.eventarc.v1.json index cacadcf9a67c..1058422d3c98 100644 --- a/google-cloud-eventarc-v1/snippets/snippet_metadata_google.cloud.eventarc.v1.json +++ b/google-cloud-eventarc-v1/snippets/snippet_metadata_google.cloud.eventarc.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-eventarc-v1", - "version": "2.1.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-eventarc/CHANGELOG.md b/google-cloud-eventarc/CHANGELOG.md index 7366d0b43897..345bea5c6231 100644 --- a/google-cloud-eventarc/CHANGELOG.md +++ b/google-cloud-eventarc/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-eventarc/README.md b/google-cloud-eventarc/README.md index fef839d2b670..b86a86443f9b 100644 --- a/google-cloud-eventarc/README.md +++ b/google-cloud-eventarc/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/eventarc.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/eventarc" + +client = Google::Cloud::Eventarc.eventarc +request = ::Google::Cloud::Eventarc::V1::GetTriggerRequest.new # (request fields as keyword arguments...) +response = client.get_trigger request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-eventarc/lib/google/cloud/eventarc/version.rb b/google-cloud-eventarc/lib/google/cloud/eventarc/version.rb index 121f56cfd6f3..639068fb7182 100644 --- a/google-cloud-eventarc/lib/google/cloud/eventarc/version.rb +++ b/google-cloud-eventarc/lib/google/cloud/eventarc/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Eventarc - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-filestore-v1/CHANGELOG.md b/google-cloud-filestore-v1/CHANGELOG.md index 157633b87dfc..c1f636b56404 100644 --- a/google-cloud-filestore-v1/CHANGELOG.md +++ b/google-cloud-filestore-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.2.0 (2025-05-12) #### Features diff --git a/google-cloud-filestore-v1/google-cloud-filestore-v1.gemspec b/google-cloud-filestore-v1/google-cloud-filestore-v1.gemspec index 1856cd85eeda..e2d8f36173d9 100644 --- a/google-cloud-filestore-v1/google-cloud-filestore-v1.gemspec +++ b/google-cloud-filestore-v1/google-cloud-filestore-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-common", "~> 1.0" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" diff --git a/google-cloud-filestore-v1/lib/google/cloud/filestore/v1/version.rb b/google-cloud-filestore-v1/lib/google/cloud/filestore/v1/version.rb index f26e6644c709..5bf7eb0a690b 100644 --- a/google-cloud-filestore-v1/lib/google/cloud/filestore/v1/version.rb +++ b/google-cloud-filestore-v1/lib/google/cloud/filestore/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Filestore module V1 - VERSION = "2.2.0" + VERSION = "2.3.0" end end end diff --git a/google-cloud-filestore-v1/snippets/snippet_metadata_google.cloud.filestore.v1.json b/google-cloud-filestore-v1/snippets/snippet_metadata_google.cloud.filestore.v1.json index 9af0eac68209..a5466374f2fc 100644 --- a/google-cloud-filestore-v1/snippets/snippet_metadata_google.cloud.filestore.v1.json +++ b/google-cloud-filestore-v1/snippets/snippet_metadata_google.cloud.filestore.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-filestore-v1", - "version": "2.2.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-filestore/CHANGELOG.md b/google-cloud-filestore/CHANGELOG.md index e4a8de5d759a..da6ada3dc5d1 100644 --- a/google-cloud-filestore/CHANGELOG.md +++ b/google-cloud-filestore/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-filestore/README.md b/google-cloud-filestore/README.md index 24cbbb77cdf4..11cd2f82152b 100644 --- a/google-cloud-filestore/README.md +++ b/google-cloud-filestore/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/file.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/filestore" + +client = Google::Cloud::Filestore.cloud_filestore_manager +request = ::Google::Cloud::Filestore::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-filestore/lib/google/cloud/filestore/version.rb b/google-cloud-filestore/lib/google/cloud/filestore/version.rb index a10f964ae222..8017715f5293 100644 --- a/google-cloud-filestore/lib/google/cloud/filestore/version.rb +++ b/google-cloud-filestore/lib/google/cloud/filestore/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Filestore - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-financial_services-v1/CHANGELOG.md b/google-cloud-financial_services-v1/CHANGELOG.md index 085a7f1fb3ca..25af5e96be83 100644 --- a/google-cloud-financial_services-v1/CHANGELOG.md +++ b/google-cloud-financial_services-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.2.0 (2025-05-12) #### Features diff --git a/google-cloud-financial_services-v1/google-cloud-financial_services-v1.gemspec b/google-cloud-financial_services-v1/google-cloud-financial_services-v1.gemspec index 10c01257e363..8dd4d5119752 100644 --- a/google-cloud-financial_services-v1/google-cloud-financial_services-v1.gemspec +++ b/google-cloud-financial_services-v1/google-cloud-financial_services-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-financial_services-v1/lib/google/cloud/financial_services/v1/version.rb b/google-cloud-financial_services-v1/lib/google/cloud/financial_services/v1/version.rb index 19fe8a685143..6dd2c693e322 100644 --- a/google-cloud-financial_services-v1/lib/google/cloud/financial_services/v1/version.rb +++ b/google-cloud-financial_services-v1/lib/google/cloud/financial_services/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module FinancialServices module V1 - VERSION = "0.2.0" + VERSION = "0.3.0" end end end diff --git a/google-cloud-financial_services-v1/snippets/snippet_metadata_google.cloud.financialservices.v1.json b/google-cloud-financial_services-v1/snippets/snippet_metadata_google.cloud.financialservices.v1.json index 3a298f35b565..d8055cd5ac6e 100644 --- a/google-cloud-financial_services-v1/snippets/snippet_metadata_google.cloud.financialservices.v1.json +++ b/google-cloud-financial_services-v1/snippets/snippet_metadata_google.cloud.financialservices.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-financial_services-v1", - "version": "0.2.0", + "version": "0.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-financial_services/CHANGELOG.md b/google-cloud-financial_services/CHANGELOG.md index 244ac24471d2..ee1122ef5c74 100644 --- a/google-cloud-financial_services/CHANGELOG.md +++ b/google-cloud-financial_services/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-financial_services/README.md b/google-cloud-financial_services/README.md index b967c3f2d60a..6b7fb7c4ecbe 100644 --- a/google-cloud-financial_services/README.md +++ b/google-cloud-financial_services/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/financialservices.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/financial_services" + +client = Google::Cloud::FinancialServices.aml +request = ::Google::Cloud::FinancialServices::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-financial_services/lib/google/cloud/financial_services/version.rb b/google-cloud-financial_services/lib/google/cloud/financial_services/version.rb index 6d951857feb5..e69f70649d41 100644 --- a/google-cloud-financial_services/lib/google/cloud/financial_services/version.rb +++ b/google-cloud-financial_services/lib/google/cloud/financial_services/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module FinancialServices - VERSION = "0.1.1" + VERSION = "0.1.2" end end end diff --git a/google-cloud-firestore-admin-v1/CHANGELOG.md b/google-cloud-firestore-admin-v1/CHANGELOG.md index fb7da1c4efe8..04f074287e87 100644 --- a/google-cloud-firestore-admin-v1/CHANGELOG.md +++ b/google-cloud-firestore-admin-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.7.0 (2025-08-14) #### Features diff --git a/google-cloud-firestore-admin-v1/google-cloud-firestore-admin-v1.gemspec b/google-cloud-firestore-admin-v1/google-cloud-firestore-admin-v1.gemspec index 14b541472a99..1d5191b71829 100644 --- a/google-cloud-firestore-admin-v1/google-cloud-firestore-admin-v1.gemspec +++ b/google-cloud-firestore-admin-v1/google-cloud-firestore-admin-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-firestore-admin-v1/lib/google/cloud/firestore/admin/v1/version.rb b/google-cloud-firestore-admin-v1/lib/google/cloud/firestore/admin/v1/version.rb index 1eafff722b86..ff3bc2e6ad24 100644 --- a/google-cloud-firestore-admin-v1/lib/google/cloud/firestore/admin/v1/version.rb +++ b/google-cloud-firestore-admin-v1/lib/google/cloud/firestore/admin/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Firestore module Admin module V1 - VERSION = "1.7.0" + VERSION = "1.8.0" end end end diff --git a/google-cloud-firestore-admin-v1/snippets/snippet_metadata_google.firestore.admin.v1.json b/google-cloud-firestore-admin-v1/snippets/snippet_metadata_google.firestore.admin.v1.json index f14b9bb4b2f4..c293f8a5c653 100644 --- a/google-cloud-firestore-admin-v1/snippets/snippet_metadata_google.firestore.admin.v1.json +++ b/google-cloud-firestore-admin-v1/snippets/snippet_metadata_google.firestore.admin.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-firestore-admin-v1", - "version": "1.7.0", + "version": "1.8.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-firestore-admin/CHANGELOG.md b/google-cloud-firestore-admin/CHANGELOG.md index fa56c29b0994..c789638b3a3c 100644 --- a/google-cloud-firestore-admin/CHANGELOG.md +++ b/google-cloud-firestore-admin/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-firestore-admin/README.md b/google-cloud-firestore-admin/README.md index 4eaf7ed6711d..869363f67725 100644 --- a/google-cloud-firestore-admin/README.md +++ b/google-cloud-firestore-admin/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/firestore.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/firestore/admin" + +client = Google::Cloud::Firestore::Admin.firestore_admin +request = ::Google::Cloud::Firestore::Admin::V1::CreateIndexRequest.new # (request fields as keyword arguments...) +response = client.create_index request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-firestore-admin/lib/google/cloud/firestore/admin/version.rb b/google-cloud-firestore-admin/lib/google/cloud/firestore/admin/version.rb index fe630d305cd5..66a23fe6e44e 100644 --- a/google-cloud-firestore-admin/lib/google/cloud/firestore/admin/version.rb +++ b/google-cloud-firestore-admin/lib/google/cloud/firestore/admin/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Firestore module Admin - VERSION = "0.5.1" + VERSION = "0.5.2" end end end diff --git a/google-cloud-firestore-v1/CHANGELOG.md b/google-cloud-firestore-v1/CHANGELOG.md index 59ef7486f1dd..01593b418ab4 100644 --- a/google-cloud-firestore-v1/CHANGELOG.md +++ b/google-cloud-firestore-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.1 (2025-07-15) #### Documentation diff --git a/google-cloud-firestore-v1/google-cloud-firestore-v1.gemspec b/google-cloud-firestore-v1/google-cloud-firestore-v1.gemspec index 70fce8f0cc1e..9821a35b2173 100644 --- a/google-cloud-firestore-v1/google-cloud-firestore-v1.gemspec +++ b/google-cloud-firestore-v1/google-cloud-firestore-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-firestore-v1/lib/google/cloud/firestore/v1/version.rb b/google-cloud-firestore-v1/lib/google/cloud/firestore/v1/version.rb index dbb1533411a7..1e6eaec1e8d7 100644 --- a/google-cloud-firestore-v1/lib/google/cloud/firestore/v1/version.rb +++ b/google-cloud-firestore-v1/lib/google/cloud/firestore/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Firestore module V1 - VERSION = "2.1.1" + VERSION = "2.2.0" end end end diff --git a/google-cloud-firestore-v1/snippets/snippet_metadata_google.firestore.v1.json b/google-cloud-firestore-v1/snippets/snippet_metadata_google.firestore.v1.json index 596832cebe20..5e857611dec5 100644 --- a/google-cloud-firestore-v1/snippets/snippet_metadata_google.firestore.v1.json +++ b/google-cloud-firestore-v1/snippets/snippet_metadata_google.firestore.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-firestore-v1", - "version": "2.1.1", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-functions-v1/CHANGELOG.md b/google-cloud-functions-v1/CHANGELOG.md index cdd2612bbfe3..6e44d736f5ab 100644 --- a/google-cloud-functions-v1/CHANGELOG.md +++ b/google-cloud-functions-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-functions-v1/google-cloud-functions-v1.gemspec b/google-cloud-functions-v1/google-cloud-functions-v1.gemspec index 2687536cb630..864e659253bd 100644 --- a/google-cloud-functions-v1/google-cloud-functions-v1.gemspec +++ b/google-cloud-functions-v1/google-cloud-functions-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-functions-v1/lib/google/cloud/functions/v1/version.rb b/google-cloud-functions-v1/lib/google/cloud/functions/v1/version.rb index 3e298649f25b..bc1d78ada093 100644 --- a/google-cloud-functions-v1/lib/google/cloud/functions/v1/version.rb +++ b/google-cloud-functions-v1/lib/google/cloud/functions/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Functions module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-functions-v1/snippets/snippet_metadata_google.cloud.functions.v1.json b/google-cloud-functions-v1/snippets/snippet_metadata_google.cloud.functions.v1.json index 68d78e649d4a..d75159c7837a 100644 --- a/google-cloud-functions-v1/snippets/snippet_metadata_google.cloud.functions.v1.json +++ b/google-cloud-functions-v1/snippets/snippet_metadata_google.cloud.functions.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-functions-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-functions-v2/CHANGELOG.md b/google-cloud-functions-v2/CHANGELOG.md index f9f91b29ff95..8e0bb3817e8f 100644 --- a/google-cloud-functions-v2/CHANGELOG.md +++ b/google-cloud-functions-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-functions-v2/google-cloud-functions-v2.gemspec b/google-cloud-functions-v2/google-cloud-functions-v2.gemspec index 669b5de12b3c..0d784ec8066c 100644 --- a/google-cloud-functions-v2/google-cloud-functions-v2.gemspec +++ b/google-cloud-functions-v2/google-cloud-functions-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-functions-v2/lib/google/cloud/functions/v2/version.rb b/google-cloud-functions-v2/lib/google/cloud/functions/v2/version.rb index bf8935d701e0..3d3d6be51bf7 100644 --- a/google-cloud-functions-v2/lib/google/cloud/functions/v2/version.rb +++ b/google-cloud-functions-v2/lib/google/cloud/functions/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Functions module V2 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-functions-v2/snippets/snippet_metadata_google.cloud.functions.v2.json b/google-cloud-functions-v2/snippets/snippet_metadata_google.cloud.functions.v2.json index d6ef2044dfda..764c2eec2e63 100644 --- a/google-cloud-functions-v2/snippets/snippet_metadata_google.cloud.functions.v2.json +++ b/google-cloud-functions-v2/snippets/snippet_metadata_google.cloud.functions.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-functions-v2", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-functions/CHANGELOG.md b/google-cloud-functions/CHANGELOG.md index f2094e5b5986..dbf50b33c67f 100644 --- a/google-cloud-functions/CHANGELOG.md +++ b/google-cloud-functions/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-functions/README.md b/google-cloud-functions/README.md index 2a85f58e75f8..2395caf08576 100644 --- a/google-cloud-functions/README.md +++ b/google-cloud-functions/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudfunctions.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/functions" + +client = Google::Cloud::Functions.function_service +request = ::Google::Cloud::Functions::V2::GetFunctionRequest.new # (request fields as keyword arguments...) +response = client.get_function request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-functions/lib/google/cloud/functions/version.rb b/google-cloud-functions/lib/google/cloud/functions/version.rb index d55726dd94bb..123fd8efa7f2 100644 --- a/google-cloud-functions/lib/google/cloud/functions/version.rb +++ b/google-cloud-functions/lib/google/cloud/functions/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Functions - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-gdc_hardware_management-v1alpha/CHANGELOG.md b/google-cloud-gdc_hardware_management-v1alpha/CHANGELOG.md index b025647751ec..3f97d577c975 100644 --- a/google-cloud-gdc_hardware_management-v1alpha/CHANGELOG.md +++ b/google-cloud-gdc_hardware_management-v1alpha/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.10.0 (2025-08-29) #### Features diff --git a/google-cloud-gdc_hardware_management-v1alpha/google-cloud-gdc_hardware_management-v1alpha.gemspec b/google-cloud-gdc_hardware_management-v1alpha/google-cloud-gdc_hardware_management-v1alpha.gemspec index 00f2507f94fd..fa8f96ea06dc 100644 --- a/google-cloud-gdc_hardware_management-v1alpha/google-cloud-gdc_hardware_management-v1alpha.gemspec +++ b/google-cloud-gdc_hardware_management-v1alpha/google-cloud-gdc_hardware_management-v1alpha.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-gdc_hardware_management-v1alpha/lib/google/cloud/gdc_hardware_management/v1alpha/version.rb b/google-cloud-gdc_hardware_management-v1alpha/lib/google/cloud/gdc_hardware_management/v1alpha/version.rb index ce76dd885011..dd6f5f578954 100644 --- a/google-cloud-gdc_hardware_management-v1alpha/lib/google/cloud/gdc_hardware_management/v1alpha/version.rb +++ b/google-cloud-gdc_hardware_management-v1alpha/lib/google/cloud/gdc_hardware_management/v1alpha/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GDCHardwareManagement module V1alpha - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-gdc_hardware_management-v1alpha/snippets/snippet_metadata_google.cloud.gdchardwaremanagement.v1alpha.json b/google-cloud-gdc_hardware_management-v1alpha/snippets/snippet_metadata_google.cloud.gdchardwaremanagement.v1alpha.json index c76eaa5af47f..0af4b4f08d4c 100644 --- a/google-cloud-gdc_hardware_management-v1alpha/snippets/snippet_metadata_google.cloud.gdchardwaremanagement.v1alpha.json +++ b/google-cloud-gdc_hardware_management-v1alpha/snippets/snippet_metadata_google.cloud.gdchardwaremanagement.v1alpha.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gdc_hardware_management-v1alpha", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gdc_hardware_management/CHANGELOG.md b/google-cloud-gdc_hardware_management/CHANGELOG.md index 7a11f75e82c8..e6dd20613ae8 100644 --- a/google-cloud-gdc_hardware_management/CHANGELOG.md +++ b/google-cloud-gdc_hardware_management/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-gdc_hardware_management/README.md b/google-cloud-gdc_hardware_management/README.md index 2e2fd7993eed..6fe26aecdb9d 100644 --- a/google-cloud-gdc_hardware_management/README.md +++ b/google-cloud-gdc_hardware_management/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/gdchardwaremanagement.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gdc_hardware_management" + +client = Google::Cloud::GDCHardwareManagement.gdc_hardware_management +request = ::Google::Cloud::GDCHardwareManagement::V1alpha::ListOrdersRequest.new # (request fields as keyword arguments...) +response = client.list_orders request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gdc_hardware_management/lib/google/cloud/gdc_hardware_management/version.rb b/google-cloud-gdc_hardware_management/lib/google/cloud/gdc_hardware_management/version.rb index 0bcd5cbb3975..db5269705b8b 100644 --- a/google-cloud-gdc_hardware_management/lib/google/cloud/gdc_hardware_management/version.rb +++ b/google-cloud-gdc_hardware_management/lib/google/cloud/gdc_hardware_management/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module GDCHardwareManagement - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/google-cloud-gemini_data_analytics-v1beta/CHANGELOG.md b/google-cloud-gemini_data_analytics-v1beta/CHANGELOG.md index fd0e2497f7bc..baa9ee62d4d5 100644 --- a/google-cloud-gemini_data_analytics-v1beta/CHANGELOG.md +++ b/google-cloud-gemini_data_analytics-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-08-27) #### Features diff --git a/google-cloud-gemini_data_analytics-v1beta/google-cloud-gemini_data_analytics-v1beta.gemspec b/google-cloud-gemini_data_analytics-v1beta/google-cloud-gemini_data_analytics-v1beta.gemspec index 30938f5d64b8..a163573e82ce 100644 --- a/google-cloud-gemini_data_analytics-v1beta/google-cloud-gemini_data_analytics-v1beta.gemspec +++ b/google-cloud-gemini_data_analytics-v1beta/google-cloud-gemini_data_analytics-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/gemini_data_analytics/v1beta/version.rb b/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/gemini_data_analytics/v1beta/version.rb index d5c8b55f93d3..c53580bf27a3 100644 --- a/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/gemini_data_analytics/v1beta/version.rb +++ b/google-cloud-gemini_data_analytics-v1beta/lib/google/cloud/gemini_data_analytics/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GeminiDataAnalytics module V1beta - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-gemini_data_analytics-v1beta/snippets/snippet_metadata_google.cloud.geminidataanalytics.v1beta.json b/google-cloud-gemini_data_analytics-v1beta/snippets/snippet_metadata_google.cloud.geminidataanalytics.v1beta.json index d7288cb9286f..ae2310852287 100644 --- a/google-cloud-gemini_data_analytics-v1beta/snippets/snippet_metadata_google.cloud.geminidataanalytics.v1beta.json +++ b/google-cloud-gemini_data_analytics-v1beta/snippets/snippet_metadata_google.cloud.geminidataanalytics.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gemini_data_analytics-v1beta", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gemini_data_analytics/CHANGELOG.md b/google-cloud-gemini_data_analytics/CHANGELOG.md index 64f3cadd6dfa..f0eb085df805 100644 --- a/google-cloud-gemini_data_analytics/CHANGELOG.md +++ b/google-cloud-gemini_data_analytics/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-08-27) #### Features diff --git a/google-cloud-gemini_data_analytics/README.md b/google-cloud-gemini_data_analytics/README.md index 3f42821e51cb..b1a04f66a6d3 100644 --- a/google-cloud-gemini_data_analytics/README.md +++ b/google-cloud-gemini_data_analytics/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/geminidataanalytics.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gemini_data_analytics" + +client = Google::Cloud::GeminiDataAnalytics.data_agent_service +request = ::Google::Cloud::GeminiDataAnalytics::V1beta::ListDataAgentsRequest.new # (request fields as keyword arguments...) +response = client.list_data_agents request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gemini_data_analytics/lib/google/cloud/gemini_data_analytics/version.rb b/google-cloud-gemini_data_analytics/lib/google/cloud/gemini_data_analytics/version.rb index dea265bc91f4..518eabf8ffe7 100644 --- a/google-cloud-gemini_data_analytics/lib/google/cloud/gemini_data_analytics/version.rb +++ b/google-cloud-gemini_data_analytics/lib/google/cloud/gemini_data_analytics/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module GeminiDataAnalytics - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-gke_backup-v1/CHANGELOG.md b/google-cloud-gke_backup-v1/CHANGELOG.md index 40dc1eb437a0..a59b8159e0a3 100644 --- a/google-cloud-gke_backup-v1/CHANGELOG.md +++ b/google-cloud-gke_backup-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-16) #### Features diff --git a/google-cloud-gke_backup-v1/google-cloud-gke_backup-v1.gemspec b/google-cloud-gke_backup-v1/google-cloud-gke_backup-v1.gemspec index fc7024f23faa..60f453624325 100644 --- a/google-cloud-gke_backup-v1/google-cloud-gke_backup-v1.gemspec +++ b/google-cloud-gke_backup-v1/google-cloud-gke_backup-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-gke_backup-v1/lib/google/cloud/gke_backup/v1/version.rb b/google-cloud-gke_backup-v1/lib/google/cloud/gke_backup/v1/version.rb index 02408ae4f909..ffe9f94e412c 100644 --- a/google-cloud-gke_backup-v1/lib/google/cloud/gke_backup/v1/version.rb +++ b/google-cloud-gke_backup-v1/lib/google/cloud/gke_backup/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GkeBackup module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-gke_backup-v1/snippets/snippet_metadata_google.cloud.gkebackup.v1.json b/google-cloud-gke_backup-v1/snippets/snippet_metadata_google.cloud.gkebackup.v1.json index 238fe9363152..db2f91fcef05 100644 --- a/google-cloud-gke_backup-v1/snippets/snippet_metadata_google.cloud.gkebackup.v1.json +++ b/google-cloud-gke_backup-v1/snippets/snippet_metadata_google.cloud.gkebackup.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gke_backup-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gke_backup/CHANGELOG.md b/google-cloud-gke_backup/CHANGELOG.md index 53656cdda9ff..008c2e0c9fb0 100644 --- a/google-cloud-gke_backup/CHANGELOG.md +++ b/google-cloud-gke_backup/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-gke_backup/README.md b/google-cloud-gke_backup/README.md index baf0c98d122e..0011d7c132ff 100644 --- a/google-cloud-gke_backup/README.md +++ b/google-cloud-gke_backup/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/gkebackup.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gke_backup" + +client = Google::Cloud::GkeBackup.backup_for_gke +request = ::Google::Cloud::GkeBackup::V1::CreateBackupPlanRequest.new # (request fields as keyword arguments...) +response = client.create_backup_plan request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gke_backup/lib/google/cloud/gke_backup/version.rb b/google-cloud-gke_backup/lib/google/cloud/gke_backup/version.rb index e53d4e0c60fe..4baec3ae3f58 100644 --- a/google-cloud-gke_backup/lib/google/cloud/gke_backup/version.rb +++ b/google-cloud-gke_backup/lib/google/cloud/gke_backup/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module GkeBackup - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-gke_connect-gateway-v1/CHANGELOG.md b/google-cloud-gke_connect-gateway-v1/CHANGELOG.md index 3e377f1e8aa2..f258d76e4db8 100644 --- a/google-cloud-gke_connect-gateway-v1/CHANGELOG.md +++ b/google-cloud-gke_connect-gateway-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.5.0 (2025-05-12) #### Features diff --git a/google-cloud-gke_connect-gateway-v1/google-cloud-gke_connect-gateway-v1.gemspec b/google-cloud-gke_connect-gateway-v1/google-cloud-gke_connect-gateway-v1.gemspec index 6ba03d59ce11..d9dde4a344c7 100644 --- a/google-cloud-gke_connect-gateway-v1/google-cloud-gke_connect-gateway-v1.gemspec +++ b/google-cloud-gke_connect-gateway-v1/google-cloud-gke_connect-gateway-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-gke_connect-gateway-v1/lib/google/cloud/gke_connect/gateway/v1/version.rb b/google-cloud-gke_connect-gateway-v1/lib/google/cloud/gke_connect/gateway/v1/version.rb index ec6c52b6a223..b17a9c824b4a 100644 --- a/google-cloud-gke_connect-gateway-v1/lib/google/cloud/gke_connect/gateway/v1/version.rb +++ b/google-cloud-gke_connect-gateway-v1/lib/google/cloud/gke_connect/gateway/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module GkeConnect module Gateway module V1 - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-cloud-gke_connect-gateway-v1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1.json b/google-cloud-gke_connect-gateway-v1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1.json index c0e967db14f1..61166ced355c 100644 --- a/google-cloud-gke_connect-gateway-v1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1.json +++ b/google-cloud-gke_connect-gateway-v1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gke_connect-gateway-v1", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gke_connect-gateway-v1beta1/CHANGELOG.md b/google-cloud-gke_connect-gateway-v1beta1/CHANGELOG.md index f5039c237c16..afbef6643150 100644 --- a/google-cloud-gke_connect-gateway-v1beta1/CHANGELOG.md +++ b/google-cloud-gke_connect-gateway-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.10.0 (2025-05-12) #### Features diff --git a/google-cloud-gke_connect-gateway-v1beta1/google-cloud-gke_connect-gateway-v1beta1.gemspec b/google-cloud-gke_connect-gateway-v1beta1/google-cloud-gke_connect-gateway-v1beta1.gemspec index 1eb58558492f..970dd887e009 100644 --- a/google-cloud-gke_connect-gateway-v1beta1/google-cloud-gke_connect-gateway-v1beta1.gemspec +++ b/google-cloud-gke_connect-gateway-v1beta1/google-cloud-gke_connect-gateway-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-gke_connect-gateway-v1beta1/lib/google/cloud/gke_connect/gateway/v1beta1/version.rb b/google-cloud-gke_connect-gateway-v1beta1/lib/google/cloud/gke_connect/gateway/v1beta1/version.rb index cb507e19f18c..03020f153b0c 100644 --- a/google-cloud-gke_connect-gateway-v1beta1/lib/google/cloud/gke_connect/gateway/v1beta1/version.rb +++ b/google-cloud-gke_connect-gateway-v1beta1/lib/google/cloud/gke_connect/gateway/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module GkeConnect module Gateway module V1beta1 - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-gke_connect-gateway-v1beta1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1beta1.json b/google-cloud-gke_connect-gateway-v1beta1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1beta1.json index e9cea4b03a4d..4e626f05ca16 100644 --- a/google-cloud-gke_connect-gateway-v1beta1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1beta1.json +++ b/google-cloud-gke_connect-gateway-v1beta1/snippets/snippet_metadata_google.cloud.gkeconnect.gateway.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gke_connect-gateway-v1beta1", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gke_connect-gateway/CHANGELOG.md b/google-cloud-gke_connect-gateway/CHANGELOG.md index 6100ea669d2a..a525754c8029 100644 --- a/google-cloud-gke_connect-gateway/CHANGELOG.md +++ b/google-cloud-gke_connect-gateway/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-gke_connect-gateway/README.md b/google-cloud-gke_connect-gateway/README.md index e3f165ab098d..fdba588dd479 100644 --- a/google-cloud-gke_connect-gateway/README.md +++ b/google-cloud-gke_connect-gateway/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/connectgateway.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gke_connect/gateway" + +client = Google::Cloud::GkeConnect::Gateway.gateway_control +request = ::Google::Cloud::GkeConnect::Gateway::V1::GenerateCredentialsRequest.new # (request fields as keyword arguments...) +response = client.generate_credentials request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gke_connect-gateway/lib/google/cloud/gke_connect/gateway/version.rb b/google-cloud-gke_connect-gateway/lib/google/cloud/gke_connect/gateway/version.rb index d0e2f87d9471..33bdece5bf22 100644 --- a/google-cloud-gke_connect-gateway/lib/google/cloud/gke_connect/gateway/version.rb +++ b/google-cloud-gke_connect-gateway/lib/google/cloud/gke_connect/gateway/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GkeConnect module Gateway - VERSION = "2.1.1" + VERSION = "2.1.2" end end end diff --git a/google-cloud-gke_hub-v1/CHANGELOG.md b/google-cloud-gke_hub-v1/CHANGELOG.md index f36e09a8a81f..bfae353f3356 100644 --- a/google-cloud-gke_hub-v1/CHANGELOG.md +++ b/google-cloud-gke_hub-v1/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +### 2.3.0 (2025-09-12) + +#### Features + +* add `k8s_git_version` field ([#31319](https://github.com/googleapis/google-cloud-ruby/issues/31319)) +#### Documentation + +* correct comment for `k8s_version` field + +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-gke_hub-v1/google-cloud-gke_hub-v1.gemspec b/google-cloud-gke_hub-v1/google-cloud-gke_hub-v1.gemspec index db7ea9a2b4c1..bdc6cfcf830e 100644 --- a/google-cloud-gke_hub-v1/google-cloud-gke_hub-v1.gemspec +++ b/google-cloud-gke_hub-v1/google-cloud-gke_hub-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-gke_hub-v1/lib/google/cloud/gke_hub/v1/version.rb b/google-cloud-gke_hub-v1/lib/google/cloud/gke_hub/v1/version.rb index 79bde7dd3a11..ecc4d34b95a5 100644 --- a/google-cloud-gke_hub-v1/lib/google/cloud/gke_hub/v1/version.rb +++ b/google-cloud-gke_hub-v1/lib/google/cloud/gke_hub/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GkeHub module V1 - VERSION = "2.1.0" + VERSION = "2.3.0" end end end diff --git a/google-cloud-gke_hub-v1/lib/google/cloud/gkehub/v1/membership_pb.rb b/google-cloud-gke_hub-v1/lib/google/cloud/gkehub/v1/membership_pb.rb index 69e38192a192..e59f1b668226 100644 --- a/google-cloud-gke_hub-v1/lib/google/cloud/gkehub/v1/membership_pb.rb +++ b/google-cloud-gke_hub-v1/lib/google/cloud/gkehub/v1/membership_pb.rb @@ -9,7 +9,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n\'google/cloud/gkehub/v1/membership.proto\x12\x16google.cloud.gkehub.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb8\x06\n\nMembership\x12\x43\n\x08\x65ndpoint\x18\x04 \x01(\x0b\x32*.google.cloud.gkehub.v1.MembershipEndpointB\x03\xe0\x41\x01H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x02 \x03(\x0b\x32..google.cloud.gkehub.v1.Membership.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12;\n\x05state\x18\x05 \x01(\x0b\x32\'.google.cloud.gkehub.v1.MembershipStateB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x64\x65lete_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x65xternal_id\x18\t \x01(\tB\x03\xe0\x41\x01\x12=\n\x14last_connection_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x16\n\tunique_id\x18\x0b \x01(\tB\x03\xe0\x41\x03\x12\x39\n\tauthority\x18\x0c \x01(\x0b\x32!.google.cloud.gkehub.v1.AuthorityB\x03\xe0\x41\x01\x12H\n\x11monitoring_config\x18\x0e \x01(\x0b\x32(.google.cloud.gkehub.v1.MonitoringConfigB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:g\xea\x41\x64\n gkehub.googleapis.com/Membership\x12@projects/{project}/locations/{location}/memberships/{membership}B\x06\n\x04type\"\x8b\x02\n\x12MembershipEndpoint\x12<\n\x0bgke_cluster\x18\x01 \x01(\x0b\x32\".google.cloud.gkehub.v1.GkeClusterB\x03\xe0\x41\x01\x12L\n\x13kubernetes_metadata\x18\x02 \x01(\x0b\x32*.google.cloud.gkehub.v1.KubernetesMetadataB\x03\xe0\x41\x03\x12L\n\x13kubernetes_resource\x18\x03 \x01(\x0b\x32*.google.cloud.gkehub.v1.KubernetesResourceB\x03\xe0\x41\x01\x12\x1b\n\x0egoogle_managed\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03\"\x98\x02\n\x12KubernetesResource\x12#\n\x16membership_cr_manifest\x18\x01 \x01(\tB\x03\xe0\x41\x04\x12K\n\x14membership_resources\x18\x02 \x03(\x0b\x32(.google.cloud.gkehub.v1.ResourceManifestB\x03\xe0\x41\x03\x12H\n\x11\x63onnect_resources\x18\x03 \x03(\x0b\x32(.google.cloud.gkehub.v1.ResourceManifestB\x03\xe0\x41\x03\x12\x46\n\x10resource_options\x18\x04 \x01(\x0b\x32\'.google.cloud.gkehub.v1.ResourceOptionsB\x03\xe0\x41\x01\"c\n\x0fResourceOptions\x12\x1c\n\x0f\x63onnect_version\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0bv1beta1_crd\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0bk8s_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\"<\n\x10ResourceManifest\x12\x10\n\x08manifest\x18\x01 \x01(\t\x12\x16\n\x0e\x63luster_scoped\x18\x02 \x01(\x08\"F\n\nGkeCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\"\xdf\x01\n\x12KubernetesMetadata\x12*\n\x1dkubernetes_api_server_version\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10node_provider_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\nnode_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x17\n\nvcpu_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tmemory_mb\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x64 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x96\x01\n\x10MonitoringConfig\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12\x14\n\x07\x63luster\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12!\n\x19kubernetes_metrics_prefix\x18\x04 \x01(\t\x12\x19\n\x0c\x63luster_hash\x18\x05 \x01(\tB\x03\xe0\x41\x05\"\xbb\x01\n\x0fMembershipState\x12?\n\x04\x63ode\x18\x01 \x01(\x0e\x32,.google.cloud.gkehub.v1.MembershipState.CodeB\x03\xe0\x41\x03\"g\n\x04\x43ode\x12\x14\n\x10\x43ODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\x14\n\x10SERVICE_UPDATING\x10\x05\"}\n\tAuthority\x12\x13\n\x06issuer\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16workload_identity_pool\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1e\n\x11identity_provider\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\toidc_jwks\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\x42\xb1\x01\n\x1a\x63om.google.cloud.gkehub.v1B\x0fMembershipProtoP\x01Z2cloud.google.com/go/gkehub/apiv1/gkehubpb;gkehubpb\xaa\x02\x16Google.Cloud.GkeHub.V1\xca\x02\x16Google\\Cloud\\GkeHub\\V1\xea\x02\x19Google::Cloud::GkeHub::V1b\x06proto3" +descriptor_data = "\n\'google/cloud/gkehub/v1/membership.proto\x12\x16google.cloud.gkehub.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb8\x06\n\nMembership\x12\x43\n\x08\x65ndpoint\x18\x04 \x01(\x0b\x32*.google.cloud.gkehub.v1.MembershipEndpointB\x03\xe0\x41\x01H\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x02 \x03(\x0b\x32..google.cloud.gkehub.v1.Membership.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12;\n\x05state\x18\x05 \x01(\x0b\x32\'.google.cloud.gkehub.v1.MembershipStateB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x64\x65lete_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x65xternal_id\x18\t \x01(\tB\x03\xe0\x41\x01\x12=\n\x14last_connection_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x16\n\tunique_id\x18\x0b \x01(\tB\x03\xe0\x41\x03\x12\x39\n\tauthority\x18\x0c \x01(\x0b\x32!.google.cloud.gkehub.v1.AuthorityB\x03\xe0\x41\x01\x12H\n\x11monitoring_config\x18\x0e \x01(\x0b\x32(.google.cloud.gkehub.v1.MonitoringConfigB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:g\xea\x41\x64\n gkehub.googleapis.com/Membership\x12@projects/{project}/locations/{location}/memberships/{membership}B\x06\n\x04type\"\x8b\x02\n\x12MembershipEndpoint\x12<\n\x0bgke_cluster\x18\x01 \x01(\x0b\x32\".google.cloud.gkehub.v1.GkeClusterB\x03\xe0\x41\x01\x12L\n\x13kubernetes_metadata\x18\x02 \x01(\x0b\x32*.google.cloud.gkehub.v1.KubernetesMetadataB\x03\xe0\x41\x03\x12L\n\x13kubernetes_resource\x18\x03 \x01(\x0b\x32*.google.cloud.gkehub.v1.KubernetesResourceB\x03\xe0\x41\x01\x12\x1b\n\x0egoogle_managed\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03\"\x98\x02\n\x12KubernetesResource\x12#\n\x16membership_cr_manifest\x18\x01 \x01(\tB\x03\xe0\x41\x04\x12K\n\x14membership_resources\x18\x02 \x03(\x0b\x32(.google.cloud.gkehub.v1.ResourceManifestB\x03\xe0\x41\x03\x12H\n\x11\x63onnect_resources\x18\x03 \x03(\x0b\x32(.google.cloud.gkehub.v1.ResourceManifestB\x03\xe0\x41\x03\x12\x46\n\x10resource_options\x18\x04 \x01(\x0b\x32\'.google.cloud.gkehub.v1.ResourceOptionsB\x03\xe0\x41\x01\"\x81\x01\n\x0fResourceOptions\x12\x1c\n\x0f\x63onnect_version\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0bv1beta1_crd\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0bk8s_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fk8s_git_version\x18\x04 \x01(\tB\x03\xe0\x41\x01\"<\n\x10ResourceManifest\x12\x10\n\x08manifest\x18\x01 \x01(\t\x12\x16\n\x0e\x63luster_scoped\x18\x02 \x01(\x08\"F\n\nGkeCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\"\xdf\x01\n\x12KubernetesMetadata\x12*\n\x1dkubernetes_api_server_version\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10node_provider_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\nnode_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x17\n\nvcpu_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tmemory_mb\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x64 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x96\x01\n\x10MonitoringConfig\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12\x14\n\x07\x63luster\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12!\n\x19kubernetes_metrics_prefix\x18\x04 \x01(\t\x12\x19\n\x0c\x63luster_hash\x18\x05 \x01(\tB\x03\xe0\x41\x05\"\xbb\x01\n\x0fMembershipState\x12?\n\x04\x63ode\x18\x01 \x01(\x0e\x32,.google.cloud.gkehub.v1.MembershipState.CodeB\x03\xe0\x41\x03\"g\n\x04\x43ode\x12\x14\n\x10\x43ODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\x14\n\x10SERVICE_UPDATING\x10\x05\"}\n\tAuthority\x12\x13\n\x06issuer\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16workload_identity_pool\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1e\n\x11identity_provider\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\toidc_jwks\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\x42\xb1\x01\n\x1a\x63om.google.cloud.gkehub.v1B\x0fMembershipProtoP\x01Z2cloud.google.com/go/gkehub/apiv1/gkehubpb;gkehubpb\xaa\x02\x16Google.Cloud.GkeHub.V1\xca\x02\x16Google\\Cloud\\GkeHub\\V1\xea\x02\x19Google::Cloud::GkeHub::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-gke_hub-v1/proto_docs/google/cloud/gkehub/v1/membership.rb b/google-cloud-gke_hub-v1/proto_docs/google/cloud/gkehub/v1/membership.rb index 1615f8cda68e..8c4d08968bed 100644 --- a/google-cloud-gke_hub-v1/proto_docs/google/cloud/gkehub/v1/membership.rb +++ b/google-cloud-gke_hub-v1/proto_docs/google/cloud/gkehub/v1/membership.rb @@ -183,9 +183,14 @@ class KubernetesResource # <1.16. # @!attribute [rw] k8s_version # @return [::String] - # Optional. Major version of the Kubernetes cluster. This is only used to - # determine which version to use for the CustomResourceDefinition resources, - # `apiextensions/v1beta1` or`apiextensions/v1`. + # Optional. Major and minor version of the Kubernetes cluster. This is only + # used to determine which version to use for the CustomResourceDefinition + # resources, `apiextensions/v1beta1` or`apiextensions/v1`. + # @!attribute [rw] k8s_git_version + # @return [::String] + # Optional. Git version of the Kubernetes cluster. This is only used to gate + # the Connect Agent migration to svc.id.goog on GDC-SO 1.33.100 patch and + # above. class ResourceOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-gke_hub-v1/snippets/snippet_metadata_google.cloud.gkehub.v1.json b/google-cloud-gke_hub-v1/snippets/snippet_metadata_google.cloud.gkehub.v1.json index 384d8a628630..8c17853c2407 100644 --- a/google-cloud-gke_hub-v1/snippets/snippet_metadata_google.cloud.gkehub.v1.json +++ b/google-cloud-gke_hub-v1/snippets/snippet_metadata_google.cloud.gkehub.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gke_hub-v1", - "version": "2.1.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gke_hub-v1beta1/CHANGELOG.md b/google-cloud-gke_hub-v1beta1/CHANGELOG.md index 10553674b760..843e1b53cb28 100644 --- a/google-cloud-gke_hub-v1beta1/CHANGELOG.md +++ b/google-cloud-gke_hub-v1beta1/CHANGELOG.md @@ -1,5 +1,20 @@ # Release History +### 0.17.0 (2025-09-12) + +#### Features + +* add `k8s_git_version` field ([#31318](https://github.com/googleapis/google-cloud-ruby/issues/31318)) +#### Documentation + +* correct comment for `k8s_version` field + +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.15.0 (2025-05-12) #### Features diff --git a/google-cloud-gke_hub-v1beta1/google-cloud-gke_hub-v1beta1.gemspec b/google-cloud-gke_hub-v1beta1/google-cloud-gke_hub-v1beta1.gemspec index 73acc332150d..3dfe42859b69 100644 --- a/google-cloud-gke_hub-v1beta1/google-cloud-gke_hub-v1beta1.gemspec +++ b/google-cloud-gke_hub-v1beta1/google-cloud-gke_hub-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-gke_hub-v1beta1/lib/google/cloud/gke_hub/v1beta1/version.rb b/google-cloud-gke_hub-v1beta1/lib/google/cloud/gke_hub/v1beta1/version.rb index 33728dc2221e..c7eba0138806 100644 --- a/google-cloud-gke_hub-v1beta1/lib/google/cloud/gke_hub/v1beta1/version.rb +++ b/google-cloud-gke_hub-v1beta1/lib/google/cloud/gke_hub/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GkeHub module V1beta1 - VERSION = "0.15.0" + VERSION = "0.17.0" end end end diff --git a/google-cloud-gke_hub-v1beta1/lib/google/cloud/gkehub/v1beta1/membership_pb.rb b/google-cloud-gke_hub-v1beta1/lib/google/cloud/gkehub/v1beta1/membership_pb.rb index c9c50abcf104..f80b5bf7d02b 100644 --- a/google-cloud-gke_hub-v1beta1/lib/google/cloud/gkehub/v1beta1/membership_pb.rb +++ b/google-cloud-gke_hub-v1beta1/lib/google/cloud/gkehub/v1beta1/membership_pb.rb @@ -15,7 +15,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n,google/cloud/gkehub/v1beta1/membership.proto\x12\x1bgoogle.cloud.gkehub.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x88\x08\n\nMembership\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12H\n\x06labels\x18\x02 \x03(\x0b\x32\x33.google.cloud.gkehub.v1beta1.Membership.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12H\n\x08\x65ndpoint\x18\x04 \x01(\x0b\x32/.google.cloud.gkehub.v1beta1.MembershipEndpointB\x03\xe0\x41\x01H\x00\x12@\n\x05state\x18\x05 \x01(\x0b\x32,.google.cloud.gkehub.v1beta1.MembershipStateB\x03\xe0\x41\x03\x12>\n\tauthority\x18\t \x01(\x0b\x32&.google.cloud.gkehub.v1beta1.AuthorityB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x64\x65lete_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x65xternal_id\x18\n \x01(\tB\x03\xe0\x41\x01\x12=\n\x14last_connection_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x16\n\tunique_id\x18\x0c \x01(\tB\x03\xe0\x41\x03\x12\\\n\x13infrastructure_type\x18\r \x01(\x0e\x32:.google.cloud.gkehub.v1beta1.Membership.InfrastructureTypeB\x03\xe0\x41\x01\x12M\n\x11monitoring_config\x18\x0e \x01(\x0b\x32-.google.cloud.gkehub.v1beta1.MonitoringConfigB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"W\n\x12InfrastructureType\x12#\n\x1fINFRASTRUCTURE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07ON_PREM\x10\x01\x12\x0f\n\x0bMULTI_CLOUD\x10\x02:g\xea\x41\x64\n gkehub.googleapis.com/Membership\x12@projects/{project}/locations/{location}/memberships/{membership}B\x06\n\x04type\"\xbf\x04\n\x12MembershipEndpoint\x12\x43\n\x0bgke_cluster\x18\x04 \x01(\x0b\x32\'.google.cloud.gkehub.v1beta1.GkeClusterB\x03\xe0\x41\x01H\x00\x12J\n\x0fon_prem_cluster\x18\x07 \x01(\x0b\x32*.google.cloud.gkehub.v1beta1.OnPremClusterB\x03\xe0\x41\x01H\x00\x12R\n\x13multi_cloud_cluster\x18\x08 \x01(\x0b\x32..google.cloud.gkehub.v1beta1.MultiCloudClusterB\x03\xe0\x41\x01H\x00\x12\x45\n\x0c\x65\x64ge_cluster\x18\t \x01(\x0b\x32(.google.cloud.gkehub.v1beta1.EdgeClusterB\x03\xe0\x41\x01H\x00\x12O\n\x11\x61ppliance_cluster\x18\n \x01(\x0b\x32-.google.cloud.gkehub.v1beta1.ApplianceClusterB\x03\xe0\x41\x01H\x00\x12Q\n\x13kubernetes_metadata\x18\x05 \x01(\x0b\x32/.google.cloud.gkehub.v1beta1.KubernetesMetadataB\x03\xe0\x41\x03\x12Q\n\x13kubernetes_resource\x18\x06 \x01(\x0b\x32/.google.cloud.gkehub.v1beta1.KubernetesResourceB\x03\xe0\x41\x01\x42\x06\n\x04type\"\xa7\x02\n\x12KubernetesResource\x12#\n\x16membership_cr_manifest\x18\x01 \x01(\tB\x03\xe0\x41\x04\x12P\n\x14membership_resources\x18\x02 \x03(\x0b\x32-.google.cloud.gkehub.v1beta1.ResourceManifestB\x03\xe0\x41\x03\x12M\n\x11\x63onnect_resources\x18\x03 \x03(\x0b\x32-.google.cloud.gkehub.v1beta1.ResourceManifestB\x03\xe0\x41\x03\x12K\n\x10resource_options\x18\x04 \x01(\x0b\x32,.google.cloud.gkehub.v1beta1.ResourceOptionsB\x03\xe0\x41\x01\"c\n\x0fResourceOptions\x12\x1c\n\x0f\x63onnect_version\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0bv1beta1_crd\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0bk8s_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\"<\n\x10ResourceManifest\x12\x10\n\x08manifest\x18\x01 \x01(\t\x12\x16\n\x0e\x63luster_scoped\x18\x02 \x01(\x08\"F\n\nGkeCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\"\x99\x02\n\rOnPremCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\radmin_cluster\x18\x03 \x01(\x08\x42\x03\xe0\x41\x05\x12Q\n\x0c\x63luster_type\x18\x04 \x01(\x0e\x32\x36.google.cloud.gkehub.v1beta1.OnPremCluster.ClusterTypeB\x03\xe0\x41\x05\"_\n\x0b\x43lusterType\x12\x1b\n\x17\x43LUSTERTYPE_UNSPECIFIED\x10\x00\x12\r\n\tBOOTSTRAP\x10\x01\x12\n\n\x06HYBRID\x10\x02\x12\x0e\n\nSTANDALONE\x10\x03\x12\x08\n\x04USER\x10\x04\"M\n\x11MultiCloudCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\")\n\x0b\x45\x64geCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\".\n\x10\x41pplianceCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\"\xdf\x01\n\x12KubernetesMetadata\x12*\n\x1dkubernetes_api_server_version\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10node_provider_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\nnode_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x17\n\nvcpu_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tmemory_mb\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x64 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"}\n\tAuthority\x12\x13\n\x06issuer\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16workload_identity_pool\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1e\n\x11identity_provider\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\toidc_jwks\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\"\x96\x01\n\x10MonitoringConfig\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12\x14\n\x07\x63luster\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12!\n\x19kubernetes_metrics_prefix\x18\x04 \x01(\t\x12\x19\n\x0c\x63luster_hash\x18\x05 \x01(\tB\x03\xe0\x41\x05\"\x8e\x02\n\x0fMembershipState\x12\x44\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x31.google.cloud.gkehub.v1beta1.MembershipState.CodeB\x03\xe0\x41\x03\x12\x17\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x02\x18\x01\x12\x33\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01\"g\n\x04\x43ode\x12\x14\n\x10\x43ODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\x14\n\x10SERVICE_UPDATING\x10\x05\"\xaf\x01\n\x16ListMembershipsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 gkehub.googleapis.com/Membership\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x83\x01\n\x17ListMembershipsResponse\x12:\n\tresources\x18\x01 \x03(\x0b\x32\'.google.cloud.gkehub.v1beta1.Membership\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"N\n\x14GetMembershipRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\"\xc8\x01\n\x17\x43reateMembershipRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 gkehub.googleapis.com/Membership\x12\x1a\n\rmembership_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x08resource\x18\x03 \x01(\x0b\x32\'.google.cloud.gkehub.v1beta1.MembershipB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"~\n\x17\x44\x65leteMembershipRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x66orce\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\"\xe0\x01\n\x17UpdateMembershipRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12>\n\x08resource\x18\x03 \x01(\x0b\x32\'.google.cloud.gkehub.v1beta1.MembershipB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x8d\x02\n\x1eGenerateConnectManifestRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x45\n\rconnect_agent\x18\x02 \x01(\x0b\x32).google.cloud.gkehub.v1beta1.ConnectAgentB\x03\xe0\x41\x01\x12\x14\n\x07version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nis_upgrade\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x15\n\x08registry\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12&\n\x19image_pull_secret_content\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\"f\n\x1fGenerateConnectManifestResponse\x12\x43\n\x08manifest\x18\x01 \x03(\x0b\x32\x31.google.cloud.gkehub.v1beta1.ConnectAgentResource\"]\n\x14\x43onnectAgentResource\x12\x33\n\x04type\x18\x01 \x01(\x0b\x32%.google.cloud.gkehub.v1beta1.TypeMeta\x12\x10\n\x08manifest\x18\x02 \x01(\t\"-\n\x08TypeMeta\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x13\n\x0b\x61pi_version\x18\x02 \x01(\t\"L\n\x0c\x43onnectAgent\x12\x10\n\x04name\x18\x01 \x01(\tB\x02\x18\x01\x12\x12\n\x05proxy\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x92\x01\n\x1aValidateExclusivityRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 gkehub.googleapis.com/Membership\x12\x18\n\x0b\x63r_manifest\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13intended_membership\x18\x03 \x01(\tB\x03\xe0\x41\x02\"A\n\x1bValidateExclusivityResponse\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\"\x91\x01\n\"GenerateExclusivityManifestRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x19\n\x0c\x63rd_manifest\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x63r_manifest\x18\x03 \x01(\tB\x03\xe0\x41\x01\"P\n#GenerateExclusivityManifestResponse\x12\x14\n\x0c\x63rd_manifest\x18\x01 \x01(\t\x12\x13\n\x0b\x63r_manifest\x18\x02 \x01(\t\"\xf9\x01\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rstatus_detail\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10\x63\x61ncel_requested\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x32\xe6\x0e\n\x17GkeHubMembershipService\x12\xc3\x01\n\x0fListMemberships\x12\x33.google.cloud.gkehub.v1beta1.ListMembershipsRequest\x1a\x34.google.cloud.gkehub.v1beta1.ListMembershipsResponse\"E\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{parent=projects/*/locations/*}/memberships\x12\xb0\x01\n\rGetMembership\x12\x31.google.cloud.gkehub.v1beta1.GetMembershipRequest\x1a\'.google.cloud.gkehub.v1beta1.Membership\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{name=projects/*/locations/*/memberships/*}\x12\xf2\x01\n\x10\x43reateMembership\x12\x34.google.cloud.gkehub.v1beta1.CreateMembershipRequest\x1a\x1d.google.longrunning.Operation\"\x88\x01\xca\x41\x1f\n\nMembership\x12\x11OperationMetadata\xda\x41\x1dparent,resource,membership_id\x82\xd3\xe4\x93\x02@\"4/v1beta1/{parent=projects/*/locations/*}/memberships:\x08resource\x12\xd9\x01\n\x10\x44\x65leteMembership\x12\x34.google.cloud.gkehub.v1beta1.DeleteMembershipRequest\x1a\x1d.google.longrunning.Operation\"p\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36*4/v1beta1/{name=projects/*/locations/*/memberships/*}\x12\xee\x01\n\x10UpdateMembership\x12\x34.google.cloud.gkehub.v1beta1.UpdateMembershipRequest\x1a\x1d.google.longrunning.Operation\"\x84\x01\xca\x41\x1f\n\nMembership\x12\x11OperationMetadata\xda\x41\x19name,resource,update_mask\x82\xd3\xe4\x93\x02@24/v1beta1/{name=projects/*/locations/*/memberships/*}:\x08resource\x12\xea\x01\n\x17GenerateConnectManifest\x12;.google.cloud.gkehub.v1beta1.GenerateConnectManifestRequest\x1a<.google.cloud.gkehub.v1beta1.GenerateConnectManifestResponse\"T\x82\xd3\xe4\x93\x02N\x12L/v1beta1/{name=projects/*/locations/*/memberships/*}:generateConnectManifest\x12\xda\x01\n\x13ValidateExclusivity\x12\x37.google.cloud.gkehub.v1beta1.ValidateExclusivityRequest\x1a\x38.google.cloud.gkehub.v1beta1.ValidateExclusivityResponse\"P\x82\xd3\xe4\x93\x02J\x12H/v1beta1/{parent=projects/*/locations/*}/memberships:validateExclusivity\x12\xfa\x01\n\x1bGenerateExclusivityManifest\x12?.google.cloud.gkehub.v1beta1.GenerateExclusivityManifestRequest\x1a@.google.cloud.gkehub.v1beta1.GenerateExclusivityManifestResponse\"X\x82\xd3\xe4\x93\x02R\x12P/v1beta1/{name=projects/*/locations/*/memberships/*}:generateExclusivityManifest\x1aI\xca\x41\x15gkehub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb9\x01\n\x1f\x63om.google.cloud.gkehub.v1beta1P\x01Z7cloud.google.com/go/gkehub/apiv1beta1/gkehubpb;gkehubpb\xaa\x02\x1bGoogle.Cloud.GkeHub.V1Beta1\xca\x02\x1bGoogle\\Cloud\\GkeHub\\V1beta1\xea\x02\x1eGoogle::Cloud::GkeHub::V1beta1b\x06proto3" +descriptor_data = "\n,google/cloud/gkehub/v1beta1/membership.proto\x12\x1bgoogle.cloud.gkehub.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x88\x08\n\nMembership\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12H\n\x06labels\x18\x02 \x03(\x0b\x32\x33.google.cloud.gkehub.v1beta1.Membership.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12H\n\x08\x65ndpoint\x18\x04 \x01(\x0b\x32/.google.cloud.gkehub.v1beta1.MembershipEndpointB\x03\xe0\x41\x01H\x00\x12@\n\x05state\x18\x05 \x01(\x0b\x32,.google.cloud.gkehub.v1beta1.MembershipStateB\x03\xe0\x41\x03\x12>\n\tauthority\x18\t \x01(\x0b\x32&.google.cloud.gkehub.v1beta1.AuthorityB\x03\xe0\x41\x01\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x64\x65lete_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x65xternal_id\x18\n \x01(\tB\x03\xe0\x41\x01\x12=\n\x14last_connection_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x16\n\tunique_id\x18\x0c \x01(\tB\x03\xe0\x41\x03\x12\\\n\x13infrastructure_type\x18\r \x01(\x0e\x32:.google.cloud.gkehub.v1beta1.Membership.InfrastructureTypeB\x03\xe0\x41\x01\x12M\n\x11monitoring_config\x18\x0e \x01(\x0b\x32-.google.cloud.gkehub.v1beta1.MonitoringConfigB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"W\n\x12InfrastructureType\x12#\n\x1fINFRASTRUCTURE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07ON_PREM\x10\x01\x12\x0f\n\x0bMULTI_CLOUD\x10\x02:g\xea\x41\x64\n gkehub.googleapis.com/Membership\x12@projects/{project}/locations/{location}/memberships/{membership}B\x06\n\x04type\"\xbf\x04\n\x12MembershipEndpoint\x12\x43\n\x0bgke_cluster\x18\x04 \x01(\x0b\x32\'.google.cloud.gkehub.v1beta1.GkeClusterB\x03\xe0\x41\x01H\x00\x12J\n\x0fon_prem_cluster\x18\x07 \x01(\x0b\x32*.google.cloud.gkehub.v1beta1.OnPremClusterB\x03\xe0\x41\x01H\x00\x12R\n\x13multi_cloud_cluster\x18\x08 \x01(\x0b\x32..google.cloud.gkehub.v1beta1.MultiCloudClusterB\x03\xe0\x41\x01H\x00\x12\x45\n\x0c\x65\x64ge_cluster\x18\t \x01(\x0b\x32(.google.cloud.gkehub.v1beta1.EdgeClusterB\x03\xe0\x41\x01H\x00\x12O\n\x11\x61ppliance_cluster\x18\n \x01(\x0b\x32-.google.cloud.gkehub.v1beta1.ApplianceClusterB\x03\xe0\x41\x01H\x00\x12Q\n\x13kubernetes_metadata\x18\x05 \x01(\x0b\x32/.google.cloud.gkehub.v1beta1.KubernetesMetadataB\x03\xe0\x41\x03\x12Q\n\x13kubernetes_resource\x18\x06 \x01(\x0b\x32/.google.cloud.gkehub.v1beta1.KubernetesResourceB\x03\xe0\x41\x01\x42\x06\n\x04type\"\xa7\x02\n\x12KubernetesResource\x12#\n\x16membership_cr_manifest\x18\x01 \x01(\tB\x03\xe0\x41\x04\x12P\n\x14membership_resources\x18\x02 \x03(\x0b\x32-.google.cloud.gkehub.v1beta1.ResourceManifestB\x03\xe0\x41\x03\x12M\n\x11\x63onnect_resources\x18\x03 \x03(\x0b\x32-.google.cloud.gkehub.v1beta1.ResourceManifestB\x03\xe0\x41\x03\x12K\n\x10resource_options\x18\x04 \x01(\x0b\x32,.google.cloud.gkehub.v1beta1.ResourceOptionsB\x03\xe0\x41\x01\"\x81\x01\n\x0fResourceOptions\x12\x1c\n\x0f\x63onnect_version\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0bv1beta1_crd\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0bk8s_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fk8s_git_version\x18\x04 \x01(\tB\x03\xe0\x41\x01\"<\n\x10ResourceManifest\x12\x10\n\x08manifest\x18\x01 \x01(\t\x12\x16\n\x0e\x63luster_scoped\x18\x02 \x01(\x08\"F\n\nGkeCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\"\x99\x02\n\rOnPremCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\radmin_cluster\x18\x03 \x01(\x08\x42\x03\xe0\x41\x05\x12Q\n\x0c\x63luster_type\x18\x04 \x01(\x0e\x32\x36.google.cloud.gkehub.v1beta1.OnPremCluster.ClusterTypeB\x03\xe0\x41\x05\"_\n\x0b\x43lusterType\x12\x1b\n\x17\x43LUSTERTYPE_UNSPECIFIED\x10\x00\x12\r\n\tBOOTSTRAP\x10\x01\x12\n\n\x06HYBRID\x10\x02\x12\x0e\n\nSTANDALONE\x10\x03\x12\x08\n\x04USER\x10\x04\"M\n\x11MultiCloudCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1c\n\x0f\x63luster_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x03\")\n\x0b\x45\x64geCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\".\n\x10\x41pplianceCluster\x12\x1a\n\rresource_link\x18\x01 \x01(\tB\x03\xe0\x41\x05\"\xdf\x01\n\x12KubernetesMetadata\x12*\n\x1dkubernetes_api_server_version\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10node_provider_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x17\n\nnode_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x17\n\nvcpu_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tmemory_mb\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x64 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"}\n\tAuthority\x12\x13\n\x06issuer\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16workload_identity_pool\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1e\n\x11identity_provider\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x16\n\toidc_jwks\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x01\"\x96\x01\n\x10MonitoringConfig\x12\x17\n\nproject_id\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12\x14\n\x07\x63luster\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12!\n\x19kubernetes_metrics_prefix\x18\x04 \x01(\t\x12\x19\n\x0c\x63luster_hash\x18\x05 \x01(\tB\x03\xe0\x41\x05\"\x8e\x02\n\x0fMembershipState\x12\x44\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x31.google.cloud.gkehub.v1beta1.MembershipState.CodeB\x03\xe0\x41\x03\x12\x17\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x02\x18\x01\x12\x33\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01\"g\n\x04\x43ode\x12\x14\n\x10\x43ODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\x14\n\x10SERVICE_UPDATING\x10\x05\"\xaf\x01\n\x16ListMembershipsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 gkehub.googleapis.com/Membership\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x83\x01\n\x17ListMembershipsResponse\x12:\n\tresources\x18\x01 \x03(\x0b\x32\'.google.cloud.gkehub.v1beta1.Membership\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"N\n\x14GetMembershipRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\"\xc8\x01\n\x17\x43reateMembershipRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 gkehub.googleapis.com/Membership\x12\x1a\n\rmembership_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x08resource\x18\x03 \x01(\x0b\x32\'.google.cloud.gkehub.v1beta1.MembershipB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"~\n\x17\x44\x65leteMembershipRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x66orce\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\"\xe0\x01\n\x17UpdateMembershipRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12>\n\x08resource\x18\x03 \x01(\x0b\x32\'.google.cloud.gkehub.v1beta1.MembershipB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x8d\x02\n\x1eGenerateConnectManifestRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x45\n\rconnect_agent\x18\x02 \x01(\x0b\x32).google.cloud.gkehub.v1beta1.ConnectAgentB\x03\xe0\x41\x01\x12\x14\n\x07version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nis_upgrade\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x15\n\x08registry\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12&\n\x19image_pull_secret_content\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\"f\n\x1fGenerateConnectManifestResponse\x12\x43\n\x08manifest\x18\x01 \x03(\x0b\x32\x31.google.cloud.gkehub.v1beta1.ConnectAgentResource\"]\n\x14\x43onnectAgentResource\x12\x33\n\x04type\x18\x01 \x01(\x0b\x32%.google.cloud.gkehub.v1beta1.TypeMeta\x12\x10\n\x08manifest\x18\x02 \x01(\t\"-\n\x08TypeMeta\x12\x0c\n\x04kind\x18\x01 \x01(\t\x12\x13\n\x0b\x61pi_version\x18\x02 \x01(\t\"L\n\x0c\x43onnectAgent\x12\x10\n\x04name\x18\x01 \x01(\tB\x02\x18\x01\x12\x12\n\x05proxy\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x92\x01\n\x1aValidateExclusivityRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 gkehub.googleapis.com/Membership\x12\x18\n\x0b\x63r_manifest\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13intended_membership\x18\x03 \x01(\tB\x03\xe0\x41\x02\"A\n\x1bValidateExclusivityResponse\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\"\x91\x01\n\"GenerateExclusivityManifestRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n gkehub.googleapis.com/Membership\x12\x19\n\x0c\x63rd_manifest\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x63r_manifest\x18\x03 \x01(\tB\x03\xe0\x41\x01\"P\n#GenerateExclusivityManifestResponse\x12\x14\n\x0c\x63rd_manifest\x18\x01 \x01(\t\x12\x13\n\x0b\x63r_manifest\x18\x02 \x01(\t\"\xf9\x01\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rstatus_detail\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10\x63\x61ncel_requested\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\x32\xe6\x0e\n\x17GkeHubMembershipService\x12\xc3\x01\n\x0fListMemberships\x12\x33.google.cloud.gkehub.v1beta1.ListMembershipsRequest\x1a\x34.google.cloud.gkehub.v1beta1.ListMembershipsResponse\"E\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{parent=projects/*/locations/*}/memberships\x12\xb0\x01\n\rGetMembership\x12\x31.google.cloud.gkehub.v1beta1.GetMembershipRequest\x1a\'.google.cloud.gkehub.v1beta1.Membership\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v1beta1/{name=projects/*/locations/*/memberships/*}\x12\xf2\x01\n\x10\x43reateMembership\x12\x34.google.cloud.gkehub.v1beta1.CreateMembershipRequest\x1a\x1d.google.longrunning.Operation\"\x88\x01\xca\x41\x1f\n\nMembership\x12\x11OperationMetadata\xda\x41\x1dparent,resource,membership_id\x82\xd3\xe4\x93\x02@\"4/v1beta1/{parent=projects/*/locations/*}/memberships:\x08resource\x12\xd9\x01\n\x10\x44\x65leteMembership\x12\x34.google.cloud.gkehub.v1beta1.DeleteMembershipRequest\x1a\x1d.google.longrunning.Operation\"p\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36*4/v1beta1/{name=projects/*/locations/*/memberships/*}\x12\xee\x01\n\x10UpdateMembership\x12\x34.google.cloud.gkehub.v1beta1.UpdateMembershipRequest\x1a\x1d.google.longrunning.Operation\"\x84\x01\xca\x41\x1f\n\nMembership\x12\x11OperationMetadata\xda\x41\x19name,resource,update_mask\x82\xd3\xe4\x93\x02@24/v1beta1/{name=projects/*/locations/*/memberships/*}:\x08resource\x12\xea\x01\n\x17GenerateConnectManifest\x12;.google.cloud.gkehub.v1beta1.GenerateConnectManifestRequest\x1a<.google.cloud.gkehub.v1beta1.GenerateConnectManifestResponse\"T\x82\xd3\xe4\x93\x02N\x12L/v1beta1/{name=projects/*/locations/*/memberships/*}:generateConnectManifest\x12\xda\x01\n\x13ValidateExclusivity\x12\x37.google.cloud.gkehub.v1beta1.ValidateExclusivityRequest\x1a\x38.google.cloud.gkehub.v1beta1.ValidateExclusivityResponse\"P\x82\xd3\xe4\x93\x02J\x12H/v1beta1/{parent=projects/*/locations/*}/memberships:validateExclusivity\x12\xfa\x01\n\x1bGenerateExclusivityManifest\x12?.google.cloud.gkehub.v1beta1.GenerateExclusivityManifestRequest\x1a@.google.cloud.gkehub.v1beta1.GenerateExclusivityManifestResponse\"X\x82\xd3\xe4\x93\x02R\x12P/v1beta1/{name=projects/*/locations/*/memberships/*}:generateExclusivityManifest\x1aI\xca\x41\x15gkehub.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xb9\x01\n\x1f\x63om.google.cloud.gkehub.v1beta1P\x01Z7cloud.google.com/go/gkehub/apiv1beta1/gkehubpb;gkehubpb\xaa\x02\x1bGoogle.Cloud.GkeHub.V1Beta1\xca\x02\x1bGoogle\\Cloud\\GkeHub\\V1beta1\xea\x02\x1eGoogle::Cloud::GkeHub::V1beta1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-gke_hub-v1beta1/proto_docs/google/cloud/gkehub/v1beta1/membership.rb b/google-cloud-gke_hub-v1beta1/proto_docs/google/cloud/gkehub/v1beta1/membership.rb index 78c6428f7190..e017a87fab71 100644 --- a/google-cloud-gke_hub-v1beta1/proto_docs/google/cloud/gkehub/v1beta1/membership.rb +++ b/google-cloud-gke_hub-v1beta1/proto_docs/google/cloud/gkehub/v1beta1/membership.rb @@ -225,9 +225,14 @@ class KubernetesResource # <1.16. # @!attribute [rw] k8s_version # @return [::String] - # Optional. Major version of the Kubernetes cluster. This is only used to - # determine which version to use for the CustomResourceDefinition resources, - # `apiextensions/v1beta1` or`apiextensions/v1`. + # Optional. Major and minor version of the Kubernetes cluster. This is only + # used to determine which version to use for the CustomResourceDefinition + # resources, `apiextensions/v1beta1` or`apiextensions/v1`. + # @!attribute [rw] k8s_git_version + # @return [::String] + # Optional. Git version of the Kubernetes cluster. This is only used to gate + # the Connect Agent migration to svc.id.goog on GDC-SO 1.33.100 patch and + # above. class ResourceOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-gke_hub-v1beta1/snippets/snippet_metadata_google.cloud.gkehub.v1beta1.json b/google-cloud-gke_hub-v1beta1/snippets/snippet_metadata_google.cloud.gkehub.v1beta1.json index ffab9e5a65cd..13bae21766a5 100644 --- a/google-cloud-gke_hub-v1beta1/snippets/snippet_metadata_google.cloud.gkehub.v1beta1.json +++ b/google-cloud-gke_hub-v1beta1/snippets/snippet_metadata_google.cloud.gkehub.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gke_hub-v1beta1", - "version": "0.15.0", + "version": "0.17.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gke_hub/CHANGELOG.md b/google-cloud-gke_hub/CHANGELOG.md index 6f603c3bb6c8..1518268075bf 100644 --- a/google-cloud-gke_hub/CHANGELOG.md +++ b/google-cloud-gke_hub/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Update README in wrapper libraries ([#31311](https://github.com/googleapis/google-cloud-ruby/issues/31311)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-gke_hub/README.md b/google-cloud-gke_hub/README.md index 0ed9e32499cb..81d01de6dcbb 100644 --- a/google-cloud-gke_hub/README.md +++ b/google-cloud-gke_hub/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/gkehub.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gke_hub" + +client = Google::Cloud::GkeHub.gke_hub +request = ::Google::Cloud::GkeHub::V1::ListMembershipsRequest.new # (request fields as keyword arguments...) +response = client.list_memberships request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gke_hub/lib/google/cloud/gke_hub/version.rb b/google-cloud-gke_hub/lib/google/cloud/gke_hub/version.rb index d9278eb13eb6..b83788c4d568 100644 --- a/google-cloud-gke_hub/lib/google/cloud/gke_hub/version.rb +++ b/google-cloud-gke_hub/lib/google/cloud/gke_hub/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module GkeHub - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-gke_multi_cloud-v1/CHANGELOG.md b/google-cloud-gke_multi_cloud-v1/CHANGELOG.md index 8a1e16533293..2e4f2df2c49f 100644 --- a/google-cloud-gke_multi_cloud-v1/CHANGELOG.md +++ b/google-cloud-gke_multi_cloud-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.15.0 (2025-05-12) #### Features diff --git a/google-cloud-gke_multi_cloud-v1/google-cloud-gke_multi_cloud-v1.gemspec b/google-cloud-gke_multi_cloud-v1/google-cloud-gke_multi_cloud-v1.gemspec index 69e82c51ccc7..a4c32fe9e194 100644 --- a/google-cloud-gke_multi_cloud-v1/google-cloud-gke_multi_cloud-v1.gemspec +++ b/google-cloud-gke_multi_cloud-v1/google-cloud-gke_multi_cloud-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-gke_multi_cloud-v1/lib/google/cloud/gke_multi_cloud/v1/version.rb b/google-cloud-gke_multi_cloud-v1/lib/google/cloud/gke_multi_cloud/v1/version.rb index 239db071f659..67bdcf534b99 100644 --- a/google-cloud-gke_multi_cloud-v1/lib/google/cloud/gke_multi_cloud/v1/version.rb +++ b/google-cloud-gke_multi_cloud-v1/lib/google/cloud/gke_multi_cloud/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GkeMultiCloud module V1 - VERSION = "0.15.0" + VERSION = "0.16.0" end end end diff --git a/google-cloud-gke_multi_cloud-v1/snippets/snippet_metadata_google.cloud.gkemulticloud.v1.json b/google-cloud-gke_multi_cloud-v1/snippets/snippet_metadata_google.cloud.gkemulticloud.v1.json index 6acfe9964ae2..9f96d384c69b 100644 --- a/google-cloud-gke_multi_cloud-v1/snippets/snippet_metadata_google.cloud.gkemulticloud.v1.json +++ b/google-cloud-gke_multi_cloud-v1/snippets/snippet_metadata_google.cloud.gkemulticloud.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gke_multi_cloud-v1", - "version": "0.15.0", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gke_multi_cloud/CHANGELOG.md b/google-cloud-gke_multi_cloud/CHANGELOG.md index e76cb94eae5f..70ef5d5f8181 100644 --- a/google-cloud-gke_multi_cloud/CHANGELOG.md +++ b/google-cloud-gke_multi_cloud/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-gke_multi_cloud/README.md b/google-cloud-gke_multi_cloud/README.md index 47fc721f5bf2..fd6708324b59 100644 --- a/google-cloud-gke_multi_cloud/README.md +++ b/google-cloud-gke_multi_cloud/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/gkemulticloud.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gke_multi_cloud" + +client = Google::Cloud::GkeMultiCloud.attached_clusters +request = ::Google::Cloud::GkeMultiCloud::V1::CreateAttachedClusterRequest.new # (request fields as keyword arguments...) +response = client.create_attached_cluster request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gke_multi_cloud/lib/google/cloud/gke_multi_cloud/version.rb b/google-cloud-gke_multi_cloud/lib/google/cloud/gke_multi_cloud/version.rb index a4309a888867..b6b85f3d02c5 100644 --- a/google-cloud-gke_multi_cloud/lib/google/cloud/gke_multi_cloud/version.rb +++ b/google-cloud-gke_multi_cloud/lib/google/cloud/gke_multi_cloud/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module GkeMultiCloud - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-gke_recommender-v1/.OwlBot.yaml b/google-cloud-gke_recommender-v1/.OwlBot.yaml new file mode 100644 index 000000000000..bdfb316ffd28 --- /dev/null +++ b/google-cloud-gke_recommender-v1/.OwlBot.yaml @@ -0,0 +1,3 @@ +deep-copy-regex: + - source: /google/cloud/gkerecommender/v1/[^/]+-ruby/(.*) + dest: /owl-bot-staging/google-cloud-gke_recommender-v1/$1 diff --git a/google-cloud-gke_recommender-v1/.gitignore b/google-cloud-gke_recommender-v1/.gitignore new file mode 100644 index 000000000000..0135b6bc6cfc --- /dev/null +++ b/google-cloud-gke_recommender-v1/.gitignore @@ -0,0 +1,22 @@ +# Ignore bundler lockfiles +Gemfile.lock +gems.locked + +# Ignore documentation output +doc/* +.yardoc/* + +# Ignore test output +coverage/* + +# Ignore build artifacts +pkg/* + +# Ignore files commonly present in certain dev environments +.vagrant +.DS_STORE +.idea +*.iml + +# Ignore synth output +__pycache__ diff --git a/google-cloud-gke_recommender-v1/.owlbot-manifest.json b/google-cloud-gke_recommender-v1/.owlbot-manifest.json new file mode 100644 index 000000000000..5923aa6e3ec6 --- /dev/null +++ b/google-cloud-gke_recommender-v1/.owlbot-manifest.json @@ -0,0 +1,50 @@ +{ + "generated": [ + ".gitignore", + ".repo-metadata.json", + ".rubocop.yml", + ".toys.rb", + ".yardopts", + "AUTHENTICATION.md", + "CHANGELOG.md", + "Gemfile", + "LICENSE.md", + "README.md", + "Rakefile", + "gapic_metadata.json", + "google-cloud-gke_recommender-v1.gemspec", + "lib/google-cloud-gke_recommender-v1.rb", + "lib/google/cloud/gke_recommender/v1.rb", + "lib/google/cloud/gke_recommender/v1/gke_inference_quickstart.rb", + "lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/client.rb", + "lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials.rb", + "lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest.rb", + "lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/client.rb", + "lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/service_stub.rb", + "lib/google/cloud/gke_recommender/v1/rest.rb", + "lib/google/cloud/gke_recommender/v1/version.rb", + "lib/google/cloud/gkerecommender/v1/gkerecommender_pb.rb", + "lib/google/cloud/gkerecommender/v1/gkerecommender_services_pb.rb", + "proto_docs/README.md", + "proto_docs/google/api/client.rb", + "proto_docs/google/api/field_behavior.rb", + "proto_docs/google/api/launch_stage.rb", + "proto_docs/google/api/resource.rb", + "proto_docs/google/cloud/gkerecommender/v1/gkerecommender.rb", + "proto_docs/google/protobuf/duration.rb", + "snippets/Gemfile", + "snippets/gke_inference_quickstart/fetch_benchmarking_data.rb", + "snippets/gke_inference_quickstart/fetch_model_server_versions.rb", + "snippets/gke_inference_quickstart/fetch_model_servers.rb", + "snippets/gke_inference_quickstart/fetch_models.rb", + "snippets/gke_inference_quickstart/fetch_profiles.rb", + "snippets/gke_inference_quickstart/generate_optimized_manifest.rb", + "snippets/snippet_metadata_google.cloud.gkerecommender.v1.json", + "test/google/cloud/gke_recommender/v1/gke_inference_quickstart_rest_test.rb", + "test/google/cloud/gke_recommender/v1/gke_inference_quickstart_test.rb", + "test/helper.rb" + ], + "static": [ + ".OwlBot.yaml" + ] +} diff --git a/google-cloud-gke_recommender-v1/.repo-metadata.json b/google-cloud-gke_recommender-v1/.repo-metadata.json new file mode 100644 index 000000000000..7f59fcaf4da2 --- /dev/null +++ b/google-cloud-gke_recommender-v1/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "gkerecommender.googleapis.com", + "api_shortname": "gkerecommender", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender-v1/latest", + "distribution_name": "google-cloud-gke_recommender-v1", + "is_cloud": true, + "language": "ruby", + "name": "gkerecommender", + "name_pretty": "GKE Recommender V1 API", + "product_documentation": "https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart", + "release_level": "preview", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "GKE Recommender API. Note that google-cloud-gke_recommender-v1 is a version-specific client library. For most uses, we recommend installing the main client library google-cloud-gke_recommender instead. See the readme for more details.", + "ruby-cloud-product-url": "https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart", + "library_type": "GAPIC_AUTO" +} diff --git a/google-cloud-gke_recommender-v1/.rubocop.yml b/google-cloud-gke_recommender-v1/.rubocop.yml new file mode 100644 index 000000000000..eb7438f0f5f6 --- /dev/null +++ b/google-cloud-gke_recommender-v1/.rubocop.yml @@ -0,0 +1,33 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-gke_recommender-v1.gemspec" + - "lib/**/*_pb.rb" + - "proto_docs/**/*" + - "test/**/*" + - "acceptance/**/*" + - "samples/acceptance/**/*" + - "Rakefile" + +Layout/LineLength: + Enabled: false +Metrics/AbcSize: + Enabled: false +Metrics/ClassLength: + Enabled: false +Metrics/CyclomaticComplexity: + Enabled: false +Metrics/MethodLength: + Enabled: false +Metrics/ModuleLength: + Enabled: false +Metrics/PerceivedComplexity: + Enabled: false +Naming/AccessorMethodName: + Exclude: + - "snippets/**/*.rb" +Naming/FileName: + Exclude: + - "lib/google-cloud-gke_recommender-v1.rb" diff --git a/google-cloud-gke_recommender-v1/.toys.rb b/google-cloud-gke_recommender-v1/.toys.rb new file mode 100644 index 000000000000..9a210f1427c7 --- /dev/null +++ b/google-cloud-gke_recommender-v1/.toys.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +toys_version! ">= 0.15.3" + +if ENV["RUBY_COMMON_TOOLS"] + common_tools_dir = File.expand_path ENV["RUBY_COMMON_TOOLS"] + load File.join(common_tools_dir, "toys", "gapic") +else + load_git remote: "https://github.com/googleapis/ruby-common-tools.git", + path: "toys/gapic", + update: true +end diff --git a/google-cloud-gke_recommender-v1/.yardopts b/google-cloud-gke_recommender-v1/.yardopts new file mode 100644 index 000000000000..3bbb5708e32f --- /dev/null +++ b/google-cloud-gke_recommender-v1/.yardopts @@ -0,0 +1,12 @@ +--no-private +--title="GKE Recommender V1 API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +./proto_docs/**/*.rb +- +README.md +LICENSE.md +AUTHENTICATION.md diff --git a/google-cloud-gke_recommender-v1/AUTHENTICATION.md b/google-cloud-gke_recommender-v1/AUTHENTICATION.md new file mode 100644 index 000000000000..d55762be9dc5 --- /dev/null +++ b/google-cloud-gke_recommender-v1/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-gke_recommender-v1 library is to use +[Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/application-default-credentials). +To review all of your authentication options, see [Credentials lookup](#credential-lookup). + +## Quickstart + +The following example shows how to set up authentication for a local development +environment with your user credentials. + +**NOTE:** This method is _not_ recommended for running in production. User credentials +should be used only during development. + +1. [Download and install the Google Cloud CLI](https://cloud.google.com/sdk). +2. Set up a local ADC file with your user credentials: + +```sh +gcloud auth application-default login +``` + +3. Write code as if already authenticated. + +For more information about setting up authentication for a local development environment, see +[Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev). + +## Credential Lookup + +The google-cloud-gke_recommender-v1 library provides several mechanisms to configure your system. +Generally, using Application Default Credentials to facilitate automatic +credentials discovery is the easist method. But if you need to explicitly specify +credentials, there are several methods available to you. + +Credentials are accepted in the following ways, in the following order or precedence: + +1. Credentials specified in method arguments +2. Credentials specified in configuration +3. Credentials pointed to or included in environment variables +4. Credentials found in local ADC file +5. Credentials returned by the metadata server for the attached service account (GCP) + +### Configuration + +You can configure a path to a JSON credentials file, either for an individual client object or +globally, for all client objects. The JSON file can contain credentials created for +[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), +[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a +[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). + +Note: Service account keys are a security risk if not managed correctly. You should +[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) +whenever possible. + +To configure a credentials file for an individual client initialization: + +```ruby +require "google/cloud/gke_recommender/v1" + +client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/gke_recommender/v1" + +::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new +``` + +### Environment Variables + +You can also use an environment variable to provide a JSON credentials file. +The environment variable can contain a path to the credentials file or, for +environments such as Docker containers where writing files is not encouraged, +you can include the credentials file itself. + +The JSON file can contain credentials created for +[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), +[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a +[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). + +Note: Service account keys are a security risk if not managed correctly. You should +[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) +whenever possible. + +The environment variables that google-cloud-gke_recommender-v1 +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/gke_recommender/v1" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new +``` + +### Local ADC file + +You can set up a local ADC file with your user credentials for authentication during +development. If credentials are not provided in code or in environment variables, +then the local ADC credentials are discovered. + +Follow the steps in [Quickstart](#quickstart) to set up a local ADC file. + +### Google Cloud Platform environments + +When running on Google Cloud Platform (GCP), including Google Compute Engine +(GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud +Functions (GCF) and Cloud Run, credentials are retrieved from the attached +service account automatically. Code should be written as if already authenticated. + +For more information, see +[Set up ADC for Google Cloud services](https://cloud.google.com/docs/authentication/provide-credentials-adc#attached-sa). diff --git a/google-cloud-gke_recommender-v1/CHANGELOG.md b/google-cloud-gke_recommender-v1/CHANGELOG.md new file mode 100644 index 000000000000..590176f6a34f --- /dev/null +++ b/google-cloud-gke_recommender-v1/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +### 0.1.0 (2025-09-17) + +#### Features + +* Initial generation of google-cloud-gke_recommender-v1 ([#31519](https://github.com/googleapis/google-cloud-ruby/issues/31519)) + +## Release History diff --git a/google-cloud-gke_recommender-v1/Gemfile b/google-cloud-gke_recommender-v1/Gemfile new file mode 100644 index 000000000000..6442df18fa2f --- /dev/null +++ b/google-cloud-gke_recommender-v1/Gemfile @@ -0,0 +1,11 @@ +source "https://rubygems.org" + +gemspec + +gem "google-style", "~> 1.31.1" +gem "minitest", "~> 5.22" +gem "minitest-focus", "~> 1.4" +gem "minitest-rg", "~> 5.3" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/google-cloud-gke_recommender-v1/LICENSE.md b/google-cloud-gke_recommender-v1/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/google-cloud-gke_recommender-v1/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/google-cloud-gke_recommender-v1/README.md b/google-cloud-gke_recommender-v1/README.md new file mode 100644 index 000000000000..98eecfefc531 --- /dev/null +++ b/google-cloud-gke_recommender-v1/README.md @@ -0,0 +1,153 @@ +# Ruby Client for the GKE Recommender V1 API + +GKE Recommender API. + + +https://github.com/googleapis/google-cloud-ruby + +This gem is a _versioned_ client. It provides basic client classes for a +specific version of the GKE Recommender V1 API. Most users should consider using +the main client gem, +[google-cloud-gke_recommender](https://rubygems.org/gems/google-cloud-gke_recommender). +See the section below titled *Which client should I use?* for more information. + +## Installation + +``` +$ gem install google-cloud-gke_recommender-v1 +``` + +## Before You Begin + +In order to use this library, you first need to go through the following steps: + +1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project) +1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project) +1. [Enable the API.](https://console.cloud.google.com/apis/library/gkerecommender.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +## Quick Start + +```ruby +require "google/cloud/gke_recommender/v1" + +client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new +request = ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new # (request fields as keyword arguments...) +response = client.fetch_models request +``` + +View the [Client Library Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender-v1/latest) +for class and method documentation. + +See also the [Product Documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart) +for general usage information. + +## Debug Logging + +This library comes with opt-in Debug Logging that can help you troubleshoot +your application's integration with the API. When logging is activated, key +events such as requests and responses, along with data payloads and metadata +such as headers and client configuration, are logged to the standard error +stream. + +**WARNING:** Client Library Debug Logging includes your data payloads in +plaintext, which could include sensitive data such as PII for yourself or your +customers, private keys, or other security data that could be compromising if +leaked. Always practice good data hygiene with your application logs, and follow +the principle of least access. Google also recommends that Client Library Debug +Logging be enabled only temporarily during active debugging, and not used +permanently in production. + +To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS` +to the value `all`. Alternatively, you can set the value to a comma-delimited +list of client library gem names. This will select the default logging behavior, +which writes logs to the standard error stream. On a local workstation, this may +result in logs appearing on the console. When running on a Google Cloud hosting +service such as [Google Cloud Run](https://cloud.google.com/run), this generally +results in logs appearing alongside your application logs in the +[Google Cloud Logging](https://cloud.google.com/logging/) service. + +You can customize logging by modifying the `logger` configuration when +constructing a client object. For example: + +```ruby +require "google/cloud/gke_recommender/v1" +require "logger" + +client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.logger = Logger.new "my-app.log" +end +``` + +## Google Cloud Samples + +To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples). + +## Supported Ruby Versions + +This library is supported on Ruby 3.0+. + +Google provides official support for Ruby versions that are actively supported +by Ruby Core—that is, Ruby versions that are either in normal maintenance or +in security maintenance, and not end of life. Older versions of Ruby _may_ +still work, but are unsupported and not recommended. See +https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby +support schedule. + +## Which client should I use? + +Most modern Ruby client libraries for Google APIs come in two flavors: the main +client library with a name such as `google-cloud-gke_recommender`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-gke_recommender-v1`. +_In most cases, you should install the main client._ + +### What's the difference between the main client and a versioned client? + +A _versioned client_ provides a basic set of data types and client classes for +a _single version_ of a specific service. (That is, for a service with multiple +versions, there might be a separate versioned client for each service version.) +Most versioned clients are written and maintained by a code generator. + +The _main client_ is designed to provide you with the _recommended_ client +interfaces for the service. There will be only one main client for any given +service, even a service with multiple versions. The main client includes +factory methods for constructing the client objects we recommend for most +users. In some cases, those will be classes provided by an underlying versioned +client; in other cases, they will be handwritten higher-level client objects +with additional capabilities, convenience methods, or best practices built in. +Generally, the main client will default to a recommended service version, +although in some cases you can override this if you need to talk to a specific +service version. + +### Why would I want to use the main client? + +We recommend that most users install the main client gem for a service. You can +identify this gem as the one _without_ a version in its name, e.g. +`google-cloud-gke_recommender`. +The main client is recommended because it will embody the best practices for +accessing the service, and may also provide more convenient interfaces or +tighter integration into frameworks and third-party libraries. In addition, the +documentation and samples published by Google will generally demonstrate use of +the main client. + +### Why would I want to use a versioned client? + +You can use a versioned client if you are content with a possibly lower-level +class interface, you explicitly want to avoid features provided by the main +client, or you want to access a specific service version not be covered by the +main client. You can identify versioned client gems because the service version +is part of the name, e.g. `google-cloud-gke_recommender-v1`. + +### What about the google-apis- clients? + +Client library gems with names that begin with `google-apis-` are based on an +older code generation technology. They talk to a REST/JSON backend (whereas +most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may +not offer the same performance, features, and ease of use provided by more +modern clients. + +The `google-apis-` clients have wide coverage across Google services, so you +might need to use one if there is no modern client available for the service. +However, if a modern client is available, we generally recommend it over the +older `google-apis-` clients. diff --git a/google-cloud-gke_recommender-v1/Rakefile b/google-cloud-gke_recommender-v1/Rakefile new file mode 100644 index 000000000000..0e3468780ba3 --- /dev/null +++ b/google-cloud-gke_recommender-v1/Rakefile @@ -0,0 +1,169 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "bundler/setup" +require "bundler/gem_tasks" + +require "rubocop/rake_task" +RuboCop::RakeTask.new + +require "rake/testtask" +desc "Run tests." +Rake::TestTask.new do |t| + t.libs << "test" + t.test_files = FileList["test/**/*_test.rb"] + t.warning = false +end + +desc "Runs the smoke tests." +Rake::TestTask.new :smoke_test do |t| + t.test_files = FileList["acceptance/**/*smoke_test.rb"] + t.warning = false +end + +# Acceptance tests +desc "Run the google-cloud-gke_recommender-v1 acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["GOOGLE_CLOUD_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["GOOGLE_CLOUD_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["GOOGLE_CLOUD_TEST_KEYFILE_JSON"] || + ENV["GCLOUD_TEST_KEYFILE_JSON"] + end + if project.nil? || keyfile.nil? + fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or GOOGLE_CLOUD_TEST_PROJECT=test123 GOOGLE_CLOUD_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials" + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["GOOGLE_CLOUD_PROJECT"] = project + ENV["GOOGLE_CLOUD_TEST_PROJECT"] = project + ENV["GOOGLE_CLOUD_KEYFILE_JSON"] = keyfile + + Rake::Task["acceptance:run"].invoke +end + +namespace :acceptance do + task :run do + if File.directory? "acceptance" + Rake::Task[:smoke_test].invoke + else + puts "The google-cloud-gke_recommender-v1 gem has no acceptance tests." + end + end + + desc "Run acceptance cleanup." + task :cleanup do + end +end + +task :samples do + Rake::Task["samples:latest"].invoke +end + +namespace :samples do + task :latest do + if File.directory? "samples" + Dir.chdir "samples" do + Bundler.with_clean_env do + ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "not_master" + sh "bundle update" + sh "bundle exec rake test" + end + end + else + puts "The google-cloud-gke_recommender-v1 gem has no samples to test." + end + end + + task :master do + if File.directory? "samples" + Dir.chdir "samples" do + Bundler.with_clean_env do + ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "master" + sh "bundle update" + sh "bundle exec rake test" + end + end + else + puts "The google-cloud-gke_recommender-v1 gem has no samples to test." + end + end +end + +require "yard" +require "yard/rake/yardoc_task" +YARD::Rake::YardocTask.new do |y| + y.options << "--fail-on-warning" +end + +desc "Run yard-doctest example tests." +task :doctest do + puts "The google-cloud-gke_recommender-v1 gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-gke_recommender-v1" + header "google-cloud-gke_recommender-v1 rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-gke_recommender-v1 yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-gke_recommender-v1 test", "*" + Rake::Task[:test].invoke +end + +namespace :ci do + desc "Run the CI build, with smoke tests." + task :smoke_test do + Rake::Task[:ci].invoke + header "google-cloud-gke_recommender-v1 smoke_test", "*" + Rake::Task[:smoke_test].invoke + end + desc "Run the CI build, with acceptance tests." + task :acceptance do + Rake::Task[:ci].invoke + header "google-cloud-gke_recommender-v1 acceptance", "*" + Rake::Task[:acceptance].invoke + end + task :a do + # This is a handy shortcut to save typing + Rake::Task["ci:acceptance"].invoke + end +end + +task default: :test + +def header str, token = "#" + line_length = str.length + 8 + puts "" + puts token * line_length + puts "#{token * 3} #{str} #{token * 3}" + puts token * line_length + puts "" +end diff --git a/google-cloud-gke_recommender-v1/gapic_metadata.json b/google-cloud-gke_recommender-v1/gapic_metadata.json new file mode 100644 index 000000000000..4f7649944e92 --- /dev/null +++ b/google-cloud-gke_recommender-v1/gapic_metadata.json @@ -0,0 +1,48 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "ruby", + "protoPackage": "google.cloud.gkerecommender.v1", + "libraryPackage": "::Google::Cloud::GkeRecommender::V1", + "services": { + "GkeInferenceQuickstart": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client", + "rpcs": { + "FetchModels": { + "methods": [ + "fetch_models" + ] + }, + "FetchModelServers": { + "methods": [ + "fetch_model_servers" + ] + }, + "FetchModelServerVersions": { + "methods": [ + "fetch_model_server_versions" + ] + }, + "FetchProfiles": { + "methods": [ + "fetch_profiles" + ] + }, + "GenerateOptimizedManifest": { + "methods": [ + "generate_optimized_manifest" + ] + }, + "FetchBenchmarkingData": { + "methods": [ + "fetch_benchmarking_data" + ] + } + } + } + } + } + } +} diff --git a/google-cloud-gke_recommender-v1/google-cloud-gke_recommender-v1.gemspec b/google-cloud-gke_recommender-v1/google-cloud-gke_recommender-v1.gemspec new file mode 100644 index 000000000000..da43af145afb --- /dev/null +++ b/google-cloud-gke_recommender-v1/google-cloud-gke_recommender-v1.gemspec @@ -0,0 +1,28 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/gke_recommender/v1/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-gke_recommender-v1" + gem.version = Google::Cloud::GkeRecommender::V1::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "GKE Recommender API. Note that google-cloud-gke_recommender-v1 is a version-specific client library. For most uses, we recommend installing the main client library google-cloud-gke_recommender instead. See the readme for more details." + gem.summary = "GKE Recommender API." + gem.homepage = "https://github.com/googleapis/google-cloud-ruby" + gem.license = "Apache-2.0" + + gem.platform = Gem::Platform::RUBY + + gem.files = `git ls-files -- lib/*`.split("\n") + + `git ls-files -- proto_docs/*`.split("\n") + + ["README.md", "LICENSE.md", "AUTHENTICATION.md", ".yardopts"] + gem.require_paths = ["lib"] + + gem.required_ruby_version = ">= 3.1" + + gem.add_dependency "gapic-common", "~> 1.2" + gem.add_dependency "google-cloud-errors", "~> 1.0" +end diff --git a/google-cloud-gke_recommender-v1/lib/google-cloud-gke_recommender-v1.rb b/google-cloud-gke_recommender-v1/lib/google-cloud-gke_recommender-v1.rb new file mode 100644 index 000000000000..51d0bd7d2aed --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google-cloud-gke_recommender-v1.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# This gem does not autoload during Bundler.require. To load this gem, +# issue explicit require statements for the packages desired, e.g.: +# require "google/cloud/gke_recommender/v1" diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1.rb new file mode 100644 index 000000000000..6d7018a1769f --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/gke_recommender/v1/gke_inference_quickstart" +require "google/cloud/gke_recommender/v1/version" + +module Google + module Cloud + module GkeRecommender + ## + # API client module. + # + # @example Load this package, including all its services, and instantiate a gRPC client + # + # require "google/cloud/gke_recommender/v1" + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # @example Load this package, including all its services, and instantiate a REST client + # + # require "google/cloud/gke_recommender/v1" + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + module V1 + end + end + end +end + +helper_path = ::File.join __dir__, "v1", "_helpers.rb" +require "google/cloud/gke_recommender/v1/_helpers" if ::File.file? helper_path diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart.rb new file mode 100644 index 000000000000..7626bafdf909 --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/gke_recommender/v1/version" + +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/client" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest" + +module Google + module Cloud + module GkeRecommender + module V1 + ## + # GKE Inference Quickstart (GIQ) service provides profiles with performance + # metrics for popular models and model servers across multiple accelerators. + # These profiles help generate optimized best practices for running inference + # on GKE. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/cloud/gke_recommender/v1/gke_inference_quickstart" + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest" + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + module GkeInferenceQuickstart + end + end + end + end +end + +helper_path = ::File.join __dir__, "gke_inference_quickstart", "helpers.rb" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/helpers" if ::File.file? helper_path diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/client.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/client.rb new file mode 100644 index 000000000000..652b8efc72ab --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/client.rb @@ -0,0 +1,1028 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/gkerecommender/v1/gkerecommender_pb" + +module Google + module Cloud + module GkeRecommender + module V1 + module GkeInferenceQuickstart + ## + # Client for the GkeInferenceQuickstart service. + # + # GKE Inference Quickstart (GIQ) service provides profiles with performance + # metrics for popular models and model servers across multiple accelerators. + # These profiles help generate optimized best practices for running inference + # on GKE. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "gkerecommender.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :gke_inference_quickstart_stub + + ## + # Configure the GkeInferenceQuickstart Client class. + # + # See {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all GkeInferenceQuickstart clients + # ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "GkeRecommender", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config.rpcs.fetch_models.timeout = 60.0 + + default_config.rpcs.fetch_model_servers.timeout = 60.0 + + default_config.rpcs.fetch_model_server_versions.timeout = 60.0 + + default_config.rpcs.fetch_profiles.timeout = 60.0 + + default_config.rpcs.generate_optimized_manifest.timeout = 60.0 + + default_config.rpcs.fetch_benchmarking_data.timeout = 60.0 + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the GkeInferenceQuickstart Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @gke_inference_quickstart_stub.universe_domain + end + + ## + # Create a new GkeInferenceQuickstart client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the GkeInferenceQuickstart client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/cloud/gkerecommender/v1/gkerecommender_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @gke_inference_quickstart_stub = ::Gapic::ServiceStub.new( + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @gke_inference_quickstart_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @gke_inference_quickstart_stub.logger + end + + # Service calls + + ## + # Fetches available models. Open-source models follow the Huggingface Hub + # `owner/model_name` format. + # + # @overload fetch_models(request, options = nil) + # Pass arguments to `fetch_models` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchModelsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchModelsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload fetch_models(page_size: nil, page_token: nil) + # Pass arguments to `fetch_models` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelsResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelsResponse#next_page_token next_page_token} + # received from a previous `FetchModelsRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelsRequest` must match the call that provided the page token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::GkeRecommender::V1::FetchModelsResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelsResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new + # + # # Call the fetch_models method. + # result = client.fetch_models request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelsResponse. + # p result + # + def fetch_models request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.fetch_models.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_models.timeout, + metadata: metadata, + retry_policy: @config.rpcs.fetch_models.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.call_rpc :fetch_models, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches available model servers. Open-source model servers use simplified, + # lowercase names (e.g., `vllm`). + # + # @overload fetch_model_servers(request, options = nil) + # Pass arguments to `fetch_model_servers` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload fetch_model_servers(model: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_model_servers` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model [::String] + # Required. The model for which to list model servers. Open-source models + # follow the Huggingface Hub `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse#next_page_token next_page_token} + # received from a previous `FetchModelServersRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelServersRequest` must match the call that provided the page + # token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new + # + # # Call the fetch_model_servers method. + # result = client.fetch_model_servers request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelServersResponse. + # p result + # + def fetch_model_servers request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.fetch_model_servers.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_model_servers.timeout, + metadata: metadata, + retry_policy: @config.rpcs.fetch_model_servers.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.call_rpc :fetch_model_servers, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches available model server versions. Open-source servers use their own + # versioning schemas (e.g., `vllm` uses semver like `v1.0.0`). + # + # Some model servers have different versioning schemas depending on the + # accelerator. For example, `vllm` uses semver on GPUs, but returns nightly + # build tags on TPUs. All available versions will be returned when different + # schemas are present. + # + # @overload fetch_model_server_versions(request, options = nil) + # Pass arguments to `fetch_model_server_versions` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload fetch_model_server_versions(model: nil, model_server: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_model_server_versions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model [::String] + # Required. The model for which to list model server versions. Open-source + # models follow the Huggingface Hub `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @param model_server [::String] + # Required. The model server for which to list versions. Open-source model + # servers use simplified, lowercase names (e.g., `vllm`). Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available model servers. + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse#next_page_token next_page_token} + # received from a previous `FetchModelServerVersionsRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelServerVersionsRequest` must match the call that provided the + # page token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new + # + # # Call the fetch_model_server_versions method. + # result = client.fetch_model_server_versions request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse. + # p result + # + def fetch_model_server_versions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.fetch_model_server_versions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_model_server_versions.timeout, + metadata: metadata, + retry_policy: @config.rpcs.fetch_model_server_versions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.call_rpc :fetch_model_server_versions, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches available profiles. A profile contains performance metrics and + # cost information for a specific model server setup. Profiles can be + # filtered by parameters. If no filters are provided, all profiles are + # returned. + # + # Profiles display a single value per performance metric based on the + # provided performance requirements. If no requirements are given, the + # metrics represent the inflection point. See [Run best practice inference + # with GKE Inference Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + # for details. + # + # @overload fetch_profiles(request, options = nil) + # Pass arguments to `fetch_profiles` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload fetch_profiles(model: nil, model_server: nil, model_server_version: nil, performance_requirements: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_profiles` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model [::String] + # Optional. The model to filter profiles by. Open-source models follow the + # Huggingface Hub `owner/model_name` format. If not provided, all models are + # returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @param model_server [::String] + # Optional. The model server to filter profiles by. If not provided, all + # model servers are returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available model servers for a given model. + # @param model_server_version [::String] + # Optional. The model server version to filter profiles by. If not provided, + # all model server versions are returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions GkeInferenceQuickstart.FetchModelServerVersions} + # to find available versions for a given model and server. + # @param performance_requirements [::Google::Cloud::GkeRecommender::V1::PerformanceRequirements, ::Hash] + # Optional. The performance requirements to filter profiles. Profiles that do + # not meet these requirements are filtered out. If not provided, all profiles + # are returned. + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. If + # not specified, a default value will be chosen by the service. Note that the + # response may include a partial list and a caller should only rely on the + # response's + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse#next_page_token next_page_token} + # received from a previous `FetchProfilesRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchProfilesRequest` must match the call that provided the page + # token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::GkeRecommender::V1::Profile>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::GkeRecommender::V1::Profile>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new + # + # # Call the fetch_profiles method. + # result = client.fetch_profiles request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::GkeRecommender::V1::Profile. + # p item + # end + # + def fetch_profiles request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.fetch_profiles.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_profiles.timeout, + metadata: metadata, + retry_policy: @config.rpcs.fetch_profiles.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.call_rpc :fetch_profiles, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @gke_inference_quickstart_stub, :fetch_profiles, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Generates an optimized deployment manifest for a given model and model + # server, based on the specified accelerator, performance targets, and + # configurations. See [Run best practice inference with GKE Inference + # Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + # for deployment details. + # + # @overload generate_optimized_manifest(request, options = nil) + # Pass arguments to `generate_optimized_manifest` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload generate_optimized_manifest(model_server_info: nil, accelerator_type: nil, kubernetes_namespace: nil, performance_requirements: nil, storage_config: nil) + # Pass arguments to `generate_optimized_manifest` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model_server_info [::Google::Cloud::GkeRecommender::V1::ModelServerInfo, ::Hash] + # Required. The model server configuration to generate the manifest for. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @param accelerator_type [::String] + # Required. The accelerator type. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid accelerators for a given `model_server_info`. + # @param kubernetes_namespace [::String] + # Optional. The kubernetes namespace to deploy the manifests in. + # @param performance_requirements [::Google::Cloud::GkeRecommender::V1::PerformanceRequirements, ::Hash] + # Optional. The performance requirements to use for generating Horizontal Pod + # Autoscaler (HPA) resources. If provided, the manifest includes HPA + # resources to adjust the model server replica count to maintain the + # specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are + # not currently supported for HPA generation. If the specified targets are + # not achievable, the HPA manifest will not be generated. + # @param storage_config [::Google::Cloud::GkeRecommender::V1::StorageConfig, ::Hash] + # Optional. The storage configuration for the model. If not provided, the + # model is loaded from Huggingface. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new + # + # # Call the generate_optimized_manifest method. + # result = client.generate_optimized_manifest request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse. + # p result + # + def generate_optimized_manifest request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.generate_optimized_manifest.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.generate_optimized_manifest.timeout, + metadata: metadata, + retry_policy: @config.rpcs.generate_optimized_manifest.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.call_rpc :generate_optimized_manifest, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches all of the benchmarking data available for a profile. Benchmarking + # data returns all of the performance metrics available for a given model + # server setup on a given instance type. + # + # @overload fetch_benchmarking_data(request, options = nil) + # Pass arguments to `fetch_benchmarking_data` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload fetch_benchmarking_data(model_server_info: nil, instance_type: nil, pricing_model: nil) + # Pass arguments to `fetch_benchmarking_data` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model_server_info [::Google::Cloud::GkeRecommender::V1::ModelServerInfo, ::Hash] + # Required. The model server configuration to get benchmarking data for. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @param instance_type [::String] + # Optional. The instance type to filter benchmarking data. Instance types are + # in the format `a2-highgpu-1g`. If not provided, all instance types for the + # given profile's `model_server_info` will be returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find available instance types. + # @param pricing_model [::String] + # Optional. The pricing model to use for the benchmarking data. Defaults to + # `spot`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new + # + # # Call the fetch_benchmarking_data method. + # result = client.fetch_benchmarking_data request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse. + # p result + # + def fetch_benchmarking_data request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.fetch_benchmarking_data.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_benchmarking_data.timeout, + metadata: metadata, + retry_policy: @config.rpcs.fetch_benchmarking_data.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.call_rpc :fetch_benchmarking_data, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the GkeInferenceQuickstart API. + # + # This class represents the configuration for GkeInferenceQuickstart, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # fetch_models to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.fetch_models.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.fetch_models.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "gkerecommender.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the GkeInferenceQuickstart API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `fetch_models` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_models + ## + # RPC-specific configuration for `fetch_model_servers` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_model_servers + ## + # RPC-specific configuration for `fetch_model_server_versions` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_model_server_versions + ## + # RPC-specific configuration for `fetch_profiles` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_profiles + ## + # RPC-specific configuration for `generate_optimized_manifest` + # @return [::Gapic::Config::Method] + # + attr_reader :generate_optimized_manifest + ## + # RPC-specific configuration for `fetch_benchmarking_data` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_benchmarking_data + + # @private + def initialize parent_rpcs = nil + fetch_models_config = parent_rpcs.fetch_models if parent_rpcs.respond_to? :fetch_models + @fetch_models = ::Gapic::Config::Method.new fetch_models_config + fetch_model_servers_config = parent_rpcs.fetch_model_servers if parent_rpcs.respond_to? :fetch_model_servers + @fetch_model_servers = ::Gapic::Config::Method.new fetch_model_servers_config + fetch_model_server_versions_config = parent_rpcs.fetch_model_server_versions if parent_rpcs.respond_to? :fetch_model_server_versions + @fetch_model_server_versions = ::Gapic::Config::Method.new fetch_model_server_versions_config + fetch_profiles_config = parent_rpcs.fetch_profiles if parent_rpcs.respond_to? :fetch_profiles + @fetch_profiles = ::Gapic::Config::Method.new fetch_profiles_config + generate_optimized_manifest_config = parent_rpcs.generate_optimized_manifest if parent_rpcs.respond_to? :generate_optimized_manifest + @generate_optimized_manifest = ::Gapic::Config::Method.new generate_optimized_manifest_config + fetch_benchmarking_data_config = parent_rpcs.fetch_benchmarking_data if parent_rpcs.respond_to? :fetch_benchmarking_data + @fetch_benchmarking_data = ::Gapic::Config::Method.new fetch_benchmarking_data_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials.rb new file mode 100644 index 000000000000..5ab3af000a85 --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module GkeRecommender + module V1 + module GkeInferenceQuickstart + # Credentials for the GkeInferenceQuickstart API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest.rb new file mode 100644 index 000000000000..ca674db5221f --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/gke_recommender/v1/version" + +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/client" + +module Google + module Cloud + module GkeRecommender + module V1 + ## + # GKE Inference Quickstart (GIQ) service provides profiles with performance + # metrics for popular models and model servers across multiple accelerators. + # These profiles help generate optimized best practices for running inference + # on GKE. + # + # To load this service and instantiate a REST client: + # + # require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest" + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + module GkeInferenceQuickstart + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/client.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/client.rb new file mode 100644 index 000000000000..f1c1ad8b2d5b --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/client.rb @@ -0,0 +1,1008 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/gkerecommender/v1/gkerecommender_pb" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/service_stub" + +module Google + module Cloud + module GkeRecommender + module V1 + module GkeInferenceQuickstart + module Rest + ## + # REST client for the GkeInferenceQuickstart service. + # + # GKE Inference Quickstart (GIQ) service provides profiles with performance + # metrics for popular models and model servers across multiple accelerators. + # These profiles help generate optimized best practices for running inference + # on GKE. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "gkerecommender.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :gke_inference_quickstart_stub + + ## + # Configure the GkeInferenceQuickstart Client class. + # + # See {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all GkeInferenceQuickstart clients + # ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "GkeRecommender", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config.rpcs.fetch_models.timeout = 60.0 + + default_config.rpcs.fetch_model_servers.timeout = 60.0 + + default_config.rpcs.fetch_model_server_versions.timeout = 60.0 + + default_config.rpcs.fetch_profiles.timeout = 60.0 + + default_config.rpcs.generate_optimized_manifest.timeout = 60.0 + + default_config.rpcs.fetch_benchmarking_data.timeout = 60.0 + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the GkeInferenceQuickstart Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @gke_inference_quickstart_stub.universe_domain + end + + ## + # Create a new GkeInferenceQuickstart REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the GkeInferenceQuickstart client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @gke_inference_quickstart_stub = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @gke_inference_quickstart_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @gke_inference_quickstart_stub.logger + end + + # Service calls + + ## + # Fetches available models. Open-source models follow the Huggingface Hub + # `owner/model_name` format. + # + # @overload fetch_models(request, options = nil) + # Pass arguments to `fetch_models` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchModelsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchModelsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload fetch_models(page_size: nil, page_token: nil) + # Pass arguments to `fetch_models` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelsResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelsResponse#next_page_token next_page_token} + # received from a previous `FetchModelsRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelsRequest` must match the call that provided the page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchModelsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new + # + # # Call the fetch_models method. + # result = client.fetch_models request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelsResponse. + # p result + # + def fetch_models request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.fetch_models.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_models.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.fetch_models.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.fetch_models request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches available model servers. Open-source model servers use simplified, + # lowercase names (e.g., `vllm`). + # + # @overload fetch_model_servers(request, options = nil) + # Pass arguments to `fetch_model_servers` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload fetch_model_servers(model: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_model_servers` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model [::String] + # Required. The model for which to list model servers. Open-source models + # follow the Huggingface Hub `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse#next_page_token next_page_token} + # received from a previous `FetchModelServersRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelServersRequest` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new + # + # # Call the fetch_model_servers method. + # result = client.fetch_model_servers request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelServersResponse. + # p result + # + def fetch_model_servers request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.fetch_model_servers.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_model_servers.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.fetch_model_servers.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.fetch_model_servers request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches available model server versions. Open-source servers use their own + # versioning schemas (e.g., `vllm` uses semver like `v1.0.0`). + # + # Some model servers have different versioning schemas depending on the + # accelerator. For example, `vllm` uses semver on GPUs, but returns nightly + # build tags on TPUs. All available versions will be returned when different + # schemas are present. + # + # @overload fetch_model_server_versions(request, options = nil) + # Pass arguments to `fetch_model_server_versions` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload fetch_model_server_versions(model: nil, model_server: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_model_server_versions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model [::String] + # Required. The model for which to list model server versions. Open-source + # models follow the Huggingface Hub `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @param model_server [::String] + # Required. The model server for which to list versions. Open-source model + # servers use simplified, lowercase names (e.g., `vllm`). Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available model servers. + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse#next_page_token next_page_token} + # received from a previous `FetchModelServerVersionsRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelServerVersionsRequest` must match the call that provided the + # page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new + # + # # Call the fetch_model_server_versions method. + # result = client.fetch_model_server_versions request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse. + # p result + # + def fetch_model_server_versions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.fetch_model_server_versions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_model_server_versions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.fetch_model_server_versions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.fetch_model_server_versions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches available profiles. A profile contains performance metrics and + # cost information for a specific model server setup. Profiles can be + # filtered by parameters. If no filters are provided, all profiles are + # returned. + # + # Profiles display a single value per performance metric based on the + # provided performance requirements. If no requirements are given, the + # metrics represent the inflection point. See [Run best practice inference + # with GKE Inference Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + # for details. + # + # @overload fetch_profiles(request, options = nil) + # Pass arguments to `fetch_profiles` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload fetch_profiles(model: nil, model_server: nil, model_server_version: nil, performance_requirements: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_profiles` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model [::String] + # Optional. The model to filter profiles by. Open-source models follow the + # Huggingface Hub `owner/model_name` format. If not provided, all models are + # returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @param model_server [::String] + # Optional. The model server to filter profiles by. If not provided, all + # model servers are returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available model servers for a given model. + # @param model_server_version [::String] + # Optional. The model server version to filter profiles by. If not provided, + # all model server versions are returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_model_server_versions GkeInferenceQuickstart.FetchModelServerVersions} + # to find available versions for a given model and server. + # @param performance_requirements [::Google::Cloud::GkeRecommender::V1::PerformanceRequirements, ::Hash] + # Optional. The performance requirements to filter profiles. Profiles that do + # not meet these requirements are filtered out. If not provided, all profiles + # are returned. + # @param page_size [::Integer] + # Optional. The target number of results to return in a single response. If + # not specified, a default value will be chosen by the service. Note that the + # response may include a partial list and a caller should only rely on the + # response's + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @param page_token [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse#next_page_token next_page_token} + # received from a previous `FetchProfilesRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchProfilesRequest` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::GkeRecommender::V1::Profile>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::GkeRecommender::V1::Profile>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new + # + # # Call the fetch_profiles method. + # result = client.fetch_profiles request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::GkeRecommender::V1::Profile. + # p item + # end + # + def fetch_profiles request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.fetch_profiles.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_profiles.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.fetch_profiles.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.fetch_profiles request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @gke_inference_quickstart_stub, :fetch_profiles, "profile", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Generates an optimized deployment manifest for a given model and model + # server, based on the specified accelerator, performance targets, and + # configurations. See [Run best practice inference with GKE Inference + # Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + # for deployment details. + # + # @overload generate_optimized_manifest(request, options = nil) + # Pass arguments to `generate_optimized_manifest` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload generate_optimized_manifest(model_server_info: nil, accelerator_type: nil, kubernetes_namespace: nil, performance_requirements: nil, storage_config: nil) + # Pass arguments to `generate_optimized_manifest` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model_server_info [::Google::Cloud::GkeRecommender::V1::ModelServerInfo, ::Hash] + # Required. The model server configuration to generate the manifest for. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @param accelerator_type [::String] + # Required. The accelerator type. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid accelerators for a given `model_server_info`. + # @param kubernetes_namespace [::String] + # Optional. The kubernetes namespace to deploy the manifests in. + # @param performance_requirements [::Google::Cloud::GkeRecommender::V1::PerformanceRequirements, ::Hash] + # Optional. The performance requirements to use for generating Horizontal Pod + # Autoscaler (HPA) resources. If provided, the manifest includes HPA + # resources to adjust the model server replica count to maintain the + # specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are + # not currently supported for HPA generation. If the specified targets are + # not achievable, the HPA manifest will not be generated. + # @param storage_config [::Google::Cloud::GkeRecommender::V1::StorageConfig, ::Hash] + # Optional. The storage configuration for the model. If not provided, the + # model is loaded from Huggingface. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new + # + # # Call the generate_optimized_manifest method. + # result = client.generate_optimized_manifest request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse. + # p result + # + def generate_optimized_manifest request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.generate_optimized_manifest.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.generate_optimized_manifest.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.generate_optimized_manifest.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.generate_optimized_manifest request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Fetches all of the benchmarking data available for a profile. Benchmarking + # data returns all of the performance metrics available for a given model + # server setup on a given instance type. + # + # @overload fetch_benchmarking_data(request, options = nil) + # Pass arguments to `fetch_benchmarking_data` via a request object, either of type + # {::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload fetch_benchmarking_data(model_server_info: nil, instance_type: nil, pricing_model: nil) + # Pass arguments to `fetch_benchmarking_data` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param model_server_info [::Google::Cloud::GkeRecommender::V1::ModelServerInfo, ::Hash] + # Required. The model server configuration to get benchmarking data for. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @param instance_type [::String] + # Optional. The instance type to filter benchmarking data. Instance types are + # in the format `a2-highgpu-1g`. If not provided, all instance types for the + # given profile's `model_server_info` will be returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find available instance types. + # @param pricing_model [::String] + # Optional. The pricing model to use for the benchmarking data. Defaults to + # `spot`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/gke_recommender/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new + # + # # Call the fetch_benchmarking_data method. + # result = client.fetch_benchmarking_data request + # + # # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse. + # p result + # + def fetch_benchmarking_data request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.fetch_benchmarking_data.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::GkeRecommender::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_benchmarking_data.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.fetch_benchmarking_data.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @gke_inference_quickstart_stub.fetch_benchmarking_data request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the GkeInferenceQuickstart REST API. + # + # This class represents the configuration for GkeInferenceQuickstart REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # fetch_models to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.fetch_models.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.fetch_models.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "gkerecommender.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the GkeInferenceQuickstart API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `fetch_models` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_models + ## + # RPC-specific configuration for `fetch_model_servers` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_model_servers + ## + # RPC-specific configuration for `fetch_model_server_versions` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_model_server_versions + ## + # RPC-specific configuration for `fetch_profiles` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_profiles + ## + # RPC-specific configuration for `generate_optimized_manifest` + # @return [::Gapic::Config::Method] + # + attr_reader :generate_optimized_manifest + ## + # RPC-specific configuration for `fetch_benchmarking_data` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_benchmarking_data + + # @private + def initialize parent_rpcs = nil + fetch_models_config = parent_rpcs.fetch_models if parent_rpcs.respond_to? :fetch_models + @fetch_models = ::Gapic::Config::Method.new fetch_models_config + fetch_model_servers_config = parent_rpcs.fetch_model_servers if parent_rpcs.respond_to? :fetch_model_servers + @fetch_model_servers = ::Gapic::Config::Method.new fetch_model_servers_config + fetch_model_server_versions_config = parent_rpcs.fetch_model_server_versions if parent_rpcs.respond_to? :fetch_model_server_versions + @fetch_model_server_versions = ::Gapic::Config::Method.new fetch_model_server_versions_config + fetch_profiles_config = parent_rpcs.fetch_profiles if parent_rpcs.respond_to? :fetch_profiles + @fetch_profiles = ::Gapic::Config::Method.new fetch_profiles_config + generate_optimized_manifest_config = parent_rpcs.generate_optimized_manifest if parent_rpcs.respond_to? :generate_optimized_manifest + @generate_optimized_manifest = ::Gapic::Config::Method.new generate_optimized_manifest_config + fetch_benchmarking_data_config = parent_rpcs.fetch_benchmarking_data if parent_rpcs.respond_to? :fetch_benchmarking_data + @fetch_benchmarking_data = ::Gapic::Config::Method.new fetch_benchmarking_data_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/service_stub.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/service_stub.rb new file mode 100644 index 000000000000..9200aaeb83e3 --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/gke_inference_quickstart/rest/service_stub.rb @@ -0,0 +1,438 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/gkerecommender/v1/gkerecommender_pb" + +module Google + module Cloud + module GkeRecommender + module V1 + module GkeInferenceQuickstart + module Rest + ## + # REST service stub for the GkeInferenceQuickstart service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the fetch_models REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchModelsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchModelsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelsResponse] + # A result object deserialized from the server's reply + def fetch_models request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_fetch_models_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "fetch_models", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::GkeRecommender::V1::FetchModelsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the fetch_model_servers REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse] + # A result object deserialized from the server's reply + def fetch_model_servers request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_fetch_model_servers_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "fetch_model_servers", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the fetch_model_server_versions REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse] + # A result object deserialized from the server's reply + def fetch_model_server_versions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_fetch_model_server_versions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "fetch_model_server_versions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the fetch_profiles REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse] + # A result object deserialized from the server's reply + def fetch_profiles request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_fetch_profiles_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "fetch_profiles", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the generate_optimized_manifest REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse] + # A result object deserialized from the server's reply + def generate_optimized_manifest request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_generate_optimized_manifest_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "generate_optimized_manifest", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the fetch_benchmarking_data REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse] + # A result object deserialized from the server's reply + def fetch_benchmarking_data request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_fetch_benchmarking_data_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "fetch_benchmarking_data", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_models REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchModelsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_models_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/models:fetch", + matches: [] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_model_servers REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_model_servers_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/modelServers:fetch", + matches: [] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_model_server_versions REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_model_server_versions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/modelServerVersions:fetch", + matches: [] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_profiles REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_profiles_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/profiles:fetch", + body: "*", + matches: [] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the generate_optimized_manifest REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_generate_optimized_manifest_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/optimizedManifest:generate", + body: "*", + matches: [] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_benchmarking_data REST call + # + # @param request_pb [::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_benchmarking_data_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/benchmarkingData:fetch", + body: "*", + matches: [] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/rest.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/rest.rb new file mode 100644 index 000000000000..5dc2ddc91b21 --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/rest.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest" +require "google/cloud/gke_recommender/v1/version" + +module Google + module Cloud + module GkeRecommender + ## + # To load just the REST part of this package, including all its services, and instantiate a REST client: + # + # @example + # + # require "google/cloud/gke_recommender/v1/rest" + # client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new + # + module V1 + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/version.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/version.rb new file mode 100644 index 000000000000..801d1dd2249c --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gke_recommender/v1/version.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module GkeRecommender + module V1 + VERSION = "0.1.0" + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gkerecommender/v1/gkerecommender_pb.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gkerecommender/v1/gkerecommender_pb.rb new file mode 100644 index 000000000000..06d83bdac30f --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gkerecommender/v1/gkerecommender_pb.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/gkerecommender/v1/gkerecommender.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' + + +descriptor_data = "\n3google/cloud/gkerecommender/v1/gkerecommender.proto\x12\x1egoogle.cloud.gkerecommender.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"l\n\x12\x46\x65tchModelsRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x1c\n\npage_token\x18\x02 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"H\n\x13\x46\x65tchModelsResponse\x12\x13\n\x06models\x18\x01 \x03(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\"\x86\x01\n\x18\x46\x65tchModelServersRequest\x12\x12\n\x05model\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x1c\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"U\n\x19\x46\x65tchModelServersResponse\x12\x1a\n\rmodel_servers\x18\x01 \x03(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\"\xa8\x01\n\x1f\x46\x65tchModelServerVersionsRequest\x12\x12\n\x05model\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0cmodel_server\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1b\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x1c\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"d\n FetchModelServerVersionsResponse\x12\"\n\x15model_server_versions\x18\x01 \x03(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\"\xa7\x01\n\x1c\x46\x65tchBenchmarkingDataRequest\x12O\n\x11model_server_info\x18\x01 \x01(\x0b\x32/.google.cloud.gkerecommender.v1.ModelServerInfoB\x03\xe0\x41\x02\x12\x1a\n\rinstance_type\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rpricing_model\x18\x04 \x01(\tB\x03\xe0\x41\x01\"^\n\x1d\x46\x65tchBenchmarkingDataResponse\x12=\n\x07profile\x18\x01 \x03(\x0b\x32\'.google.cloud.gkerecommender.v1.ProfileB\x03\xe0\x41\x03\"\xa0\x02\n\x14\x46\x65tchProfilesRequest\x12\x12\n\x05model\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cmodel_server\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12!\n\x14model_server_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12^\n\x18performance_requirements\x18\x04 \x01(\x0b\x32\x37.google.cloud.gkerecommender.v1.PerformanceRequirementsB\x03\xe0\x41\x01\x12\x1b\n\tpage_size\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x1c\n\npage_token\x18\x06 \x01(\tB\x03\xe0\x41\x01H\x01\x88\x01\x01\x42\x0c\n\n_page_sizeB\r\n\x0b_page_token\"\xed\x01\n\x17PerformanceRequirements\x12+\n\x19target_ntpot_milliseconds\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12*\n\x18target_ttft_milliseconds\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12>\n\x0btarget_cost\x18\x03 \x01(\x0b\x32$.google.cloud.gkerecommender.v1.CostB\x03\xe0\x41\x01\x42\x1c\n\x1a_target_ntpot_millisecondsB\x1b\n\x19_target_ttft_milliseconds\"0\n\x06\x41mount\x12\x12\n\x05units\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12\x12\n\x05nanos\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\"\x92\x02\n\x04\x43ost\x12S\n\x1e\x63ost_per_million_output_tokens\x18\x01 \x01(\x0b\x32&.google.cloud.gkerecommender.v1.AmountB\x03\xe0\x41\x01\x12R\n\x1d\x63ost_per_million_input_tokens\x18\x02 \x01(\x0b\x32&.google.cloud.gkerecommender.v1.AmountB\x03\xe0\x41\x01\x12\x1a\n\rpricing_model\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12)\n\x17output_input_cost_ratio\x18\x04 \x01(\x02\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x42\x1a\n\x18_output_input_cost_ratio\":\n\x14TokensPerSecondRange\x12\x10\n\x03min\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x10\n\x03max\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\"6\n\x10MillisecondRange\x12\x10\n\x03min\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x10\n\x03max\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\"\x85\x02\n\x10PerformanceRange\x12Z\n\x17throughput_output_range\x18\x01 \x01(\x0b\x32\x34.google.cloud.gkerecommender.v1.TokensPerSecondRangeB\x03\xe0\x41\x03\x12I\n\nttft_range\x18\x02 \x01(\x0b\x32\x30.google.cloud.gkerecommender.v1.MillisecondRangeB\x03\xe0\x41\x03\x12J\n\x0bntpot_range\x18\x03 \x01(\x0b\x32\x30.google.cloud.gkerecommender.v1.MillisecondRangeB\x03\xe0\x41\x03\"\xdd\x01\n\x15\x46\x65tchProfilesResponse\x12=\n\x07profile\x18\x01 \x03(\x0b\x32\'.google.cloud.gkerecommender.v1.ProfileB\x03\xe0\x41\x03\x12P\n\x11performance_range\x18\x02 \x01(\x0b\x32\x30.google.cloud.gkerecommender.v1.PerformanceRangeB\x03\xe0\x41\x03\x12\x15\n\x08\x63omments\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x04 \x01(\tB\x03\xe0\x41\x03\"c\n\x0fModelServerInfo\x12\x12\n\x05model\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0cmodel_server\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12!\n\x14model_server_version\x18\x03 \x01(\tB\x03\xe0\x41\x01\"/\n\rResourcesUsed\x12\x1e\n\x11\x61\x63\x63\x65lerator_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\"\xd4\x01\n\x10PerformanceStats\x12\x1f\n\x12queries_per_second\x18\x01 \x01(\x02\x42\x03\xe0\x41\x03\x12%\n\x18output_tokens_per_second\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1f\n\x12ntpot_milliseconds\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1e\n\x11ttft_milliseconds\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x37\n\x04\x63ost\x18\x05 \x03(\x0b\x32$.google.cloud.gkerecommender.v1.CostB\x03\xe0\x41\x03\"\xce\x02\n\x07Profile\x12O\n\x11model_server_info\x18\x01 \x01(\x0b\x32/.google.cloud.gkerecommender.v1.ModelServerInfoB\x03\xe0\x41\x03\x12\x1d\n\x10\x61\x63\x63\x65lerator_type\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x19\n\x0ctpu_topology\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rinstance_type\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12J\n\x0eresources_used\x18\x05 \x01(\x0b\x32-.google.cloud.gkerecommender.v1.ResourcesUsedB\x03\xe0\x41\x03\x12P\n\x11performance_stats\x18\x06 \x03(\x0b\x32\x30.google.cloud.gkerecommender.v1.PerformanceStatsB\x03\xe0\x41\x03\"\xe1\x02\n GenerateOptimizedManifestRequest\x12O\n\x11model_server_info\x18\x01 \x01(\x0b\x32/.google.cloud.gkerecommender.v1.ModelServerInfoB\x03\xe0\x41\x02\x12\x1d\n\x10\x61\x63\x63\x65lerator_type\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12!\n\x14kubernetes_namespace\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12^\n\x18performance_requirements\x18\x04 \x01(\x0b\x32\x37.google.cloud.gkerecommender.v1.PerformanceRequirementsB\x03\xe0\x41\x01\x12J\n\x0estorage_config\x18\x05 \x01(\x0b\x32-.google.cloud.gkerecommender.v1.StorageConfigB\x03\xe0\x41\x01\"W\n\x12KubernetesManifest\x12\x11\n\x04kind\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x03 \x01(\tB\x03\xe0\x41\x03\"\xb0\x01\n!GenerateOptimizedManifestResponse\x12U\n\x14kubernetes_manifests\x18\x01 \x03(\x0b\x32\x32.google.cloud.gkerecommender.v1.KubernetesManifestB\x03\xe0\x41\x03\x12\x15\n\x08\x63omments\x18\x02 \x03(\tB\x03\xe0\x41\x03\x12\x1d\n\x10manifest_version\x18\x03 \x01(\tB\x03\xe0\x41\x03\"Q\n\rStorageConfig\x12\x1d\n\x10model_bucket_uri\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12!\n\x14xla_cache_bucket_uri\x18\x02 \x01(\tB\x03\xe0\x41\x01\x32\x9a\t\n\x16GkeInferenceQuickstart\x12\x90\x01\n\x0b\x46\x65tchModels\x12\x32.google.cloud.gkerecommender.v1.FetchModelsRequest\x1a\x33.google.cloud.gkerecommender.v1.FetchModelsResponse\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/v1/models:fetch\x12\xa8\x01\n\x11\x46\x65tchModelServers\x12\x38.google.cloud.gkerecommender.v1.FetchModelServersRequest\x1a\x39.google.cloud.gkerecommender.v1.FetchModelServersResponse\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/modelServers:fetch\x12\xc4\x01\n\x18\x46\x65tchModelServerVersions\x12?.google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest\x1a@.google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/modelServerVersions:fetch\x12\x9b\x01\n\rFetchProfiles\x12\x34.google.cloud.gkerecommender.v1.FetchProfilesRequest\x1a\x35.google.cloud.gkerecommender.v1.FetchProfilesResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x12/v1/profiles:fetch:\x01*\x12\xcb\x01\n\x19GenerateOptimizedManifest\x12@.google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest\x1a\x41.google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse\")\x82\xd3\xe4\x93\x02#\"\x1e/v1/optimizedManifest:generate:\x01*\x12\xbb\x01\n\x15\x46\x65tchBenchmarkingData\x12<.google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest\x1a=.google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/benchmarkingData:fetch:\x01*\x1aQ\xca\x41\x1dgkerecommender.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xed\x01\n\"com.google.cloud.gkerecommender.v1B\x13GkeRecommenderProtoP\x01ZJcloud.google.com/go/gkerecommender/apiv1/gkerecommenderpb;gkerecommenderpb\xaa\x02\x1eGoogle.Cloud.GkeRecommender.V1\xca\x02\x1eGoogle\\Cloud\\GkeRecommender\\V1\xea\x02!Google::Cloud::GkeRecommender::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module GkeRecommender + module V1 + FetchModelsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchModelsRequest").msgclass + FetchModelsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchModelsResponse").msgclass + FetchModelServersRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchModelServersRequest").msgclass + FetchModelServersResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchModelServersResponse").msgclass + FetchModelServerVersionsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchModelServerVersionsRequest").msgclass + FetchModelServerVersionsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchModelServerVersionsResponse").msgclass + FetchBenchmarkingDataRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchBenchmarkingDataRequest").msgclass + FetchBenchmarkingDataResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchBenchmarkingDataResponse").msgclass + FetchProfilesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchProfilesRequest").msgclass + PerformanceRequirements = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.PerformanceRequirements").msgclass + Amount = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.Amount").msgclass + Cost = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.Cost").msgclass + TokensPerSecondRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.TokensPerSecondRange").msgclass + MillisecondRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.MillisecondRange").msgclass + PerformanceRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.PerformanceRange").msgclass + FetchProfilesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.FetchProfilesResponse").msgclass + ModelServerInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.ModelServerInfo").msgclass + ResourcesUsed = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.ResourcesUsed").msgclass + PerformanceStats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.PerformanceStats").msgclass + Profile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.Profile").msgclass + GenerateOptimizedManifestRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.GenerateOptimizedManifestRequest").msgclass + KubernetesManifest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.KubernetesManifest").msgclass + GenerateOptimizedManifestResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.GenerateOptimizedManifestResponse").msgclass + StorageConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.gkerecommender.v1.StorageConfig").msgclass + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/lib/google/cloud/gkerecommender/v1/gkerecommender_services_pb.rb b/google-cloud-gke_recommender-v1/lib/google/cloud/gkerecommender/v1/gkerecommender_services_pb.rb new file mode 100644 index 000000000000..53ed9238bce6 --- /dev/null +++ b/google-cloud-gke_recommender-v1/lib/google/cloud/gkerecommender/v1/gkerecommender_services_pb.rb @@ -0,0 +1,83 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/gkerecommender/v1/gkerecommender.proto for package 'Google.Cloud.GkeRecommender.V1' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/gkerecommender/v1/gkerecommender_pb' + +module Google + module Cloud + module GkeRecommender + module V1 + module GkeInferenceQuickstart + # GKE Inference Quickstart (GIQ) service provides profiles with performance + # metrics for popular models and model servers across multiple accelerators. + # These profiles help generate optimized best practices for running inference + # on GKE. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.gkerecommender.v1.GkeInferenceQuickstart' + + # Fetches available models. Open-source models follow the Huggingface Hub + # `owner/model_name` format. + rpc :FetchModels, ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest, ::Google::Cloud::GkeRecommender::V1::FetchModelsResponse + # Fetches available model servers. Open-source model servers use simplified, + # lowercase names (e.g., `vllm`). + rpc :FetchModelServers, ::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest, ::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse + # Fetches available model server versions. Open-source servers use their own + # versioning schemas (e.g., `vllm` uses semver like `v1.0.0`). + # + # Some model servers have different versioning schemas depending on the + # accelerator. For example, `vllm` uses semver on GPUs, but returns nightly + # build tags on TPUs. All available versions will be returned when different + # schemas are present. + rpc :FetchModelServerVersions, ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest, ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse + # Fetches available profiles. A profile contains performance metrics and + # cost information for a specific model server setup. Profiles can be + # filtered by parameters. If no filters are provided, all profiles are + # returned. + # + # Profiles display a single value per performance metric based on the + # provided performance requirements. If no requirements are given, the + # metrics represent the inflection point. See [Run best practice inference + # with GKE Inference Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart#how) + # for details. + rpc :FetchProfiles, ::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest, ::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse + # Generates an optimized deployment manifest for a given model and model + # server, based on the specified accelerator, performance targets, and + # configurations. See [Run best practice inference with GKE Inference + # Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + # for deployment details. + rpc :GenerateOptimizedManifest, ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest, ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse + # Fetches all of the benchmarking data available for a profile. Benchmarking + # data returns all of the performance metrics available for a given model + # server setup on a given instance type. + rpc :FetchBenchmarkingData, ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest, ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/proto_docs/README.md b/google-cloud-gke_recommender-v1/proto_docs/README.md new file mode 100644 index 000000000000..88db29129d80 --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/README.md @@ -0,0 +1,4 @@ +# GKE Recommender V1 Protocol Buffer Documentation + +These files are for the YARD documentation of the generated protobuf files. +They are not intended to be required or loaded at runtime. diff --git a/google-cloud-gke_recommender-v1/proto_docs/google/api/client.rb b/google-cloud-gke_recommender-v1/proto_docs/google/api/client.rb new file mode 100644 index 000000000000..c6b6b60729c9 --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/google/api/client.rb @@ -0,0 +1,473 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Api + # Required information for every language. + # @!attribute [rw] reference_docs_uri + # @deprecated This field is deprecated and may be removed in the next major version update. + # @return [::String] + # Link to automatically generated reference documentation. Example: + # https://cloud.google.com/nodejs/docs/reference/asset/latest + # @!attribute [rw] destinations + # @return [::Array<::Google::Api::ClientLibraryDestination>] + # The destination where API teams want this client library to be published. + # @!attribute [rw] selective_gapic_generation + # @return [::Google::Api::SelectiveGapicGeneration] + # Configuration for which RPCs should be generated in the GAPIC client. + class CommonLanguageSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details about how and where to publish client libraries. + # @!attribute [rw] version + # @return [::String] + # Version of the API to apply these settings to. This is the full protobuf + # package for the API, ending in the version element. + # Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1". + # @!attribute [rw] launch_stage + # @return [::Google::Api::LaunchStage] + # Launch stage of this version of the API. + # @!attribute [rw] rest_numeric_enums + # @return [::Boolean] + # When using transport=rest, the client request will encode enums as + # numbers rather than strings. + # @!attribute [rw] java_settings + # @return [::Google::Api::JavaSettings] + # Settings for legacy Java features, supported in the Service YAML. + # @!attribute [rw] cpp_settings + # @return [::Google::Api::CppSettings] + # Settings for C++ client libraries. + # @!attribute [rw] php_settings + # @return [::Google::Api::PhpSettings] + # Settings for PHP client libraries. + # @!attribute [rw] python_settings + # @return [::Google::Api::PythonSettings] + # Settings for Python client libraries. + # @!attribute [rw] node_settings + # @return [::Google::Api::NodeSettings] + # Settings for Node client libraries. + # @!attribute [rw] dotnet_settings + # @return [::Google::Api::DotnetSettings] + # Settings for .NET client libraries. + # @!attribute [rw] ruby_settings + # @return [::Google::Api::RubySettings] + # Settings for Ruby client libraries. + # @!attribute [rw] go_settings + # @return [::Google::Api::GoSettings] + # Settings for Go client libraries. + class ClientLibrarySettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # This message configures the settings for publishing [Google Cloud Client + # libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) + # generated from the service config. + # @!attribute [rw] method_settings + # @return [::Array<::Google::Api::MethodSettings>] + # A list of API method settings, e.g. the behavior for methods that use the + # long-running operation pattern. + # @!attribute [rw] new_issue_uri + # @return [::String] + # Link to a *public* URI where users can report issues. Example: + # https://issuetracker.google.com/issues/new?component=190865&template=1161103 + # @!attribute [rw] documentation_uri + # @return [::String] + # Link to product home page. Example: + # https://cloud.google.com/asset-inventory/docs/overview + # @!attribute [rw] api_short_name + # @return [::String] + # Used as a tracking tag when collecting data about the APIs developer + # relations artifacts like docs, packages delivered to package managers, + # etc. Example: "speech". + # @!attribute [rw] github_label + # @return [::String] + # GitHub label to apply to issues and pull requests opened for this API. + # @!attribute [rw] codeowner_github_teams + # @return [::Array<::String>] + # GitHub teams to be added to CODEOWNERS in the directory in GitHub + # containing source code for the client libraries for this API. + # @!attribute [rw] doc_tag_prefix + # @return [::String] + # A prefix used in sample code when demarking regions to be included in + # documentation. + # @!attribute [rw] organization + # @return [::Google::Api::ClientLibraryOrganization] + # For whom the client library is being published. + # @!attribute [rw] library_settings + # @return [::Array<::Google::Api::ClientLibrarySettings>] + # Client library settings. If the same version string appears multiple + # times in this list, then the last one wins. Settings from earlier + # settings with the same version string are discarded. + # @!attribute [rw] proto_reference_documentation_uri + # @return [::String] + # Optional link to proto reference documentation. Example: + # https://cloud.google.com/pubsub/lite/docs/reference/rpc + # @!attribute [rw] rest_reference_documentation_uri + # @return [::String] + # Optional link to REST reference documentation. Example: + # https://cloud.google.com/pubsub/lite/docs/reference/rest + class Publishing + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Settings for Java client libraries. + # @!attribute [rw] library_package + # @return [::String] + # The package name to use in Java. Clobbers the java_package option + # set in the protobuf. This should be used **only** by APIs + # who have already set the language_settings.java.package_name" field + # in gapic.yaml. API teams should use the protobuf java_package option + # where possible. + # + # Example of a YAML configuration:: + # + # publishing: + # java_settings: + # library_package: com.google.cloud.pubsub.v1 + # @!attribute [rw] service_class_names + # @return [::Google::Protobuf::Map{::String => ::String}] + # Configure the Java class name to use instead of the service's for its + # corresponding generated GAPIC client. Keys are fully-qualified + # service names as they appear in the protobuf (including the full + # the language_settings.java.interface_names" field in gapic.yaml. API + # teams should otherwise use the service name as it appears in the + # protobuf. + # + # Example of a YAML configuration:: + # + # publishing: + # java_settings: + # service_class_names: + # - google.pubsub.v1.Publisher: TopicAdmin + # - google.pubsub.v1.Subscriber: SubscriptionAdmin + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + class JavaSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class ServiceClassNamesEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Settings for C++ client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + class CppSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Settings for Php client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + class PhpSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Settings for Python client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + # @!attribute [rw] experimental_features + # @return [::Google::Api::PythonSettings::ExperimentalFeatures] + # Experimental features to be included during client library generation. + class PythonSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Experimental features to be included during client library generation. + # These fields will be deprecated once the feature graduates and is enabled + # by default. + # @!attribute [rw] rest_async_io_enabled + # @return [::Boolean] + # Enables generation of asynchronous REST clients if `rest` transport is + # enabled. By default, asynchronous REST clients will not be generated. + # This feature will be enabled by default 1 month after launching the + # feature in preview packages. + # @!attribute [rw] protobuf_pythonic_types_enabled + # @return [::Boolean] + # Enables generation of protobuf code using new types that are more + # Pythonic which are included in `protobuf>=5.29.x`. This feature will be + # enabled by default 1 month after launching the feature in preview + # packages. + # @!attribute [rw] unversioned_package_disabled + # @return [::Boolean] + # Disables generation of an unversioned Python package for this client + # library. This means that the module names will need to be versioned in + # import statements. For example `import google.cloud.library_v2` instead + # of `import google.cloud.library`. + class ExperimentalFeatures + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Settings for Node client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + class NodeSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Settings for Dotnet client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + # @!attribute [rw] renamed_services + # @return [::Google::Protobuf::Map{::String => ::String}] + # Map from original service names to renamed versions. + # This is used when the default generated types + # would cause a naming conflict. (Neither name is + # fully-qualified.) + # Example: Subscriber to SubscriberServiceApi. + # @!attribute [rw] renamed_resources + # @return [::Google::Protobuf::Map{::String => ::String}] + # Map from full resource types to the effective short name + # for the resource. This is used when otherwise resource + # named from different services would cause naming collisions. + # Example entry: + # "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" + # @!attribute [rw] ignored_resources + # @return [::Array<::String>] + # List of full resource types to ignore during generation. + # This is typically used for API-specific Location resources, + # which should be handled by the generator as if they were actually + # the common Location resources. + # Example entry: "documentai.googleapis.com/Location" + # @!attribute [rw] forced_namespace_aliases + # @return [::Array<::String>] + # Namespaces which must be aliased in snippets due to + # a known (but non-generator-predictable) naming collision + # @!attribute [rw] handwritten_signatures + # @return [::Array<::String>] + # Method signatures (in the form "service.method(signature)") + # which are provided separately, so shouldn't be generated. + # Snippets *calling* these methods are still generated, however. + class DotnetSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class RenamedServicesEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class RenamedResourcesEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Settings for Ruby client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + class RubySettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Settings for Go client libraries. + # @!attribute [rw] common + # @return [::Google::Api::CommonLanguageSettings] + # Some settings. + # @!attribute [rw] renamed_services + # @return [::Google::Protobuf::Map{::String => ::String}] + # Map of service names to renamed services. Keys are the package relative + # service names and values are the name to be used for the service client + # and call options. + # + # publishing: + # go_settings: + # renamed_services: + # Publisher: TopicAdmin + class GoSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class RenamedServicesEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Describes the generator configuration for a method. + # @!attribute [rw] selector + # @return [::String] + # The fully qualified name of the method, for which the options below apply. + # This is used to find the method to apply the options. + # + # Example: + # + # publishing: + # method_settings: + # - selector: google.storage.control.v2.StorageControl.CreateFolder + # # method settings for CreateFolder... + # @!attribute [rw] long_running + # @return [::Google::Api::MethodSettings::LongRunning] + # Describes settings to use for long-running operations when generating + # API methods for RPCs. Complements RPCs that use the annotations in + # google/longrunning/operations.proto. + # + # Example of a YAML configuration:: + # + # publishing: + # method_settings: + # - selector: google.cloud.speech.v2.Speech.BatchRecognize + # long_running: + # initial_poll_delay: 60s # 1 minute + # poll_delay_multiplier: 1.5 + # max_poll_delay: 360s # 6 minutes + # total_poll_timeout: 54000s # 90 minutes + # @!attribute [rw] auto_populated_fields + # @return [::Array<::String>] + # List of top-level fields of the request message, that should be + # automatically populated by the client libraries based on their + # (google.api.field_info).format. Currently supported format: UUID4. + # + # Example of a YAML configuration: + # + # publishing: + # method_settings: + # - selector: google.example.v1.ExampleService.CreateExample + # auto_populated_fields: + # - request_id + class MethodSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Describes settings to use when generating API methods that use the + # long-running operation pattern. + # All default values below are from those used in the client library + # generators (e.g. + # [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)). + # @!attribute [rw] initial_poll_delay + # @return [::Google::Protobuf::Duration] + # Initial delay after which the first poll request will be made. + # Default value: 5 seconds. + # @!attribute [rw] poll_delay_multiplier + # @return [::Float] + # Multiplier to gradually increase delay between subsequent polls until it + # reaches max_poll_delay. + # Default value: 1.5. + # @!attribute [rw] max_poll_delay + # @return [::Google::Protobuf::Duration] + # Maximum time between two subsequent poll requests. + # Default value: 45 seconds. + # @!attribute [rw] total_poll_timeout + # @return [::Google::Protobuf::Duration] + # Total polling timeout. + # Default value: 5 minutes. + class LongRunning + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # This message is used to configure the generation of a subset of the RPCs in + # a service for client libraries. + # @!attribute [rw] methods + # @return [::Array<::String>] + # An allowlist of the fully qualified names of RPCs that should be included + # on public client surfaces. + # @!attribute [rw] generate_omitted_as_internal + # @return [::Boolean] + # Setting this to true indicates to the client generators that methods + # that would be excluded from the generation should instead be generated + # in a way that indicates these methods should not be consumed by + # end users. How this is expressed is up to individual language + # implementations to decide. Some examples may be: added annotations, + # obfuscated identifiers, or other language idiomatic patterns. + class SelectiveGapicGeneration + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The organization for which the client libraries are being published. + # Affects the url where generated docs are published, etc. + module ClientLibraryOrganization + # Not useful. + CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0 + + # Google Cloud Platform Org. + CLOUD = 1 + + # Ads (Advertising) Org. + ADS = 2 + + # Photos Org. + PHOTOS = 3 + + # Street View Org. + STREET_VIEW = 4 + + # Shopping Org. + SHOPPING = 5 + + # Geo Org. + GEO = 6 + + # Generative AI - https://developers.generativeai.google + GENERATIVE_AI = 7 + end + + # To where should client libraries be published? + module ClientLibraryDestination + # Client libraries will neither be generated nor published to package + # managers. + CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0 + + # Generate the client library in a repo under github.com/googleapis, + # but don't publish it to package managers. + GITHUB = 10 + + # Publish the library to package managers like nuget.org and npmjs.com. + PACKAGE_MANAGER = 20 + end + end +end diff --git a/google-cloud-gke_recommender-v1/proto_docs/google/api/field_behavior.rb b/google-cloud-gke_recommender-v1/proto_docs/google/api/field_behavior.rb new file mode 100644 index 000000000000..fb9115c630af --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/google/api/field_behavior.rb @@ -0,0 +1,85 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Api + # An indicator of the behavior of a given field (for example, that a field + # is required in requests, or given as output but ignored as input). + # This **does not** change the behavior in protocol buffers itself; it only + # denotes the behavior and may affect how API tooling handles the field. + # + # Note: This enum **may** receive new values in the future. + module FieldBehavior + # Conventional default for enums. Do not use this. + FIELD_BEHAVIOR_UNSPECIFIED = 0 + + # Specifically denotes a field as optional. + # While all fields in protocol buffers are optional, this may be specified + # for emphasis if appropriate. + OPTIONAL = 1 + + # Denotes a field as required. + # This indicates that the field **must** be provided as part of the request, + # and failure to do so will cause an error (usually `INVALID_ARGUMENT`). + REQUIRED = 2 + + # Denotes a field as output only. + # This indicates that the field is provided in responses, but including the + # field in a request does nothing (the server *must* ignore it and + # *must not* throw an error as a result of the field's presence). + OUTPUT_ONLY = 3 + + # Denotes a field as input only. + # This indicates that the field is provided in requests, and the + # corresponding field is not included in output. + INPUT_ONLY = 4 + + # Denotes a field as immutable. + # This indicates that the field may be set once in a request to create a + # resource, but may not be changed thereafter. + IMMUTABLE = 5 + + # Denotes that a (repeated) field is an unordered list. + # This indicates that the service may provide the elements of the list + # in any arbitrary order, rather than the order the user originally + # provided. Additionally, the list's order may or may not be stable. + UNORDERED_LIST = 6 + + # Denotes that this field returns a non-empty default value if not set. + # This indicates that if the user provides the empty value in a request, + # a non-empty value will be returned. The user will not be aware of what + # non-empty value to expect. + NON_EMPTY_DEFAULT = 7 + + # Denotes that the field in a resource (a message annotated with + # google.api.resource) is used in the resource name to uniquely identify the + # resource. For AIP-compliant APIs, this should only be applied to the + # `name` field on the resource. + # + # This behavior should not be applied to references to other resources within + # the message. + # + # The identifier field of resources often have different field behavior + # depending on the request it is embedded in (e.g. for Create methods name + # is optional and unused, while for Update methods it is required). Instead + # of method-specific annotations, only `IDENTIFIER` is required. + IDENTIFIER = 8 + end + end +end diff --git a/google-cloud-gke_recommender-v1/proto_docs/google/api/launch_stage.rb b/google-cloud-gke_recommender-v1/proto_docs/google/api/launch_stage.rb new file mode 100644 index 000000000000..b836bdb60b21 --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/google/api/launch_stage.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Api + # The launch stage as defined by [Google Cloud Platform + # Launch Stages](https://cloud.google.com/terms/launch-stages). + module LaunchStage + # Do not use this default value. + LAUNCH_STAGE_UNSPECIFIED = 0 + + # The feature is not yet implemented. Users can not use it. + UNIMPLEMENTED = 6 + + # Prelaunch features are hidden from users and are only visible internally. + PRELAUNCH = 7 + + # Early Access features are limited to a closed group of testers. To use + # these features, you must sign up in advance and sign a Trusted Tester + # agreement (which includes confidentiality provisions). These features may + # be unstable, changed in backward-incompatible ways, and are not + # guaranteed to be released. + EARLY_ACCESS = 1 + + # Alpha is a limited availability test for releases before they are cleared + # for widespread use. By Alpha, all significant design issues are resolved + # and we are in the process of verifying functionality. Alpha customers + # need to apply for access, agree to applicable terms, and have their + # projects allowlisted. Alpha releases don't have to be feature complete, + # no SLAs are provided, and there are no technical support obligations, but + # they will be far enough along that customers can actually use them in + # test environments or for limited-use tests -- just like they would in + # normal production cases. + ALPHA = 2 + + # Beta is the point at which we are ready to open a release for any + # customer to use. There are no SLA or technical support obligations in a + # Beta release. Products will be complete from a feature perspective, but + # may have some open outstanding issues. Beta releases are suitable for + # limited production use cases. + BETA = 3 + + # GA features are open to all developers and are considered stable and + # fully qualified for production use. + GA = 4 + + # Deprecated features are scheduled to be shut down and removed. For more + # information, see the "Deprecation Policy" section of our [Terms of + # Service](https://cloud.google.com/terms/) + # and the [Google Cloud Platform Subject to the Deprecation + # Policy](https://cloud.google.com/terms/deprecation) documentation. + DEPRECATED = 5 + end + end +end diff --git a/google-cloud-gke_recommender-v1/proto_docs/google/api/resource.rb b/google-cloud-gke_recommender-v1/proto_docs/google/api/resource.rb new file mode 100644 index 000000000000..71b994c7ef20 --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/google/api/resource.rb @@ -0,0 +1,227 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Api + # A simple descriptor of a resource type. + # + # ResourceDescriptor annotates a resource message (either by means of a + # protobuf annotation or use in the service config), and associates the + # resource's schema, the resource type, and the pattern of the resource name. + # + # Example: + # + # message Topic { + # // Indicates this message defines a resource schema. + # // Declares the resource type in the format of {service}/{kind}. + # // For Kubernetes resources, the format is {api group}/{kind}. + # option (google.api.resource) = { + # type: "pubsub.googleapis.com/Topic" + # pattern: "projects/{project}/topics/{topic}" + # }; + # } + # + # The ResourceDescriptor Yaml config will look like: + # + # resources: + # - type: "pubsub.googleapis.com/Topic" + # pattern: "projects/{project}/topics/{topic}" + # + # Sometimes, resources have multiple patterns, typically because they can + # live under multiple parents. + # + # Example: + # + # message LogEntry { + # option (google.api.resource) = { + # type: "logging.googleapis.com/LogEntry" + # pattern: "projects/{project}/logs/{log}" + # pattern: "folders/{folder}/logs/{log}" + # pattern: "organizations/{organization}/logs/{log}" + # pattern: "billingAccounts/{billing_account}/logs/{log}" + # }; + # } + # + # The ResourceDescriptor Yaml config will look like: + # + # resources: + # - type: 'logging.googleapis.com/LogEntry' + # pattern: "projects/{project}/logs/{log}" + # pattern: "folders/{folder}/logs/{log}" + # pattern: "organizations/{organization}/logs/{log}" + # pattern: "billingAccounts/{billing_account}/logs/{log}" + # @!attribute [rw] type + # @return [::String] + # The resource type. It must be in the format of + # \\{service_name}/\\{resource_type_kind}. The `resource_type_kind` must be + # singular and must not include version numbers. + # + # Example: `storage.googleapis.com/Bucket` + # + # The value of the resource_type_kind must follow the regular expression + # /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and + # should use PascalCase (UpperCamelCase). The maximum number of + # characters allowed for the `resource_type_kind` is 100. + # @!attribute [rw] pattern + # @return [::Array<::String>] + # Optional. The relative resource name pattern associated with this resource + # type. The DNS prefix of the full resource name shouldn't be specified here. + # + # The path pattern must follow the syntax, which aligns with HTTP binding + # syntax: + # + # Template = Segment { "/" Segment } ; + # Segment = LITERAL | Variable ; + # Variable = "{" LITERAL "}" ; + # + # Examples: + # + # - "projects/\\{project}/topics/\\{topic}" + # - "projects/\\{project}/knowledgeBases/\\{knowledge_base}" + # + # The components in braces correspond to the IDs for each resource in the + # hierarchy. It is expected that, if multiple patterns are provided, + # the same component name (e.g. "project") refers to IDs of the same + # type of resource. + # @!attribute [rw] name_field + # @return [::String] + # Optional. The field on the resource that designates the resource name + # field. If omitted, this is assumed to be "name". + # @!attribute [rw] history + # @return [::Google::Api::ResourceDescriptor::History] + # Optional. The historical or future-looking state of the resource pattern. + # + # Example: + # + # // The InspectTemplate message originally only supported resource + # // names with organization, and project was added later. + # message InspectTemplate { + # option (google.api.resource) = { + # type: "dlp.googleapis.com/InspectTemplate" + # pattern: + # "organizations/{organization}/inspectTemplates/{inspect_template}" + # pattern: "projects/{project}/inspectTemplates/{inspect_template}" + # history: ORIGINALLY_SINGLE_PATTERN + # }; + # } + # @!attribute [rw] plural + # @return [::String] + # The plural name used in the resource name and permission names, such as + # 'projects' for the resource name of 'projects/\\{project}' and the permission + # name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception + # to this is for Nested Collections that have stuttering names, as defined + # in [AIP-122](https://google.aip.dev/122#nested-collections), where the + # collection ID in the resource name pattern does not necessarily directly + # match the `plural` value. + # + # It is the same concept of the `plural` field in k8s CRD spec + # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + # + # Note: The plural form is required even for singleton resources. See + # https://aip.dev/156 + # @!attribute [rw] singular + # @return [::String] + # The same concept of the `singular` field in k8s CRD spec + # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + # Such as "project" for the `resourcemanager.googleapis.com/Project` type. + # @!attribute [rw] style + # @return [::Array<::Google::Api::ResourceDescriptor::Style>] + # Style flag(s) for this resource. + # These indicate that a resource is expected to conform to a given + # style. See the specific style flags for additional information. + class ResourceDescriptor + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # A description of the historical or future-looking state of the + # resource pattern. + module History + # The "unset" value. + HISTORY_UNSPECIFIED = 0 + + # The resource originally had one pattern and launched as such, and + # additional patterns were added later. + ORIGINALLY_SINGLE_PATTERN = 1 + + # The resource has one pattern, but the API owner expects to add more + # later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents + # that from being necessary once there are multiple patterns.) + FUTURE_MULTI_PATTERN = 2 + end + + # A flag representing a specific style that a resource claims to conform to. + module Style + # The unspecified value. Do not use. + STYLE_UNSPECIFIED = 0 + + # This resource is intended to be "declarative-friendly". + # + # Declarative-friendly resources must be more strictly consistent, and + # setting this to true communicates to tools that this resource should + # adhere to declarative-friendly expectations. + # + # Note: This is used by the API linter (linter.aip.dev) to enable + # additional checks. + DECLARATIVE_FRIENDLY = 1 + end + end + + # Defines a proto annotation that describes a string field that refers to + # an API resource. + # @!attribute [rw] type + # @return [::String] + # The resource type that the annotated field references. + # + # Example: + # + # message Subscription { + # string topic = 2 [(google.api.resource_reference) = { + # type: "pubsub.googleapis.com/Topic" + # }]; + # } + # + # Occasionally, a field may reference an arbitrary resource. In this case, + # APIs use the special value * in their resource reference. + # + # Example: + # + # message GetIamPolicyRequest { + # string resource = 2 [(google.api.resource_reference) = { + # type: "*" + # }]; + # } + # @!attribute [rw] child_type + # @return [::String] + # The resource type of a child collection that the annotated field + # references. This is useful for annotating the `parent` field that + # doesn't have a fixed resource type. + # + # Example: + # + # message ListLogEntriesRequest { + # string parent = 1 [(google.api.resource_reference) = { + # child_type: "logging.googleapis.com/LogEntry" + # }; + # } + class ResourceReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end +end diff --git a/google-cloud-gke_recommender-v1/proto_docs/google/cloud/gkerecommender/v1/gkerecommender.rb b/google-cloud-gke_recommender-v1/proto_docs/google/cloud/gkerecommender/v1/gkerecommender.rb new file mode 100644 index 000000000000..27a817e2b76a --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/google/cloud/gkerecommender/v1/gkerecommender.rb @@ -0,0 +1,558 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module GkeRecommender + module V1 + # Request message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels}. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelsResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelsResponse#next_page_token next_page_token} + # received from a previous `FetchModelsRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelsRequest` must match the call that provided the page token. + class FetchModelsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels}. + # @!attribute [r] models + # @return [::Array<::String>] + # Output only. List of available models. Open-source models follow the + # Huggingface Hub `owner/model_name` format. + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token which may be sent as + # [page_token][FetchModelsResponse.page_token] in a subsequent + # `FetchModelsResponse` call to retrieve the next page of results. + # If this field is omitted or empty, then there are no more results to + # return. + class FetchModelsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers}. + # @!attribute [rw] model + # @return [::String] + # Required. The model for which to list model servers. Open-source models + # follow the Huggingface Hub `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse#next_page_token next_page_token} + # received from a previous `FetchModelServersRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelServersRequest` must match the call that provided the page + # token. + class FetchModelServersRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers}. + # @!attribute [r] model_servers + # @return [::Array<::String>] + # Output only. List of available model servers. Open-source model servers use + # simplified, lowercase names (e.g., `vllm`). + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token which may be sent as + # [page_token][FetchModelServersResponse.page_token] in a subsequent + # `FetchModelServersResponse` call to retrieve the next page of results. + # If this field is omitted or empty, then there are no more results to + # return. + class FetchModelServersResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions GkeInferenceQuickstart.FetchModelServerVersions}. + # @!attribute [rw] model + # @return [::String] + # Required. The model for which to list model server versions. Open-source + # models follow the Huggingface Hub `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @!attribute [rw] model_server + # @return [::String] + # Required. The model server for which to list versions. Open-source model + # servers use simplified, lowercase names (e.g., `vllm`). Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available model servers. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The target number of results to return in a single response. + # If not specified, a default value will be chosen by the service. + # Note that the response may include a partial list and a caller should + # only rely on the response's + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse#next_page_token next_page_token} + # received from a previous `FetchModelServerVersionsRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchModelServerVersionsRequest` must match the call that provided the + # page token. + class FetchModelServerVersionsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions GkeInferenceQuickstart.FetchModelServerVersions}. + # @!attribute [r] model_server_versions + # @return [::Array<::String>] + # Output only. A list of available model server versions. + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token which may be sent as + # [page_token][FetchModelServerVersionsResponse.page_token] in a subsequent + # `FetchModelServerVersionsResponse` call to retrieve the next page of + # results. If this field is omitted or empty, then there are no more results + # to return. + class FetchModelServerVersionsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_benchmarking_data GkeInferenceQuickstart.FetchBenchmarkingData}. + # @!attribute [rw] model_server_info + # @return [::Google::Cloud::GkeRecommender::V1::ModelServerInfo] + # Required. The model server configuration to get benchmarking data for. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @!attribute [rw] instance_type + # @return [::String] + # Optional. The instance type to filter benchmarking data. Instance types are + # in the format `a2-highgpu-1g`. If not provided, all instance types for the + # given profile's `model_server_info` will be returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find available instance types. + # @!attribute [rw] pricing_model + # @return [::String] + # Optional. The pricing model to use for the benchmarking data. Defaults to + # `spot`. + class FetchBenchmarkingDataRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_benchmarking_data GkeInferenceQuickstart.FetchBenchmarkingData}. + # @!attribute [r] profile + # @return [::Array<::Google::Cloud::GkeRecommender::V1::Profile>] + # Output only. List of profiles containing their respective benchmarking + # data. + class FetchBenchmarkingDataResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles}. + # @!attribute [rw] model + # @return [::String] + # Optional. The model to filter profiles by. Open-source models follow the + # Huggingface Hub `owner/model_name` format. If not provided, all models are + # returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @!attribute [rw] model_server + # @return [::String] + # Optional. The model server to filter profiles by. If not provided, all + # model servers are returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available model servers for a given model. + # @!attribute [rw] model_server_version + # @return [::String] + # Optional. The model server version to filter profiles by. If not provided, + # all model server versions are returned. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions GkeInferenceQuickstart.FetchModelServerVersions} + # to find available versions for a given model and server. + # @!attribute [rw] performance_requirements + # @return [::Google::Cloud::GkeRecommender::V1::PerformanceRequirements] + # Optional. The performance requirements to filter profiles. Profiles that do + # not meet these requirements are filtered out. If not provided, all profiles + # are returned. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The target number of results to return in a single response. If + # not specified, a default value will be chosen by the service. Note that the + # response may include a partial list and a caller should only rely on the + # response's + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse#next_page_token next_page_token} + # to determine if there are more instances left to be queried. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The value of + # {::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse#next_page_token next_page_token} + # received from a previous `FetchProfilesRequest` call. + # Provide this to retrieve the subsequent page in a multi-page list of + # results. When paginating, all other parameters provided to + # `FetchProfilesRequest` must match the call that provided the page + # token. + class FetchProfilesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Performance requirements for a profile and or model deployment. + # @!attribute [rw] target_ntpot_milliseconds + # @return [::Integer] + # Optional. The target Normalized Time Per Output Token (NTPOT) in + # milliseconds. NTPOT is calculated as `request_latency / + # total_output_tokens`. If not provided, this target will not be enforced. + # @!attribute [rw] target_ttft_milliseconds + # @return [::Integer] + # Optional. The target Time To First Token (TTFT) in milliseconds. TTFT is + # the time it takes to generate the first token for a request. If not + # provided, this target will not be enforced. + # @!attribute [rw] target_cost + # @return [::Google::Cloud::GkeRecommender::V1::Cost] + # Optional. The target cost for running a profile's model server. If not + # provided, this requirement will not be enforced. + class PerformanceRequirements + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Represents an amount of money in a specific currency. + # @!attribute [r] units + # @return [::Integer] + # Output only. The whole units of the amount. + # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + # @!attribute [r] nanos + # @return [::Integer] + # Output only. Number of nano (10^-9) units of the amount. + # The value must be between -999,999,999 and +999,999,999 inclusive. + # If `units` is positive, `nanos` must be positive or zero. + # If `units` is zero, `nanos` can be positive, zero, or negative. + # If `units` is negative, `nanos` must be negative or zero. + # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + class Amount + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Cost for running a model deployment on a given instance type. Currently, only + # USD currency code is supported. + # @!attribute [rw] cost_per_million_output_tokens + # @return [::Google::Cloud::GkeRecommender::V1::Amount] + # Optional. The cost per million output tokens, calculated as: + # $/output token = GPU $/s / (1/output-to-input-cost-ratio * input tokens/s + + # output tokens/s) + # @!attribute [rw] cost_per_million_input_tokens + # @return [::Google::Cloud::GkeRecommender::V1::Amount] + # Optional. The cost per million input tokens. $/input token = ($/output + # token) / output-to-input-cost-ratio. + # @!attribute [rw] pricing_model + # @return [::String] + # Optional. The pricing model used to calculate the cost. Can be one of: + # `3-years-cud`, `1-year-cud`, `on-demand`, `spot`. If not provided, `spot` + # will be used. + # @!attribute [rw] output_input_cost_ratio + # @return [::Float] + # Optional. The output-to-input cost ratio. This determines how the total GPU + # cost is split between input and output tokens. If not provided, `4.0` is + # used, assuming a 4:1 output:input cost ratio. + class Cost + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Represents a range of throughput values in tokens per second. + # @!attribute [r] min + # @return [::Integer] + # Output only. The minimum value of the range. + # @!attribute [r] max + # @return [::Integer] + # Output only. The maximum value of the range. + class TokensPerSecondRange + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Represents a range of latency values in milliseconds. + # @!attribute [r] min + # @return [::Integer] + # Output only. The minimum value of the range. + # @!attribute [r] max + # @return [::Integer] + # Output only. The maximum value of the range. + class MillisecondRange + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Performance range for a model deployment. + # @!attribute [r] throughput_output_range + # @return [::Google::Cloud::GkeRecommender::V1::TokensPerSecondRange] + # Output only. The range of throughput in output tokens per second. This is + # measured as total_output_tokens_generated_by_server / + # elapsed_time_in_seconds. + # @!attribute [r] ttft_range + # @return [::Google::Cloud::GkeRecommender::V1::MillisecondRange] + # Output only. The range of TTFT (Time To First Token) in milliseconds. TTFT + # is the time it takes to generate the first token for a request. + # @!attribute [r] ntpot_range + # @return [::Google::Cloud::GkeRecommender::V1::MillisecondRange] + # Output only. The range of NTPOT (Normalized Time Per Output Token) in + # milliseconds. NTPOT is the request latency normalized by the number of + # output tokens, measured as request_latency / total_output_tokens. + class PerformanceRange + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles}. + # @!attribute [r] profile + # @return [::Array<::Google::Cloud::GkeRecommender::V1::Profile>] + # Output only. List of profiles that match the given model server info and + # performance requirements (if provided). + # @!attribute [r] performance_range + # @return [::Google::Cloud::GkeRecommender::V1::PerformanceRange] + # Output only. The combined range of performance values observed across all + # profiles in this response. + # @!attribute [r] comments + # @return [::String] + # Output only. Additional comments related to the response. + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token which may be sent as + # [page_token][FetchProfilesResponse.page_token] in a subsequent + # `FetchProfilesResponse` call to retrieve the next page of results. If this + # field is omitted or empty, then there are no more results to return. + class FetchProfilesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Model server information gives. Valid model server info combinations can + # be found using + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles}. + # @!attribute [rw] model + # @return [::String] + # Required. The model. Open-source models follow the Huggingface Hub + # `owner/model_name` format. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models GkeInferenceQuickstart.FetchModels} + # to find available models. + # @!attribute [rw] model_server + # @return [::String] + # Required. The model server. Open-source model servers use simplified, + # lowercase names (e.g., `vllm`). Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers GkeInferenceQuickstart.FetchModelServers} + # to find available servers. + # @!attribute [rw] model_server_version + # @return [::String] + # Optional. The model server version. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions GkeInferenceQuickstart.FetchModelServerVersions} + # to find available versions. If not provided, the latest available version + # is used. + class ModelServerInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Resources used by a model deployment. + # @!attribute [r] accelerator_count + # @return [::Integer] + # Output only. The number of accelerators (e.g., GPUs or TPUs) used by the + # model deployment on the Kubernetes node. + class ResourcesUsed + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Performance statistics for a model deployment. + # @!attribute [r] queries_per_second + # @return [::Float] + # Output only. The number of queries per second. + # Note: This metric can vary widely based on context length and may not be a + # reliable measure of LLM throughput. + # @!attribute [r] output_tokens_per_second + # @return [::Integer] + # Output only. The number of output tokens per second. This is the throughput + # measured as total_output_tokens_generated_by_server / + # elapsed_time_in_seconds. + # @!attribute [r] ntpot_milliseconds + # @return [::Integer] + # Output only. The Normalized Time Per Output Token (NTPOT) in milliseconds. + # This is the request latency normalized by the number of output tokens, + # measured as request_latency / total_output_tokens. + # @!attribute [r] ttft_milliseconds + # @return [::Integer] + # Output only. The Time To First Token (TTFT) in milliseconds. This is the + # time it takes to generate the first token for a request. + # @!attribute [r] cost + # @return [::Array<::Google::Cloud::GkeRecommender::V1::Cost>] + # Output only. The cost of running the model deployment. + class PerformanceStats + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A profile containing information about a model deployment. + # @!attribute [r] model_server_info + # @return [::Google::Cloud::GkeRecommender::V1::ModelServerInfo] + # Output only. The model server configuration. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @!attribute [r] accelerator_type + # @return [::String] + # Output only. The accelerator type. Expected format: `nvidia-h100-80gb`. + # @!attribute [r] tpu_topology + # @return [::String] + # Output only. The TPU topology (if applicable). + # @!attribute [r] instance_type + # @return [::String] + # Output only. The instance type. Expected format: `a2-highgpu-1g`. + # @!attribute [r] resources_used + # @return [::Google::Cloud::GkeRecommender::V1::ResourcesUsed] + # Output only. The resources used by the model deployment. + # @!attribute [r] performance_stats + # @return [::Array<::Google::Cloud::GkeRecommender::V1::PerformanceStats>] + # Output only. The performance statistics for this profile. + class Profile + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#generate_optimized_manifest GkeInferenceQuickstart.GenerateOptimizedManifest}. + # @!attribute [rw] model_server_info + # @return [::Google::Cloud::GkeRecommender::V1::ModelServerInfo] + # Required. The model server configuration to generate the manifest for. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid configurations. + # @!attribute [rw] accelerator_type + # @return [::String] + # Required. The accelerator type. Use + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles GkeInferenceQuickstart.FetchProfiles} + # to find valid accelerators for a given `model_server_info`. + # @!attribute [rw] kubernetes_namespace + # @return [::String] + # Optional. The kubernetes namespace to deploy the manifests in. + # @!attribute [rw] performance_requirements + # @return [::Google::Cloud::GkeRecommender::V1::PerformanceRequirements] + # Optional. The performance requirements to use for generating Horizontal Pod + # Autoscaler (HPA) resources. If provided, the manifest includes HPA + # resources to adjust the model server replica count to maintain the + # specified targets (e.g., NTPOT, TTFT) at a P50 latency. Cost targets are + # not currently supported for HPA generation. If the specified targets are + # not achievable, the HPA manifest will not be generated. + # @!attribute [rw] storage_config + # @return [::Google::Cloud::GkeRecommender::V1::StorageConfig] + # Optional. The storage configuration for the model. If not provided, the + # model is loaded from Huggingface. + class GenerateOptimizedManifestRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A Kubernetes manifest. + # @!attribute [r] kind + # @return [::String] + # Output only. Kubernetes resource kind. + # @!attribute [r] api_version + # @return [::String] + # Output only. Kubernetes API version. + # @!attribute [r] content + # @return [::String] + # Output only. YAML content. + class KubernetesManifest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for + # {::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#generate_optimized_manifest GkeInferenceQuickstart.GenerateOptimizedManifest}. + # @!attribute [r] kubernetes_manifests + # @return [::Array<::Google::Cloud::GkeRecommender::V1::KubernetesManifest>] + # Output only. A list of generated Kubernetes manifests. + # @!attribute [r] comments + # @return [::Array<::String>] + # Output only. Comments related to deploying the generated manifests. + # @!attribute [r] manifest_version + # @return [::String] + # Output only. Additional information about the versioned dependencies used + # to generate the manifests. See [Run best practice inference with GKE + # Inference Quickstart + # recipes](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference/inference-quickstart) + # for details. + class GenerateOptimizedManifestResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Storage configuration for a model deployment. + # @!attribute [rw] model_bucket_uri + # @return [::String] + # Optional. The Google Cloud Storage bucket URI to load the model from. This + # URI must point to the directory containing the model's config file + # (`config.json`) and model weights. A tuned GCSFuse setup can improve + # LLM Pod startup time by more than 7x. Expected format: + # `gs:///`. + # @!attribute [rw] xla_cache_bucket_uri + # @return [::String] + # Optional. The URI for the GCS bucket containing the XLA compilation cache. + # If using TPUs, the XLA cache will be written to the same path as + # `model_bucket_uri`. This can speed up vLLM model preparation for repeated + # deployments. + class StorageConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-cloud-gke_recommender-v1/proto_docs/google/protobuf/duration.rb b/google-cloud-gke_recommender-v1/proto_docs/google/protobuf/duration.rb new file mode 100644 index 000000000000..341efa296c29 --- /dev/null +++ b/google-cloud-gke_recommender-v1/proto_docs/google/protobuf/duration.rb @@ -0,0 +1,98 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Protobuf + # A Duration represents a signed, fixed-length span of time represented + # as a count of seconds and fractions of seconds at nanosecond + # resolution. It is independent of any calendar and concepts like "day" + # or "month". It is related to Timestamp in that the difference between + # two Timestamp values is a Duration and it can be added or subtracted + # from a Timestamp. Range is approximately +-10,000 years. + # + # # Examples + # + # Example 1: Compute Duration from two Timestamps in pseudo code. + # + # Timestamp start = ...; + # Timestamp end = ...; + # Duration duration = ...; + # + # duration.seconds = end.seconds - start.seconds; + # duration.nanos = end.nanos - start.nanos; + # + # if (duration.seconds < 0 && duration.nanos > 0) { + # duration.seconds += 1; + # duration.nanos -= 1000000000; + # } else if (duration.seconds > 0 && duration.nanos < 0) { + # duration.seconds -= 1; + # duration.nanos += 1000000000; + # } + # + # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + # + # Timestamp start = ...; + # Duration duration = ...; + # Timestamp end = ...; + # + # end.seconds = start.seconds + duration.seconds; + # end.nanos = start.nanos + duration.nanos; + # + # if (end.nanos < 0) { + # end.seconds -= 1; + # end.nanos += 1000000000; + # } else if (end.nanos >= 1000000000) { + # end.seconds += 1; + # end.nanos -= 1000000000; + # } + # + # Example 3: Compute Duration from datetime.timedelta in Python. + # + # td = datetime.timedelta(days=3, minutes=10) + # duration = Duration() + # duration.FromTimedelta(td) + # + # # JSON Mapping + # + # In JSON format, the Duration type is encoded as a string rather than an + # object, where the string ends in the suffix "s" (indicating seconds) and + # is preceded by the number of seconds, with nanoseconds expressed as + # fractional seconds. For example, 3 seconds with 0 nanoseconds should be + # encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + # be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + # microsecond should be expressed in JSON format as "3.000001s". + # @!attribute [rw] seconds + # @return [::Integer] + # Signed seconds of the span of time. Must be from -315,576,000,000 + # to +315,576,000,000 inclusive. Note: these bounds are computed from: + # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + # @!attribute [rw] nanos + # @return [::Integer] + # Signed fractions of a second at nanosecond resolution of the span + # of time. Durations less than one second are represented with a 0 + # `seconds` field and a positive or negative `nanos` field. For durations + # of one second or more, a non-zero value for the `nanos` field must be + # of the same sign as the `seconds` field. Must be from -999,999,999 + # to +999,999,999 inclusive. + class Duration + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end +end diff --git a/google-cloud-gke_recommender-v1/snippets/Gemfile b/google-cloud-gke_recommender-v1/snippets/Gemfile new file mode 100644 index 000000000000..d930d8ff493d --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/Gemfile @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +source "https://rubygems.org" + +if ENV["GOOGLE_CLOUD_SAMPLES_TEST"] == "master" + gem "google-cloud-gke_recommender-v1", path: "../" +else + gem "google-cloud-gke_recommender-v1" +end + +group :test do + gem "google-style", "~> 1.26.1" + gem "minitest", "~> 5.16" + gem "minitest-focus", "~> 1.1" + gem "minitest-hooks", "~> 1.5" +end diff --git a/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_benchmarking_data.rb b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_benchmarking_data.rb new file mode 100644 index 000000000000..faf74378d6a4 --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_benchmarking_data.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_sync] +require "google/cloud/gke_recommender/v1" + +## +# Snippet for the fetch_benchmarking_data call in the GkeInferenceQuickstart service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_benchmarking_data. +# +def fetch_benchmarking_data + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new + + # Call the fetch_benchmarking_data method. + result = client.fetch_benchmarking_data request + + # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse. + p result +end +# [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_sync] diff --git a/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_model_server_versions.rb b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_model_server_versions.rb new file mode 100644 index 000000000000..cd30b4835184 --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_model_server_versions.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_sync] +require "google/cloud/gke_recommender/v1" + +## +# Snippet for the fetch_model_server_versions call in the GkeInferenceQuickstart service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions. +# +def fetch_model_server_versions + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new + + # Call the fetch_model_server_versions method. + result = client.fetch_model_server_versions request + + # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse. + p result +end +# [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_sync] diff --git a/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_model_servers.rb b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_model_servers.rb new file mode 100644 index 000000000000..22bb4263f822 --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_model_servers.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_sync] +require "google/cloud/gke_recommender/v1" + +## +# Snippet for the fetch_model_servers call in the GkeInferenceQuickstart service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers. +# +def fetch_model_servers + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new + + # Call the fetch_model_servers method. + result = client.fetch_model_servers request + + # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelServersResponse. + p result +end +# [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_sync] diff --git a/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_models.rb b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_models.rb new file mode 100644 index 000000000000..83743ecbb214 --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_models.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_sync] +require "google/cloud/gke_recommender/v1" + +## +# Snippet for the fetch_models call in the GkeInferenceQuickstart service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models. +# +def fetch_models + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new + + # Call the fetch_models method. + result = client.fetch_models request + + # The returned object is of type Google::Cloud::GkeRecommender::V1::FetchModelsResponse. + p result +end +# [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_sync] diff --git a/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_profiles.rb b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_profiles.rb new file mode 100644 index 000000000000..3bae1f533daf --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/fetch_profiles.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_sync] +require "google/cloud/gke_recommender/v1" + +## +# Snippet for the fetch_profiles call in the GkeInferenceQuickstart service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles. +# +def fetch_profiles + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new + + # Call the fetch_profiles method. + result = client.fetch_profiles request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::GkeRecommender::V1::Profile. + p item + end +end +# [END gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_sync] diff --git a/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/generate_optimized_manifest.rb b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/generate_optimized_manifest.rb new file mode 100644 index 000000000000..7c4d806fd0d3 --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/gke_inference_quickstart/generate_optimized_manifest.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_sync] +require "google/cloud/gke_recommender/v1" + +## +# Snippet for the generate_optimized_manifest call in the GkeInferenceQuickstart service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#generate_optimized_manifest. +# +def generate_optimized_manifest + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new + + # Call the generate_optimized_manifest method. + result = client.generate_optimized_manifest request + + # The returned object is of type Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse. + p result +end +# [END gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_sync] diff --git a/google-cloud-gke_recommender-v1/snippets/snippet_metadata_google.cloud.gkerecommender.v1.json b/google-cloud-gke_recommender-v1/snippets/snippet_metadata_google.cloud.gkerecommender.v1.json new file mode 100644 index 000000000000..18bba3cd8d2d --- /dev/null +++ b/google-cloud-gke_recommender-v1/snippets/snippet_metadata_google.cloud.gkerecommender.v1.json @@ -0,0 +1,255 @@ +{ + "client_library": { + "name": "google-cloud-gke_recommender-v1", + "version": "0.1.0", + "language": "RUBY", + "apis": [ + { + "id": "google.cloud.gkerecommender.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "region_tag": "gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModels_sync", + "title": "Snippet for the fetch_models call in the GkeInferenceQuickstart service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models.", + "file": "gke_inference_quickstart/fetch_models.rb", + "language": "RUBY", + "client_method": { + "short_name": "fetch_models", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_models", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::GkeRecommender::V1::FetchModelsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::GkeRecommender::V1::FetchModelsResponse", + "client": { + "short_name": "GkeInferenceQuickstart::Client", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client" + }, + "method": { + "short_name": "FetchModels", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModels", + "service": { + "short_name": "GkeInferenceQuickstart", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServers_sync", + "title": "Snippet for the fetch_model_servers call in the GkeInferenceQuickstart service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers.", + "file": "gke_inference_quickstart/fetch_model_servers.rb", + "language": "RUBY", + "client_method": { + "short_name": "fetch_model_servers", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_servers", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse", + "client": { + "short_name": "GkeInferenceQuickstart::Client", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client" + }, + "method": { + "short_name": "FetchModelServers", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServers", + "service": { + "short_name": "GkeInferenceQuickstart", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "gkerecommender_v1_generated_GkeInferenceQuickstart_FetchModelServerVersions_sync", + "title": "Snippet for the fetch_model_server_versions call in the GkeInferenceQuickstart service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions.", + "file": "gke_inference_quickstart/fetch_model_server_versions.rb", + "language": "RUBY", + "client_method": { + "short_name": "fetch_model_server_versions", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_model_server_versions", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse", + "client": { + "short_name": "GkeInferenceQuickstart::Client", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client" + }, + "method": { + "short_name": "FetchModelServerVersions", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchModelServerVersions", + "service": { + "short_name": "GkeInferenceQuickstart", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "gkerecommender_v1_generated_GkeInferenceQuickstart_FetchProfiles_sync", + "title": "Snippet for the fetch_profiles call in the GkeInferenceQuickstart service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles.", + "file": "gke_inference_quickstart/fetch_profiles.rb", + "language": "RUBY", + "client_method": { + "short_name": "fetch_profiles", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_profiles", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse", + "client": { + "short_name": "GkeInferenceQuickstart::Client", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client" + }, + "method": { + "short_name": "FetchProfiles", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchProfiles", + "service": { + "short_name": "GkeInferenceQuickstart", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "gkerecommender_v1_generated_GkeInferenceQuickstart_GenerateOptimizedManifest_sync", + "title": "Snippet for the generate_optimized_manifest call in the GkeInferenceQuickstart service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#generate_optimized_manifest.", + "file": "gke_inference_quickstart/generate_optimized_manifest.rb", + "language": "RUBY", + "client_method": { + "short_name": "generate_optimized_manifest", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#generate_optimized_manifest", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse", + "client": { + "short_name": "GkeInferenceQuickstart::Client", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client" + }, + "method": { + "short_name": "GenerateOptimizedManifest", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart.GenerateOptimizedManifest", + "service": { + "short_name": "GkeInferenceQuickstart", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "gkerecommender_v1_generated_GkeInferenceQuickstart_FetchBenchmarkingData_sync", + "title": "Snippet for the fetch_benchmarking_data call in the GkeInferenceQuickstart service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_benchmarking_data.", + "file": "gke_inference_quickstart/fetch_benchmarking_data.rb", + "language": "RUBY", + "client_method": { + "short_name": "fetch_benchmarking_data", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client#fetch_benchmarking_data", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse", + "client": { + "short_name": "GkeInferenceQuickstart::Client", + "full_name": "::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client" + }, + "method": { + "short_name": "FetchBenchmarkingData", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart.FetchBenchmarkingData", + "service": { + "short_name": "GkeInferenceQuickstart", + "full_name": "google.cloud.gkerecommender.v1.GkeInferenceQuickstart" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/google-cloud-gke_recommender-v1/test/google/cloud/gke_recommender/v1/gke_inference_quickstart_rest_test.rb b/google-cloud-gke_recommender-v1/test/google/cloud/gke_recommender/v1/gke_inference_quickstart_rest_test.rb new file mode 100644 index 000000000000..1b805998b2ba --- /dev/null +++ b/google-cloud-gke_recommender-v1/test/google/cloud/gke_recommender/v1/gke_inference_quickstart_rest_test.rb @@ -0,0 +1,440 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/cloud/gkerecommender/v1/gkerecommender_pb" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart/rest" + + +class ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_fetch_models + # Create test objects. + client_result = ::Google::Cloud::GkeRecommender::V1::FetchModelsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + page_size = 42 + page_token = "hello world" + + fetch_models_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.stub :transcode_fetch_models_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, fetch_models_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.fetch_models({ page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.fetch_models page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.fetch_models ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new(page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.fetch_models({ page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.fetch_models(::Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new(page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, fetch_models_client_stub.call_count + end + end + end + + def test_fetch_model_servers + # Create test objects. + client_result = ::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + model = "hello world" + page_size = 42 + page_token = "hello world" + + fetch_model_servers_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.stub :transcode_fetch_model_servers_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, fetch_model_servers_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.fetch_model_servers({ model: model, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.fetch_model_servers model: model, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.fetch_model_servers ::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new(model: model, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.fetch_model_servers({ model: model, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.fetch_model_servers(::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new(model: model, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, fetch_model_servers_client_stub.call_count + end + end + end + + def test_fetch_model_server_versions + # Create test objects. + client_result = ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + model = "hello world" + model_server = "hello world" + page_size = 42 + page_token = "hello world" + + fetch_model_server_versions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.stub :transcode_fetch_model_server_versions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, fetch_model_server_versions_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.fetch_model_server_versions({ model: model, model_server: model_server, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.fetch_model_server_versions model: model, model_server: model_server, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.fetch_model_server_versions ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new(model: model, model_server: model_server, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.fetch_model_server_versions({ model: model, model_server: model_server, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.fetch_model_server_versions(::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new(model: model, model_server: model_server, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, fetch_model_server_versions_client_stub.call_count + end + end + end + + def test_fetch_profiles + # Create test objects. + client_result = ::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + model = "hello world" + model_server = "hello world" + model_server_version = "hello world" + performance_requirements = {} + page_size = 42 + page_token = "hello world" + + fetch_profiles_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.stub :transcode_fetch_profiles_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, fetch_profiles_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.fetch_profiles({ model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.fetch_profiles model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.fetch_profiles ::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new(model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.fetch_profiles({ model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.fetch_profiles(::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new(model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, fetch_profiles_client_stub.call_count + end + end + end + + def test_generate_optimized_manifest + # Create test objects. + client_result = ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + model_server_info = {} + accelerator_type = "hello world" + kubernetes_namespace = "hello world" + performance_requirements = {} + storage_config = {} + + generate_optimized_manifest_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.stub :transcode_generate_optimized_manifest_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, generate_optimized_manifest_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.generate_optimized_manifest({ model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.generate_optimized_manifest model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.generate_optimized_manifest ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new(model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.generate_optimized_manifest({ model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.generate_optimized_manifest(::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new(model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, generate_optimized_manifest_client_stub.call_count + end + end + end + + def test_fetch_benchmarking_data + # Create test objects. + client_result = ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + model_server_info = {} + instance_type = "hello world" + pricing_model = "hello world" + + fetch_benchmarking_data_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::ServiceStub.stub :transcode_fetch_benchmarking_data_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, fetch_benchmarking_data_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.fetch_benchmarking_data({ model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.fetch_benchmarking_data model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.fetch_benchmarking_data ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new(model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.fetch_benchmarking_data({ model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.fetch_benchmarking_data(::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new(model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, fetch_benchmarking_data_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-gke_recommender-v1/test/google/cloud/gke_recommender/v1/gke_inference_quickstart_test.rb b/google-cloud-gke_recommender-v1/test/google/cloud/gke_recommender/v1/gke_inference_quickstart_test.rb new file mode 100644 index 000000000000..539ea8603e49 --- /dev/null +++ b/google-cloud-gke_recommender-v1/test/google/cloud/gke_recommender/v1/gke_inference_quickstart_test.rb @@ -0,0 +1,479 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/gkerecommender/v1/gkerecommender_pb" +require "google/cloud/gke_recommender/v1/gke_inference_quickstart" + +class ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_fetch_models + # Create GRPC objects. + grpc_response = ::Google::Cloud::GkeRecommender::V1::FetchModelsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + page_size = 42 + page_token = "hello world" + + fetch_models_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :fetch_models, name + assert_kind_of ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest, request + assert_equal 42, request["page_size"] + assert request.has_page_size? + assert_equal "hello world", request["page_token"] + assert request.has_page_token? + refute_nil options + end + + Gapic::ServiceStub.stub :new, fetch_models_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.fetch_models({ page_size: page_size, page_token: page_token }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.fetch_models page_size: page_size, page_token: page_token do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.fetch_models ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new(page_size: page_size, page_token: page_token) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.fetch_models({ page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.fetch_models(::Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new(page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, fetch_models_client_stub.call_rpc_count + end + end + + def test_fetch_model_servers + # Create GRPC objects. + grpc_response = ::Google::Cloud::GkeRecommender::V1::FetchModelServersResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + model = "hello world" + page_size = 42 + page_token = "hello world" + + fetch_model_servers_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :fetch_model_servers, name + assert_kind_of ::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest, request + assert_equal "hello world", request["model"] + assert_equal 42, request["page_size"] + assert request.has_page_size? + assert_equal "hello world", request["page_token"] + assert request.has_page_token? + refute_nil options + end + + Gapic::ServiceStub.stub :new, fetch_model_servers_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.fetch_model_servers({ model: model, page_size: page_size, page_token: page_token }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.fetch_model_servers model: model, page_size: page_size, page_token: page_token do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.fetch_model_servers ::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new(model: model, page_size: page_size, page_token: page_token) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.fetch_model_servers({ model: model, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.fetch_model_servers(::Google::Cloud::GkeRecommender::V1::FetchModelServersRequest.new(model: model, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, fetch_model_servers_client_stub.call_rpc_count + end + end + + def test_fetch_model_server_versions + # Create GRPC objects. + grpc_response = ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + model = "hello world" + model_server = "hello world" + page_size = 42 + page_token = "hello world" + + fetch_model_server_versions_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :fetch_model_server_versions, name + assert_kind_of ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest, request + assert_equal "hello world", request["model"] + assert_equal "hello world", request["model_server"] + assert_equal 42, request["page_size"] + assert request.has_page_size? + assert_equal "hello world", request["page_token"] + assert request.has_page_token? + refute_nil options + end + + Gapic::ServiceStub.stub :new, fetch_model_server_versions_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.fetch_model_server_versions({ model: model, model_server: model_server, page_size: page_size, page_token: page_token }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.fetch_model_server_versions model: model, model_server: model_server, page_size: page_size, page_token: page_token do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.fetch_model_server_versions ::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new(model: model, model_server: model_server, page_size: page_size, page_token: page_token) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.fetch_model_server_versions({ model: model, model_server: model_server, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.fetch_model_server_versions(::Google::Cloud::GkeRecommender::V1::FetchModelServerVersionsRequest.new(model: model, model_server: model_server, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, fetch_model_server_versions_client_stub.call_rpc_count + end + end + + def test_fetch_profiles + # Create GRPC objects. + grpc_response = ::Google::Cloud::GkeRecommender::V1::FetchProfilesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + model = "hello world" + model_server = "hello world" + model_server_version = "hello world" + performance_requirements = {} + page_size = 42 + page_token = "hello world" + + fetch_profiles_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :fetch_profiles, name + assert_kind_of ::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest, request + assert_equal "hello world", request["model"] + assert_equal "hello world", request["model_server"] + assert_equal "hello world", request["model_server_version"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::GkeRecommender::V1::PerformanceRequirements), request["performance_requirements"] + assert_equal 42, request["page_size"] + assert request.has_page_size? + assert_equal "hello world", request["page_token"] + assert request.has_page_token? + refute_nil options + end + + Gapic::ServiceStub.stub :new, fetch_profiles_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.fetch_profiles({ model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.fetch_profiles model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.fetch_profiles ::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new(model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.fetch_profiles({ model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.fetch_profiles(::Google::Cloud::GkeRecommender::V1::FetchProfilesRequest.new(model: model, model_server: model_server, model_server_version: model_server_version, performance_requirements: performance_requirements, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, fetch_profiles_client_stub.call_rpc_count + end + end + + def test_generate_optimized_manifest + # Create GRPC objects. + grpc_response = ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + model_server_info = {} + accelerator_type = "hello world" + kubernetes_namespace = "hello world" + performance_requirements = {} + storage_config = {} + + generate_optimized_manifest_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :generate_optimized_manifest, name + assert_kind_of ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::GkeRecommender::V1::ModelServerInfo), request["model_server_info"] + assert_equal "hello world", request["accelerator_type"] + assert_equal "hello world", request["kubernetes_namespace"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::GkeRecommender::V1::PerformanceRequirements), request["performance_requirements"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::GkeRecommender::V1::StorageConfig), request["storage_config"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, generate_optimized_manifest_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.generate_optimized_manifest({ model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.generate_optimized_manifest model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.generate_optimized_manifest ::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new(model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.generate_optimized_manifest({ model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.generate_optimized_manifest(::Google::Cloud::GkeRecommender::V1::GenerateOptimizedManifestRequest.new(model_server_info: model_server_info, accelerator_type: accelerator_type, kubernetes_namespace: kubernetes_namespace, performance_requirements: performance_requirements, storage_config: storage_config), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, generate_optimized_manifest_client_stub.call_rpc_count + end + end + + def test_fetch_benchmarking_data + # Create GRPC objects. + grpc_response = ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + model_server_info = {} + instance_type = "hello world" + pricing_model = "hello world" + + fetch_benchmarking_data_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :fetch_benchmarking_data, name + assert_kind_of ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::GkeRecommender::V1::ModelServerInfo), request["model_server_info"] + assert_equal "hello world", request["instance_type"] + assert_equal "hello world", request["pricing_model"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, fetch_benchmarking_data_client_stub do + # Create client + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.fetch_benchmarking_data({ model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.fetch_benchmarking_data model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.fetch_benchmarking_data ::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new(model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.fetch_benchmarking_data({ model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.fetch_benchmarking_data(::Google::Cloud::GkeRecommender::V1::FetchBenchmarkingDataRequest.new(model_server_info: model_server_info, instance_type: instance_type, pricing_model: pricing_model), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, fetch_benchmarking_data_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client::Configuration, config + end +end diff --git a/google-cloud-gke_recommender-v1/test/helper.rb b/google-cloud-gke_recommender-v1/test/helper.rb new file mode 100644 index 000000000000..968201e8049d --- /dev/null +++ b/google-cloud-gke_recommender-v1/test/helper.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "minitest/autorun" +require "minitest/focus" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/google-cloud-gke_recommender/.OwlBot.yaml b/google-cloud-gke_recommender/.OwlBot.yaml new file mode 100644 index 000000000000..e595d564584c --- /dev/null +++ b/google-cloud-gke_recommender/.OwlBot.yaml @@ -0,0 +1,3 @@ +deep-copy-regex: + - source: /google/cloud/gkerecommender/[^/]+-ruby/(.*) + dest: /owl-bot-staging/google-cloud-gke_recommender/$1 diff --git a/google-cloud-gke_recommender/.gitignore b/google-cloud-gke_recommender/.gitignore new file mode 100644 index 000000000000..0135b6bc6cfc --- /dev/null +++ b/google-cloud-gke_recommender/.gitignore @@ -0,0 +1,22 @@ +# Ignore bundler lockfiles +Gemfile.lock +gems.locked + +# Ignore documentation output +doc/* +.yardoc/* + +# Ignore test output +coverage/* + +# Ignore build artifacts +pkg/* + +# Ignore files commonly present in certain dev environments +.vagrant +.DS_STORE +.idea +*.iml + +# Ignore synth output +__pycache__ diff --git a/google-cloud-gke_recommender/.owlbot-manifest.json b/google-cloud-gke_recommender/.owlbot-manifest.json new file mode 100644 index 000000000000..401ff7e21b61 --- /dev/null +++ b/google-cloud-gke_recommender/.owlbot-manifest.json @@ -0,0 +1,25 @@ +{ + "generated": [ + ".gitignore", + ".repo-metadata.json", + ".rubocop.yml", + ".toys.rb", + ".yardopts", + "AUTHENTICATION.md", + "CHANGELOG.md", + "Gemfile", + "LICENSE.md", + "README.md", + "Rakefile", + "google-cloud-gke_recommender.gemspec", + "lib/google-cloud-gke_recommender.rb", + "lib/google/cloud/gke_recommender.rb", + "lib/google/cloud/gke_recommender/version.rb", + "test/google/cloud/gke_recommender/client_test.rb", + "test/google/cloud/gke_recommender/version_test.rb", + "test/helper.rb" + ], + "static": [ + ".OwlBot.yaml" + ] +} diff --git a/google-cloud-gke_recommender/.repo-metadata.json b/google-cloud-gke_recommender/.repo-metadata.json new file mode 100644 index 000000000000..00dfda21767a --- /dev/null +++ b/google-cloud-gke_recommender/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "gkerecommender.googleapis.com", + "api_shortname": "gkerecommender", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender/latest", + "distribution_name": "google-cloud-gke_recommender", + "is_cloud": true, + "language": "ruby", + "name": "gkerecommender", + "name_pretty": "GKE Recommender API", + "product_documentation": "https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart", + "release_level": "preview", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "GKE Recommender API.", + "ruby-cloud-product-url": "https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart", + "library_type": "GAPIC_MANUAL" +} diff --git a/google-cloud-gke_recommender/.rubocop.yml b/google-cloud-gke_recommender/.rubocop.yml new file mode 100644 index 000000000000..cefaaeb37046 --- /dev/null +++ b/google-cloud-gke_recommender/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-gke_recommender.gemspec" + - "Rakefile" + - "acceptance/**/*" + - "test/**/*" + +Bundler/OrderedGems: + Enabled: false +Documentation: + Enabled: false +Layout/LineLength: + Enabled: false +Metrics/BlockLength: + Exclude: + - "samples/**/acceptance/*.rb" +Metrics/AbcSize: + Enabled: false +Metrics/ClassLength: + Enabled: false +Metrics/CyclomaticComplexity: + Enabled: false +Metrics/MethodLength: + Enabled: false +Metrics/ModuleLength: + Enabled: false +Metrics/PerceivedComplexity: + Enabled: false + +Naming/FileName: + Exclude: + - "lib/google-cloud-gke_recommender.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/google-cloud-gke_recommender/.toys.rb b/google-cloud-gke_recommender/.toys.rb new file mode 100644 index 000000000000..9a210f1427c7 --- /dev/null +++ b/google-cloud-gke_recommender/.toys.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +toys_version! ">= 0.15.3" + +if ENV["RUBY_COMMON_TOOLS"] + common_tools_dir = File.expand_path ENV["RUBY_COMMON_TOOLS"] + load File.join(common_tools_dir, "toys", "gapic") +else + load_git remote: "https://github.com/googleapis/ruby-common-tools.git", + path: "toys/gapic", + update: true +end diff --git a/google-cloud-gke_recommender/.yardopts b/google-cloud-gke_recommender/.yardopts new file mode 100644 index 000000000000..6b30e2b940d0 --- /dev/null +++ b/google-cloud-gke_recommender/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="GKE Recommender API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/google-cloud-gke_recommender/AUTHENTICATION.md b/google-cloud-gke_recommender/AUTHENTICATION.md new file mode 100644 index 000000000000..e9cfb5bccd90 --- /dev/null +++ b/google-cloud-gke_recommender/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-gke_recommender library is to use +[Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/application-default-credentials). +To review all of your authentication options, see [Credentials lookup](#credential-lookup). + +## Quickstart + +The following example shows how to set up authentication for a local development +environment with your user credentials. + +**NOTE:** This method is _not_ recommended for running in production. User credentials +should be used only during development. + +1. [Download and install the Google Cloud CLI](https://cloud.google.com/sdk). +2. Set up a local ADC file with your user credentials: + +```sh +gcloud auth application-default login +``` + +3. Write code as if already authenticated. + +For more information about setting up authentication for a local development environment, see +[Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev). + +## Credential Lookup + +The google-cloud-gke_recommender library provides several mechanisms to configure your system. +Generally, using Application Default Credentials to facilitate automatic +credentials discovery is the easist method. But if you need to explicitly specify +credentials, there are several methods available to you. + +Credentials are accepted in the following ways, in the following order or precedence: + +1. Credentials specified in method arguments +2. Credentials specified in configuration +3. Credentials pointed to or included in environment variables +4. Credentials found in local ADC file +5. Credentials returned by the metadata server for the attached service account (GCP) + +### Configuration + +You can configure a path to a JSON credentials file, either for an individual client object or +globally, for all client objects. The JSON file can contain credentials created for +[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), +[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a +[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). + +Note: Service account keys are a security risk if not managed correctly. You should +[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) +whenever possible. + +To configure a credentials file for an individual client initialization: + +```ruby +require "google/cloud/gke_recommender" + +client = Google::Cloud::GkeRecommender.gke_inference_quickstart do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/gke_recommender" + +Google::Cloud::GkeRecommender.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::GkeRecommender.gke_inference_quickstart +``` + +### Environment Variables + +You can also use an environment variable to provide a JSON credentials file. +The environment variable can contain a path to the credentials file or, for +environments such as Docker containers where writing files is not encouraged, +you can include the credentials file itself. + +The JSON file can contain credentials created for +[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), +[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a +[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). + +Note: Service account keys are a security risk if not managed correctly. You should +[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) +whenever possible. + +The environment variables that google-cloud-gke_recommender +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/gke_recommender" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::GkeRecommender.gke_inference_quickstart +``` + +### Local ADC file + +You can set up a local ADC file with your user credentials for authentication during +development. If credentials are not provided in code or in environment variables, +then the local ADC credentials are discovered. + +Follow the steps in [Quickstart](#quickstart) to set up a local ADC file. + +### Google Cloud Platform environments + +When running on Google Cloud Platform (GCP), including Google Compute Engine +(GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud +Functions (GCF) and Cloud Run, credentials are retrieved from the attached +service account automatically. Code should be written as if already authenticated. + +For more information, see +[Set up ADC for Google Cloud services](https://cloud.google.com/docs/authentication/provide-credentials-adc#attached-sa). diff --git a/google-cloud-gke_recommender/CHANGELOG.md b/google-cloud-gke_recommender/CHANGELOG.md new file mode 100644 index 000000000000..43aba1610ffc --- /dev/null +++ b/google-cloud-gke_recommender/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +### 0.1.0 (2025-09-17) + +#### Features + +* Initial generation of google-cloud-gke_recommender ([#31520](https://github.com/googleapis/google-cloud-ruby/issues/31520)) + +## Release History diff --git a/google-cloud-gke_recommender/Gemfile b/google-cloud-gke_recommender/Gemfile new file mode 100644 index 000000000000..93c4658eac0d --- /dev/null +++ b/google-cloud-gke_recommender/Gemfile @@ -0,0 +1,28 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-gke_recommender-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-gke_recommender.gemspec")) +local_dependencies.each do |name| + spec_path = File.expand_path "../#{name}/#{name}.gemspec", __dir__ + unless File.file? spec_path + warn "WARNING: Disabled local dependency for #{name} because gemspec not found." + next + end + version = Bundler.load_gemspec(spec_path).version + if main_spec.dependencies.any? { |dep| dep.name == name && !dep.requirement.satisfied_by?(version) } + warn "WARNING: Disabled local dependency for #{name} because the gemspec disallows version #{version}." + next + end + gem name, path: "../#{name}" +end + +gem "google-style", "~> 1.30.1" +gem "minitest", "~> 5.22" +gem "minitest-focus", "~> 1.4" +gem "minitest-rg", "~> 5.3" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/google-cloud-gke_recommender/LICENSE.md b/google-cloud-gke_recommender/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/google-cloud-gke_recommender/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/google-cloud-gke_recommender/README.md b/google-cloud-gke_recommender/README.md new file mode 100644 index 000000000000..a7d6db5634b8 --- /dev/null +++ b/google-cloud-gke_recommender/README.md @@ -0,0 +1,141 @@ +# Ruby Client for the GKE Recommender API + +GKE Recommender API. + + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-gke_recommender-v*`. +The gem `google-cloud-gke_recommender` is the main client library that brings the +versioned gems in as dependencies, and provides high-level methods for +constructing clients. More information on versioned clients can be found below +in the section titled *Which client should I use?*. + +View the [Client Library Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender/latest) +for this library, google-cloud-gke_recommender, to see the convenience methods for +constructing client objects. Reference documentation for the client objects +themselves can be found in the client library documentation for the versioned +client gems: +[google-cloud-gke_recommender-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/machine-learning/inference-quickstart) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-gke_recommender +``` + +In order to use this library, you first need to go through the following steps: + +1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project) +1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project) +1. [Enable the API.](https://console.cloud.google.com/apis/library/gkerecommender.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/gke_recommender" + +client = Google::Cloud::GkeRecommender.gke_inference_quickstart +request = ::Google::Cloud::GkeRecommender::V1::FetchModelsRequest.new # (request fields as keyword arguments...) +response = client.fetch_models request +``` + +## Debug Logging + +This library comes with opt-in Debug Logging that can help you troubleshoot +your application's integration with the API. When logging is activated, key +events such as requests and responses, along with data payloads and metadata +such as headers and client configuration, are logged to the standard error +stream. + +**WARNING:** Client Library Debug Logging includes your data payloads in +plaintext, which could include sensitive data such as PII for yourself or your +customers, private keys, or other security data that could be compromising if +leaked. Always practice good data hygiene with your application logs, and follow +the principle of least access. Google also recommends that Client Library Debug +Logging be enabled only temporarily during active debugging, and not used +permanently in production. + +To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS` +to the value `all`. Alternatively, you can set the value to a comma-delimited +list of client library gem names. This will select the default logging behavior, +which writes logs to the standard error stream. On a local workstation, this may +result in logs appearing on the console. When running on a Google Cloud hosting +service such as [Google Cloud Run](https://cloud.google.com/run), this generally +results in logs appearing alongside your application logs in the +[Google Cloud Logging](https://cloud.google.com/logging/) service. + +Debug logging also requires that the versioned clients for this service be +sufficiently recent, released after about Dec 10, 2024. If logging is not +working, try updating the versioned clients in your bundle or installed gems: +[google-cloud-gke_recommender-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.0+. + +Google provides official support for Ruby versions that are actively supported +by Ruby Core—that is, Ruby versions that are either in normal maintenance or +in security maintenance, and not end of life. Older versions of Ruby _may_ +still work, but are unsupported and not recommended. See +https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby +support schedule. + +## Which client should I use? + +Most modern Ruby client libraries for Google APIs come in two flavors: the main +client library with a name such as `google-cloud-gke_recommender`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-gke_recommender-v1`. +_In most cases, you should install the main client._ + +### What's the difference between the main client and a versioned client? + +A _versioned client_ provides a basic set of data types and client classes for +a _single version_ of a specific service. (That is, for a service with multiple +versions, there might be a separate versioned client for each service version.) +Most versioned clients are written and maintained by a code generator. + +The _main client_ is designed to provide you with the _recommended_ client +interfaces for the service. There will be only one main client for any given +service, even a service with multiple versions. The main client includes +factory methods for constructing the client objects we recommend for most +users. In some cases, those will be classes provided by an underlying versioned +client; in other cases, they will be handwritten higher-level client objects +with additional capabilities, convenience methods, or best practices built in. +Generally, the main client will default to a recommended service version, +although in some cases you can override this if you need to talk to a specific +service version. + +### Why would I want to use the main client? + +We recommend that most users install the main client gem for a service. You can +identify this gem as the one _without_ a version in its name, e.g. +`google-cloud-gke_recommender`. +The main client is recommended because it will embody the best practices for +accessing the service, and may also provide more convenient interfaces or +tighter integration into frameworks and third-party libraries. In addition, the +documentation and samples published by Google will generally demonstrate use of +the main client. + +### Why would I want to use a versioned client? + +You can use a versioned client if you are content with a possibly lower-level +class interface, you explicitly want to avoid features provided by the main +client, or you want to access a specific service version not be covered by the +main client. You can identify versioned client gems because the service version +is part of the name, e.g. `google-cloud-gke_recommender-v1`. + +### What about the google-apis- clients? + +Client library gems with names that begin with `google-apis-` are based on an +older code generation technology. They talk to a REST/JSON backend (whereas +most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may +not offer the same performance, features, and ease of use provided by more +modern clients. + +The `google-apis-` clients have wide coverage across Google services, so you +might need to use one if there is no modern client available for the service. +However, if a modern client is available, we generally recommend it over the +older `google-apis-` clients. diff --git a/google-cloud-gke_recommender/Rakefile b/google-cloud-gke_recommender/Rakefile new file mode 100644 index 000000000000..ff834fbdde7b --- /dev/null +++ b/google-cloud-gke_recommender/Rakefile @@ -0,0 +1,169 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "bundler/setup" +require "bundler/gem_tasks" + +require "rubocop/rake_task" +RuboCop::RakeTask.new + +require "rake/testtask" +desc "Run tests." +Rake::TestTask.new do |t| + t.libs << "test" + t.test_files = FileList["test/**/*_test.rb"] + t.warning = true +end + +desc "Runs the smoke tests." +Rake::TestTask.new :smoke_test do |t| + t.test_files = FileList["acceptance/**/*smoke_test.rb"] + t.warning = false +end + +# Acceptance tests +desc "Run the google-cloud-gke_recommender acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["GOOGLE_CLOUD_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["GOOGLE_CLOUD_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["GOOGLE_CLOUD_TEST_KEYFILE_JSON"] || + ENV["GCLOUD_TEST_KEYFILE_JSON"] + end + if project.nil? || keyfile.nil? + fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or GOOGLE_CLOUD_TEST_PROJECT=test123 GOOGLE_CLOUD_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/gke_recommender/v1/gke_inference_quickstart/credentials" + ::Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["GOOGLE_CLOUD_PROJECT"] = project + ENV["GOOGLE_CLOUD_TEST_PROJECT"] = project + ENV["GOOGLE_CLOUD_KEYFILE_JSON"] = keyfile + + Rake::Task["acceptance:run"].invoke +end + +namespace :acceptance do + task :run do + if File.directory? "acceptance" + Rake::Task[:smoke_test].invoke + else + puts "The google-cloud-gke_recommender gem has no acceptance tests." + end + end + + desc "Run acceptance cleanup." + task :cleanup do + end +end + +task :samples do + Rake::Task["samples:latest"].invoke +end + +namespace :samples do + task :latest do + if File.directory? "samples" + Dir.chdir "samples" do + Bundler.with_clean_env do + ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "not_master" + sh "bundle update" + sh "bundle exec rake test" + end + end + else + puts "The google-cloud-gke_recommender gem has no samples to test." + end + end + + task :master do + if File.directory? "samples" + Dir.chdir "samples" do + Bundler.with_clean_env do + ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "master" + sh "bundle update" + sh "bundle exec rake test" + end + end + else + puts "The google-cloud-gke_recommender gem has no samples to test." + end + end +end + +require "yard" +require "yard/rake/yardoc_task" +YARD::Rake::YardocTask.new do |y| + y.options << "--fail-on-warning" +end + +desc "Run yard-doctest example tests." +task :doctest do + puts "The google-cloud-gke_recommender gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-gke_recommender" + header "google-cloud-gke_recommender rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-gke_recommender yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-gke_recommender test", "*" + Rake::Task[:test].invoke +end + +namespace :ci do + desc "Run the CI build, with smoke tests." + task :smoke_test do + Rake::Task[:ci].invoke + header "google-cloud-gke_recommender smoke_test", "*" + Rake::Task[:smoke_test].invoke + end + desc "Run the CI build, with acceptance tests." + task :acceptance do + Rake::Task[:ci].invoke + header "google-cloud-gke_recommender acceptance", "*" + Rake::Task[:acceptance].invoke + end + task :a do + # This is a handy shortcut to save typing + Rake::Task["ci:acceptance"].invoke + end +end + +task default: :test + +def header str, token = "#" + line_length = str.length + 8 + puts "" + puts token * line_length + puts "#{token * 3} #{str} #{token * 3}" + puts token * line_length + puts "" +end diff --git a/google-cloud-gke_recommender/google-cloud-gke_recommender.gemspec b/google-cloud-gke_recommender/google-cloud-gke_recommender.gemspec new file mode 100644 index 000000000000..ffdbe0703702 --- /dev/null +++ b/google-cloud-gke_recommender/google-cloud-gke_recommender.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/gke_recommender/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-gke_recommender" + gem.version = Google::Cloud::GkeRecommender::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "GKE Recommender API." + gem.summary = "GKE Recommender API." + gem.homepage = "https://github.com/googleapis/google-cloud-ruby" + gem.license = "Apache-2.0" + + gem.platform = Gem::Platform::RUBY + + gem.files = `git ls-files -- lib/*`.split("\n") + + ["README.md", "AUTHENTICATION.md", "LICENSE.md", ".yardopts"] + gem.require_paths = ["lib"] + + gem.required_ruby_version = ">= 3.0" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-gke_recommender-v1", ">= 0.0", "< 2.a" +end diff --git a/google-cloud-gke_recommender/lib/google-cloud-gke_recommender.rb b/google-cloud-gke_recommender/lib/google-cloud-gke_recommender.rb new file mode 100644 index 000000000000..4d1b51c517e0 --- /dev/null +++ b/google-cloud-gke_recommender/lib/google-cloud-gke_recommender.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/gke_recommender" unless defined? Google::Cloud::GkeRecommender::VERSION diff --git a/google-cloud-gke_recommender/lib/google/cloud/gke_recommender.rb b/google-cloud-gke_recommender/lib/google/cloud/gke_recommender.rb new file mode 100644 index 000000000000..d74e8fb7d37b --- /dev/null +++ b/google-cloud-gke_recommender/lib/google/cloud/gke_recommender.rb @@ -0,0 +1,159 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# Require this file early so that the version constant gets defined before +# requiring "google/cloud". This is because google-cloud-core will load the +# entrypoint (gem name) file, which in turn re-requires this file (hence +# causing a require cycle) unless the version constant is already defined. +require "google/cloud/gke_recommender/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :gke_recommender do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module GkeRecommender + ## + # Create a new client object for GkeInferenceQuickstart. + # + # By default, this returns an instance of + # [Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-gke_recommender-v1/latest/Google-Cloud-GkeRecommender-V1-GkeInferenceQuickstart-Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the GkeInferenceQuickstart service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the GkeInferenceQuickstart service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::GkeRecommender.gke_inference_quickstart_available?}. + # + # ## About GkeInferenceQuickstart + # + # GKE Inference Quickstart (GIQ) service provides profiles with performance + # metrics for popular models and model servers across multiple accelerators. + # These profiles help generate optimized best practices for running inference + # on GKE. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.gke_inference_quickstart version: :v1, transport: :grpc, &block + require "google/cloud/gke_recommender/#{version.to_s.downcase}" + + package_name = Google::Cloud::GkeRecommender + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::GkeRecommender.const_get(package_name).const_get(:GkeInferenceQuickstart) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the GkeInferenceQuickstart service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::GkeRecommender.gke_inference_quickstart}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the GkeInferenceQuickstart service, + # or if the versioned client gem needs an update to support the GkeInferenceQuickstart service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.gke_inference_quickstart_available? version: :v1, transport: :grpc + require "google/cloud/gke_recommender/#{version.to_s.downcase}" + package_name = Google::Cloud::GkeRecommender + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::GkeRecommender.const_get package_name + return false unless service_module.const_defined? :GkeInferenceQuickstart + service_module = service_module.const_get :GkeInferenceQuickstart + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Configure the google-cloud-gke_recommender library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.gke_recommender if block_given? + + ::Google::Cloud.configure.gke_recommender + end + end + end +end + +helper_path = ::File.join __dir__, "gke_recommender", "helpers.rb" +require "google/cloud/gke_recommender/helpers" if ::File.file? helper_path diff --git a/google-cloud-gke_recommender/lib/google/cloud/gke_recommender/version.rb b/google-cloud-gke_recommender/lib/google/cloud/gke_recommender/version.rb new file mode 100644 index 000000000000..4df0994db694 --- /dev/null +++ b/google-cloud-gke_recommender/lib/google/cloud/gke_recommender/version.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module GkeRecommender + VERSION = "0.1.0" + end + end +end diff --git a/google-cloud-gke_recommender/test/google/cloud/gke_recommender/client_test.rb b/google-cloud-gke_recommender/test/google/cloud/gke_recommender/client_test.rb new file mode 100644 index 000000000000..ae95918476e9 --- /dev/null +++ b/google-cloud-gke_recommender/test/google/cloud/gke_recommender/client_test.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "google/cloud/gke_recommender" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::GkeRecommender::ClientConstructionMinitest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_gke_inference_quickstart_grpc + skip unless Google::Cloud::GkeRecommender.gke_inference_quickstart_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::GkeRecommender.gke_inference_quickstart transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Client, client + end + end + + def test_gke_inference_quickstart_rest + skip unless Google::Cloud::GkeRecommender.gke_inference_quickstart_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::GkeRecommender.gke_inference_quickstart transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::GkeRecommender::V1::GkeInferenceQuickstart::Rest::Client, client + end + end +end diff --git a/google-cloud-gke_recommender/test/google/cloud/gke_recommender/version_test.rb b/google-cloud-gke_recommender/test/google/cloud/gke_recommender/version_test.rb new file mode 100644 index 000000000000..22890f14bf38 --- /dev/null +++ b/google-cloud-gke_recommender/test/google/cloud/gke_recommender/version_test.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "google/cloud/gke_recommender/version" + +class Google::Cloud::GkeRecommender::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::GkeRecommender::VERSION + end +end diff --git a/google-cloud-gke_recommender/test/helper.rb b/google-cloud-gke_recommender/test/helper.rb new file mode 100644 index 000000000000..968201e8049d --- /dev/null +++ b/google-cloud-gke_recommender/test/helper.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "minitest/autorun" +require "minitest/focus" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/google-cloud-gsuite_add_ons-v1/CHANGELOG.md b/google-cloud-gsuite_add_ons-v1/CHANGELOG.md index b670b3da9446..d19cc14cb03a 100644 --- a/google-cloud-gsuite_add_ons-v1/CHANGELOG.md +++ b/google-cloud-gsuite_add_ons-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-gsuite_add_ons-v1/google-cloud-gsuite_add_ons-v1.gemspec b/google-cloud-gsuite_add_ons-v1/google-cloud-gsuite_add_ons-v1.gemspec index 4e50c653d614..0efad4cb351c 100644 --- a/google-cloud-gsuite_add_ons-v1/google-cloud-gsuite_add_ons-v1.gemspec +++ b/google-cloud-gsuite_add_ons-v1/google-cloud-gsuite_add_ons-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-apps-script-type", "> 0.0", "< 2.a" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-gsuite_add_ons-v1/lib/google/cloud/gsuite_add_ons/v1/version.rb b/google-cloud-gsuite_add_ons-v1/lib/google/cloud/gsuite_add_ons/v1/version.rb index 31fc535f4808..cc34d02aee4a 100644 --- a/google-cloud-gsuite_add_ons-v1/lib/google/cloud/gsuite_add_ons/v1/version.rb +++ b/google-cloud-gsuite_add_ons-v1/lib/google/cloud/gsuite_add_ons/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module GSuiteAddOns module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-gsuite_add_ons-v1/snippets/snippet_metadata_google.cloud.gsuiteaddons.v1.json b/google-cloud-gsuite_add_ons-v1/snippets/snippet_metadata_google.cloud.gsuiteaddons.v1.json index 47c2b34cd3e7..839210b8f9db 100644 --- a/google-cloud-gsuite_add_ons-v1/snippets/snippet_metadata_google.cloud.gsuiteaddons.v1.json +++ b/google-cloud-gsuite_add_ons-v1/snippets/snippet_metadata_google.cloud.gsuiteaddons.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-gsuite_add_ons-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-gsuite_add_ons/CHANGELOG.md b/google-cloud-gsuite_add_ons/CHANGELOG.md index 027cd5e1f99c..5b96f7f7661f 100644 --- a/google-cloud-gsuite_add_ons/CHANGELOG.md +++ b/google-cloud-gsuite_add_ons/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-gsuite_add_ons/README.md b/google-cloud-gsuite_add_ons/README.md index 8a82e1d76f40..497d6a6fb8ad 100644 --- a/google-cloud-gsuite_add_ons/README.md +++ b/google-cloud-gsuite_add_ons/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/gsuiteaddons.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/gsuite_add_ons" + +client = Google::Cloud::GSuiteAddOns.gsuite_add_ons +request = ::Google::Cloud::GSuiteAddOns::V1::GetAuthorizationRequest.new # (request fields as keyword arguments...) +response = client.get_authorization request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-gsuite_add_ons/lib/google/cloud/gsuite_add_ons/version.rb b/google-cloud-gsuite_add_ons/lib/google/cloud/gsuite_add_ons/version.rb index a9d4ccfeeacd..d0aa010cfff2 100644 --- a/google-cloud-gsuite_add_ons/lib/google/cloud/gsuite_add_ons/version.rb +++ b/google-cloud-gsuite_add_ons/lib/google/cloud/gsuite_add_ons/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module GSuiteAddOns - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-cloud-iap-v1/CHANGELOG.md b/google-cloud-iap-v1/CHANGELOG.md index d9c97e172f37..bf72e06b9829 100644 --- a/google-cloud-iap-v1/CHANGELOG.md +++ b/google-cloud-iap-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.1 (2025-06-05) #### Documentation diff --git a/google-cloud-iap-v1/google-cloud-iap-v1.gemspec b/google-cloud-iap-v1/google-cloud-iap-v1.gemspec index 18971743b808..968551f2cb42 100644 --- a/google-cloud-iap-v1/google-cloud-iap-v1.gemspec +++ b/google-cloud-iap-v1/google-cloud-iap-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-iap-v1/lib/google/cloud/iap/v1/version.rb b/google-cloud-iap-v1/lib/google/cloud/iap/v1/version.rb index 053ec3ff79f0..4ab8e3cae3ec 100644 --- a/google-cloud-iap-v1/lib/google/cloud/iap/v1/version.rb +++ b/google-cloud-iap-v1/lib/google/cloud/iap/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Iap module V1 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-iap-v1/snippets/snippet_metadata_google.cloud.iap.v1.json b/google-cloud-iap-v1/snippets/snippet_metadata_google.cloud.iap.v1.json index 1af299c806d1..3795e19bc825 100644 --- a/google-cloud-iap-v1/snippets/snippet_metadata_google.cloud.iap.v1.json +++ b/google-cloud-iap-v1/snippets/snippet_metadata_google.cloud.iap.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-iap-v1", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-iap/CHANGELOG.md b/google-cloud-iap/CHANGELOG.md index 56c8059b93a1..a3a2eefbd2ab 100644 --- a/google-cloud-iap/CHANGELOG.md +++ b/google-cloud-iap/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-iap/README.md b/google-cloud-iap/README.md index 9d311b468251..18cbab1404a5 100644 --- a/google-cloud-iap/README.md +++ b/google-cloud-iap/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/iap.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/iap" + +client = Google::Cloud::Iap.identity_aware_proxy_admin_service +request = ::Google::Iam::V1::SetIamPolicyRequest.new # (request fields as keyword arguments...) +response = client.set_iam_policy request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-iap/lib/google/cloud/iap/version.rb b/google-cloud-iap/lib/google/cloud/iap/version.rb index f32d3985e531..2266612409b6 100644 --- a/google-cloud-iap/lib/google/cloud/iap/version.rb +++ b/google-cloud-iap/lib/google/cloud/iap/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Iap - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-ids-v1/CHANGELOG.md b/google-cloud-ids-v1/CHANGELOG.md index 09468bf7b12c..77515a58c09d 100644 --- a/google-cloud-ids-v1/CHANGELOG.md +++ b/google-cloud-ids-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-ids-v1/google-cloud-ids-v1.gemspec b/google-cloud-ids-v1/google-cloud-ids-v1.gemspec index f7eec7069231..3cbf554d377a 100644 --- a/google-cloud-ids-v1/google-cloud-ids-v1.gemspec +++ b/google-cloud-ids-v1/google-cloud-ids-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-ids-v1/lib/google/cloud/ids/v1/version.rb b/google-cloud-ids-v1/lib/google/cloud/ids/v1/version.rb index 765c11237f6d..19f882e9eafb 100644 --- a/google-cloud-ids-v1/lib/google/cloud/ids/v1/version.rb +++ b/google-cloud-ids-v1/lib/google/cloud/ids/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module IDS module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-ids-v1/snippets/snippet_metadata_google.cloud.ids.v1.json b/google-cloud-ids-v1/snippets/snippet_metadata_google.cloud.ids.v1.json index 77fe8fe0d570..e784ebe9b37e 100644 --- a/google-cloud-ids-v1/snippets/snippet_metadata_google.cloud.ids.v1.json +++ b/google-cloud-ids-v1/snippets/snippet_metadata_google.cloud.ids.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-ids-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-ids/CHANGELOG.md b/google-cloud-ids/CHANGELOG.md index eba375d15216..33990802127d 100644 --- a/google-cloud-ids/CHANGELOG.md +++ b/google-cloud-ids/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-ids/README.md b/google-cloud-ids/README.md index 5d45aa806a86..0bdffb2781b2 100644 --- a/google-cloud-ids/README.md +++ b/google-cloud-ids/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/ids.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/ids" + +client = Google::Cloud::IDS.ids +request = ::Google::Cloud::IDS::V1::ListEndpointsRequest.new # (request fields as keyword arguments...) +response = client.list_endpoints request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-ids/lib/google/cloud/ids/version.rb b/google-cloud-ids/lib/google/cloud/ids/version.rb index a937acf01503..ff8db67486f5 100644 --- a/google-cloud-ids/lib/google/cloud/ids/version.rb +++ b/google-cloud-ids/lib/google/cloud/ids/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module IDS - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-kms-inventory-v1/CHANGELOG.md b/google-cloud-kms-inventory-v1/CHANGELOG.md index 21e82e82249c..c6ec23b53ba4 100644 --- a/google-cloud-kms-inventory-v1/CHANGELOG.md +++ b/google-cloud-kms-inventory-v1/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### 0.16.0 (2025-09-11) + +#### Features + +* Add PublicKeyFormat enums XWING_RAW_BYTES (used for KEM_XWING) and DER +* Support KEY_ENCAPSULATION purpose and quantum-safe algorithms ML_KEM_768, ML_KEM_1024 and KEM_XWING ([#31006](https://github.com/googleapis/google-cloud-ruby/issues/31006)) + ### 0.15.1 (2025-05-16) #### Documentation diff --git a/google-cloud-kms-inventory-v1/google-cloud-kms-inventory-v1.gemspec b/google-cloud-kms-inventory-v1/google-cloud-kms-inventory-v1.gemspec index 90c8d6f346fc..a3627955096a 100644 --- a/google-cloud-kms-inventory-v1/google-cloud-kms-inventory-v1.gemspec +++ b/google-cloud-kms-inventory-v1/google-cloud-kms-inventory-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-kms-v1", "> 0.0", "< 2.a" end diff --git a/google-cloud-kms-inventory-v1/lib/google/cloud/kms/inventory/v1/version.rb b/google-cloud-kms-inventory-v1/lib/google/cloud/kms/inventory/v1/version.rb index c75f02bf1e9f..345e1fad02ac 100644 --- a/google-cloud-kms-inventory-v1/lib/google/cloud/kms/inventory/v1/version.rb +++ b/google-cloud-kms-inventory-v1/lib/google/cloud/kms/inventory/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Kms module Inventory module V1 - VERSION = "0.15.1" + VERSION = "0.16.0" end end end diff --git a/google-cloud-kms-inventory-v1/proto_docs/google/cloud/kms/v1/resources.rb b/google-cloud-kms-inventory-v1/proto_docs/google/cloud/kms/v1/resources.rb index 45bc307105e7..c3f6375c0bfb 100644 --- a/google-cloud-kms-inventory-v1/proto_docs/google/cloud/kms/v1/resources.rb +++ b/google-cloud-kms-inventory-v1/proto_docs/google/cloud/kms/v1/resources.rb @@ -198,6 +198,12 @@ module CryptoKeyPurpose # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used # with [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign]. MAC = 9 + + # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used + # with + # [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] + # and [Decapsulate][google.cloud.kms.v1.KeyManagementService.Decapsulate]. + KEY_ENCAPSULATION = 10 end end @@ -549,6 +555,16 @@ module CryptoKeyVersionAlgorithm # Algorithm representing symmetric encryption by an external key manager. EXTERNAL_SYMMETRIC_ENCRYPTION = 18 + # ML-KEM-768 (FIPS 203) + ML_KEM_768 = 47 + + # ML-KEM-1024 (FIPS 203) + ML_KEM_1024 = 48 + + # X-Wing hybrid KEM combining ML-KEM-768 with X25519 following + # datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/. + KEM_XWING = 63 + # The post-quantum Module-Lattice-Based Digital Signature Algorithm, at # security level 3. Randomized version. PQ_SIGN_ML_DSA_65 = 56 @@ -751,10 +767,18 @@ module PublicKeyFormat # (https://tools.ietf.org/html/rfc7468#section-13) for more information. PEM = 1 + # The returned public key will be encoded in DER format (the + # PrivateKeyInfo structure from RFC 5208). + DER = 2 + # This is supported only for PQC algorithms. # The key material is returned in the format defined by NIST PQC # standards (FIPS 203, FIPS 204, and FIPS 205). NIST_PQC = 3 + + # The returned public key is in raw bytes format defined in its standard + # https://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem. + XWING_RAW_BYTES = 4 end end diff --git a/google-cloud-kms-inventory-v1/snippets/snippet_metadata_google.cloud.kms.inventory.v1.json b/google-cloud-kms-inventory-v1/snippets/snippet_metadata_google.cloud.kms.inventory.v1.json index 491b31d57e23..99cca1b89719 100644 --- a/google-cloud-kms-inventory-v1/snippets/snippet_metadata_google.cloud.kms.inventory.v1.json +++ b/google-cloud-kms-inventory-v1/snippets/snippet_metadata_google.cloud.kms.inventory.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-kms-inventory-v1", - "version": "0.15.1", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-kms-inventory/CHANGELOG.md b/google-cloud-kms-inventory/CHANGELOG.md index 489f8332e3a8..6c1be5b17346 100644 --- a/google-cloud-kms-inventory/CHANGELOG.md +++ b/google-cloud-kms-inventory/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-kms-inventory/README.md b/google-cloud-kms-inventory/README.md index ce4e9007029f..b3a3d472299d 100644 --- a/google-cloud-kms-inventory/README.md +++ b/google-cloud-kms-inventory/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/kmsinventory.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/kms/inventory" + +client = Google::Cloud::Kms::Inventory.key_dashboard_service +request = ::Google::Cloud::Kms::Inventory::V1::ListCryptoKeysRequest.new # (request fields as keyword arguments...) +response = client.list_crypto_keys request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-kms-inventory/lib/google/cloud/kms/inventory/version.rb b/google-cloud-kms-inventory/lib/google/cloud/kms/inventory/version.rb index 9e11467d8da8..7a6eb7c02efd 100644 --- a/google-cloud-kms-inventory/lib/google/cloud/kms/inventory/version.rb +++ b/google-cloud-kms-inventory/lib/google/cloud/kms/inventory/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Kms module Inventory - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-kms-v1/.owlbot-manifest.json b/google-cloud-kms-v1/.owlbot-manifest.json index 56e3417f6a87..f95b209c77bb 100644 --- a/google-cloud-kms-v1/.owlbot-manifest.json +++ b/google-cloud-kms-v1/.owlbot-manifest.json @@ -96,6 +96,7 @@ "snippets/key_management_service/create_crypto_key_version.rb", "snippets/key_management_service/create_import_job.rb", "snippets/key_management_service/create_key_ring.rb", + "snippets/key_management_service/decapsulate.rb", "snippets/key_management_service/decrypt.rb", "snippets/key_management_service/destroy_crypto_key_version.rb", "snippets/key_management_service/encrypt.rb", diff --git a/google-cloud-kms-v1/CHANGELOG.md b/google-cloud-kms-v1/CHANGELOG.md index f1ddef7a179d..b16678e6c6f8 100644 --- a/google-cloud-kms-v1/CHANGELOG.md +++ b/google-cloud-kms-v1/CHANGELOG.md @@ -1,5 +1,12 @@ # Release History +### 1.8.0 (2025-09-11) + +#### Features + +* Add PublicKeyFormat enums XWING_RAW_BYTES (used for KEM_XWING) and DER +* Support KEY_ENCAPSULATION purpose and quantum-safe algorithms ML_KEM_768, ML_KEM_1024 and KEM_XWING ([#31005](https://github.com/googleapis/google-cloud-ruby/issues/31005)) + ### 1.7.0 (2025-05-16) #### Features diff --git a/google-cloud-kms-v1/gapic_metadata.json b/google-cloud-kms-v1/gapic_metadata.json index 535e1446ce1e..66ecd2104b24 100644 --- a/google-cloud-kms-v1/gapic_metadata.json +++ b/google-cloud-kms-v1/gapic_metadata.json @@ -237,6 +237,11 @@ "mac_verify" ] }, + "Decapsulate": { + "methods": [ + "decapsulate" + ] + }, "GenerateRandomBytes": { "methods": [ "generate_random_bytes" diff --git a/google-cloud-kms-v1/google-cloud-kms-v1.gemspec b/google-cloud-kms-v1/google-cloud-kms-v1.gemspec index 55b42c85224b..d06423433584 100644 --- a/google-cloud-kms-v1/google-cloud-kms-v1.gemspec +++ b/google-cloud-kms-v1/google-cloud-kms-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/client.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/client.rb index 40e74e358b14..b4a964fe88da 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/client.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/client.rb @@ -3424,6 +3424,121 @@ def mac_verify request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Decapsulates data that was encapsulated with a public key retrieved from + # {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_public_key GetPublicKey} + # corresponding to a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} + # with {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose} + # KEY_ENCAPSULATION. + # + # @overload decapsulate(request, options = nil) + # Pass arguments to `decapsulate` via a request object, either of type + # {::Google::Cloud::Kms::V1::DecapsulateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Kms::V1::DecapsulateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload decapsulate(name: nil, ciphertext: nil, ciphertext_crc32c: nil) + # Pass arguments to `decapsulate` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the + # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to use for + # decapsulation. + # @param ciphertext [::String] + # Required. The ciphertext produced from encapsulation with the + # named {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} public + # key(s). + # @param ciphertext_crc32c [::Google::Protobuf::Int64Value, ::Hash] + # Optional. A CRC32C checksum of the + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext}. + # If specified, + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will + # verify the integrity of the received + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext} + # using this checksum. + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will + # report an error if the checksum verification fails. If you receive a + # checksum error, your client should verify that + # CRC32C({::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext}) + # is equal to + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext_crc32c DecapsulateRequest.ciphertext_crc32c}, + # and if so, perform a limited number of retries. A persistent mismatch may + # indicate an issue in your computation of the CRC32C checksum. Note: This + # field is defined as int64 for reasons of compatibility across different + # languages. However, it is a non-negative integer, which will never exceed + # 2^32-1, and can be safely downconverted to uint32 in languages that support + # this type. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Kms::V1::DecapsulateResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Kms::V1::DecapsulateResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/kms/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Kms::V1::KeyManagementService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Kms::V1::DecapsulateRequest.new + # + # # Call the decapsulate method. + # result = client.decapsulate request + # + # # The returned object is of type Google::Cloud::Kms::V1::DecapsulateResponse. + # p result + # + def decapsulate request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Kms::V1::DecapsulateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.decapsulate.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Kms::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.decapsulate.timeout, + metadata: metadata, + retry_policy: @config.rpcs.decapsulate.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @key_management_service_stub.call_rpc :decapsulate, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Generate random bytes using the Cloud KMS randomness source in the provided # location. @@ -3821,6 +3936,11 @@ class Rpcs # attr_reader :mac_verify ## + # RPC-specific configuration for `decapsulate` + # @return [::Gapic::Config::Method] + # + attr_reader :decapsulate + ## # RPC-specific configuration for `generate_random_bytes` # @return [::Gapic::Config::Method] # @@ -3882,6 +4002,8 @@ def initialize parent_rpcs = nil @mac_sign = ::Gapic::Config::Method.new mac_sign_config mac_verify_config = parent_rpcs.mac_verify if parent_rpcs.respond_to? :mac_verify @mac_verify = ::Gapic::Config::Method.new mac_verify_config + decapsulate_config = parent_rpcs.decapsulate if parent_rpcs.respond_to? :decapsulate + @decapsulate = ::Gapic::Config::Method.new decapsulate_config generate_random_bytes_config = parent_rpcs.generate_random_bytes if parent_rpcs.respond_to? :generate_random_bytes @generate_random_bytes = ::Gapic::Config::Method.new generate_random_bytes_config diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/client.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/client.rb index 26ba33b6c29f..7f76e3ca0cba 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/client.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/client.rb @@ -3230,6 +3230,114 @@ def mac_verify request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Decapsulates data that was encapsulated with a public key retrieved from + # {::Google::Cloud::Kms::V1::KeyManagementService::Rest::Client#get_public_key GetPublicKey} + # corresponding to a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} + # with {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose} + # KEY_ENCAPSULATION. + # + # @overload decapsulate(request, options = nil) + # Pass arguments to `decapsulate` via a request object, either of type + # {::Google::Cloud::Kms::V1::DecapsulateRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Kms::V1::DecapsulateRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload decapsulate(name: nil, ciphertext: nil, ciphertext_crc32c: nil) + # Pass arguments to `decapsulate` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the + # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to use for + # decapsulation. + # @param ciphertext [::String] + # Required. The ciphertext produced from encapsulation with the + # named {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} public + # key(s). + # @param ciphertext_crc32c [::Google::Protobuf::Int64Value, ::Hash] + # Optional. A CRC32C checksum of the + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext}. + # If specified, + # {::Google::Cloud::Kms::V1::KeyManagementService::Rest::Client KeyManagementService} will + # verify the integrity of the received + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext} + # using this checksum. + # {::Google::Cloud::Kms::V1::KeyManagementService::Rest::Client KeyManagementService} will + # report an error if the checksum verification fails. If you receive a + # checksum error, your client should verify that + # CRC32C({::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext}) + # is equal to + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext_crc32c DecapsulateRequest.ciphertext_crc32c}, + # and if so, perform a limited number of retries. A persistent mismatch may + # indicate an issue in your computation of the CRC32C checksum. Note: This + # field is defined as int64 for reasons of compatibility across different + # languages. However, it is a non-negative integer, which will never exceed + # 2^32-1, and can be safely downconverted to uint32 in languages that support + # this type. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Kms::V1::DecapsulateResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Kms::V1::DecapsulateResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/kms/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Kms::V1::KeyManagementService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Kms::V1::DecapsulateRequest.new + # + # # Call the decapsulate method. + # result = client.decapsulate request + # + # # The returned object is of type Google::Cloud::Kms::V1::DecapsulateResponse. + # p result + # + def decapsulate request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Kms::V1::DecapsulateRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.decapsulate.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Kms::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.decapsulate.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.decapsulate.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @key_management_service_stub.decapsulate request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Generate random bytes using the Cloud KMS randomness source in the provided # location. @@ -3607,6 +3715,11 @@ class Rpcs # attr_reader :mac_verify ## + # RPC-specific configuration for `decapsulate` + # @return [::Gapic::Config::Method] + # + attr_reader :decapsulate + ## # RPC-specific configuration for `generate_random_bytes` # @return [::Gapic::Config::Method] # @@ -3668,6 +3781,8 @@ def initialize parent_rpcs = nil @mac_sign = ::Gapic::Config::Method.new mac_sign_config mac_verify_config = parent_rpcs.mac_verify if parent_rpcs.respond_to? :mac_verify @mac_verify = ::Gapic::Config::Method.new mac_verify_config + decapsulate_config = parent_rpcs.decapsulate if parent_rpcs.respond_to? :decapsulate + @decapsulate = ::Gapic::Config::Method.new decapsulate_config generate_random_bytes_config = parent_rpcs.generate_random_bytes if parent_rpcs.respond_to? :generate_random_bytes @generate_random_bytes = ::Gapic::Config::Method.new generate_random_bytes_config diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/service_stub.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/service_stub.rb index 6b627146a447..4c0357da3a5f 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/service_stub.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/key_management_service/rest/service_stub.rb @@ -1153,6 +1153,46 @@ def mac_verify request_pb, options = nil end end + ## + # Baseline implementation for the decapsulate REST call + # + # @param request_pb [::Google::Cloud::Kms::V1::DecapsulateRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Kms::V1::DecapsulateResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Kms::V1::DecapsulateResponse] + # A result object deserialized from the server's reply + def decapsulate request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_decapsulate_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "decapsulate", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Kms::V1::DecapsulateResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the generate_random_bytes REST call # @@ -1778,6 +1818,28 @@ def self.transcode_mac_verify_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the decapsulate REST call + # + # @param request_pb [::Google::Cloud::Kms::V1::DecapsulateRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_decapsulate_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:decapsulate", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/resources_pb.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/resources_pb.rb index e81a466d7e09..8b797881c9af 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/resources_pb.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/resources_pb.rb @@ -11,7 +11,7 @@ require 'google/protobuf/wrappers_pb' -descriptor_data = "\n#google/cloud/kms/v1/resources.proto\x12\x13google.cloud.kms.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb5\x01\n\x07KeyRing\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:a\xea\x41^\n\x1f\x63loudkms.googleapis.com/KeyRing\x12;projects/{project}/locations/{location}/keyRings/{key_ring}\"\x91\x08\n\tCryptoKey\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12;\n\x07primary\x18\x02 \x01(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xe0\x41\x03\x12\x45\n\x07purpose\x18\x03 \x01(\x0e\x32/.google.cloud.kms.v1.CryptoKey.CryptoKeyPurposeB\x03\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\x12next_rotation_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x0frotation_period\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12G\n\x10version_template\x18\x0b \x01(\x0b\x32-.google.cloud.kms.v1.CryptoKeyVersionTemplate\x12:\n\x06labels\x18\n \x03(\x0b\x32*.google.cloud.kms.v1.CryptoKey.LabelsEntry\x12\x18\n\x0bimport_only\x18\r \x01(\x08\x42\x03\xe0\x41\x05\x12\x42\n\x1a\x64\x65stroy_scheduled_duration\x18\x0e \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x05\x12%\n\x12\x63rypto_key_backend\x18\x0f \x01(\tB\t\xe0\x41\x05\xfa\x41\x03\n\x01*\x12\x61\n key_access_justifications_policy\x18\x11 \x01(\x0b\x32\x32.google.cloud.kms.v1.KeyAccessJustificationsPolicyB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9a\x01\n\x10\x43ryptoKeyPurpose\x12\"\n\x1e\x43RYPTO_KEY_PURPOSE_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x45NCRYPT_DECRYPT\x10\x01\x12\x13\n\x0f\x41SYMMETRIC_SIGN\x10\x05\x12\x16\n\x12\x41SYMMETRIC_DECRYPT\x10\x06\x12\x17\n\x13RAW_ENCRYPT_DECRYPT\x10\x07\x12\x07\n\x03MAC\x10\t:{\xea\x41x\n!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}B\x13\n\x11rotation_schedule\"\xb3\x01\n\x18\x43ryptoKeyVersionTemplate\x12>\n\x10protection_level\x18\x01 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\x12W\n\talgorithm\x18\x03 \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xe0\x41\x02\"\xb1\x03\n\x17KeyOperationAttestation\x12S\n\x06\x66ormat\x18\x04 \x01(\x0e\x32>.google.cloud.kms.v1.KeyOperationAttestation.AttestationFormatB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x05 \x01(\x0c\x42\x03\xe0\x41\x03\x12X\n\x0b\x63\x65rt_chains\x18\x06 \x01(\x0b\x32>.google.cloud.kms.v1.KeyOperationAttestation.CertificateChainsB\x03\xe0\x41\x03\x1a\x64\n\x11\x43\x65rtificateChains\x12\x14\n\x0c\x63\x61vium_certs\x18\x01 \x03(\t\x12\x19\n\x11google_card_certs\x18\x02 \x03(\t\x12\x1e\n\x16google_partition_certs\x18\x03 \x03(\t\"k\n\x11\x41ttestationFormat\x12\"\n\x1e\x41TTESTATION_FORMAT_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43\x41VIUM_V1_COMPRESSED\x10\x03\x12\x18\n\x14\x43\x41VIUM_V2_COMPRESSED\x10\x04\"\xb7\x13\n\x10\x43ryptoKeyVersion\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12J\n\x05state\x18\x03 \x01(\x0e\x32;.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState\x12\x43\n\x10protection_level\x18\x07 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevelB\x03\xe0\x41\x03\x12W\n\talgorithm\x18\n \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xe0\x41\x03\x12\x46\n\x0b\x61ttestation\x18\x08 \x01(\x0b\x32,.google.cloud.kms.v1.KeyOperationAttestationB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rgenerate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x35\n\x0c\x64\x65stroy_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12;\n\x12\x64\x65stroy_event_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nimport_job\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0bimport_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\"\n\x15import_failure_reason\x18\x10 \x01(\tB\x03\xe0\x41\x03\x12&\n\x19generation_failure_reason\x18\x13 \x01(\tB\x03\xe0\x41\x03\x12\x30\n#external_destruction_failure_reason\x18\x14 \x01(\tB\x03\xe0\x41\x03\x12^\n!external_protection_level_options\x18\x11 \x01(\x0b\x32\x33.google.cloud.kms.v1.ExternalProtectionLevelOptions\x12\x1e\n\x11reimport_eligible\x18\x12 \x01(\x08\x42\x03\xe0\x41\x03\"\x98\x08\n\x19\x43ryptoKeyVersionAlgorithm\x12,\n(CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED\x10\x00\x12\x1f\n\x1bGOOGLE_SYMMETRIC_ENCRYPTION\x10\x01\x12\x0f\n\x0b\x41\x45S_128_GCM\x10)\x12\x0f\n\x0b\x41\x45S_256_GCM\x10\x13\x12\x0f\n\x0b\x41\x45S_128_CBC\x10*\x12\x0f\n\x0b\x41\x45S_256_CBC\x10+\x12\x0f\n\x0b\x41\x45S_128_CTR\x10,\x12\x0f\n\x0b\x41\x45S_256_CTR\x10-\x12\x1c\n\x18RSA_SIGN_PSS_2048_SHA256\x10\x02\x12\x1c\n\x18RSA_SIGN_PSS_3072_SHA256\x10\x03\x12\x1c\n\x18RSA_SIGN_PSS_4096_SHA256\x10\x04\x12\x1c\n\x18RSA_SIGN_PSS_4096_SHA512\x10\x0f\x12\x1e\n\x1aRSA_SIGN_PKCS1_2048_SHA256\x10\x05\x12\x1e\n\x1aRSA_SIGN_PKCS1_3072_SHA256\x10\x06\x12\x1e\n\x1aRSA_SIGN_PKCS1_4096_SHA256\x10\x07\x12\x1e\n\x1aRSA_SIGN_PKCS1_4096_SHA512\x10\x10\x12\x1b\n\x17RSA_SIGN_RAW_PKCS1_2048\x10\x1c\x12\x1b\n\x17RSA_SIGN_RAW_PKCS1_3072\x10\x1d\x12\x1b\n\x17RSA_SIGN_RAW_PKCS1_4096\x10\x1e\x12 \n\x1cRSA_DECRYPT_OAEP_2048_SHA256\x10\x08\x12 \n\x1cRSA_DECRYPT_OAEP_3072_SHA256\x10\t\x12 \n\x1cRSA_DECRYPT_OAEP_4096_SHA256\x10\n\x12 \n\x1cRSA_DECRYPT_OAEP_4096_SHA512\x10\x11\x12\x1e\n\x1aRSA_DECRYPT_OAEP_2048_SHA1\x10%\x12\x1e\n\x1aRSA_DECRYPT_OAEP_3072_SHA1\x10&\x12\x1e\n\x1aRSA_DECRYPT_OAEP_4096_SHA1\x10\'\x12\x17\n\x13\x45\x43_SIGN_P256_SHA256\x10\x0c\x12\x17\n\x13\x45\x43_SIGN_P384_SHA384\x10\r\x12\x1c\n\x18\x45\x43_SIGN_SECP256K1_SHA256\x10\x1f\x12\x13\n\x0f\x45\x43_SIGN_ED25519\x10(\x12\x0f\n\x0bHMAC_SHA256\x10 \x12\r\n\tHMAC_SHA1\x10!\x12\x0f\n\x0bHMAC_SHA384\x10\"\x12\x0f\n\x0bHMAC_SHA512\x10#\x12\x0f\n\x0bHMAC_SHA224\x10$\x12!\n\x1d\x45XTERNAL_SYMMETRIC_ENCRYPTION\x10\x12\x12\x15\n\x11PQ_SIGN_ML_DSA_65\x10\x38\x12\x1d\n\x19PQ_SIGN_SLH_DSA_SHA2_128S\x10\x39\"\x9b\x02\n\x15\x43ryptoKeyVersionState\x12(\n$CRYPTO_KEY_VERSION_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12PENDING_GENERATION\x10\x05\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\r\n\tDESTROYED\x10\x03\x12\x15\n\x11\x44\x45STROY_SCHEDULED\x10\x04\x12\x12\n\x0ePENDING_IMPORT\x10\x06\x12\x11\n\rIMPORT_FAILED\x10\x07\x12\x15\n\x11GENERATION_FAILED\x10\x08\x12 \n\x1cPENDING_EXTERNAL_DESTRUCTION\x10\t\x12\x1f\n\x1b\x45XTERNAL_DESTRUCTION_FAILED\x10\n\"I\n\x14\x43ryptoKeyVersionView\x12\'\n#CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01:\xaa\x01\xea\x41\xa6\x01\n(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}\"U\n\x0f\x43hecksummedData\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x34\n\x0f\x63rc32c_checksum\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\xee\x04\n\tPublicKey\x12\x0b\n\x03pem\x18\x01 \x01(\t\x12R\n\talgorithm\x18\x02 \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm\x12/\n\npem_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0c\n\x04name\x18\x04 \x01(\t\x12>\n\x10protection_level\x18\x05 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\x12I\n\x11public_key_format\x18\x07 \x01(\x0e\x32..google.cloud.kms.v1.PublicKey.PublicKeyFormat\x12\x38\n\npublic_key\x18\x08 \x01(\x0b\x32$.google.cloud.kms.v1.ChecksummedData\"K\n\x0fPublicKeyFormat\x12!\n\x1dPUBLIC_KEY_FORMAT_UNSPECIFIED\x10\x00\x12\x07\n\x03PEM\x10\x01\x12\x0c\n\x08NIST_PQC\x10\x03:\xae\x01\xea\x41\xaa\x01\n!cloudkms.googleapis.com/PublicKey\x12\x84\x01projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}/publicKey\"\xd4\x08\n\tImportJob\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12J\n\rimport_method\x18\x02 \x01(\x0e\x32+.google.cloud.kms.v1.ImportJob.ImportMethodB\x06\xe0\x41\x02\xe0\x41\x05\x12\x46\n\x10protection_level\x18\t \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevelB\x06\xe0\x41\x02\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rgenerate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12:\n\x11\x65xpire_event_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x41\n\x05state\x18\x06 \x01(\x0e\x32-.google.cloud.kms.v1.ImportJob.ImportJobStateB\x03\xe0\x41\x03\x12I\n\npublic_key\x18\x07 \x01(\x0b\x32\x30.google.cloud.kms.v1.ImportJob.WrappingPublicKeyB\x03\xe0\x41\x03\x12\x46\n\x0b\x61ttestation\x18\x08 \x01(\x0b\x32,.google.cloud.kms.v1.KeyOperationAttestationB\x03\xe0\x41\x03\x1a \n\x11WrappingPublicKey\x12\x0b\n\x03pem\x18\x01 \x01(\t\"\xe5\x01\n\x0cImportMethod\x12\x1d\n\x19IMPORT_METHOD_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRSA_OAEP_3072_SHA1_AES_256\x10\x01\x12\x1e\n\x1aRSA_OAEP_4096_SHA1_AES_256\x10\x02\x12 \n\x1cRSA_OAEP_3072_SHA256_AES_256\x10\x03\x12 \n\x1cRSA_OAEP_4096_SHA256_AES_256\x10\x04\x12\x18\n\x14RSA_OAEP_3072_SHA256\x10\x05\x12\x18\n\x14RSA_OAEP_4096_SHA256\x10\x06\"c\n\x0eImportJobState\x12 \n\x1cIMPORT_JOB_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12PENDING_GENERATION\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0b\n\x07\x45XPIRED\x10\x03:{\xea\x41x\n!cloudkms.googleapis.com/ImportJob\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/importJobs/{import_job}\"[\n\x1e\x45xternalProtectionLevelOptions\x12\x18\n\x10\x65xternal_key_uri\x18\x01 \x01(\t\x12\x1f\n\x17\x65km_connection_key_path\x18\x02 \x01(\t\"b\n\x1dKeyAccessJustificationsPolicy\x12\x41\n\x16\x61llowed_access_reasons\x18\x01 \x03(\x0e\x32!.google.cloud.kms.v1.AccessReason*j\n\x0fProtectionLevel\x12 \n\x1cPROTECTION_LEVEL_UNSPECIFIED\x10\x00\x12\x0c\n\x08SOFTWARE\x10\x01\x12\x07\n\x03HSM\x10\x02\x12\x0c\n\x08\x45XTERNAL\x10\x03\x12\x10\n\x0c\x45XTERNAL_VPC\x10\x04*\xab\x03\n\x0c\x41\x63\x63\x65ssReason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43USTOMER_INITIATED_SUPPORT\x10\x01\x12\x1c\n\x18GOOGLE_INITIATED_SERVICE\x10\x02\x12\x1c\n\x18THIRD_PARTY_DATA_REQUEST\x10\x03\x12\x1b\n\x17GOOGLE_INITIATED_REVIEW\x10\x04\x12\x1d\n\x19\x43USTOMER_INITIATED_ACCESS\x10\x05\x12%\n!GOOGLE_INITIATED_SYSTEM_OPERATION\x10\x06\x12\x17\n\x13REASON_NOT_EXPECTED\x10\x07\x12&\n\"MODIFIED_CUSTOMER_INITIATED_ACCESS\x10\x08\x12.\n*MODIFIED_GOOGLE_INITIATED_SYSTEM_OPERATION\x10\t\x12\'\n#GOOGLE_RESPONSE_TO_PRODUCTION_ALERT\x10\n\x12*\n&CUSTOMER_AUTHORIZED_WORKFLOW_SERVICING\x10\x0b\x42\x85\x01\n\x17\x63om.google.cloud.kms.v1B\x11KmsResourcesProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xaa\x02\x13Google.Cloud.Kms.V1\xca\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3" +descriptor_data = "\n#google/cloud/kms/v1/resources.proto\x12\x13google.cloud.kms.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb5\x01\n\x07KeyRing\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:a\xea\x41^\n\x1f\x63loudkms.googleapis.com/KeyRing\x12;projects/{project}/locations/{location}/keyRings/{key_ring}\"\xa8\x08\n\tCryptoKey\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12;\n\x07primary\x18\x02 \x01(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xe0\x41\x03\x12\x45\n\x07purpose\x18\x03 \x01(\x0e\x32/.google.cloud.kms.v1.CryptoKey.CryptoKeyPurposeB\x03\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\x12next_rotation_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x0frotation_period\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12G\n\x10version_template\x18\x0b \x01(\x0b\x32-.google.cloud.kms.v1.CryptoKeyVersionTemplate\x12:\n\x06labels\x18\n \x03(\x0b\x32*.google.cloud.kms.v1.CryptoKey.LabelsEntry\x12\x18\n\x0bimport_only\x18\r \x01(\x08\x42\x03\xe0\x41\x05\x12\x42\n\x1a\x64\x65stroy_scheduled_duration\x18\x0e \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x05\x12%\n\x12\x63rypto_key_backend\x18\x0f \x01(\tB\t\xe0\x41\x05\xfa\x41\x03\n\x01*\x12\x61\n key_access_justifications_policy\x18\x11 \x01(\x0b\x32\x32.google.cloud.kms.v1.KeyAccessJustificationsPolicyB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb1\x01\n\x10\x43ryptoKeyPurpose\x12\"\n\x1e\x43RYPTO_KEY_PURPOSE_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x45NCRYPT_DECRYPT\x10\x01\x12\x13\n\x0f\x41SYMMETRIC_SIGN\x10\x05\x12\x16\n\x12\x41SYMMETRIC_DECRYPT\x10\x06\x12\x17\n\x13RAW_ENCRYPT_DECRYPT\x10\x07\x12\x07\n\x03MAC\x10\t\x12\x15\n\x11KEY_ENCAPSULATION\x10\n:{\xea\x41x\n!cloudkms.googleapis.com/CryptoKey\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}B\x13\n\x11rotation_schedule\"\xb3\x01\n\x18\x43ryptoKeyVersionTemplate\x12>\n\x10protection_level\x18\x01 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\x12W\n\talgorithm\x18\x03 \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xe0\x41\x02\"\xb1\x03\n\x17KeyOperationAttestation\x12S\n\x06\x66ormat\x18\x04 \x01(\x0e\x32>.google.cloud.kms.v1.KeyOperationAttestation.AttestationFormatB\x03\xe0\x41\x03\x12\x14\n\x07\x63ontent\x18\x05 \x01(\x0c\x42\x03\xe0\x41\x03\x12X\n\x0b\x63\x65rt_chains\x18\x06 \x01(\x0b\x32>.google.cloud.kms.v1.KeyOperationAttestation.CertificateChainsB\x03\xe0\x41\x03\x1a\x64\n\x11\x43\x65rtificateChains\x12\x14\n\x0c\x63\x61vium_certs\x18\x01 \x03(\t\x12\x19\n\x11google_card_certs\x18\x02 \x03(\t\x12\x1e\n\x16google_partition_certs\x18\x03 \x03(\t\"k\n\x11\x41ttestationFormat\x12\"\n\x1e\x41TTESTATION_FORMAT_UNSPECIFIED\x10\x00\x12\x18\n\x14\x43\x41VIUM_V1_COMPRESSED\x10\x03\x12\x18\n\x14\x43\x41VIUM_V2_COMPRESSED\x10\x04\"\xe7\x13\n\x10\x43ryptoKeyVersion\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12J\n\x05state\x18\x03 \x01(\x0e\x32;.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState\x12\x43\n\x10protection_level\x18\x07 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevelB\x03\xe0\x41\x03\x12W\n\talgorithm\x18\n \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xe0\x41\x03\x12\x46\n\x0b\x61ttestation\x18\x08 \x01(\x0b\x32,.google.cloud.kms.v1.KeyOperationAttestationB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rgenerate_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x35\n\x0c\x64\x65stroy_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12;\n\x12\x64\x65stroy_event_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nimport_job\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0bimport_time\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\"\n\x15import_failure_reason\x18\x10 \x01(\tB\x03\xe0\x41\x03\x12&\n\x19generation_failure_reason\x18\x13 \x01(\tB\x03\xe0\x41\x03\x12\x30\n#external_destruction_failure_reason\x18\x14 \x01(\tB\x03\xe0\x41\x03\x12^\n!external_protection_level_options\x18\x11 \x01(\x0b\x32\x33.google.cloud.kms.v1.ExternalProtectionLevelOptions\x12\x1e\n\x11reimport_eligible\x18\x12 \x01(\x08\x42\x03\xe0\x41\x03\"\xc8\x08\n\x19\x43ryptoKeyVersionAlgorithm\x12,\n(CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED\x10\x00\x12\x1f\n\x1bGOOGLE_SYMMETRIC_ENCRYPTION\x10\x01\x12\x0f\n\x0b\x41\x45S_128_GCM\x10)\x12\x0f\n\x0b\x41\x45S_256_GCM\x10\x13\x12\x0f\n\x0b\x41\x45S_128_CBC\x10*\x12\x0f\n\x0b\x41\x45S_256_CBC\x10+\x12\x0f\n\x0b\x41\x45S_128_CTR\x10,\x12\x0f\n\x0b\x41\x45S_256_CTR\x10-\x12\x1c\n\x18RSA_SIGN_PSS_2048_SHA256\x10\x02\x12\x1c\n\x18RSA_SIGN_PSS_3072_SHA256\x10\x03\x12\x1c\n\x18RSA_SIGN_PSS_4096_SHA256\x10\x04\x12\x1c\n\x18RSA_SIGN_PSS_4096_SHA512\x10\x0f\x12\x1e\n\x1aRSA_SIGN_PKCS1_2048_SHA256\x10\x05\x12\x1e\n\x1aRSA_SIGN_PKCS1_3072_SHA256\x10\x06\x12\x1e\n\x1aRSA_SIGN_PKCS1_4096_SHA256\x10\x07\x12\x1e\n\x1aRSA_SIGN_PKCS1_4096_SHA512\x10\x10\x12\x1b\n\x17RSA_SIGN_RAW_PKCS1_2048\x10\x1c\x12\x1b\n\x17RSA_SIGN_RAW_PKCS1_3072\x10\x1d\x12\x1b\n\x17RSA_SIGN_RAW_PKCS1_4096\x10\x1e\x12 \n\x1cRSA_DECRYPT_OAEP_2048_SHA256\x10\x08\x12 \n\x1cRSA_DECRYPT_OAEP_3072_SHA256\x10\t\x12 \n\x1cRSA_DECRYPT_OAEP_4096_SHA256\x10\n\x12 \n\x1cRSA_DECRYPT_OAEP_4096_SHA512\x10\x11\x12\x1e\n\x1aRSA_DECRYPT_OAEP_2048_SHA1\x10%\x12\x1e\n\x1aRSA_DECRYPT_OAEP_3072_SHA1\x10&\x12\x1e\n\x1aRSA_DECRYPT_OAEP_4096_SHA1\x10\'\x12\x17\n\x13\x45\x43_SIGN_P256_SHA256\x10\x0c\x12\x17\n\x13\x45\x43_SIGN_P384_SHA384\x10\r\x12\x1c\n\x18\x45\x43_SIGN_SECP256K1_SHA256\x10\x1f\x12\x13\n\x0f\x45\x43_SIGN_ED25519\x10(\x12\x0f\n\x0bHMAC_SHA256\x10 \x12\r\n\tHMAC_SHA1\x10!\x12\x0f\n\x0bHMAC_SHA384\x10\"\x12\x0f\n\x0bHMAC_SHA512\x10#\x12\x0f\n\x0bHMAC_SHA224\x10$\x12!\n\x1d\x45XTERNAL_SYMMETRIC_ENCRYPTION\x10\x12\x12\x0e\n\nML_KEM_768\x10/\x12\x0f\n\x0bML_KEM_1024\x10\x30\x12\r\n\tKEM_XWING\x10?\x12\x15\n\x11PQ_SIGN_ML_DSA_65\x10\x38\x12\x1d\n\x19PQ_SIGN_SLH_DSA_SHA2_128S\x10\x39\"\x9b\x02\n\x15\x43ryptoKeyVersionState\x12(\n$CRYPTO_KEY_VERSION_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12PENDING_GENERATION\x10\x05\x12\x0b\n\x07\x45NABLED\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\r\n\tDESTROYED\x10\x03\x12\x15\n\x11\x44\x45STROY_SCHEDULED\x10\x04\x12\x12\n\x0ePENDING_IMPORT\x10\x06\x12\x11\n\rIMPORT_FAILED\x10\x07\x12\x15\n\x11GENERATION_FAILED\x10\x08\x12 \n\x1cPENDING_EXTERNAL_DESTRUCTION\x10\t\x12\x1f\n\x1b\x45XTERNAL_DESTRUCTION_FAILED\x10\n\"I\n\x14\x43ryptoKeyVersionView\x12\'\n#CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED\x10\x00\x12\x08\n\x04\x46ULL\x10\x01:\xaa\x01\xea\x41\xa6\x01\n(cloudkms.googleapis.com/CryptoKeyVersion\x12zprojects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}\"U\n\x0f\x43hecksummedData\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x34\n\x0f\x63rc32c_checksum\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"\x8c\x05\n\tPublicKey\x12\x0b\n\x03pem\x18\x01 \x01(\t\x12R\n\talgorithm\x18\x02 \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm\x12/\n\npem_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0c\n\x04name\x18\x04 \x01(\t\x12>\n\x10protection_level\x18\x05 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\x12I\n\x11public_key_format\x18\x07 \x01(\x0e\x32..google.cloud.kms.v1.PublicKey.PublicKeyFormat\x12\x38\n\npublic_key\x18\x08 \x01(\x0b\x32$.google.cloud.kms.v1.ChecksummedData\"i\n\x0fPublicKeyFormat\x12!\n\x1dPUBLIC_KEY_FORMAT_UNSPECIFIED\x10\x00\x12\x07\n\x03PEM\x10\x01\x12\x07\n\x03\x44\x45R\x10\x02\x12\x0c\n\x08NIST_PQC\x10\x03\x12\x13\n\x0fXWING_RAW_BYTES\x10\x04:\xae\x01\xea\x41\xaa\x01\n!cloudkms.googleapis.com/PublicKey\x12\x84\x01projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}/publicKey\"\xd4\x08\n\tImportJob\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12J\n\rimport_method\x18\x02 \x01(\x0e\x32+.google.cloud.kms.v1.ImportJob.ImportMethodB\x06\xe0\x41\x02\xe0\x41\x05\x12\x46\n\x10protection_level\x18\t \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevelB\x06\xe0\x41\x02\xe0\x41\x05\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x36\n\rgenerate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12:\n\x11\x65xpire_event_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x41\n\x05state\x18\x06 \x01(\x0e\x32-.google.cloud.kms.v1.ImportJob.ImportJobStateB\x03\xe0\x41\x03\x12I\n\npublic_key\x18\x07 \x01(\x0b\x32\x30.google.cloud.kms.v1.ImportJob.WrappingPublicKeyB\x03\xe0\x41\x03\x12\x46\n\x0b\x61ttestation\x18\x08 \x01(\x0b\x32,.google.cloud.kms.v1.KeyOperationAttestationB\x03\xe0\x41\x03\x1a \n\x11WrappingPublicKey\x12\x0b\n\x03pem\x18\x01 \x01(\t\"\xe5\x01\n\x0cImportMethod\x12\x1d\n\x19IMPORT_METHOD_UNSPECIFIED\x10\x00\x12\x1e\n\x1aRSA_OAEP_3072_SHA1_AES_256\x10\x01\x12\x1e\n\x1aRSA_OAEP_4096_SHA1_AES_256\x10\x02\x12 \n\x1cRSA_OAEP_3072_SHA256_AES_256\x10\x03\x12 \n\x1cRSA_OAEP_4096_SHA256_AES_256\x10\x04\x12\x18\n\x14RSA_OAEP_3072_SHA256\x10\x05\x12\x18\n\x14RSA_OAEP_4096_SHA256\x10\x06\"c\n\x0eImportJobState\x12 \n\x1cIMPORT_JOB_STATE_UNSPECIFIED\x10\x00\x12\x16\n\x12PENDING_GENERATION\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0b\n\x07\x45XPIRED\x10\x03:{\xea\x41x\n!cloudkms.googleapis.com/ImportJob\x12Sprojects/{project}/locations/{location}/keyRings/{key_ring}/importJobs/{import_job}\"[\n\x1e\x45xternalProtectionLevelOptions\x12\x18\n\x10\x65xternal_key_uri\x18\x01 \x01(\t\x12\x1f\n\x17\x65km_connection_key_path\x18\x02 \x01(\t\"b\n\x1dKeyAccessJustificationsPolicy\x12\x41\n\x16\x61llowed_access_reasons\x18\x01 \x03(\x0e\x32!.google.cloud.kms.v1.AccessReason*j\n\x0fProtectionLevel\x12 \n\x1cPROTECTION_LEVEL_UNSPECIFIED\x10\x00\x12\x0c\n\x08SOFTWARE\x10\x01\x12\x07\n\x03HSM\x10\x02\x12\x0c\n\x08\x45XTERNAL\x10\x03\x12\x10\n\x0c\x45XTERNAL_VPC\x10\x04*\xab\x03\n\x0c\x41\x63\x63\x65ssReason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43USTOMER_INITIATED_SUPPORT\x10\x01\x12\x1c\n\x18GOOGLE_INITIATED_SERVICE\x10\x02\x12\x1c\n\x18THIRD_PARTY_DATA_REQUEST\x10\x03\x12\x1b\n\x17GOOGLE_INITIATED_REVIEW\x10\x04\x12\x1d\n\x19\x43USTOMER_INITIATED_ACCESS\x10\x05\x12%\n!GOOGLE_INITIATED_SYSTEM_OPERATION\x10\x06\x12\x17\n\x13REASON_NOT_EXPECTED\x10\x07\x12&\n\"MODIFIED_CUSTOMER_INITIATED_ACCESS\x10\x08\x12.\n*MODIFIED_GOOGLE_INITIATED_SYSTEM_OPERATION\x10\t\x12\'\n#GOOGLE_RESPONSE_TO_PRODUCTION_ALERT\x10\n\x12*\n&CUSTOMER_AUTHORIZED_WORKFLOW_SERVICING\x10\x0b\x42\x85\x01\n\x17\x63om.google.cloud.kms.v1B\x11KmsResourcesProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xaa\x02\x13Google.Cloud.Kms.V1\xca\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_pb.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_pb.rb index 555fe449fae5..e7bd6f0dc2d9 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_pb.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_pb.rb @@ -13,7 +13,7 @@ require 'google/protobuf/wrappers_pb' -descriptor_data = "\n!google/cloud/kms/v1/service.proto\x12\x13google.cloud.kms.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/kms/v1/resources.proto\x1a google/protobuf/field_mask.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xad\x01\n\x13ListKeyRingsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xff\x01\n\x15ListCryptoKeysRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12P\n\x0cversion_view\x18\x04 \x01(\x0e\x32:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\x80\x02\n\x1cListCryptoKeyVersionsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12H\n\x04view\x18\x04 \x01(\x0e\x32:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xad\x01\n\x15ListImportJobsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"t\n\x14ListKeyRingsResponse\x12/\n\tkey_rings\x18\x01 \x03(\x0b\x32\x1c.google.cloud.kms.v1.KeyRing\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"z\n\x16ListCryptoKeysResponse\x12\x33\n\x0b\x63rypto_keys\x18\x01 \x03(\x0b\x32\x1e.google.cloud.kms.v1.CryptoKey\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"\x90\x01\n\x1dListCryptoKeyVersionsResponse\x12\x42\n\x13\x63rypto_key_versions\x18\x01 \x03(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"z\n\x16ListImportJobsResponse\x12\x33\n\x0bimport_jobs\x18\x01 \x03(\x0b\x32\x1e.google.cloud.kms.v1.ImportJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"J\n\x11GetKeyRingRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\"N\n\x13GetCryptoKeyRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\"\\\n\x1aGetCryptoKeyVersionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"\xa5\x01\n\x13GetPublicKeyRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12N\n\x11public_key_format\x18\x02 \x01(\x0e\x32..google.cloud.kms.v1.PublicKey.PublicKeyFormatB\x03\xe0\x41\x01\"N\n\x13GetImportJobRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/ImportJob\"\xa0\x01\n\x14\x43reateKeyRingRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x18\n\x0bkey_ring_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x08key_ring\x18\x03 \x01(\x0b\x32\x1c.google.cloud.kms.v1.KeyRingB\x03\xe0\x41\x02\"\xcd\x01\n\x16\x43reateCryptoKeyRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x1a\n\rcrypto_key_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\ncrypto_key\x18\x03 \x01(\x0b\x32\x1e.google.cloud.kms.v1.CryptoKeyB\x03\xe0\x41\x02\x12%\n\x1dskip_initial_version_creation\x18\x05 \x01(\x08\"\xa2\x01\n\x1d\x43reateCryptoKeyVersionRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x46\n\x12\x63rypto_key_version\x18\x02 \x01(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xe0\x41\x02\"\xf0\x02\n\x1dImportCryptoKeyVersionRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12L\n\x12\x63rypto_key_version\x18\x06 \x01(\tB0\xe0\x41\x01\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12W\n\talgorithm\x18\x02 \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xe0\x41\x02\x12\x17\n\nimport_job\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bwrapped_key\x18\x08 \x01(\x0c\x42\x03\xe0\x41\x01\x12\"\n\x13rsa_aes_wrapped_key\x18\x05 \x01(\x0c\x42\x03\xe0\x41\x01H\x00\x42\x16\n\x14wrapped_key_material\"\xa6\x01\n\x16\x43reateImportJobRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x1a\n\rimport_job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\nimport_job\x18\x03 \x01(\x0b\x32\x1e.google.cloud.kms.v1.ImportJobB\x03\xe0\x41\x02\"\x87\x01\n\x16UpdateCryptoKeyRequest\x12\x37\n\ncrypto_key\x18\x01 \x01(\x0b\x32\x1e.google.cloud.kms.v1.CryptoKeyB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"\x9d\x01\n\x1dUpdateCryptoKeyVersionRequest\x12\x46\n\x12\x63rypto_key_version\x18\x01 \x01(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"\x83\x01\n$UpdateCryptoKeyPrimaryVersionRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\"\n\x15\x63rypto_key_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"`\n\x1e\x44\x65stroyCryptoKeyVersionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"`\n\x1eRestoreCryptoKeyVersionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"\xf9\x01\n\x0e\x45ncryptRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12\x16\n\tplaintext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12:\n\x10plaintext_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x9b\x02\n\x0e\x44\x65\x63ryptRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x17\n\nciphertext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12;\n\x11\x63iphertext_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xe2\x02\n\x11RawEncryptRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tplaintext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12:\n\x10plaintext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\"\n\x15initialization_vector\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x46\n\x1cinitialization_vector_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xf8\x02\n\x11RawDecryptRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nciphertext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12\"\n\x15initialization_vector\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x12\n\ntag_length\x18\x05 \x01(\x05\x12;\n\x11\x63iphertext_crc32c\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\x46\n\x1cinitialization_vector_crc32c\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x8c\x02\n\x15\x41symmetricSignRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x30\n\x06\x64igest\x18\x03 \x01(\x0b\x32\x1b.google.cloud.kms.v1.DigestB\x03\xe0\x41\x01\x12\x37\n\rdigest_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\x11\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x35\n\x0b\x64\x61ta_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xb0\x01\n\x18\x41symmetricDecryptRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\n\nciphertext\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x02\x12;\n\x11\x63iphertext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x9a\x01\n\x0eMacSignRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x35\n\x0b\x64\x61ta_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xe4\x01\n\x10MacVerifyRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x35\n\x0b\x64\x61ta_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\x10\n\x03mac\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x34\n\nmac_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x84\x01\n\x1aGenerateRandomBytesRequest\x12\x10\n\x08location\x18\x01 \x01(\t\x12\x14\n\x0clength_bytes\x18\x02 \x01(\x05\x12>\n\x10protection_level\x18\x03 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\x85\x02\n\x0f\x45ncryptResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nciphertext\x18\x02 \x01(\x0c\x12\x36\n\x11\x63iphertext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12!\n\x19verified_plaintext_crc32c\x18\x05 \x01(\x08\x12\x35\n-verified_additional_authenticated_data_crc32c\x18\x06 \x01(\x08\x12>\n\x10protection_level\x18\x07 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xb1\x01\n\x0f\x44\x65\x63ryptResponse\x12\x11\n\tplaintext\x18\x01 \x01(\x0c\x12\x35\n\x10plaintext_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x14\n\x0cused_primary\x18\x03 \x01(\x08\x12>\n\x10protection_level\x18\x04 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xad\x03\n\x12RawEncryptResponse\x12\x12\n\nciphertext\x18\x01 \x01(\x0c\x12\x1d\n\x15initialization_vector\x18\x02 \x01(\x0c\x12\x12\n\ntag_length\x18\x03 \x01(\x05\x12\x36\n\x11\x63iphertext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x41\n\x1cinitialization_vector_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12!\n\x19verified_plaintext_crc32c\x18\x06 \x01(\x08\x12\x35\n-verified_additional_authenticated_data_crc32c\x18\x07 \x01(\x08\x12-\n%verified_initialization_vector_crc32c\x18\n \x01(\x08\x12\x0c\n\x04name\x18\x08 \x01(\t\x12>\n\x10protection_level\x18\t \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xa8\x02\n\x12RawDecryptResponse\x12\x11\n\tplaintext\x18\x01 \x01(\x0c\x12\x35\n\x10plaintext_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x10protection_level\x18\x03 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\x12\"\n\x1averified_ciphertext_crc32c\x18\x04 \x01(\x08\x12\x35\n-verified_additional_authenticated_data_crc32c\x18\x05 \x01(\x08\x12-\n%verified_initialization_vector_crc32c\x18\x06 \x01(\x08\"\xee\x01\n\x16\x41symmetricSignResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x35\n\x10signature_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1e\n\x16verified_digest_crc32c\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1c\n\x14verified_data_crc32c\x18\x05 \x01(\x08\x12>\n\x10protection_level\x18\x06 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xc9\x01\n\x19\x41symmetricDecryptResponse\x12\x11\n\tplaintext\x18\x01 \x01(\x0c\x12\x35\n\x10plaintext_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\"\n\x1averified_ciphertext_crc32c\x18\x03 \x01(\x08\x12>\n\x10protection_level\x18\x04 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xbb\x01\n\x0fMacSignResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03mac\x18\x02 \x01(\x0c\x12/\n\nmac_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1c\n\x14verified_data_crc32c\x18\x04 \x01(\x08\x12>\n\x10protection_level\x18\x05 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xd1\x01\n\x11MacVerifyResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x1c\n\x14verified_data_crc32c\x18\x03 \x01(\x08\x12\x1b\n\x13verified_mac_crc32c\x18\x04 \x01(\x08\x12\"\n\x1averified_success_integrity\x18\x05 \x01(\x08\x12>\n\x10protection_level\x18\x06 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"]\n\x1bGenerateRandomBytesResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x30\n\x0b\x64\x61ta_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"H\n\x06\x44igest\x12\x10\n\x06sha256\x18\x01 \x01(\x0cH\x00\x12\x10\n\x06sha384\x18\x02 \x01(\x0cH\x00\x12\x10\n\x06sha512\x18\x03 \x01(\x0cH\x00\x42\x08\n\x06\x64igest\"@\n\x10LocationMetadata\x12\x15\n\rhsm_available\x18\x01 \x01(\x08\x12\x15\n\rekm_available\x18\x02 \x01(\x08\x32\x90.\n\x14KeyManagementService\x12\xa2\x01\n\x0cListKeyRings\x12(.google.cloud.kms.v1.ListKeyRingsRequest\x1a).google.cloud.kms.v1.ListKeyRingsResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/keyRings\x12\xb5\x01\n\x0eListCryptoKeys\x12*.google.cloud.kms.v1.ListCryptoKeysRequest\x1a+.google.cloud.kms.v1.ListCryptoKeysResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys\x12\xde\x01\n\x15ListCryptoKeyVersions\x12\x31.google.cloud.kms.v1.ListCryptoKeyVersionsRequest\x1a\x32.google.cloud.kms.v1.ListCryptoKeyVersionsResponse\"^\xda\x41\x06parent\x82\xd3\xe4\x93\x02O\x12M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions\x12\xb5\x01\n\x0eListImportJobs\x12*.google.cloud.kms.v1.ListImportJobsRequest\x1a+.google.cloud.kms.v1.ListImportJobsResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs\x12\x8f\x01\n\nGetKeyRing\x12&.google.cloud.kms.v1.GetKeyRingRequest\x1a\x1c.google.cloud.kms.v1.KeyRing\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/keyRings/*}\x12\xa2\x01\n\x0cGetCryptoKey\x12(.google.cloud.kms.v1.GetCryptoKeyRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}\x12\xcb\x01\n\x13GetCryptoKeyVersion\x12/.google.cloud.kms.v1.GetCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"\\\xda\x41\x04name\x82\xd3\xe4\x93\x02O\x12M/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}\x12\xc0\x01\n\x0cGetPublicKey\x12(.google.cloud.kms.v1.GetPublicKeyRequest\x1a\x1e.google.cloud.kms.v1.PublicKey\"f\xda\x41\x04name\x82\xd3\xe4\x93\x02Y\x12W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}/publicKey\x12\xa2\x01\n\x0cGetImportJob\x12(.google.cloud.kms.v1.GetImportJobRequest\x1a\x1e.google.cloud.kms.v1.ImportJob\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/keyRings/*/importJobs/*}\x12\xb6\x01\n\rCreateKeyRing\x12).google.cloud.kms.v1.CreateKeyRingRequest\x1a\x1c.google.cloud.kms.v1.KeyRing\"\\\xda\x41\x1bparent,key_ring_id,key_ring\x82\xd3\xe4\x93\x02\x38\",/v1/{parent=projects/*/locations/*}/keyRings:\x08key_ring\x12\xcf\x01\n\x0f\x43reateCryptoKey\x12+.google.cloud.kms.v1.CreateCryptoKeyRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"o\xda\x41\x1fparent,crypto_key_id,crypto_key\x82\xd3\xe4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys:\ncrypto_key\x12\xfb\x01\n\x16\x43reateCryptoKeyVersion\x12\x32.google.cloud.kms.v1.CreateCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"\x85\x01\xda\x41\x19parent,crypto_key_version\x82\xd3\xe4\x93\x02\x63\"M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:\x12\x63rypto_key_version\x12\xd4\x01\n\x16ImportCryptoKeyVersion\x12\x32.google.cloud.kms.v1.ImportCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"_\x82\xd3\xe4\x93\x02Y\"T/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import:\x01*\x12\xcf\x01\n\x0f\x43reateImportJob\x12+.google.cloud.kms.v1.CreateImportJobRequest\x1a\x1e.google.cloud.kms.v1.ImportJob\"o\xda\x41\x1fparent,import_job_id,import_job\x82\xd3\xe4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs:\nimport_job\x12\xd1\x01\n\x0fUpdateCryptoKey\x12+.google.cloud.kms.v1.UpdateCryptoKeyRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"q\xda\x41\x16\x63rypto_key,update_mask\x82\xd3\xe4\x93\x02R2D/v1/{crypto_key.name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:\ncrypto_key\x12\x93\x02\n\x16UpdateCryptoKeyVersion\x12\x32.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"\x9d\x01\xda\x41\x1e\x63rypto_key_version,update_mask\x82\xd3\xe4\x93\x02v2`/v1/{crypto_key_version.name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:\x12\x63rypto_key_version\x12\xf2\x01\n\x1dUpdateCryptoKeyPrimaryVersion\x12\x39.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"v\xda\x41\x1aname,crypto_key_version_id\x82\xd3\xe4\x93\x02S\"N/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:updatePrimaryVersion:\x01*\x12\xde\x01\n\x17\x44\x65stroyCryptoKeyVersion\x12\x33.google.cloud.kms.v1.DestroyCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"g\xda\x41\x04name\x82\xd3\xe4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:destroy:\x01*\x12\xde\x01\n\x17RestoreCryptoKeyVersion\x12\x33.google.cloud.kms.v1.RestoreCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"g\xda\x41\x04name\x82\xd3\xe4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:restore:\x01*\x12\xb4\x01\n\x07\x45ncrypt\x12#.google.cloud.kms.v1.EncryptRequest\x1a$.google.cloud.kms.v1.EncryptResponse\"^\xda\x41\x0ename,plaintext\x82\xd3\xe4\x93\x02G\"B/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/**}:encrypt:\x01*\x12\xb4\x01\n\x07\x44\x65\x63rypt\x12#.google.cloud.kms.v1.DecryptRequest\x1a$.google.cloud.kms.v1.DecryptResponse\"^\xda\x41\x0fname,ciphertext\x82\xd3\xe4\x93\x02\x46\"A/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:decrypt:\x01*\x12\xc2\x01\n\nRawEncrypt\x12&.google.cloud.kms.v1.RawEncryptRequest\x1a\'.google.cloud.kms.v1.RawEncryptResponse\"c\x82\xd3\xe4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawEncrypt:\x01*\x12\xc2\x01\n\nRawDecrypt\x12&.google.cloud.kms.v1.RawDecryptRequest\x1a\'.google.cloud.kms.v1.RawDecryptResponse\"c\x82\xd3\xe4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawDecrypt:\x01*\x12\xe0\x01\n\x0e\x41symmetricSign\x12*.google.cloud.kms.v1.AsymmetricSignRequest\x1a+.google.cloud.kms.v1.AsymmetricSignResponse\"u\xda\x41\x0bname,digest\x82\xd3\xe4\x93\x02\x61\"\\/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricSign:\x01*\x12\xf0\x01\n\x11\x41symmetricDecrypt\x12-.google.cloud.kms.v1.AsymmetricDecryptRequest\x1a..google.cloud.kms.v1.AsymmetricDecryptResponse\"|\xda\x41\x0fname,ciphertext\x82\xd3\xe4\x93\x02\x64\"_/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricDecrypt:\x01*\x12\xc2\x01\n\x07MacSign\x12#.google.cloud.kms.v1.MacSignRequest\x1a$.google.cloud.kms.v1.MacSignResponse\"l\xda\x41\tname,data\x82\xd3\xe4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macSign:\x01*\x12\xce\x01\n\tMacVerify\x12%.google.cloud.kms.v1.MacVerifyRequest\x1a&.google.cloud.kms.v1.MacVerifyResponse\"r\xda\x41\rname,data,mac\x82\xd3\xe4\x93\x02\\\"W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macVerify:\x01*\x12\xe7\x01\n\x13GenerateRandomBytes\x12/.google.cloud.kms.v1.GenerateRandomBytesRequest\x1a\x30.google.cloud.kms.v1.GenerateRandomBytesResponse\"m\xda\x41&location,length_bytes,protection_level\x82\xd3\xe4\x93\x02>\"9/v1/{location=projects/*/locations/*}:generateRandomBytes:\x01*\x1at\xca\x41\x17\x63loudkms.googleapis.com\xd2\x41Whttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloudkmsB|\n\x17\x63om.google.cloud.kms.v1B\x08KmsProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xaa\x02\x13Google.Cloud.Kms.V1\xca\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3" +descriptor_data = "\n!google/cloud/kms/v1/service.proto\x12\x13google.cloud.kms.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/kms/v1/resources.proto\x1a google/protobuf/field_mask.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xad\x01\n\x13ListKeyRingsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xff\x01\n\x15ListCryptoKeysRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12P\n\x0cversion_view\x18\x04 \x01(\x0e\x32:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\x80\x02\n\x1cListCryptoKeyVersionsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12H\n\x04view\x18\x04 \x01(\x0e\x32:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xad\x01\n\x15ListImportJobsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"t\n\x14ListKeyRingsResponse\x12/\n\tkey_rings\x18\x01 \x03(\x0b\x32\x1c.google.cloud.kms.v1.KeyRing\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"z\n\x16ListCryptoKeysResponse\x12\x33\n\x0b\x63rypto_keys\x18\x01 \x03(\x0b\x32\x1e.google.cloud.kms.v1.CryptoKey\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"\x90\x01\n\x1dListCryptoKeyVersionsResponse\x12\x42\n\x13\x63rypto_key_versions\x18\x01 \x03(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"z\n\x16ListImportJobsResponse\x12\x33\n\x0bimport_jobs\x18\x01 \x03(\x0b\x32\x1e.google.cloud.kms.v1.ImportJob\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x12\n\ntotal_size\x18\x03 \x01(\x05\"J\n\x11GetKeyRingRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\"N\n\x13GetCryptoKeyRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\"\\\n\x1aGetCryptoKeyVersionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"\xa5\x01\n\x13GetPublicKeyRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12N\n\x11public_key_format\x18\x02 \x01(\x0e\x32..google.cloud.kms.v1.PublicKey.PublicKeyFormatB\x03\xe0\x41\x01\"N\n\x13GetImportJobRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/ImportJob\"\xa0\x01\n\x14\x43reateKeyRingRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x18\n\x0bkey_ring_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x08key_ring\x18\x03 \x01(\x0b\x32\x1c.google.cloud.kms.v1.KeyRingB\x03\xe0\x41\x02\"\xcd\x01\n\x16\x43reateCryptoKeyRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x1a\n\rcrypto_key_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\ncrypto_key\x18\x03 \x01(\x0b\x32\x1e.google.cloud.kms.v1.CryptoKeyB\x03\xe0\x41\x02\x12%\n\x1dskip_initial_version_creation\x18\x05 \x01(\x08\"\xa2\x01\n\x1d\x43reateCryptoKeyVersionRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x46\n\x12\x63rypto_key_version\x18\x02 \x01(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xe0\x41\x02\"\xf0\x02\n\x1dImportCryptoKeyVersionRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12L\n\x12\x63rypto_key_version\x18\x06 \x01(\tB0\xe0\x41\x01\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12W\n\talgorithm\x18\x02 \x01(\x0e\x32?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xe0\x41\x02\x12\x17\n\nimport_job\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bwrapped_key\x18\x08 \x01(\x0c\x42\x03\xe0\x41\x01\x12\"\n\x13rsa_aes_wrapped_key\x18\x05 \x01(\x0c\x42\x03\xe0\x41\x01H\x00\x42\x16\n\x14wrapped_key_material\"\xa6\x01\n\x16\x43reateImportJobRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1f\x63loudkms.googleapis.com/KeyRing\x12\x1a\n\rimport_job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\nimport_job\x18\x03 \x01(\x0b\x32\x1e.google.cloud.kms.v1.ImportJobB\x03\xe0\x41\x02\"\x87\x01\n\x16UpdateCryptoKeyRequest\x12\x37\n\ncrypto_key\x18\x01 \x01(\x0b\x32\x1e.google.cloud.kms.v1.CryptoKeyB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"\x9d\x01\n\x1dUpdateCryptoKeyVersionRequest\x12\x46\n\x12\x63rypto_key_version\x18\x01 \x01(\x0b\x32%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"\x83\x01\n$UpdateCryptoKeyPrimaryVersionRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\"\n\x15\x63rypto_key_version_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"`\n\x1e\x44\x65stroyCryptoKeyVersionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"`\n\x1eRestoreCryptoKeyVersionRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\"\xf9\x01\n\x0e\x45ncryptRequest\x12\x17\n\x04name\x18\x01 \x01(\tB\t\xe0\x41\x02\xfa\x41\x03\n\x01*\x12\x16\n\tplaintext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12:\n\x10plaintext_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x9b\x02\n\x0e\x44\x65\x63ryptRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\x12\x17\n\nciphertext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12;\n\x11\x63iphertext_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xe2\x02\n\x11RawEncryptRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tplaintext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12:\n\x10plaintext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\"\n\x15initialization_vector\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x46\n\x1cinitialization_vector_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xf8\x02\n\x11RawDecryptRequest\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nciphertext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12*\n\x1d\x61\x64\x64itional_authenticated_data\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\x12\"\n\x15initialization_vector\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x12\n\ntag_length\x18\x05 \x01(\x05\x12;\n\x11\x63iphertext_crc32c\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12N\n$additional_authenticated_data_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\x46\n\x1cinitialization_vector_crc32c\x18\x08 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x8c\x02\n\x15\x41symmetricSignRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x30\n\x06\x64igest\x18\x03 \x01(\x0b\x32\x1b.google.cloud.kms.v1.DigestB\x03\xe0\x41\x01\x12\x37\n\rdigest_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\x11\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x42\x03\xe0\x41\x01\x12\x35\n\x0b\x64\x61ta_crc32c\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xb0\x01\n\x18\x41symmetricDecryptRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\n\nciphertext\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x02\x12;\n\x11\x63iphertext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x9a\x01\n\x0eMacSignRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x35\n\x0b\x64\x61ta_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xe4\x01\n\x10MacVerifyRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x35\n\x0b\x64\x61ta_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\x12\x10\n\x03mac\x18\x04 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x34\n\nmac_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\xaa\x01\n\x12\x44\x65\x63\x61psulateRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\n\nciphertext\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12;\n\x11\x63iphertext_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64ValueB\x03\xe0\x41\x01\"\x84\x01\n\x1aGenerateRandomBytesRequest\x12\x10\n\x08location\x18\x01 \x01(\t\x12\x14\n\x0clength_bytes\x18\x02 \x01(\x05\x12>\n\x10protection_level\x18\x03 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\x85\x02\n\x0f\x45ncryptResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nciphertext\x18\x02 \x01(\x0c\x12\x36\n\x11\x63iphertext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12!\n\x19verified_plaintext_crc32c\x18\x05 \x01(\x08\x12\x35\n-verified_additional_authenticated_data_crc32c\x18\x06 \x01(\x08\x12>\n\x10protection_level\x18\x07 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xb1\x01\n\x0f\x44\x65\x63ryptResponse\x12\x11\n\tplaintext\x18\x01 \x01(\x0c\x12\x35\n\x10plaintext_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x14\n\x0cused_primary\x18\x03 \x01(\x08\x12>\n\x10protection_level\x18\x04 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xad\x03\n\x12RawEncryptResponse\x12\x12\n\nciphertext\x18\x01 \x01(\x0c\x12\x1d\n\x15initialization_vector\x18\x02 \x01(\x0c\x12\x12\n\ntag_length\x18\x03 \x01(\x05\x12\x36\n\x11\x63iphertext_crc32c\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x41\n\x1cinitialization_vector_crc32c\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12!\n\x19verified_plaintext_crc32c\x18\x06 \x01(\x08\x12\x35\n-verified_additional_authenticated_data_crc32c\x18\x07 \x01(\x08\x12-\n%verified_initialization_vector_crc32c\x18\n \x01(\x08\x12\x0c\n\x04name\x18\x08 \x01(\t\x12>\n\x10protection_level\x18\t \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xa8\x02\n\x12RawDecryptResponse\x12\x11\n\tplaintext\x18\x01 \x01(\x0c\x12\x35\n\x10plaintext_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x10protection_level\x18\x03 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\x12\"\n\x1averified_ciphertext_crc32c\x18\x04 \x01(\x08\x12\x35\n-verified_additional_authenticated_data_crc32c\x18\x05 \x01(\x08\x12-\n%verified_initialization_vector_crc32c\x18\x06 \x01(\x08\"\xee\x01\n\x16\x41symmetricSignResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x35\n\x10signature_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1e\n\x16verified_digest_crc32c\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1c\n\x14verified_data_crc32c\x18\x05 \x01(\x08\x12>\n\x10protection_level\x18\x06 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xc9\x01\n\x19\x41symmetricDecryptResponse\x12\x11\n\tplaintext\x18\x01 \x01(\x0c\x12\x35\n\x10plaintext_crc32c\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\"\n\x1averified_ciphertext_crc32c\x18\x03 \x01(\x08\x12>\n\x10protection_level\x18\x04 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xbb\x01\n\x0fMacSignResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03mac\x18\x02 \x01(\x0c\x12/\n\nmac_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1c\n\x14verified_data_crc32c\x18\x04 \x01(\x08\x12>\n\x10protection_level\x18\x05 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xd1\x01\n\x11MacVerifyResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x1c\n\x14verified_data_crc32c\x18\x03 \x01(\x08\x12\x1b\n\x13verified_mac_crc32c\x18\x04 \x01(\x08\x12\"\n\x1averified_success_integrity\x18\x05 \x01(\x08\x12>\n\x10protection_level\x18\x06 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevel\"\xda\x01\n\x13\x44\x65\x63\x61psulateResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rshared_secret\x18\x02 \x01(\x0c\x12!\n\x14shared_secret_crc32c\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\"\n\x1averified_ciphertext_crc32c\x18\x04 \x01(\x08\x12>\n\x10protection_level\x18\x05 \x01(\x0e\x32$.google.cloud.kms.v1.ProtectionLevelB\x17\n\x15_shared_secret_crc32c\"]\n\x1bGenerateRandomBytesResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x30\n\x0b\x64\x61ta_crc32c\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\"H\n\x06\x44igest\x12\x10\n\x06sha256\x18\x01 \x01(\x0cH\x00\x12\x10\n\x06sha384\x18\x02 \x01(\x0cH\x00\x12\x10\n\x06sha512\x18\x03 \x01(\x0cH\x00\x42\x08\n\x06\x64igest\"@\n\x10LocationMetadata\x12\x15\n\rhsm_available\x18\x01 \x01(\x08\x12\x15\n\rekm_available\x18\x02 \x01(\x08\x32\xd9/\n\x14KeyManagementService\x12\xa2\x01\n\x0cListKeyRings\x12(.google.cloud.kms.v1.ListKeyRingsRequest\x1a).google.cloud.kms.v1.ListKeyRingsResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/keyRings\x12\xb5\x01\n\x0eListCryptoKeys\x12*.google.cloud.kms.v1.ListCryptoKeysRequest\x1a+.google.cloud.kms.v1.ListCryptoKeysResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys\x12\xde\x01\n\x15ListCryptoKeyVersions\x12\x31.google.cloud.kms.v1.ListCryptoKeyVersionsRequest\x1a\x32.google.cloud.kms.v1.ListCryptoKeyVersionsResponse\"^\xda\x41\x06parent\x82\xd3\xe4\x93\x02O\x12M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions\x12\xb5\x01\n\x0eListImportJobs\x12*.google.cloud.kms.v1.ListImportJobsRequest\x1a+.google.cloud.kms.v1.ListImportJobsResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs\x12\x8f\x01\n\nGetKeyRing\x12&.google.cloud.kms.v1.GetKeyRingRequest\x1a\x1c.google.cloud.kms.v1.KeyRing\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/keyRings/*}\x12\xa2\x01\n\x0cGetCryptoKey\x12(.google.cloud.kms.v1.GetCryptoKeyRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}\x12\xcb\x01\n\x13GetCryptoKeyVersion\x12/.google.cloud.kms.v1.GetCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"\\\xda\x41\x04name\x82\xd3\xe4\x93\x02O\x12M/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}\x12\xc0\x01\n\x0cGetPublicKey\x12(.google.cloud.kms.v1.GetPublicKeyRequest\x1a\x1e.google.cloud.kms.v1.PublicKey\"f\xda\x41\x04name\x82\xd3\xe4\x93\x02Y\x12W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}/publicKey\x12\xa2\x01\n\x0cGetImportJob\x12(.google.cloud.kms.v1.GetImportJobRequest\x1a\x1e.google.cloud.kms.v1.ImportJob\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/keyRings/*/importJobs/*}\x12\xb6\x01\n\rCreateKeyRing\x12).google.cloud.kms.v1.CreateKeyRingRequest\x1a\x1c.google.cloud.kms.v1.KeyRing\"\\\xda\x41\x1bparent,key_ring_id,key_ring\x82\xd3\xe4\x93\x02\x38\",/v1/{parent=projects/*/locations/*}/keyRings:\x08key_ring\x12\xcf\x01\n\x0f\x43reateCryptoKey\x12+.google.cloud.kms.v1.CreateCryptoKeyRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"o\xda\x41\x1fparent,crypto_key_id,crypto_key\x82\xd3\xe4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys:\ncrypto_key\x12\xfb\x01\n\x16\x43reateCryptoKeyVersion\x12\x32.google.cloud.kms.v1.CreateCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"\x85\x01\xda\x41\x19parent,crypto_key_version\x82\xd3\xe4\x93\x02\x63\"M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:\x12\x63rypto_key_version\x12\xd4\x01\n\x16ImportCryptoKeyVersion\x12\x32.google.cloud.kms.v1.ImportCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"_\x82\xd3\xe4\x93\x02Y\"T/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import:\x01*\x12\xcf\x01\n\x0f\x43reateImportJob\x12+.google.cloud.kms.v1.CreateImportJobRequest\x1a\x1e.google.cloud.kms.v1.ImportJob\"o\xda\x41\x1fparent,import_job_id,import_job\x82\xd3\xe4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs:\nimport_job\x12\xd1\x01\n\x0fUpdateCryptoKey\x12+.google.cloud.kms.v1.UpdateCryptoKeyRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"q\xda\x41\x16\x63rypto_key,update_mask\x82\xd3\xe4\x93\x02R2D/v1/{crypto_key.name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:\ncrypto_key\x12\x93\x02\n\x16UpdateCryptoKeyVersion\x12\x32.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"\x9d\x01\xda\x41\x1e\x63rypto_key_version,update_mask\x82\xd3\xe4\x93\x02v2`/v1/{crypto_key_version.name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:\x12\x63rypto_key_version\x12\xf2\x01\n\x1dUpdateCryptoKeyPrimaryVersion\x12\x39.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest\x1a\x1e.google.cloud.kms.v1.CryptoKey\"v\xda\x41\x1aname,crypto_key_version_id\x82\xd3\xe4\x93\x02S\"N/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:updatePrimaryVersion:\x01*\x12\xde\x01\n\x17\x44\x65stroyCryptoKeyVersion\x12\x33.google.cloud.kms.v1.DestroyCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"g\xda\x41\x04name\x82\xd3\xe4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:destroy:\x01*\x12\xde\x01\n\x17RestoreCryptoKeyVersion\x12\x33.google.cloud.kms.v1.RestoreCryptoKeyVersionRequest\x1a%.google.cloud.kms.v1.CryptoKeyVersion\"g\xda\x41\x04name\x82\xd3\xe4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:restore:\x01*\x12\xb4\x01\n\x07\x45ncrypt\x12#.google.cloud.kms.v1.EncryptRequest\x1a$.google.cloud.kms.v1.EncryptResponse\"^\xda\x41\x0ename,plaintext\x82\xd3\xe4\x93\x02G\"B/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/**}:encrypt:\x01*\x12\xb4\x01\n\x07\x44\x65\x63rypt\x12#.google.cloud.kms.v1.DecryptRequest\x1a$.google.cloud.kms.v1.DecryptResponse\"^\xda\x41\x0fname,ciphertext\x82\xd3\xe4\x93\x02\x46\"A/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:decrypt:\x01*\x12\xc2\x01\n\nRawEncrypt\x12&.google.cloud.kms.v1.RawEncryptRequest\x1a\'.google.cloud.kms.v1.RawEncryptResponse\"c\x82\xd3\xe4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawEncrypt:\x01*\x12\xc2\x01\n\nRawDecrypt\x12&.google.cloud.kms.v1.RawDecryptRequest\x1a\'.google.cloud.kms.v1.RawDecryptResponse\"c\x82\xd3\xe4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawDecrypt:\x01*\x12\xe0\x01\n\x0e\x41symmetricSign\x12*.google.cloud.kms.v1.AsymmetricSignRequest\x1a+.google.cloud.kms.v1.AsymmetricSignResponse\"u\xda\x41\x0bname,digest\x82\xd3\xe4\x93\x02\x61\"\\/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricSign:\x01*\x12\xf0\x01\n\x11\x41symmetricDecrypt\x12-.google.cloud.kms.v1.AsymmetricDecryptRequest\x1a..google.cloud.kms.v1.AsymmetricDecryptResponse\"|\xda\x41\x0fname,ciphertext\x82\xd3\xe4\x93\x02\x64\"_/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricDecrypt:\x01*\x12\xc2\x01\n\x07MacSign\x12#.google.cloud.kms.v1.MacSignRequest\x1a$.google.cloud.kms.v1.MacSignResponse\"l\xda\x41\tname,data\x82\xd3\xe4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macSign:\x01*\x12\xce\x01\n\tMacVerify\x12%.google.cloud.kms.v1.MacVerifyRequest\x1a&.google.cloud.kms.v1.MacVerifyResponse\"r\xda\x41\rname,data,mac\x82\xd3\xe4\x93\x02\\\"W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macVerify:\x01*\x12\xc6\x01\n\x0b\x44\x65\x63\x61psulate\x12\'.google.cloud.kms.v1.DecapsulateRequest\x1a(.google.cloud.kms.v1.DecapsulateResponse\"d\x82\xd3\xe4\x93\x02^\"Y/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:decapsulate:\x01*\x12\xe7\x01\n\x13GenerateRandomBytes\x12/.google.cloud.kms.v1.GenerateRandomBytesRequest\x1a\x30.google.cloud.kms.v1.GenerateRandomBytesResponse\"m\xda\x41&location,length_bytes,protection_level\x82\xd3\xe4\x93\x02>\"9/v1/{location=projects/*/locations/*}:generateRandomBytes:\x01*\x1at\xca\x41\x17\x63loudkms.googleapis.com\xd2\x41Whttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloudkmsB|\n\x17\x63om.google.cloud.kms.v1B\x08KmsProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xaa\x02\x13Google.Cloud.Kms.V1\xca\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -77,6 +77,7 @@ module V1 AsymmetricDecryptRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.AsymmetricDecryptRequest").msgclass MacSignRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.MacSignRequest").msgclass MacVerifyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.MacVerifyRequest").msgclass + DecapsulateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.DecapsulateRequest").msgclass GenerateRandomBytesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.GenerateRandomBytesRequest").msgclass EncryptResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.EncryptResponse").msgclass DecryptResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.DecryptResponse").msgclass @@ -86,6 +87,7 @@ module V1 AsymmetricDecryptResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.AsymmetricDecryptResponse").msgclass MacSignResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.MacSignResponse").msgclass MacVerifyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.MacVerifyResponse").msgclass + DecapsulateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.DecapsulateResponse").msgclass GenerateRandomBytesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.GenerateRandomBytesResponse").msgclass Digest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.Digest").msgclass LocationMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.kms.v1.LocationMetadata").msgclass diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_services_pb.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_services_pb.rb index e7a274a1d238..16a20b470f57 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_services_pb.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/service_services_pb.rb @@ -199,6 +199,12 @@ class Service # [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] MAC, and returns # a response that indicates whether or not the verification was successful. rpc :MacVerify, ::Google::Cloud::Kms::V1::MacVerifyRequest, ::Google::Cloud::Kms::V1::MacVerifyResponse + # Decapsulates data that was encapsulated with a public key retrieved from + # [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] + # corresponding to a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] + # with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] + # KEY_ENCAPSULATION. + rpc :Decapsulate, ::Google::Cloud::Kms::V1::DecapsulateRequest, ::Google::Cloud::Kms::V1::DecapsulateResponse # Generate random bytes using the Cloud KMS randomness source in the provided # location. rpc :GenerateRandomBytes, ::Google::Cloud::Kms::V1::GenerateRandomBytesRequest, ::Google::Cloud::Kms::V1::GenerateRandomBytesResponse diff --git a/google-cloud-kms-v1/lib/google/cloud/kms/v1/version.rb b/google-cloud-kms-v1/lib/google/cloud/kms/v1/version.rb index 06fcf03b2a89..bca375e40694 100644 --- a/google-cloud-kms-v1/lib/google/cloud/kms/v1/version.rb +++ b/google-cloud-kms-v1/lib/google/cloud/kms/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Kms module V1 - VERSION = "1.7.0" + VERSION = "1.8.0" end end end diff --git a/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/resources.rb b/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/resources.rb index 151b6e35af4c..61d9fa7f926c 100644 --- a/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/resources.rb +++ b/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/resources.rb @@ -198,6 +198,12 @@ module CryptoKeyPurpose # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used # with {::Google::Cloud::Kms::V1::KeyManagementService::Client#mac_sign MacSign}. MAC = 9 + + # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used + # with + # {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_public_key GetPublicKey} + # and {::Google::Cloud::Kms::V1::KeyManagementService::Client#decapsulate Decapsulate}. + KEY_ENCAPSULATION = 10 end end @@ -549,6 +555,16 @@ module CryptoKeyVersionAlgorithm # Algorithm representing symmetric encryption by an external key manager. EXTERNAL_SYMMETRIC_ENCRYPTION = 18 + # ML-KEM-768 (FIPS 203) + ML_KEM_768 = 47 + + # ML-KEM-1024 (FIPS 203) + ML_KEM_1024 = 48 + + # X-Wing hybrid KEM combining ML-KEM-768 with X25519 following + # datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/. + KEM_XWING = 63 + # The post-quantum Module-Lattice-Based Digital Signature Algorithm, at # security level 3. Randomized version. PQ_SIGN_ML_DSA_65 = 56 @@ -751,10 +767,18 @@ module PublicKeyFormat # (https://tools.ietf.org/html/rfc7468#section-13) for more information. PEM = 1 + # The returned public key will be encoded in DER format (the + # PrivateKeyInfo structure from RFC 5208). + DER = 2 + # This is supported only for PQC algorithms. # The key material is returned in the format defined by NIST PQC # standards (FIPS 203, FIPS 204, and FIPS 205). NIST_PQC = 3 + + # The returned public key is in raw bytes format defined in its standard + # https://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem. + XWING_RAW_BYTES = 4 end end diff --git a/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/service.rb b/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/service.rb index 3526f644d0a4..f39cf551abbe 100644 --- a/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/service.rb +++ b/google-cloud-kms-v1/proto_docs/google/cloud/kms/v1/service.rb @@ -1106,6 +1106,44 @@ class MacVerifyRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # Request message for + # {::Google::Cloud::Kms::V1::KeyManagementService::Client#decapsulate KeyManagementService.Decapsulate}. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the + # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} to use for + # decapsulation. + # @!attribute [rw] ciphertext + # @return [::String] + # Required. The ciphertext produced from encapsulation with the + # named {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} public + # key(s). + # @!attribute [rw] ciphertext_crc32c + # @return [::Google::Protobuf::Int64Value] + # Optional. A CRC32C checksum of the + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext}. + # If specified, + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will + # verify the integrity of the received + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext} + # using this checksum. + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} will + # report an error if the checksum verification fails. If you receive a + # checksum error, your client should verify that + # CRC32C({::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext DecapsulateRequest.ciphertext}) + # is equal to + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext_crc32c DecapsulateRequest.ciphertext_crc32c}, + # and if so, perform a limited number of retries. A persistent mismatch may + # indicate an issue in your computation of the CRC32C checksum. Note: This + # field is defined as int64 for reasons of compatibility across different + # languages. However, it is a non-negative integer, which will never exceed + # 2^32-1, and can be safely downconverted to uint32 in languages that support + # this type. + class DecapsulateRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Request message for # {::Google::Cloud::Kms::V1::KeyManagementService::Client#generate_random_bytes KeyManagementService.GenerateRandomBytes}. # @!attribute [rw] location @@ -1636,6 +1674,63 @@ class MacVerifyResponse extend ::Google::Protobuf::MessageExts::ClassMethods end + # Response message for + # {::Google::Cloud::Kms::V1::KeyManagementService::Client#decapsulate KeyManagementService.Decapsulate}. + # @!attribute [rw] name + # @return [::String] + # The resource name of the + # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} used for + # decapsulation. Check this field to verify that the intended resource was + # used for decapsulation. + # @!attribute [rw] shared_secret + # @return [::String] + # The decapsulated shared_secret originally encapsulated with the matching + # public key. + # @!attribute [rw] shared_secret_crc32c + # @return [::Integer] + # Integrity verification field. A CRC32C checksum of the returned + # {::Google::Cloud::Kms::V1::DecapsulateResponse#shared_secret DecapsulateResponse.shared_secret}. + # An integrity check of + # {::Google::Cloud::Kms::V1::DecapsulateResponse#shared_secret DecapsulateResponse.shared_secret} + # can be performed by computing the CRC32C checksum of + # {::Google::Cloud::Kms::V1::DecapsulateResponse#shared_secret DecapsulateResponse.shared_secret} + # and comparing your results to this field. Discard the response in case of + # non-matching checksum values, and perform a limited number of retries. A + # persistent mismatch may indicate an issue in your computation of the CRC32C + # checksum. Note: receiving this response message indicates that + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} is able to + # successfully decrypt the + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext ciphertext}. Note: This + # field is defined as int64 for reasons of compatibility across different + # languages. However, it is a non-negative integer, which will never exceed + # 2^32-1, and can be safely downconverted to uint32 in languages that support + # this type. + # @!attribute [rw] verified_ciphertext_crc32c + # @return [::Boolean] + # Integrity verification field. A flag indicating whether + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext_crc32c DecapsulateRequest.ciphertext_crc32c} + # was received by + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService} and used + # for the integrity verification of the + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext ciphertext}. A false + # value of this field indicates either that + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext_crc32c DecapsulateRequest.ciphertext_crc32c} + # was left unset or that it was not delivered to + # {::Google::Cloud::Kms::V1::KeyManagementService::Client KeyManagementService}. If you've + # set + # {::Google::Cloud::Kms::V1::DecapsulateRequest#ciphertext_crc32c DecapsulateRequest.ciphertext_crc32c} + # but this field is still false, discard the response and perform a limited + # number of retries. + # @!attribute [rw] protection_level + # @return [::Google::Cloud::Kms::V1::ProtectionLevel] + # The {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} of the + # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} used in + # decapsulation. + class DecapsulateResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Response message for # {::Google::Cloud::Kms::V1::KeyManagementService::Client#generate_random_bytes KeyManagementService.GenerateRandomBytes}. # @!attribute [rw] data diff --git a/google-cloud-kms-v1/snippets/key_management_service/decapsulate.rb b/google-cloud-kms-v1/snippets/key_management_service/decapsulate.rb new file mode 100644 index 000000000000..46da629cdc6f --- /dev/null +++ b/google-cloud-kms-v1/snippets/key_management_service/decapsulate.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START cloudkms_v1_generated_KeyManagementService_Decapsulate_sync] +require "google/cloud/kms/v1" + +## +# Snippet for the decapsulate call in the KeyManagementService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Kms::V1::KeyManagementService::Client#decapsulate. +# +def decapsulate + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Kms::V1::KeyManagementService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Kms::V1::DecapsulateRequest.new + + # Call the decapsulate method. + result = client.decapsulate request + + # The returned object is of type Google::Cloud::Kms::V1::DecapsulateResponse. + p result +end +# [END cloudkms_v1_generated_KeyManagementService_Decapsulate_sync] diff --git a/google-cloud-kms-v1/snippets/snippet_metadata_google.cloud.kms.v1.json b/google-cloud-kms-v1/snippets/snippet_metadata_google.cloud.kms.v1.json index 449e6d22324a..81c975e90b47 100644 --- a/google-cloud-kms-v1/snippets/snippet_metadata_google.cloud.kms.v1.json +++ b/google-cloud-kms-v1/snippets/snippet_metadata_google.cloud.kms.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-kms-v1", - "version": "1.7.0", + "version": "1.8.0", "language": "RUBY", "apis": [ { @@ -1611,6 +1611,46 @@ } ] }, + { + "region_tag": "cloudkms_v1_generated_KeyManagementService_Decapsulate_sync", + "title": "Snippet for the decapsulate call in the KeyManagementService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Kms::V1::KeyManagementService::Client#decapsulate.", + "file": "key_management_service/decapsulate.rb", + "language": "RUBY", + "client_method": { + "short_name": "decapsulate", + "full_name": "::Google::Cloud::Kms::V1::KeyManagementService::Client#decapsulate", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Kms::V1::DecapsulateRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Kms::V1::DecapsulateResponse", + "client": { + "short_name": "KeyManagementService::Client", + "full_name": "::Google::Cloud::Kms::V1::KeyManagementService::Client" + }, + "method": { + "short_name": "Decapsulate", + "full_name": "google.cloud.kms.v1.KeyManagementService.Decapsulate", + "service": { + "short_name": "KeyManagementService", + "full_name": "google.cloud.kms.v1.KeyManagementService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, { "region_tag": "cloudkms_v1_generated_KeyManagementService_GenerateRandomBytes_sync", "title": "Snippet for the generate_random_bytes call in the KeyManagementService service", diff --git a/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_rest_test.rb b/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_rest_test.rb index b340b298cd3c..4086edffcdcc 100644 --- a/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_rest_test.rb +++ b/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_rest_test.rb @@ -1604,6 +1604,62 @@ def test_mac_verify end end + def test_decapsulate + # Create test objects. + client_result = ::Google::Cloud::Kms::V1::DecapsulateResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + ciphertext = "hello world" + ciphertext_crc32c = {} + + decapsulate_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Kms::V1::KeyManagementService::Rest::ServiceStub.stub :transcode_decapsulate_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, decapsulate_client_stub do + # Create client + client = ::Google::Cloud::Kms::V1::KeyManagementService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.decapsulate({ name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.decapsulate name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.decapsulate ::Google::Cloud::Kms::V1::DecapsulateRequest.new(name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.decapsulate({ name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.decapsulate(::Google::Cloud::Kms::V1::DecapsulateRequest.new(name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, decapsulate_client_stub.call_count + end + end + end + def test_generate_random_bytes # Create test objects. client_result = ::Google::Cloud::Kms::V1::GenerateRandomBytesResponse.new diff --git a/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_test.rb b/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_test.rb index 3f3968f4a8f6..e5f090490b3a 100644 --- a/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_test.rb +++ b/google-cloud-kms-v1/test/google/cloud/kms/v1/key_management_service_test.rb @@ -1786,6 +1786,68 @@ def test_mac_verify end end + def test_decapsulate + # Create GRPC objects. + grpc_response = ::Google::Cloud::Kms::V1::DecapsulateResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + ciphertext = "hello world" + ciphertext_crc32c = {} + + decapsulate_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :decapsulate, name + assert_kind_of ::Google::Cloud::Kms::V1::DecapsulateRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["ciphertext"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::Int64Value), request["ciphertext_crc32c"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, decapsulate_client_stub do + # Create client + client = ::Google::Cloud::Kms::V1::KeyManagementService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.decapsulate({ name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.decapsulate name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.decapsulate ::Google::Cloud::Kms::V1::DecapsulateRequest.new(name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.decapsulate({ name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.decapsulate(::Google::Cloud::Kms::V1::DecapsulateRequest.new(name: name, ciphertext: ciphertext, ciphertext_crc32c: ciphertext_crc32c), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, decapsulate_client_stub.call_rpc_count + end + end + def test_generate_random_bytes # Create GRPC objects. grpc_response = ::Google::Cloud::Kms::V1::GenerateRandomBytesResponse.new diff --git a/google-cloud-kms/CHANGELOG.md b/google-cloud-kms/CHANGELOG.md index c87581e39dfd..09b238c82ebd 100644 --- a/google-cloud-kms/CHANGELOG.md +++ b/google-cloud-kms/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.9.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.9.2 (2025-05-27) #### Documentation diff --git a/google-cloud-kms/README.md b/google-cloud-kms/README.md index a58f20607fc8..72901520d532 100644 --- a/google-cloud-kms/README.md +++ b/google-cloud-kms/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudkms.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/kms" + +client = Google::Cloud::Kms.autokey +request = ::Google::Cloud::Kms::V1::CreateKeyHandleRequest.new # (request fields as keyword arguments...) +response = client.create_key_handle request +``` + ## Migrating from 1.x versions The 2.0 release of the google-cloud-kms client is a significant upgrade diff --git a/google-cloud-kms/lib/google/cloud/kms/version.rb b/google-cloud-kms/lib/google/cloud/kms/version.rb index a0eeef8e032c..e188c2be19e3 100644 --- a/google-cloud-kms/lib/google/cloud/kms/version.rb +++ b/google-cloud-kms/lib/google/cloud/kms/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Kms - VERSION = "2.9.2" + VERSION = "2.9.3" end end end diff --git a/google-cloud-language-v1/CHANGELOG.md b/google-cloud-language-v1/CHANGELOG.md index 00cce68ade2a..60e23e8d0ee5 100644 --- a/google-cloud-language-v1/CHANGELOG.md +++ b/google-cloud-language-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-language-v1/google-cloud-language-v1.gemspec b/google-cloud-language-v1/google-cloud-language-v1.gemspec index 3704b8f92e02..1bbab75835ab 100644 --- a/google-cloud-language-v1/google-cloud-language-v1.gemspec +++ b/google-cloud-language-v1/google-cloud-language-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-language-v1/lib/google/cloud/language/v1/version.rb b/google-cloud-language-v1/lib/google/cloud/language/v1/version.rb index 9c187c97d12a..0fbbac3f8e20 100644 --- a/google-cloud-language-v1/lib/google/cloud/language/v1/version.rb +++ b/google-cloud-language-v1/lib/google/cloud/language/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Language module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-language-v1/snippets/snippet_metadata_google.cloud.language.v1.json b/google-cloud-language-v1/snippets/snippet_metadata_google.cloud.language.v1.json index 3a8545ee17c5..1f78c40dd7bd 100644 --- a/google-cloud-language-v1/snippets/snippet_metadata_google.cloud.language.v1.json +++ b/google-cloud-language-v1/snippets/snippet_metadata_google.cloud.language.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-language-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-language-v1beta2/CHANGELOG.md b/google-cloud-language-v1beta2/CHANGELOG.md index 1a8cc30d5aef..24e89fad1e69 100644 --- a/google-cloud-language-v1beta2/CHANGELOG.md +++ b/google-cloud-language-v1beta2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.14.0 (2025-05-12) #### Features diff --git a/google-cloud-language-v1beta2/google-cloud-language-v1beta2.gemspec b/google-cloud-language-v1beta2/google-cloud-language-v1beta2.gemspec index 7fa9063ae91f..0bcae07c3529 100644 --- a/google-cloud-language-v1beta2/google-cloud-language-v1beta2.gemspec +++ b/google-cloud-language-v1beta2/google-cloud-language-v1beta2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-language-v1beta2/lib/google/cloud/language/v1beta2/version.rb b/google-cloud-language-v1beta2/lib/google/cloud/language/v1beta2/version.rb index 8e30571ccb53..950cd46119e9 100644 --- a/google-cloud-language-v1beta2/lib/google/cloud/language/v1beta2/version.rb +++ b/google-cloud-language-v1beta2/lib/google/cloud/language/v1beta2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Language module V1beta2 - VERSION = "0.14.0" + VERSION = "0.15.0" end end end diff --git a/google-cloud-language-v1beta2/snippets/snippet_metadata_google.cloud.language.v1beta2.json b/google-cloud-language-v1beta2/snippets/snippet_metadata_google.cloud.language.v1beta2.json index b29d90f7f3e7..fb5e37936d9c 100644 --- a/google-cloud-language-v1beta2/snippets/snippet_metadata_google.cloud.language.v1beta2.json +++ b/google-cloud-language-v1beta2/snippets/snippet_metadata_google.cloud.language.v1beta2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-language-v1beta2", - "version": "0.14.0", + "version": "0.15.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-language-v2/CHANGELOG.md b/google-cloud-language-v2/CHANGELOG.md index 32d992800201..4a89d1986006 100644 --- a/google-cloud-language-v2/CHANGELOG.md +++ b/google-cloud-language-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-language-v2/google-cloud-language-v2.gemspec b/google-cloud-language-v2/google-cloud-language-v2.gemspec index 5a5db1731471..16ace5e58008 100644 --- a/google-cloud-language-v2/google-cloud-language-v2.gemspec +++ b/google-cloud-language-v2/google-cloud-language-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-language-v2/lib/google/cloud/language/v2/version.rb b/google-cloud-language-v2/lib/google/cloud/language/v2/version.rb index acf7d4a97a90..cedb0da867f7 100644 --- a/google-cloud-language-v2/lib/google/cloud/language/v2/version.rb +++ b/google-cloud-language-v2/lib/google/cloud/language/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Language module V2 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-language-v2/snippets/snippet_metadata_google.cloud.language.v2.json b/google-cloud-language-v2/snippets/snippet_metadata_google.cloud.language.v2.json index c633faa81e85..5509dacca15e 100644 --- a/google-cloud-language-v2/snippets/snippet_metadata_google.cloud.language.v2.json +++ b/google-cloud-language-v2/snippets/snippet_metadata_google.cloud.language.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-language-v2", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-language/CHANGELOG.md b/google-cloud-language/CHANGELOG.md index d167ee617a0a..da66c4251a87 100644 --- a/google-cloud-language/CHANGELOG.md +++ b/google-cloud-language/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-language/README.md b/google-cloud-language/README.md index 676efc16cc8c..d47446f19999 100644 --- a/google-cloud-language/README.md +++ b/google-cloud-language/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/language.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/language" + +client = Google::Cloud::Language.language_service +request = ::Google::Cloud::Language::V2::AnalyzeSentimentRequest.new # (request fields as keyword arguments...) +response = client.analyze_sentiment request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-language/lib/google/cloud/language/version.rb b/google-cloud-language/lib/google/cloud/language/version.rb index 455344ae61ff..43f3c52bd4c9 100644 --- a/google-cloud-language/lib/google/cloud/language/version.rb +++ b/google-cloud-language/lib/google/cloud/language/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Language - VERSION = "2.0.2".freeze + VERSION = "2.0.3".freeze end end end diff --git a/google-cloud-license_manager-v1/CHANGELOG.md b/google-cloud-license_manager-v1/CHANGELOG.md index 3f19a8379e1b..7ffaee5c99c3 100644 --- a/google-cloud-license_manager-v1/CHANGELOG.md +++ b/google-cloud-license_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-08-26) #### Features diff --git a/google-cloud-license_manager-v1/google-cloud-license_manager-v1.gemspec b/google-cloud-license_manager-v1/google-cloud-license_manager-v1.gemspec index 7db3c1f50313..402b09d72db2 100644 --- a/google-cloud-license_manager-v1/google-cloud-license_manager-v1.gemspec +++ b/google-cloud-license_manager-v1/google-cloud-license_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-license_manager-v1/lib/google/cloud/license_manager/v1/version.rb b/google-cloud-license_manager-v1/lib/google/cloud/license_manager/v1/version.rb index 5ef54a3d9ff1..cd8e793f92b7 100644 --- a/google-cloud-license_manager-v1/lib/google/cloud/license_manager/v1/version.rb +++ b/google-cloud-license_manager-v1/lib/google/cloud/license_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module LicenseManager module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-license_manager-v1/snippets/snippet_metadata_google.cloud.licensemanager.v1.json b/google-cloud-license_manager-v1/snippets/snippet_metadata_google.cloud.licensemanager.v1.json index 5854dd28cfda..5969627c2181 100644 --- a/google-cloud-license_manager-v1/snippets/snippet_metadata_google.cloud.licensemanager.v1.json +++ b/google-cloud-license_manager-v1/snippets/snippet_metadata_google.cloud.licensemanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-license_manager-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-license_manager/CHANGELOG.md b/google-cloud-license_manager/CHANGELOG.md index bc20a3f0c9a1..2f7148575e40 100644 --- a/google-cloud-license_manager/CHANGELOG.md +++ b/google-cloud-license_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-08-26) #### Features diff --git a/google-cloud-license_manager/README.md b/google-cloud-license_manager/README.md index da5a4e422fca..cfdcc12491c0 100644 --- a/google-cloud-license_manager/README.md +++ b/google-cloud-license_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/licensemanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/license_manager" + +client = Google::Cloud::LicenseManager.license_manager +request = ::Google::Cloud::LicenseManager::V1::ListConfigurationsRequest.new # (request fields as keyword arguments...) +response = client.list_configurations request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-license_manager/lib/google/cloud/license_manager/version.rb b/google-cloud-license_manager/lib/google/cloud/license_manager/version.rb index d88e98692ff4..0efb9f27435d 100644 --- a/google-cloud-license_manager/lib/google/cloud/license_manager/version.rb +++ b/google-cloud-license_manager/lib/google/cloud/license_manager/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module LicenseManager - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-life_sciences-v2beta/CHANGELOG.md b/google-cloud-life_sciences-v2beta/CHANGELOG.md index b8b9d7fcfef0..8cae5400f411 100644 --- a/google-cloud-life_sciences-v2beta/CHANGELOG.md +++ b/google-cloud-life_sciences-v2beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.11.0 (2025-05-12) #### Features diff --git a/google-cloud-life_sciences-v2beta/google-cloud-life_sciences-v2beta.gemspec b/google-cloud-life_sciences-v2beta/google-cloud-life_sciences-v2beta.gemspec index b4f3e578745f..fb1de7a4bcdf 100644 --- a/google-cloud-life_sciences-v2beta/google-cloud-life_sciences-v2beta.gemspec +++ b/google-cloud-life_sciences-v2beta/google-cloud-life_sciences-v2beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-life_sciences-v2beta/lib/google/cloud/life_sciences/v2beta/version.rb b/google-cloud-life_sciences-v2beta/lib/google/cloud/life_sciences/v2beta/version.rb index ca3721974fcf..133144baa34c 100644 --- a/google-cloud-life_sciences-v2beta/lib/google/cloud/life_sciences/v2beta/version.rb +++ b/google-cloud-life_sciences-v2beta/lib/google/cloud/life_sciences/v2beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module LifeSciences module V2beta - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-cloud-life_sciences-v2beta/snippets/snippet_metadata_google.cloud.lifesciences.v2beta.json b/google-cloud-life_sciences-v2beta/snippets/snippet_metadata_google.cloud.lifesciences.v2beta.json index c1515e819fbf..f0a8eec14765 100644 --- a/google-cloud-life_sciences-v2beta/snippets/snippet_metadata_google.cloud.lifesciences.v2beta.json +++ b/google-cloud-life_sciences-v2beta/snippets/snippet_metadata_google.cloud.lifesciences.v2beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-life_sciences-v2beta", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-life_sciences/CHANGELOG.md b/google-cloud-life_sciences/CHANGELOG.md index c8c4111c02ee..d1891f600ca5 100644 --- a/google-cloud-life_sciences/CHANGELOG.md +++ b/google-cloud-life_sciences/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-life_sciences/README.md b/google-cloud-life_sciences/README.md index 4fc03bc831c3..6a8d98a60e46 100644 --- a/google-cloud-life_sciences/README.md +++ b/google-cloud-life_sciences/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/lifesciences.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/life_sciences" + +client = Google::Cloud::LifeSciences.workflows_service +request = ::Google::Cloud::LifeSciences::V2beta::RunPipelineRequest.new # (request fields as keyword arguments...) +response = client.run_pipeline request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-life_sciences/lib/google/cloud/life_sciences/version.rb b/google-cloud-life_sciences/lib/google/cloud/life_sciences/version.rb index e5d8a2de4390..69f4744386c1 100644 --- a/google-cloud-life_sciences/lib/google/cloud/life_sciences/version.rb +++ b/google-cloud-life_sciences/lib/google/cloud/life_sciences/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module LifeSciences - VERSION = "0.6.1" + VERSION = "0.6.2" end end end diff --git a/google-cloud-location/CHANGELOG.md b/google-cloud-location/CHANGELOG.md index cebf8316f16e..ac15ecf441a7 100644 --- a/google-cloud-location/CHANGELOG.md +++ b/google-cloud-location/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-12) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31317](https://github.com/googleapis/google-cloud-ruby/issues/31317)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-location/google-cloud-location.gemspec b/google-cloud-location/google-cloud-location.gemspec index 333db2425e1e..dff29683a89c 100644 --- a/google-cloud-location/google-cloud-location.gemspec +++ b/google-cloud-location/google-cloud-location.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-location/lib/google/cloud/location/version.rb b/google-cloud-location/lib/google/cloud/location/version.rb index b64d36972b9a..69cb6f356a19 100644 --- a/google-cloud-location/lib/google/cloud/location/version.rb +++ b/google-cloud-location/lib/google/cloud/location/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Location - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-location/snippets/snippet_metadata_google.cloud.location.json b/google-cloud-location/snippets/snippet_metadata_google.cloud.location.json index 31138123021c..60d44796b551 100644 --- a/google-cloud-location/snippets/snippet_metadata_google.cloud.location.json +++ b/google-cloud-location/snippets/snippet_metadata_google.cloud.location.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-location", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-logging-v2/CHANGELOG.md b/google-cloud-logging-v2/CHANGELOG.md index 6862a4aefad4..a5a4c235b619 100644 --- a/google-cloud-logging-v2/CHANGELOG.md +++ b/google-cloud-logging-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-logging-v2/google-cloud-logging-v2.gemspec b/google-cloud-logging-v2/google-cloud-logging-v2.gemspec index df85b170f0a8..cefd27a65b6d 100644 --- a/google-cloud-logging-v2/google-cloud-logging-v2.gemspec +++ b/google-cloud-logging-v2/google-cloud-logging-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-logging-v2/lib/google/cloud/logging/v2/version.rb b/google-cloud-logging-v2/lib/google/cloud/logging/v2/version.rb index a143740033f8..50cde0ef82cb 100644 --- a/google-cloud-logging-v2/lib/google/cloud/logging/v2/version.rb +++ b/google-cloud-logging-v2/lib/google/cloud/logging/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Logging module V2 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-logging-v2/snippets/snippet_metadata_google.logging.v2.json b/google-cloud-logging-v2/snippets/snippet_metadata_google.logging.v2.json index d5f796d44c74..b7e92b9e8c6f 100644 --- a/google-cloud-logging-v2/snippets/snippet_metadata_google.logging.v2.json +++ b/google-cloud-logging-v2/snippets/snippet_metadata_google.logging.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-logging-v2", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-lustre-v1/CHANGELOG.md b/google-cloud-lustre-v1/CHANGELOG.md index e61fa9af50fa..3bf2880222f7 100644 --- a/google-cloud-lustre-v1/CHANGELOG.md +++ b/google-cloud-lustre-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.2.0 (2025-07-24) #### Features diff --git a/google-cloud-lustre-v1/google-cloud-lustre-v1.gemspec b/google-cloud-lustre-v1/google-cloud-lustre-v1.gemspec index 060739f2cb71..572a7135bc9d 100644 --- a/google-cloud-lustre-v1/google-cloud-lustre-v1.gemspec +++ b/google-cloud-lustre-v1/google-cloud-lustre-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-lustre-v1/lib/google/cloud/lustre/v1/version.rb b/google-cloud-lustre-v1/lib/google/cloud/lustre/v1/version.rb index 8d6d24b58978..ee8f3736ca8d 100644 --- a/google-cloud-lustre-v1/lib/google/cloud/lustre/v1/version.rb +++ b/google-cloud-lustre-v1/lib/google/cloud/lustre/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Lustre module V1 - VERSION = "0.2.0" + VERSION = "0.3.0" end end end diff --git a/google-cloud-lustre-v1/snippets/snippet_metadata_google.cloud.lustre.v1.json b/google-cloud-lustre-v1/snippets/snippet_metadata_google.cloud.lustre.v1.json index 0ecf38ec986c..6f94f0ee3718 100644 --- a/google-cloud-lustre-v1/snippets/snippet_metadata_google.cloud.lustre.v1.json +++ b/google-cloud-lustre-v1/snippets/snippet_metadata_google.cloud.lustre.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-lustre-v1", - "version": "0.2.0", + "version": "0.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-lustre/CHANGELOG.md b/google-cloud-lustre/CHANGELOG.md index 80598501df6c..75bf59708925 100644 --- a/google-cloud-lustre/CHANGELOG.md +++ b/google-cloud-lustre/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-05-06) #### Features diff --git a/google-cloud-lustre/README.md b/google-cloud-lustre/README.md index 914258cff7cb..969cb4b037ea 100644 --- a/google-cloud-lustre/README.md +++ b/google-cloud-lustre/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/lustre.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/lustre" + +client = Google::Cloud::Lustre.lustre +request = ::Google::Cloud::Lustre::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-lustre/lib/google/cloud/lustre/version.rb b/google-cloud-lustre/lib/google/cloud/lustre/version.rb index a01f01082f7f..7987f6c904c4 100644 --- a/google-cloud-lustre/lib/google/cloud/lustre/version.rb +++ b/google-cloud-lustre/lib/google/cloud/lustre/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Lustre - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-maintenance-api-v1beta/CHANGELOG.md b/google-cloud-maintenance-api-v1beta/CHANGELOG.md index 501267ceb93e..bd30be806e93 100644 --- a/google-cloud-maintenance-api-v1beta/CHANGELOG.md +++ b/google-cloud-maintenance-api-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-07-16) #### Features diff --git a/google-cloud-maintenance-api-v1beta/google-cloud-maintenance-api-v1beta.gemspec b/google-cloud-maintenance-api-v1beta/google-cloud-maintenance-api-v1beta.gemspec index 10d8fadd6d00..d25b14179aa0 100644 --- a/google-cloud-maintenance-api-v1beta/google-cloud-maintenance-api-v1beta.gemspec +++ b/google-cloud-maintenance-api-v1beta/google-cloud-maintenance-api-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-maintenance-api-v1beta/lib/google/cloud/maintenance/api/v1beta/version.rb b/google-cloud-maintenance-api-v1beta/lib/google/cloud/maintenance/api/v1beta/version.rb index 620099490792..e4597ccb248c 100644 --- a/google-cloud-maintenance-api-v1beta/lib/google/cloud/maintenance/api/v1beta/version.rb +++ b/google-cloud-maintenance-api-v1beta/lib/google/cloud/maintenance/api/v1beta/version.rb @@ -22,7 +22,7 @@ module Cloud module Maintenance module Api module V1beta - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-maintenance-api-v1beta/snippets/snippet_metadata_google.cloud.maintenance.api.v1beta.json b/google-cloud-maintenance-api-v1beta/snippets/snippet_metadata_google.cloud.maintenance.api.v1beta.json index bbe8a78cdf70..cf7685eb1b36 100644 --- a/google-cloud-maintenance-api-v1beta/snippets/snippet_metadata_google.cloud.maintenance.api.v1beta.json +++ b/google-cloud-maintenance-api-v1beta/snippets/snippet_metadata_google.cloud.maintenance.api.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-maintenance-api-v1beta", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-maintenance-api/CHANGELOG.md b/google-cloud-maintenance-api/CHANGELOG.md index f24694f5cb9f..259f301c45f4 100644 --- a/google-cloud-maintenance-api/CHANGELOG.md +++ b/google-cloud-maintenance-api/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-07-16) #### Features diff --git a/google-cloud-maintenance-api/README.md b/google-cloud-maintenance-api/README.md index 160361a6307d..9a746c4022ee 100644 --- a/google-cloud-maintenance-api/README.md +++ b/google-cloud-maintenance-api/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/maintenance.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/maintenance/api" + +client = Google::Cloud::Maintenance::Api.maintenance +request = ::Google::Cloud::Maintenance::Api::V1beta::SummarizeMaintenancesRequest.new # (request fields as keyword arguments...) +response = client.summarize_maintenances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-maintenance-api/lib/google/cloud/maintenance/api/version.rb b/google-cloud-maintenance-api/lib/google/cloud/maintenance/api/version.rb index 7838c7764c08..80123f1e2684 100644 --- a/google-cloud-maintenance-api/lib/google/cloud/maintenance/api/version.rb +++ b/google-cloud-maintenance-api/lib/google/cloud/maintenance/api/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Maintenance module Api - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-managed_identities-v1/CHANGELOG.md b/google-cloud-managed_identities-v1/CHANGELOG.md index 4fb83cdf3992..684025acdca3 100644 --- a/google-cloud-managed_identities-v1/CHANGELOG.md +++ b/google-cloud-managed_identities-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-managed_identities-v1/google-cloud-managed_identities-v1.gemspec b/google-cloud-managed_identities-v1/google-cloud-managed_identities-v1.gemspec index 19c2ff3b86a3..25cae3e81ead 100644 --- a/google-cloud-managed_identities-v1/google-cloud-managed_identities-v1.gemspec +++ b/google-cloud-managed_identities-v1/google-cloud-managed_identities-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-managed_identities-v1/lib/google/cloud/managed_identities/v1/version.rb b/google-cloud-managed_identities-v1/lib/google/cloud/managed_identities/v1/version.rb index 41f5e868feae..d9bcfde5a7c6 100644 --- a/google-cloud-managed_identities-v1/lib/google/cloud/managed_identities/v1/version.rb +++ b/google-cloud-managed_identities-v1/lib/google/cloud/managed_identities/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ManagedIdentities module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-managed_identities-v1/snippets/snippet_metadata_google.cloud.managedidentities.v1.json b/google-cloud-managed_identities-v1/snippets/snippet_metadata_google.cloud.managedidentities.v1.json index cb1310d24b04..ed909ea7c130 100644 --- a/google-cloud-managed_identities-v1/snippets/snippet_metadata_google.cloud.managedidentities.v1.json +++ b/google-cloud-managed_identities-v1/snippets/snippet_metadata_google.cloud.managedidentities.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-managed_identities-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-managed_identities/CHANGELOG.md b/google-cloud-managed_identities/CHANGELOG.md index 4b02c2d0ba4c..e986cc132807 100644 --- a/google-cloud-managed_identities/CHANGELOG.md +++ b/google-cloud-managed_identities/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-managed_identities/README.md b/google-cloud-managed_identities/README.md index d2970d43246a..6c73f1d6063e 100644 --- a/google-cloud-managed_identities/README.md +++ b/google-cloud-managed_identities/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/managedidentities.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/managed_identities" + +client = Google::Cloud::ManagedIdentities.managed_identities_service +request = ::Google::Cloud::ManagedIdentities::V1::CreateMicrosoftAdDomainRequest.new # (request fields as keyword arguments...) +response = client.create_microsoft_ad_domain request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-managed_identities/lib/google/cloud/managed_identities/version.rb b/google-cloud-managed_identities/lib/google/cloud/managed_identities/version.rb index 5ab2ca69973b..93c75993014e 100644 --- a/google-cloud-managed_identities/lib/google/cloud/managed_identities/version.rb +++ b/google-cloud-managed_identities/lib/google/cloud/managed_identities/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ManagedIdentities - VERSION = "1.4.1" + VERSION = "1.4.2" end end end diff --git a/google-cloud-managed_kafka-schema_registry-v1/CHANGELOG.md b/google-cloud-managed_kafka-schema_registry-v1/CHANGELOG.md index efe0d7c3100d..e84f6a31da6e 100644 --- a/google-cloud-managed_kafka-schema_registry-v1/CHANGELOG.md +++ b/google-cloud-managed_kafka-schema_registry-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.1.0 (2025-08-15) #### Features diff --git a/google-cloud-managed_kafka-schema_registry-v1/google-cloud-managed_kafka-schema_registry-v1.gemspec b/google-cloud-managed_kafka-schema_registry-v1/google-cloud-managed_kafka-schema_registry-v1.gemspec index b8481441a1d4..df7a52a4cf5a 100644 --- a/google-cloud-managed_kafka-schema_registry-v1/google-cloud-managed_kafka-schema_registry-v1.gemspec +++ b/google-cloud-managed_kafka-schema_registry-v1/google-cloud-managed_kafka-schema_registry-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-managed_kafka-schema_registry-v1/lib/google/cloud/managed_kafka/schema_registry/v1/version.rb b/google-cloud-managed_kafka-schema_registry-v1/lib/google/cloud/managed_kafka/schema_registry/v1/version.rb index 216df118a111..0ddaac09d3f9 100644 --- a/google-cloud-managed_kafka-schema_registry-v1/lib/google/cloud/managed_kafka/schema_registry/v1/version.rb +++ b/google-cloud-managed_kafka-schema_registry-v1/lib/google/cloud/managed_kafka/schema_registry/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module ManagedKafka module SchemaRegistry module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-managed_kafka-schema_registry-v1/snippets/snippet_metadata_google.cloud.managedkafka.schemaregistry.v1.json b/google-cloud-managed_kafka-schema_registry-v1/snippets/snippet_metadata_google.cloud.managedkafka.schemaregistry.v1.json index 9c032d4da2ea..91d0fa241b61 100644 --- a/google-cloud-managed_kafka-schema_registry-v1/snippets/snippet_metadata_google.cloud.managedkafka.schemaregistry.v1.json +++ b/google-cloud-managed_kafka-schema_registry-v1/snippets/snippet_metadata_google.cloud.managedkafka.schemaregistry.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-managed_kafka-schema_registry-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-managed_kafka-schema_registry/CHANGELOG.md b/google-cloud-managed_kafka-schema_registry/CHANGELOG.md index 587a4b352735..8ee34c222139 100644 --- a/google-cloud-managed_kafka-schema_registry/CHANGELOG.md +++ b/google-cloud-managed_kafka-schema_registry/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-08-21) #### Features diff --git a/google-cloud-managed_kafka-schema_registry/README.md b/google-cloud-managed_kafka-schema_registry/README.md index cd96518872ab..6c8631572727 100644 --- a/google-cloud-managed_kafka-schema_registry/README.md +++ b/google-cloud-managed_kafka-schema_registry/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/managedkafka.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/managed_kafka/schema_registry" + +client = Google::Cloud::ManagedKafka::SchemaRegistry.managed_schema_registry +request = ::Google::Cloud::ManagedKafka::SchemaRegistry::V1::GetSchemaRegistryRequest.new # (request fields as keyword arguments...) +response = client.get_schema_registry request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-managed_kafka-schema_registry/lib/google/cloud/managed_kafka/schema_registry/version.rb b/google-cloud-managed_kafka-schema_registry/lib/google/cloud/managed_kafka/schema_registry/version.rb index 2f4957bf4bd8..d869b42d79c8 100644 --- a/google-cloud-managed_kafka-schema_registry/lib/google/cloud/managed_kafka/schema_registry/version.rb +++ b/google-cloud-managed_kafka-schema_registry/lib/google/cloud/managed_kafka/schema_registry/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ManagedKafka module SchemaRegistry - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-managed_kafka-v1/CHANGELOG.md b/google-cloud-managed_kafka-v1/CHANGELOG.md index 2c6cc9477b44..cd2429eb5a91 100644 --- a/google-cloud-managed_kafka-v1/CHANGELOG.md +++ b/google-cloud-managed_kafka-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.4.0 (2025-07-15) #### Features diff --git a/google-cloud-managed_kafka-v1/google-cloud-managed_kafka-v1.gemspec b/google-cloud-managed_kafka-v1/google-cloud-managed_kafka-v1.gemspec index 3acdbffa5f9a..4efc53ae5c43 100644 --- a/google-cloud-managed_kafka-v1/google-cloud-managed_kafka-v1.gemspec +++ b/google-cloud-managed_kafka-v1/google-cloud-managed_kafka-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-managed_kafka-v1/lib/google/cloud/managed_kafka/v1/version.rb b/google-cloud-managed_kafka-v1/lib/google/cloud/managed_kafka/v1/version.rb index 96e4f9ddbf2e..a98194043f2b 100644 --- a/google-cloud-managed_kafka-v1/lib/google/cloud/managed_kafka/v1/version.rb +++ b/google-cloud-managed_kafka-v1/lib/google/cloud/managed_kafka/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ManagedKafka module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-managed_kafka-v1/snippets/snippet_metadata_google.cloud.managedkafka.v1.json b/google-cloud-managed_kafka-v1/snippets/snippet_metadata_google.cloud.managedkafka.v1.json index 865c9b12785f..d7406edaa8fb 100644 --- a/google-cloud-managed_kafka-v1/snippets/snippet_metadata_google.cloud.managedkafka.v1.json +++ b/google-cloud-managed_kafka-v1/snippets/snippet_metadata_google.cloud.managedkafka.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-managed_kafka-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-managed_kafka/CHANGELOG.md b/google-cloud-managed_kafka/CHANGELOG.md index 12ebfb8d4a02..ec023d052672 100644 --- a/google-cloud-managed_kafka/CHANGELOG.md +++ b/google-cloud-managed_kafka/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-managed_kafka/README.md b/google-cloud-managed_kafka/README.md index 45f4669dcdfb..b4782941505f 100644 --- a/google-cloud-managed_kafka/README.md +++ b/google-cloud-managed_kafka/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/managedkafka.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/managed_kafka" + +client = Google::Cloud::ManagedKafka.managed_kafka +request = ::Google::Cloud::ManagedKafka::V1::ListClustersRequest.new # (request fields as keyword arguments...) +response = client.list_clusters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-managed_kafka/lib/google/cloud/managed_kafka/version.rb b/google-cloud-managed_kafka/lib/google/cloud/managed_kafka/version.rb index 3eb16c41369a..3f690d505eb0 100644 --- a/google-cloud-managed_kafka/lib/google/cloud/managed_kafka/version.rb +++ b/google-cloud-managed_kafka/lib/google/cloud/managed_kafka/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ManagedKafka - VERSION = "2.1.1" + VERSION = "2.1.2" end end end diff --git a/google-cloud-media_translation-v1beta1/CHANGELOG.md b/google-cloud-media_translation-v1beta1/CHANGELOG.md index 266914e35424..1468b31e8232 100644 --- a/google-cloud-media_translation-v1beta1/CHANGELOG.md +++ b/google-cloud-media_translation-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-media_translation-v1beta1/google-cloud-media_translation-v1beta1.gemspec b/google-cloud-media_translation-v1beta1/google-cloud-media_translation-v1beta1.gemspec index 120b3330ee7a..cd13d83ba9e5 100644 --- a/google-cloud-media_translation-v1beta1/google-cloud-media_translation-v1beta1.gemspec +++ b/google-cloud-media_translation-v1beta1/google-cloud-media_translation-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-media_translation-v1beta1/lib/google/cloud/media_translation/v1beta1/version.rb b/google-cloud-media_translation-v1beta1/lib/google/cloud/media_translation/v1beta1/version.rb index fd8ef1a359bc..696cceae55eb 100644 --- a/google-cloud-media_translation-v1beta1/lib/google/cloud/media_translation/v1beta1/version.rb +++ b/google-cloud-media_translation-v1beta1/lib/google/cloud/media_translation/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module MediaTranslation module V1beta1 - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-media_translation-v1beta1/snippets/snippet_metadata_google.cloud.mediatranslation.v1beta1.json b/google-cloud-media_translation-v1beta1/snippets/snippet_metadata_google.cloud.mediatranslation.v1beta1.json index cbe3a38e0d3b..d847a8aec2d0 100644 --- a/google-cloud-media_translation-v1beta1/snippets/snippet_metadata_google.cloud.mediatranslation.v1beta1.json +++ b/google-cloud-media_translation-v1beta1/snippets/snippet_metadata_google.cloud.mediatranslation.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-media_translation-v1beta1", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-media_translation/CHANGELOG.md b/google-cloud-media_translation/CHANGELOG.md index 3b100563bee4..b57d1d719292 100644 --- a/google-cloud-media_translation/CHANGELOG.md +++ b/google-cloud-media_translation/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-media_translation/README.md b/google-cloud-media_translation/README.md index 26f071167feb..2f55f8e99136 100644 --- a/google-cloud-media_translation/README.md +++ b/google-cloud-media_translation/README.md @@ -34,6 +34,10 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/mediatranslation.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/media_translation" +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-media_translation/lib/google/cloud/media_translation/version.rb b/google-cloud-media_translation/lib/google/cloud/media_translation/version.rb index cd91edb38345..76e7906844b5 100644 --- a/google-cloud-media_translation/lib/google/cloud/media_translation/version.rb +++ b/google-cloud-media_translation/lib/google/cloud/media_translation/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module MediaTranslation - VERSION = "0.6.1" + VERSION = "0.6.2" end end end diff --git a/google-cloud-memcache-v1/CHANGELOG.md b/google-cloud-memcache-v1/CHANGELOG.md index cc3a99311047..6637c5649c45 100644 --- a/google-cloud-memcache-v1/CHANGELOG.md +++ b/google-cloud-memcache-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-memcache-v1/google-cloud-memcache-v1.gemspec b/google-cloud-memcache-v1/google-cloud-memcache-v1.gemspec index 299027782e8f..31b03d8227c6 100644 --- a/google-cloud-memcache-v1/google-cloud-memcache-v1.gemspec +++ b/google-cloud-memcache-v1/google-cloud-memcache-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-memcache-v1/lib/google/cloud/memcache/v1/version.rb b/google-cloud-memcache-v1/lib/google/cloud/memcache/v1/version.rb index 9e6edec3c086..b160da978c0a 100644 --- a/google-cloud-memcache-v1/lib/google/cloud/memcache/v1/version.rb +++ b/google-cloud-memcache-v1/lib/google/cloud/memcache/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Memcache module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-memcache-v1/snippets/snippet_metadata_google.cloud.memcache.v1.json b/google-cloud-memcache-v1/snippets/snippet_metadata_google.cloud.memcache.v1.json index ef8e02c842e7..b9790b72fd5d 100644 --- a/google-cloud-memcache-v1/snippets/snippet_metadata_google.cloud.memcache.v1.json +++ b/google-cloud-memcache-v1/snippets/snippet_metadata_google.cloud.memcache.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-memcache-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-memcache-v1beta2/CHANGELOG.md b/google-cloud-memcache-v1beta2/CHANGELOG.md index d3617672f0f0..96f4836ede50 100644 --- a/google-cloud-memcache-v1beta2/CHANGELOG.md +++ b/google-cloud-memcache-v1beta2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-memcache-v1beta2/google-cloud-memcache-v1beta2.gemspec b/google-cloud-memcache-v1beta2/google-cloud-memcache-v1beta2.gemspec index b31ab4cdcdb6..e6c7b6f42fd7 100644 --- a/google-cloud-memcache-v1beta2/google-cloud-memcache-v1beta2.gemspec +++ b/google-cloud-memcache-v1beta2/google-cloud-memcache-v1beta2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-memcache-v1beta2/lib/google/cloud/memcache/v1beta2/version.rb b/google-cloud-memcache-v1beta2/lib/google/cloud/memcache/v1beta2/version.rb index ac42790a140f..2c2c8cda5fe1 100644 --- a/google-cloud-memcache-v1beta2/lib/google/cloud/memcache/v1beta2/version.rb +++ b/google-cloud-memcache-v1beta2/lib/google/cloud/memcache/v1beta2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Memcache module V1beta2 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-memcache-v1beta2/snippets/snippet_metadata_google.cloud.memcache.v1beta2.json b/google-cloud-memcache-v1beta2/snippets/snippet_metadata_google.cloud.memcache.v1beta2.json index 089fbc06d77b..9c6e493a7556 100644 --- a/google-cloud-memcache-v1beta2/snippets/snippet_metadata_google.cloud.memcache.v1beta2.json +++ b/google-cloud-memcache-v1beta2/snippets/snippet_metadata_google.cloud.memcache.v1beta2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-memcache-v1beta2", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-memcache/CHANGELOG.md b/google-cloud-memcache/CHANGELOG.md index e02c2095dfb1..44ad26d5c300 100644 --- a/google-cloud-memcache/CHANGELOG.md +++ b/google-cloud-memcache/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-memcache/README.md b/google-cloud-memcache/README.md index a81a221939d9..d52e01587956 100644 --- a/google-cloud-memcache/README.md +++ b/google-cloud-memcache/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/memcache.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/memcache" + +client = Google::Cloud::Memcache.cloud_memcache +request = ::Google::Cloud::Memcache::V1beta2::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-memcache/lib/google/cloud/memcache/version.rb b/google-cloud-memcache/lib/google/cloud/memcache/version.rb index cf0723124337..a49aa3b38f34 100644 --- a/google-cloud-memcache/lib/google/cloud/memcache/version.rb +++ b/google-cloud-memcache/lib/google/cloud/memcache/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Memcache - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-memorystore-v1/CHANGELOG.md b/google-cloud-memorystore-v1/CHANGELOG.md index 4a7a205d45ab..3c8d42549615 100644 --- a/google-cloud-memorystore-v1/CHANGELOG.md +++ b/google-cloud-memorystore-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.2.0 (2025-05-12) #### Features diff --git a/google-cloud-memorystore-v1/google-cloud-memorystore-v1.gemspec b/google-cloud-memorystore-v1/google-cloud-memorystore-v1.gemspec index a28440a5ef03..f66809bf7a77 100644 --- a/google-cloud-memorystore-v1/google-cloud-memorystore-v1.gemspec +++ b/google-cloud-memorystore-v1/google-cloud-memorystore-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-memorystore-v1/lib/google/cloud/memorystore/v1/version.rb b/google-cloud-memorystore-v1/lib/google/cloud/memorystore/v1/version.rb index 4a1696274b78..6614caaa9bc5 100644 --- a/google-cloud-memorystore-v1/lib/google/cloud/memorystore/v1/version.rb +++ b/google-cloud-memorystore-v1/lib/google/cloud/memorystore/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Memorystore module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-memorystore-v1/snippets/snippet_metadata_google.cloud.memorystore.v1.json b/google-cloud-memorystore-v1/snippets/snippet_metadata_google.cloud.memorystore.v1.json index 39b3a8d0f691..f84c2cd8414b 100644 --- a/google-cloud-memorystore-v1/snippets/snippet_metadata_google.cloud.memorystore.v1.json +++ b/google-cloud-memorystore-v1/snippets/snippet_metadata_google.cloud.memorystore.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-memorystore-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-memorystore-v1beta/CHANGELOG.md b/google-cloud-memorystore-v1beta/CHANGELOG.md index 58dcbb7a4a95..fdfa136939e0 100644 --- a/google-cloud-memorystore-v1beta/CHANGELOG.md +++ b/google-cloud-memorystore-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.6.0 (2025-05-12) #### Features diff --git a/google-cloud-memorystore-v1beta/google-cloud-memorystore-v1beta.gemspec b/google-cloud-memorystore-v1beta/google-cloud-memorystore-v1beta.gemspec index 00f9b1396651..7bd2b9c819c8 100644 --- a/google-cloud-memorystore-v1beta/google-cloud-memorystore-v1beta.gemspec +++ b/google-cloud-memorystore-v1beta/google-cloud-memorystore-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/version.rb b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/version.rb index 7f8218cc0712..53aa862accf4 100644 --- a/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/version.rb +++ b/google-cloud-memorystore-v1beta/lib/google/cloud/memorystore/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Memorystore module V1beta - VERSION = "0.6.0" + VERSION = "0.7.0" end end end diff --git a/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json b/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json index ccb623a684f8..f57f1305267c 100644 --- a/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json +++ b/google-cloud-memorystore-v1beta/snippets/snippet_metadata_google.cloud.memorystore.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-memorystore-v1beta", - "version": "0.6.0", + "version": "0.7.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-memorystore/CHANGELOG.md b/google-cloud-memorystore/CHANGELOG.md index ccace072d04d..59199a6d774b 100644 --- a/google-cloud-memorystore/CHANGELOG.md +++ b/google-cloud-memorystore/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-memorystore/README.md b/google-cloud-memorystore/README.md index e832daf6cc2d..4e5021d39e35 100644 --- a/google-cloud-memorystore/README.md +++ b/google-cloud-memorystore/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/memorystore.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/memorystore" + +client = Google::Cloud::Memorystore.memorystore +request = ::Google::Cloud::Memorystore::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-memorystore/lib/google/cloud/memorystore/version.rb b/google-cloud-memorystore/lib/google/cloud/memorystore/version.rb index d7d3aa5d870c..bb26b94e1663 100644 --- a/google-cloud-memorystore/lib/google/cloud/memorystore/version.rb +++ b/google-cloud-memorystore/lib/google/cloud/memorystore/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Memorystore - VERSION = "1.0.1" + VERSION = "1.0.2" end end end diff --git a/google-cloud-metastore-v1/CHANGELOG.md b/google-cloud-metastore-v1/CHANGELOG.md index 6f5963eb38cb..ac93cbac10d9 100644 --- a/google-cloud-metastore-v1/CHANGELOG.md +++ b/google-cloud-metastore-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-metastore-v1/google-cloud-metastore-v1.gemspec b/google-cloud-metastore-v1/google-cloud-metastore-v1.gemspec index b82d06293524..bd641a2ac1bd 100644 --- a/google-cloud-metastore-v1/google-cloud-metastore-v1.gemspec +++ b/google-cloud-metastore-v1/google-cloud-metastore-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-metastore-v1/lib/google/cloud/metastore/v1/version.rb b/google-cloud-metastore-v1/lib/google/cloud/metastore/v1/version.rb index 4f2ab28651d9..980b0c4eb1fa 100644 --- a/google-cloud-metastore-v1/lib/google/cloud/metastore/v1/version.rb +++ b/google-cloud-metastore-v1/lib/google/cloud/metastore/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Metastore module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-metastore-v1/snippets/snippet_metadata_google.cloud.metastore.v1.json b/google-cloud-metastore-v1/snippets/snippet_metadata_google.cloud.metastore.v1.json index dc84e329b402..8102385a6826 100644 --- a/google-cloud-metastore-v1/snippets/snippet_metadata_google.cloud.metastore.v1.json +++ b/google-cloud-metastore-v1/snippets/snippet_metadata_google.cloud.metastore.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-metastore-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-metastore-v1beta/CHANGELOG.md b/google-cloud-metastore-v1beta/CHANGELOG.md index 9283ffcfaf45..04a7fe0528ff 100644 --- a/google-cloud-metastore-v1beta/CHANGELOG.md +++ b/google-cloud-metastore-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.18.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 0.17.0 (2025-05-12) #### Features diff --git a/google-cloud-metastore-v1beta/google-cloud-metastore-v1beta.gemspec b/google-cloud-metastore-v1beta/google-cloud-metastore-v1beta.gemspec index 3b640988ad81..332393fc8cb5 100644 --- a/google-cloud-metastore-v1beta/google-cloud-metastore-v1beta.gemspec +++ b/google-cloud-metastore-v1beta/google-cloud-metastore-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-metastore-v1beta/lib/google/cloud/metastore/v1beta/version.rb b/google-cloud-metastore-v1beta/lib/google/cloud/metastore/v1beta/version.rb index 5a7a4951dd0e..84c5afaa3958 100644 --- a/google-cloud-metastore-v1beta/lib/google/cloud/metastore/v1beta/version.rb +++ b/google-cloud-metastore-v1beta/lib/google/cloud/metastore/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Metastore module V1beta - VERSION = "0.17.0" + VERSION = "0.18.0" end end end diff --git a/google-cloud-metastore-v1beta/snippets/snippet_metadata_google.cloud.metastore.v1beta.json b/google-cloud-metastore-v1beta/snippets/snippet_metadata_google.cloud.metastore.v1beta.json index 182e815c7be7..5066dd9f1eb8 100644 --- a/google-cloud-metastore-v1beta/snippets/snippet_metadata_google.cloud.metastore.v1beta.json +++ b/google-cloud-metastore-v1beta/snippets/snippet_metadata_google.cloud.metastore.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-metastore-v1beta", - "version": "0.17.0", + "version": "0.18.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-metastore/CHANGELOG.md b/google-cloud-metastore/CHANGELOG.md index 29b04543897f..c23b9ae426cc 100644 --- a/google-cloud-metastore/CHANGELOG.md +++ b/google-cloud-metastore/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-metastore/README.md b/google-cloud-metastore/README.md index 2d9a492565d0..9f566291147b 100644 --- a/google-cloud-metastore/README.md +++ b/google-cloud-metastore/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/metastore.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/metastore" + +client = Google::Cloud::Metastore.dataproc_metastore +request = ::Google::Cloud::Metastore::V1::ListServicesRequest.new # (request fields as keyword arguments...) +response = client.list_services request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-metastore/lib/google/cloud/metastore/version.rb b/google-cloud-metastore/lib/google/cloud/metastore/version.rb index 0e987c06ff27..c030b106ed15 100644 --- a/google-cloud-metastore/lib/google/cloud/metastore/version.rb +++ b/google-cloud-metastore/lib/google/cloud/metastore/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Metastore - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-migration_center-v1/CHANGELOG.md b/google-cloud-migration_center-v1/CHANGELOG.md index a83a87e235c7..30639d3d5165 100644 --- a/google-cloud-migration_center-v1/CHANGELOG.md +++ b/google-cloud-migration_center-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-migration_center-v1/google-cloud-migration_center-v1.gemspec b/google-cloud-migration_center-v1/google-cloud-migration_center-v1.gemspec index c137e047b699..fc666cb9d58f 100644 --- a/google-cloud-migration_center-v1/google-cloud-migration_center-v1.gemspec +++ b/google-cloud-migration_center-v1/google-cloud-migration_center-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-migration_center-v1/lib/google/cloud/migration_center/v1/version.rb b/google-cloud-migration_center-v1/lib/google/cloud/migration_center/v1/version.rb index e5e121790762..58528d8ba5b7 100644 --- a/google-cloud-migration_center-v1/lib/google/cloud/migration_center/v1/version.rb +++ b/google-cloud-migration_center-v1/lib/google/cloud/migration_center/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module MigrationCenter module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-migration_center-v1/snippets/snippet_metadata_google.cloud.migrationcenter.v1.json b/google-cloud-migration_center-v1/snippets/snippet_metadata_google.cloud.migrationcenter.v1.json index 24e28a0085b2..c2956df14489 100644 --- a/google-cloud-migration_center-v1/snippets/snippet_metadata_google.cloud.migrationcenter.v1.json +++ b/google-cloud-migration_center-v1/snippets/snippet_metadata_google.cloud.migrationcenter.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-migration_center-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-migration_center/CHANGELOG.md b/google-cloud-migration_center/CHANGELOG.md index 6bd28dacdbc6..9a5a0775ef9a 100644 --- a/google-cloud-migration_center/CHANGELOG.md +++ b/google-cloud-migration_center/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-migration_center/README.md b/google-cloud-migration_center/README.md index bdfeedfc9694..74919697d047 100644 --- a/google-cloud-migration_center/README.md +++ b/google-cloud-migration_center/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/migrationcenter.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/migration_center" + +client = Google::Cloud::MigrationCenter.migration_center +request = ::Google::Cloud::MigrationCenter::V1::ListAssetsRequest.new # (request fields as keyword arguments...) +response = client.list_assets request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-migration_center/lib/google/cloud/migration_center/version.rb b/google-cloud-migration_center/lib/google/cloud/migration_center/version.rb index fa4a95037429..18bb01c8ddcc 100644 --- a/google-cloud-migration_center/lib/google/cloud/migration_center/version.rb +++ b/google-cloud-migration_center/lib/google/cloud/migration_center/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module MigrationCenter - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-monitoring-dashboard-v1/CHANGELOG.md b/google-cloud-monitoring-dashboard-v1/CHANGELOG.md index 884886690d78..ed8fd50165d8 100644 --- a/google-cloud-monitoring-dashboard-v1/CHANGELOG.md +++ b/google-cloud-monitoring-dashboard-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-monitoring-dashboard-v1/google-cloud-monitoring-dashboard-v1.gemspec b/google-cloud-monitoring-dashboard-v1/google-cloud-monitoring-dashboard-v1.gemspec index 5e5ed038891a..f3801d3cb446 100644 --- a/google-cloud-monitoring-dashboard-v1/google-cloud-monitoring-dashboard-v1.gemspec +++ b/google-cloud-monitoring-dashboard-v1/google-cloud-monitoring-dashboard-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-monitoring-dashboard-v1/lib/google/cloud/monitoring/dashboard/v1/version.rb b/google-cloud-monitoring-dashboard-v1/lib/google/cloud/monitoring/dashboard/v1/version.rb index fdcb1739facf..3769d150afef 100644 --- a/google-cloud-monitoring-dashboard-v1/lib/google/cloud/monitoring/dashboard/v1/version.rb +++ b/google-cloud-monitoring-dashboard-v1/lib/google/cloud/monitoring/dashboard/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Monitoring module Dashboard module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-monitoring-dashboard-v1/snippets/snippet_metadata_google.monitoring.dashboard.v1.json b/google-cloud-monitoring-dashboard-v1/snippets/snippet_metadata_google.monitoring.dashboard.v1.json index 0098029309e1..6467fb3717f1 100644 --- a/google-cloud-monitoring-dashboard-v1/snippets/snippet_metadata_google.monitoring.dashboard.v1.json +++ b/google-cloud-monitoring-dashboard-v1/snippets/snippet_metadata_google.monitoring.dashboard.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-monitoring-dashboard-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-monitoring-metrics_scope-v1/CHANGELOG.md b/google-cloud-monitoring-metrics_scope-v1/CHANGELOG.md index c6cea92c1157..3a80ecb12c96 100644 --- a/google-cloud-monitoring-metrics_scope-v1/CHANGELOG.md +++ b/google-cloud-monitoring-metrics_scope-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-monitoring-metrics_scope-v1/google-cloud-monitoring-metrics_scope-v1.gemspec b/google-cloud-monitoring-metrics_scope-v1/google-cloud-monitoring-metrics_scope-v1.gemspec index d6dc564d47da..3df958cc0747 100644 --- a/google-cloud-monitoring-metrics_scope-v1/google-cloud-monitoring-metrics_scope-v1.gemspec +++ b/google-cloud-monitoring-metrics_scope-v1/google-cloud-monitoring-metrics_scope-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-monitoring-metrics_scope-v1/lib/google/cloud/monitoring/metrics_scope/v1/version.rb b/google-cloud-monitoring-metrics_scope-v1/lib/google/cloud/monitoring/metrics_scope/v1/version.rb index ca17904619c8..98219eab8628 100644 --- a/google-cloud-monitoring-metrics_scope-v1/lib/google/cloud/monitoring/metrics_scope/v1/version.rb +++ b/google-cloud-monitoring-metrics_scope-v1/lib/google/cloud/monitoring/metrics_scope/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Monitoring module MetricsScope module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-monitoring-metrics_scope-v1/snippets/snippet_metadata_google.monitoring.metricsscope.v1.json b/google-cloud-monitoring-metrics_scope-v1/snippets/snippet_metadata_google.monitoring.metricsscope.v1.json index 4f25b8a8536e..bc51d3efe979 100644 --- a/google-cloud-monitoring-metrics_scope-v1/snippets/snippet_metadata_google.monitoring.metricsscope.v1.json +++ b/google-cloud-monitoring-metrics_scope-v1/snippets/snippet_metadata_google.monitoring.metricsscope.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-monitoring-metrics_scope-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-monitoring-v3/CHANGELOG.md b/google-cloud-monitoring-v3/CHANGELOG.md index 1df59e573001..8cecc750a256 100644 --- a/google-cloud-monitoring-v3/CHANGELOG.md +++ b/google-cloud-monitoring-v3/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31015](https://github.com/googleapis/google-cloud-ruby/issues/31015)) + ### 1.6.1 (2025-07-15) #### Documentation diff --git a/google-cloud-monitoring-v3/google-cloud-monitoring-v3.gemspec b/google-cloud-monitoring-v3/google-cloud-monitoring-v3.gemspec index b204b1ca896f..bc758b66b172 100644 --- a/google-cloud-monitoring-v3/google-cloud-monitoring-v3.gemspec +++ b/google-cloud-monitoring-v3/google-cloud-monitoring-v3.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-monitoring-v3/lib/google/cloud/monitoring/v3/version.rb b/google-cloud-monitoring-v3/lib/google/cloud/monitoring/v3/version.rb index 6b372c020aa6..11fcccaea265 100644 --- a/google-cloud-monitoring-v3/lib/google/cloud/monitoring/v3/version.rb +++ b/google-cloud-monitoring-v3/lib/google/cloud/monitoring/v3/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Monitoring module V3 - VERSION = "1.6.1" + VERSION = "1.7.0" end end end diff --git a/google-cloud-monitoring-v3/snippets/snippet_metadata_google.monitoring.v3.json b/google-cloud-monitoring-v3/snippets/snippet_metadata_google.monitoring.v3.json index e21db75936c5..f1b141237b29 100644 --- a/google-cloud-monitoring-v3/snippets/snippet_metadata_google.monitoring.v3.json +++ b/google-cloud-monitoring-v3/snippets/snippet_metadata_google.monitoring.v3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-monitoring-v3", - "version": "1.6.1", + "version": "1.7.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-monitoring/CHANGELOG.md b/google-cloud-monitoring/CHANGELOG.md index c0feb7ad2ae5..332255e4cd5f 100644 --- a/google-cloud-monitoring/CHANGELOG.md +++ b/google-cloud-monitoring/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.9.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.9.2 (2025-05-27) #### Documentation diff --git a/google-cloud-monitoring/README.md b/google-cloud-monitoring/README.md index df72f471a117..0dea9a2a7298 100644 --- a/google-cloud-monitoring/README.md +++ b/google-cloud-monitoring/README.md @@ -36,6 +36,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/monitoring.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/monitoring" + +client = Google::Cloud::Monitoring.alert_policy_service +request = ::Google::Cloud::Monitoring::V3::ListAlertPoliciesRequest.new # (request fields as keyword arguments...) +response = client.list_alert_policies request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-monitoring client is a significant upgrade diff --git a/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb b/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb index 45737efdc27b..26c0f74ea5a5 100644 --- a/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb +++ b/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Monitoring - VERSION = "1.9.2" + VERSION = "1.9.3" end end end diff --git a/google-cloud-netapp-v1/CHANGELOG.md b/google-cloud-netapp-v1/CHANGELOG.md index 135e0ca38b88..30c2b5ca8a1d 100644 --- a/google-cloud-netapp-v1/CHANGELOG.md +++ b/google-cloud-netapp-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 2.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 2.4.0 (2025-09-05) + +#### Features + +* add new fields for flex auto tiering ([#30946](https://github.com/googleapis/google-cloud-ruby/issues/30946)) + ### 2.3.0 (2025-05-16) #### Features diff --git a/google-cloud-netapp-v1/google-cloud-netapp-v1.gemspec b/google-cloud-netapp-v1/google-cloud-netapp-v1.gemspec index a6f0128cf3ee..466754b19495 100644 --- a/google-cloud-netapp-v1/google-cloud-netapp-v1.gemspec +++ b/google-cloud-netapp-v1/google-cloud-netapp-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/common_pb.rb b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/common_pb.rb index f6dbab2ba7f1..bd60e90e0ade 100644 --- a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/common_pb.rb +++ b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/common_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n#google/cloud/netapp/v1/common.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xb1\x01\n\x10LocationMetadata\x12K\n\x18supported_service_levels\x18\x01 \x03(\x0e\x32$.google.cloud.netapp.v1.ServiceLevelB\x03\xe0\x41\x03\x12P\n\x1asupported_flex_performance\x18\x02 \x03(\x0e\x32\'.google.cloud.netapp.v1.FlexPerformanceB\x03\xe0\x41\x03*_\n\x0cServiceLevel\x12\x1d\n\x19SERVICE_LEVEL_UNSPECIFIED\x10\x00\x12\x0b\n\x07PREMIUM\x10\x01\x12\x0b\n\x07\x45XTREME\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\x08\n\x04\x46LEX\x10\x04*n\n\x0f\x46lexPerformance\x12 \n\x1c\x46LEX_PERFORMANCE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46LEX_PERFORMANCE_DEFAULT\x10\x01\x12\x1b\n\x17\x46LEX_PERFORMANCE_CUSTOM\x10\x02*U\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSERVICE_MANAGED\x10\x01\x12\r\n\tCLOUD_KMS\x10\x02*T\n\x14\x44irectoryServiceType\x12&\n\"DIRECTORY_SERVICE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x41\x43TIVE_DIRECTORY\x10\x01\x42\xad\x01\n\x1a\x63om.google.cloud.netapp.v1B\x0b\x43ommonProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" +descriptor_data = "\n#google/cloud/netapp/v1/common.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xc7\x01\n\x10LocationMetadata\x12K\n\x18supported_service_levels\x18\x01 \x03(\x0e\x32$.google.cloud.netapp.v1.ServiceLevelB\x03\xe0\x41\x03\x12P\n\x1asupported_flex_performance\x18\x02 \x03(\x0e\x32\'.google.cloud.netapp.v1.FlexPerformanceB\x03\xe0\x41\x03\x12\x14\n\x07has_vcp\x18\x03 \x01(\x08\x42\x03\xe0\x41\x03\"%\n\x0cUserCommands\x12\x15\n\x08\x63ommands\x18\x01 \x03(\tB\x03\xe0\x41\x03*_\n\x0cServiceLevel\x12\x1d\n\x19SERVICE_LEVEL_UNSPECIFIED\x10\x00\x12\x0b\n\x07PREMIUM\x10\x01\x12\x0b\n\x07\x45XTREME\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\x08\n\x04\x46LEX\x10\x04*n\n\x0f\x46lexPerformance\x12 \n\x1c\x46LEX_PERFORMANCE_UNSPECIFIED\x10\x00\x12\x1c\n\x18\x46LEX_PERFORMANCE_DEFAULT\x10\x01\x12\x1b\n\x17\x46LEX_PERFORMANCE_CUSTOM\x10\x02*U\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSERVICE_MANAGED\x10\x01\x12\r\n\tCLOUD_KMS\x10\x02*T\n\x14\x44irectoryServiceType\x12&\n\"DIRECTORY_SERVICE_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x41\x43TIVE_DIRECTORY\x10\x01*u\n\x19HybridReplicationSchedule\x12+\n\'HYBRID_REPLICATION_SCHEDULE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x45VERY_10_MINUTES\x10\x01\x12\n\n\x06HOURLY\x10\x02\x12\t\n\x05\x44\x41ILY\x10\x03*9\n\x07QosType\x12\x18\n\x14QOS_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04\x41UTO\x10\x01\x12\n\n\x06MANUAL\x10\x02\x42\xad\x01\n\x1a\x63om.google.cloud.netapp.v1B\x0b\x43ommonProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -38,10 +38,13 @@ module Cloud module NetApp module V1 LocationMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.LocationMetadata").msgclass + UserCommands = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.UserCommands").msgclass ServiceLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.ServiceLevel").enummodule FlexPerformance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.FlexPerformance").enummodule EncryptionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.EncryptionType").enummodule DirectoryServiceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.DirectoryServiceType").enummodule + HybridReplicationSchedule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.HybridReplicationSchedule").enummodule + QosType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.QosType").enummodule end end end diff --git a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/replication_pb.rb b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/replication_pb.rb index 772b97ddbfb1..75665e0f6088 100644 --- a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/replication_pb.rb +++ b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/replication_pb.rb @@ -6,13 +6,14 @@ require 'google/api/field_behavior_pb' require 'google/api/resource_pb' +require 'google/cloud/netapp/v1/common_pb' require 'google/cloud/netapp/v1/volume_pb' require 'google/protobuf/duration_pb' require 'google/protobuf/field_mask_pb' require 'google/protobuf/timestamp_pb' -descriptor_data = "\n(google/cloud/netapp/v1/replication.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/netapp/v1/volume.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd4\x04\n\rTransferStats\x12\x1b\n\x0etransfer_bytes\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12?\n\x17total_transfer_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x01\x88\x01\x01\x12 \n\x13last_transfer_bytes\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12>\n\x16last_transfer_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x03\x88\x01\x01\x12\x34\n\x0clag_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationH\x04\x88\x01\x01\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x12?\n\x16last_transfer_end_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12 \n\x13last_transfer_error\x18\x08 \x01(\tH\x07\x88\x01\x01\x42\x11\n\x0f_transfer_bytesB\x1a\n\x18_total_transfer_durationB\x16\n\x14_last_transfer_bytesB\x19\n\x17_last_transfer_durationB\x0f\n\r_lag_durationB\x0e\n\x0c_update_timeB\x19\n\x17_last_transfer_end_timeB\x16\n\x14_last_transfer_error\"\xc8\x0e\n\x0bReplication\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12=\n\x05state\x18\x02 \x01(\x0e\x32).google.cloud.netapp.v1.Replication.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_details\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x04role\x18\x04 \x01(\x0e\x32\x33.google.cloud.netapp.v1.Replication.ReplicationRoleB\x03\xe0\x41\x03\x12Z\n\x14replication_schedule\x18\x05 \x01(\x0e\x32\x37.google.cloud.netapp.v1.Replication.ReplicationScheduleB\x03\xe0\x41\x02\x12J\n\x0cmirror_state\x18\x06 \x01(\x0e\x32/.google.cloud.netapp.v1.Replication.MirrorStateB\x03\xe0\x41\x03\x12\x19\n\x07healthy\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x12\x64\x65stination_volume\x18\n \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12\x42\n\x0etransfer_stats\x18\x0b \x01(\x0b\x32%.google.cloud.netapp.v1.TransferStatsB\x03\xe0\x41\x03\x12?\n\x06labels\x18\x0c \x03(\x0b\x32/.google.cloud.netapp.v1.Replication.LabelsEntry\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x01\x88\x01\x01\x12\x62\n\x1d\x64\x65stination_volume_parameters\x18\x0e \x01(\x0b\x32\x33.google.cloud.netapp.v1.DestinationVolumeParametersB\x06\xe0\x41\x04\xe0\x41\x02\x12;\n\rsource_volume\x18\x0f \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12Q\n\x16hybrid_peering_details\x18\x10 \x01(\x0b\x32,.google.cloud.netapp.v1.HybridPeeringDetailsB\x03\xe0\x41\x03\x12\x1d\n\x10\x63luster_location\x18\x12 \x01(\tB\x03\xe0\x41\x01\x12_\n\x17hybrid_replication_type\x18\x13 \x01(\x0e\x32\x39.google.cloud.netapp.v1.Replication.HybridReplicationTypeB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x94\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0c\n\x08UPDATING\x10\x03\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\t\n\x05\x45RROR\x10\x06\x12\x1b\n\x17PENDING_CLUSTER_PEERING\x10\x08\x12\x17\n\x13PENDING_SVM_PEERING\x10\t\"P\n\x0fReplicationRole\x12 \n\x1cREPLICATION_ROLE_UNSPECIFIED\x10\x00\x12\n\n\x06SOURCE\x10\x01\x12\x0f\n\x0b\x44\x45STINATION\x10\x02\"h\n\x13ReplicationSchedule\x12$\n REPLICATION_SCHEDULE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x45VERY_10_MINUTES\x10\x01\x12\n\n\x06HOURLY\x10\x02\x12\t\n\x05\x44\x41ILY\x10\x03\"\x8f\x01\n\x0bMirrorState\x12\x1c\n\x18MIRROR_STATE_UNSPECIFIED\x10\x00\x12\r\n\tPREPARING\x10\x01\x12\x0c\n\x08MIRRORED\x10\x02\x12\x0b\n\x07STOPPED\x10\x03\x12\x10\n\x0cTRANSFERRING\x10\x04\x12\x19\n\x15\x42\x41SELINE_TRANSFERRING\x10\x05\x12\x0b\n\x07\x41\x42ORTED\x10\x06\"k\n\x15HybridReplicationType\x12\'\n#HYBRID_REPLICATION_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tMIGRATION\x10\x01\x12\x1a\n\x16\x43ONTINUOUS_REPLICATION\x10\x02:\x97\x01\xea\x41\x93\x01\n!netapp.googleapis.com/Replication\x12Sprojects/{project}/locations/{location}/volumes/{volume}/replications/{replication}*\x0creplications2\x0breplicationB\n\n\x08_healthyB\x0e\n\x0c_description\"\xf6\x01\n\x14HybridPeeringDetails\x12\x16\n\tsubnet_ip\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x14\n\x07\x63ommand\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12<\n\x13\x63ommand_expiry_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12\x17\n\npassphrase\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1d\n\x10peer_volume_name\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11peer_cluster_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rpeer_svm_name\x18\x07 \x01(\tB\x03\xe0\x41\x01\"\x9d\x01\n\x17ListReplicationsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/Replication\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"\x83\x01\n\x18ListReplicationsResponse\x12\x39\n\x0creplications\x18\x01 \x03(\x0b\x32#.google.cloud.netapp.v1.Replication\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"P\n\x15GetReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"\x8b\x02\n\x1b\x44\x65stinationVolumeParameters\x12?\n\x0cstorage_pool\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\x12\x11\n\tvolume_id\x18\x02 \x01(\t\x12\x12\n\nshare_name\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x12G\n\x0etiering_policy\x18\x05 \x01(\x0b\x32%.google.cloud.netapp.v1.TieringPolicyB\x03\xe0\x41\x01H\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_tiering_policy\"\xb1\x01\n\x18\x43reateReplicationRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/Replication\x12=\n\x0breplication\x18\x02 \x01(\x0b\x32#.google.cloud.netapp.v1.ReplicationB\x03\xe0\x41\x02\x12\x1b\n\x0ereplication_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"S\n\x18\x44\x65leteReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"\x8f\x01\n\x18UpdateReplicationRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12=\n\x0breplication\x18\x02 \x01(\x0b\x32#.google.cloud.netapp.v1.ReplicationB\x03\xe0\x41\x02\"`\n\x16StopReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"S\n\x18ResumeReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"]\n\"ReverseReplicationDirectionRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"\xcd\x01\n\x17\x45stablishPeeringRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\x12\x1e\n\x11peer_cluster_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rpeer_svm_name\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11peer_ip_addresses\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x1d\n\x10peer_volume_name\x18\x05 \x01(\tB\x03\xe0\x41\x02\"Q\n\x16SyncReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/ReplicationB\xb2\x01\n\x1a\x63om.google.cloud.netapp.v1B\x10ReplicationProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" +descriptor_data = "\n(google/cloud/netapp/v1/replication.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/netapp/v1/common.proto\x1a#google/cloud/netapp/v1/volume.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd4\x04\n\rTransferStats\x12\x1b\n\x0etransfer_bytes\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12?\n\x17total_transfer_duration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x01\x88\x01\x01\x12 \n\x13last_transfer_bytes\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12>\n\x16last_transfer_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x03\x88\x01\x01\x12\x34\n\x0clag_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationH\x04\x88\x01\x01\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x12?\n\x16last_transfer_end_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12 \n\x13last_transfer_error\x18\x08 \x01(\tH\x07\x88\x01\x01\x42\x11\n\x0f_transfer_bytesB\x1a\n\x18_total_transfer_durationB\x16\n\x14_last_transfer_bytesB\x19\n\x17_last_transfer_durationB\x0f\n\r_lag_durationB\x0e\n\x0c_update_timeB\x19\n\x17_last_transfer_end_timeB\x16\n\x14_last_transfer_error\"\xc2\x10\n\x0bReplication\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12=\n\x05state\x18\x02 \x01(\x0e\x32).google.cloud.netapp.v1.Replication.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_details\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x04role\x18\x04 \x01(\x0e\x32\x33.google.cloud.netapp.v1.Replication.ReplicationRoleB\x03\xe0\x41\x03\x12Z\n\x14replication_schedule\x18\x05 \x01(\x0e\x32\x37.google.cloud.netapp.v1.Replication.ReplicationScheduleB\x03\xe0\x41\x02\x12J\n\x0cmirror_state\x18\x06 \x01(\x0e\x32/.google.cloud.netapp.v1.Replication.MirrorStateB\x03\xe0\x41\x03\x12\x19\n\x07healthy\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03H\x00\x88\x01\x01\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12@\n\x12\x64\x65stination_volume\x18\n \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12\x42\n\x0etransfer_stats\x18\x0b \x01(\x0b\x32%.google.cloud.netapp.v1.TransferStatsB\x03\xe0\x41\x03\x12?\n\x06labels\x18\x0c \x03(\x0b\x32/.google.cloud.netapp.v1.Replication.LabelsEntry\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x01\x88\x01\x01\x12\x62\n\x1d\x64\x65stination_volume_parameters\x18\x0e \x01(\x0b\x32\x33.google.cloud.netapp.v1.DestinationVolumeParametersB\x06\xe0\x41\x04\xe0\x41\x02\x12;\n\rsource_volume\x18\x0f \x01(\tB$\xe0\x41\x03\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12Q\n\x16hybrid_peering_details\x18\x10 \x01(\x0b\x32,.google.cloud.netapp.v1.HybridPeeringDetailsB\x03\xe0\x41\x03\x12\x1d\n\x10\x63luster_location\x18\x12 \x01(\tB\x03\xe0\x41\x01\x12_\n\x17hybrid_replication_type\x18\x13 \x01(\x0e\x32\x39.google.cloud.netapp.v1.Replication.HybridReplicationTypeB\x03\xe0\x41\x03\x12S\n hybrid_replication_user_commands\x18\x14 \x01(\x0b\x32$.google.cloud.netapp.v1.UserCommandsB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd3\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0c\n\x08UPDATING\x10\x03\x12\x0c\n\x08\x44\x45LETING\x10\x05\x12\t\n\x05\x45RROR\x10\x06\x12\x1b\n\x17PENDING_CLUSTER_PEERING\x10\x08\x12\x17\n\x13PENDING_SVM_PEERING\x10\t\x12\x19\n\x15PENDING_REMOTE_RESYNC\x10\n\x12\"\n\x1e\x45XTERNALLY_MANAGED_REPLICATION\x10\x0b\"P\n\x0fReplicationRole\x12 \n\x1cREPLICATION_ROLE_UNSPECIFIED\x10\x00\x12\n\n\x06SOURCE\x10\x01\x12\x0f\n\x0b\x44\x45STINATION\x10\x02\"h\n\x13ReplicationSchedule\x12$\n REPLICATION_SCHEDULE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x45VERY_10_MINUTES\x10\x01\x12\n\n\x06HOURLY\x10\x02\x12\t\n\x05\x44\x41ILY\x10\x03\"\xbc\x01\n\x0bMirrorState\x12\x1c\n\x18MIRROR_STATE_UNSPECIFIED\x10\x00\x12\r\n\tPREPARING\x10\x01\x12\x0c\n\x08MIRRORED\x10\x02\x12\x0b\n\x07STOPPED\x10\x03\x12\x10\n\x0cTRANSFERRING\x10\x04\x12\x19\n\x15\x42\x41SELINE_TRANSFERRING\x10\x05\x12\x0b\n\x07\x41\x42ORTED\x10\x06\x12\x16\n\x12\x45XTERNALLY_MANAGED\x10\x07\x12\x13\n\x0fPENDING_PEERING\x10\x08\"\xa3\x01\n\x15HybridReplicationType\x12\'\n#HYBRID_REPLICATION_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tMIGRATION\x10\x01\x12\x1a\n\x16\x43ONTINUOUS_REPLICATION\x10\x02\x12\x16\n\x12ONPREM_REPLICATION\x10\x03\x12\x1e\n\x1aREVERSE_ONPREM_REPLICATION\x10\x04:\x97\x01\xea\x41\x93\x01\n!netapp.googleapis.com/Replication\x12Sprojects/{project}/locations/{location}/volumes/{volume}/replications/{replication}*\x0creplications2\x0breplicationB\n\n\x08_healthyB\x0e\n\x0c_description\"\xf6\x01\n\x14HybridPeeringDetails\x12\x16\n\tsubnet_ip\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07\x63ommand\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12<\n\x13\x63ommand_expiry_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\npassphrase\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1d\n\x10peer_volume_name\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x1e\n\x11peer_cluster_name\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rpeer_svm_name\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\x9d\x01\n\x17ListReplicationsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/Replication\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x10\n\x08order_by\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"\x83\x01\n\x18ListReplicationsResponse\x12\x39\n\x0creplications\x18\x01 \x03(\x0b\x32#.google.cloud.netapp.v1.Replication\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"P\n\x15GetReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"\x8b\x02\n\x1b\x44\x65stinationVolumeParameters\x12?\n\x0cstorage_pool\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\x12\x11\n\tvolume_id\x18\x02 \x01(\t\x12\x12\n\nshare_name\x18\x03 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x12G\n\x0etiering_policy\x18\x05 \x01(\x0b\x32%.google.cloud.netapp.v1.TieringPolicyB\x03\xe0\x41\x01H\x01\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_tiering_policy\"\xb1\x01\n\x18\x43reateReplicationRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/Replication\x12=\n\x0breplication\x18\x02 \x01(\x0b\x32#.google.cloud.netapp.v1.ReplicationB\x03\xe0\x41\x02\x12\x1b\n\x0ereplication_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"S\n\x18\x44\x65leteReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"\x8f\x01\n\x18UpdateReplicationRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12=\n\x0breplication\x18\x02 \x01(\x0b\x32#.google.cloud.netapp.v1.ReplicationB\x03\xe0\x41\x02\"`\n\x16StopReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"S\n\x18ResumeReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"]\n\"ReverseReplicationDirectionRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\"\xcd\x01\n\x17\x45stablishPeeringRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\x12\x1e\n\x11peer_cluster_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rpeer_svm_name\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11peer_ip_addresses\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x1d\n\x10peer_volume_name\x18\x05 \x01(\tB\x03\xe0\x41\x02\"Q\n\x16SyncReplicationRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/ReplicationB\xb2\x01\n\x1a\x63om.google.cloud.netapp.v1B\x10ReplicationProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -29,6 +30,7 @@ imports = [ ["google.protobuf.Duration", "google/protobuf/duration.proto"], ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], + ["google.cloud.netapp.v1.UserCommands", "google/cloud/netapp/v1/common.proto"], ["google.cloud.netapp.v1.TieringPolicy", "google/cloud/netapp/v1/volume.proto"], ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], ] diff --git a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/storage_pool_pb.rb b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/storage_pool_pb.rb index dbb36dfb7dea..6a23449dc142 100644 --- a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/storage_pool_pb.rb +++ b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/storage_pool_pb.rb @@ -11,7 +11,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n)google/cloud/netapp/v1/storage_pool.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/netapp/v1/common.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x15GetStoragePoolRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\"\xb1\x01\n\x17ListStoragePoolsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/StoragePool\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x84\x01\n\x18ListStoragePoolsResponse\x12:\n\rstorage_pools\x18\x01 \x03(\x0b\x32#.google.cloud.netapp.v1.StoragePool\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xb3\x01\n\x18\x43reateStoragePoolRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/StoragePool\x12\x1c\n\x0fstorage_pool_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0cstorage_pool\x18\x03 \x01(\x0b\x32#.google.cloud.netapp.v1.StoragePoolB\x03\xe0\x41\x02\"\x90\x01\n\x18UpdateStoragePoolRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12>\n\x0cstorage_pool\x18\x02 \x01(\x0b\x32#.google.cloud.netapp.v1.StoragePoolB\x03\xe0\x41\x02\"S\n\x18\x44\x65leteStoragePoolRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\"Y\n\x1eSwitchActiveReplicaZoneRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\"\xc9\n\n\x0bStoragePool\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12@\n\rservice_level\x18\x02 \x01(\x0e\x32$.google.cloud.netapp.v1.ServiceLevelB\x03\xe0\x41\x02\x12\x19\n\x0c\x63\x61pacity_gib\x18\x03 \x01(\x03\x42\x03\xe0\x41\x02\x12 \n\x13volume_capacity_gib\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0cvolume_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12=\n\x05state\x18\x06 \x01(\x0e\x32).google.cloud.netapp.v1.StoragePool.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_details\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\t \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x06labels\x18\n \x03(\x0b\x32/.google.cloud.netapp.v1.StoragePool.LabelsEntryB\x03\xe0\x41\x01\x12\x37\n\x07network\x18\x0b \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12G\n\x10\x61\x63tive_directory\x18\x0c \x01(\tB-\xe0\x41\x01\xfa\x41\'\n%netapp.googleapis.com/ActiveDirectory\x12;\n\nkms_config\x18\r \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1fnetapp.googleapis.com/KmsConfig\x12\x19\n\x0cldap_enabled\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01\x12\x16\n\tpsa_range\x18\x0f \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0f\x65ncryption_type\x18\x10 \x01(\x0e\x32&.google.cloud.netapp.v1.EncryptionTypeB\x03\xe0\x41\x03\x12&\n\x15global_access_allowed\x18\x11 \x01(\x08\x42\x02\x18\x01H\x00\x88\x01\x01\x12\x1f\n\x12\x61llow_auto_tiering\x18\x12 \x01(\x08\x42\x03\xe0\x41\x01\x12\x19\n\x0creplica_zone\x18\x14 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04zone\x18\x15 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rsatisfies_pzs\x18\x17 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzi\x18\x18 \x01(\x08\x42\x03\xe0\x41\x03\x12\'\n\x1a\x63ustom_performance_enabled\x18\x19 \x01(\x08\x42\x03\xe0\x41\x01\x12#\n\x16total_throughput_mibps\x18\x1a \x01(\x03\x42\x03\xe0\x41\x01\x12\x17\n\ntotal_iops\x18\x1b \x01(\x03\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"{\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\r\n\tRESTORING\x10\x05\x12\x0c\n\x08\x44ISABLED\x10\x06\x12\t\n\x05\x45RROR\x10\x07:\x87\x01\xea\x41\x83\x01\n!netapp.googleapis.com/StoragePool\x12\x43projects/{project}/locations/{location}/storagePools/{storage_pool}*\x0cstoragePools2\x0bstoragePoolB\x18\n\x16_global_access_allowed\"\xa8\x01\n\x1fValidateDirectoryServiceRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\x12L\n\x16\x64irectory_service_type\x18\x02 \x01(\x0e\x32,.google.cloud.netapp.v1.DirectoryServiceTypeB\xb2\x01\n\x1a\x63om.google.cloud.netapp.v1B\x10StoragePoolProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" +descriptor_data = "\n)google/cloud/netapp/v1/storage_pool.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/netapp/v1/common.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x15GetStoragePoolRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\"\xb1\x01\n\x17ListStoragePoolsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/StoragePool\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x84\x01\n\x18ListStoragePoolsResponse\x12:\n\rstorage_pools\x18\x01 \x03(\x0b\x32#.google.cloud.netapp.v1.StoragePool\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\xb3\x01\n\x18\x43reateStoragePoolRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!netapp.googleapis.com/StoragePool\x12\x1c\n\x0fstorage_pool_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12>\n\x0cstorage_pool\x18\x03 \x01(\x0b\x32#.google.cloud.netapp.v1.StoragePoolB\x03\xe0\x41\x02\"\x90\x01\n\x18UpdateStoragePoolRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12>\n\x0cstorage_pool\x18\x02 \x01(\x0b\x32#.google.cloud.netapp.v1.StoragePoolB\x03\xe0\x41\x02\"S\n\x18\x44\x65leteStoragePoolRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\"Y\n\x1eSwitchActiveReplicaZoneRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\"\xe4\x0c\n\x0bStoragePool\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12@\n\rservice_level\x18\x02 \x01(\x0e\x32$.google.cloud.netapp.v1.ServiceLevelB\x03\xe0\x41\x02\x12\x19\n\x0c\x63\x61pacity_gib\x18\x03 \x01(\x03\x42\x03\xe0\x41\x02\x12 \n\x13volume_capacity_gib\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12\x19\n\x0cvolume_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12=\n\x05state\x18\x06 \x01(\x0e\x32).google.cloud.netapp.v1.StoragePool.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_details\x18\x07 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\t \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x06labels\x18\n \x03(\x0b\x32/.google.cloud.netapp.v1.StoragePool.LabelsEntryB\x03\xe0\x41\x01\x12\x37\n\x07network\x18\x0b \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12G\n\x10\x61\x63tive_directory\x18\x0c \x01(\tB-\xe0\x41\x01\xfa\x41\'\n%netapp.googleapis.com/ActiveDirectory\x12;\n\nkms_config\x18\r \x01(\tB\'\xe0\x41\x01\xfa\x41!\n\x1fnetapp.googleapis.com/KmsConfig\x12\x19\n\x0cldap_enabled\x18\x0e \x01(\x08\x42\x03\xe0\x41\x01\x12\x16\n\tpsa_range\x18\x0f \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0f\x65ncryption_type\x18\x10 \x01(\x0e\x32&.google.cloud.netapp.v1.EncryptionTypeB\x03\xe0\x41\x03\x12&\n\x15global_access_allowed\x18\x11 \x01(\x08\x42\x02\x18\x01H\x00\x88\x01\x01\x12\x1f\n\x12\x61llow_auto_tiering\x18\x12 \x01(\x08\x42\x03\xe0\x41\x01\x12\x19\n\x0creplica_zone\x18\x14 \x01(\tB\x03\xe0\x41\x01\x12\x11\n\x04zone\x18\x15 \x01(\tB\x03\xe0\x41\x01\x12\x1a\n\rsatisfies_pzs\x18\x17 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1a\n\rsatisfies_pzi\x18\x18 \x01(\x08\x42\x03\xe0\x41\x03\x12\'\n\x1a\x63ustom_performance_enabled\x18\x19 \x01(\x08\x42\x03\xe0\x41\x01\x12#\n\x16total_throughput_mibps\x18\x1a \x01(\x03\x42\x03\xe0\x41\x01\x12\x17\n\ntotal_iops\x18\x1b \x01(\x03\x42\x03\xe0\x41\x01\x12\x1e\n\x11hot_tier_size_gib\x18\x1c \x01(\x03\x42\x03\xe0\x41\x01\x12-\n\x1b\x65nable_hot_tier_auto_resize\x18\x1d \x01(\x08\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x36\n\x08qos_type\x18\x1e \x01(\x0e\x32\x1f.google.cloud.netapp.v1.QosTypeB\x03\xe0\x41\x01\x12\'\n\x1a\x61vailable_throughput_mibps\x18\x1f \x01(\x01\x42\x03\xe0\x41\x03\x12$\n\x17\x63old_tier_size_used_gib\x18! \x01(\x03\x42\x03\xe0\x41\x03\x12#\n\x16hot_tier_size_used_gib\x18\" \x01(\x03\x42\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"{\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\r\n\tRESTORING\x10\x05\x12\x0c\n\x08\x44ISABLED\x10\x06\x12\t\n\x05\x45RROR\x10\x07:\x87\x01\xea\x41\x83\x01\n!netapp.googleapis.com/StoragePool\x12\x43projects/{project}/locations/{location}/storagePools/{storage_pool}*\x0cstoragePools2\x0bstoragePoolB\x18\n\x16_global_access_allowedB\x1e\n\x1c_enable_hot_tier_auto_resize\"\xa8\x01\n\x1fValidateDirectoryServiceRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\x12L\n\x16\x64irectory_service_type\x18\x02 \x01(\x0e\x32,.google.cloud.netapp.v1.DirectoryServiceTypeB\xb2\x01\n\x1a\x63om.google.cloud.netapp.v1B\x10StoragePoolProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/version.rb b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/version.rb index e22505f41490..a7e3e34ed2b7 100644 --- a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/version.rb +++ b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module NetApp module V1 - VERSION = "2.3.0" + VERSION = "2.5.0" end end end diff --git a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/volume_pb.rb b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/volume_pb.rb index 14faa43bf3c4..0d5c8674207e 100644 --- a/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/volume_pb.rb +++ b/google-cloud-netapp-v1/lib/google/cloud/netapp/v1/volume_pb.rb @@ -12,7 +12,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n#google/cloud/netapp/v1/volume.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/netapp/v1/common.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x93\x01\n\x12ListVolumesRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1cnetapp.googleapis.com/Volume\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"t\n\x13ListVolumesResponse\x12/\n\x07volumes\x18\x01 \x03(\x0b\x32\x1e.google.cloud.netapp.v1.Volume\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"F\n\x10GetVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\"\x98\x01\n\x13\x43reateVolumeRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1cnetapp.googleapis.com/Volume\x12\x16\n\tvolume_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x06volume\x18\x03 \x01(\x0b\x32\x1e.google.cloud.netapp.v1.VolumeB\x03\xe0\x41\x02\"\x80\x01\n\x13UpdateVolumeRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x33\n\x06volume\x18\x02 \x01(\x0b\x32\x1e.google.cloud.netapp.v1.VolumeB\x03\xe0\x41\x02\"X\n\x13\x44\x65leteVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"c\n\x13RevertVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12\x18\n\x0bsnapshot_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x91\x11\n\x06Volume\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x38\n\x05state\x18\x02 \x01(\x0e\x32$.google.cloud.netapp.v1.Volume.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_details\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nshare_name\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tpsa_range\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12?\n\x0cstorage_pool\x18\x07 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\x12\x37\n\x07network\x18\x08 \x01(\tB&\xe0\x41\x03\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12@\n\rservice_level\x18\t \x01(\x0e\x32$.google.cloud.netapp.v1.ServiceLevelB\x03\xe0\x41\x03\x12\x19\n\x0c\x63\x61pacity_gib\x18\n \x01(\x03\x42\x03\xe0\x41\x02\x12@\n\rexport_policy\x18\x0b \x01(\x0b\x32$.google.cloud.netapp.v1.ExportPolicyB\x03\xe0\x41\x01\x12\x39\n\tprotocols\x18\x0c \x03(\x0e\x32!.google.cloud.netapp.v1.ProtocolsB\x03\xe0\x41\x02\x12>\n\x0csmb_settings\x18\r \x03(\x0e\x32#.google.cloud.netapp.v1.SMBSettingsB\x03\xe0\x41\x01\x12?\n\rmount_options\x18\x0e \x03(\x0b\x32#.google.cloud.netapp.v1.MountOptionB\x03\xe0\x41\x03\x12\x1d\n\x10unix_permissions\x18\x0f \x01(\tB\x03\xe0\x41\x01\x12?\n\x06labels\x18\x10 \x03(\x0b\x32*.google.cloud.netapp.v1.Volume.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x11 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0fsnapshot_policy\x18\x12 \x01(\x0b\x32&.google.cloud.netapp.v1.SnapshotPolicyB\x03\xe0\x41\x01\x12\x19\n\x0csnap_reserve\x18\x13 \x01(\x01\x42\x03\xe0\x41\x01\x12\x1f\n\x12snapshot_directory\x18\x14 \x01(\x08\x42\x03\xe0\x41\x01\x12\x15\n\x08used_gib\x18\x15 \x01(\x03\x42\x03\xe0\x41\x03\x12\x42\n\x0esecurity_style\x18\x16 \x01(\x0e\x32%.google.cloud.netapp.v1.SecurityStyleB\x03\xe0\x41\x01\x12\x1d\n\x10kerberos_enabled\x18\x17 \x01(\x08\x42\x03\xe0\x41\x01\x12\x19\n\x0cldap_enabled\x18\x18 \x01(\x08\x42\x03\xe0\x41\x03\x12G\n\x10\x61\x63tive_directory\x18\x19 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%netapp.googleapis.com/ActiveDirectory\x12J\n\x12restore_parameters\x18\x1a \x01(\x0b\x32).google.cloud.netapp.v1.RestoreParametersB\x03\xe0\x41\x01\x12;\n\nkms_config\x18\x1b \x01(\tB\'\xe0\x41\x03\xfa\x41!\n\x1fnetapp.googleapis.com/KmsConfig\x12\x44\n\x0f\x65ncryption_type\x18\x1c \x01(\x0e\x32&.google.cloud.netapp.v1.EncryptionTypeB\x03\xe0\x41\x03\x12\x1c\n\x0fhas_replication\x18\x1d \x01(\x08\x42\x03\xe0\x41\x03\x12@\n\rbackup_config\x18\x1e \x01(\x0b\x32$.google.cloud.netapp.v1.BackupConfigH\x00\x88\x01\x01\x12I\n\x12restricted_actions\x18\x1f \x03(\x0e\x32(.google.cloud.netapp.v1.RestrictedActionB\x03\xe0\x41\x01\x12\x1b\n\x0elarge_capacity\x18 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\x12multiple_endpoints\x18! \x01(\x08\x42\x03\xe0\x41\x01\x12\x42\n\x0etiering_policy\x18\" \x01(\x0b\x32%.google.cloud.netapp.v1.TieringPolicyH\x01\x88\x01\x01\x12\x19\n\x0creplica_zone\x18$ \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04zone\x18% \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12\x63old_tier_size_gib\x18\' \x01(\x03\x42\x03\xe0\x41\x03\x12_\n\x1dhybrid_replication_parameters\x18( \x01(\x0b\x32\x33.google.cloud.netapp.v1.HybridReplicationParametersB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x99\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\r\n\tRESTORING\x10\x05\x12\x0c\n\x08\x44ISABLED\x10\x06\x12\t\n\x05\x45RROR\x10\x07\x12\r\n\tPREPARING\x10\x08\x12\r\n\tREAD_ONLY\x10\t:l\xea\x41i\n\x1cnetapp.googleapis.com/Volume\x12\x38projects/{project}/locations/{location}/volumes/{volume}*\x07volumes2\x06volumeB\x10\n\x0e_backup_configB\x11\n\x0f_tiering_policy\"R\n\x0c\x45xportPolicy\x12\x42\n\x05rules\x18\x01 \x03(\x0b\x32..google.cloud.netapp.v1.SimpleExportPolicyRuleB\x03\xe0\x41\x02\"\xfc\x04\n\x16SimpleExportPolicyRule\x12\x1c\n\x0f\x61llowed_clients\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fhas_root_access\x18\x02 \x01(\tH\x01\x88\x01\x01\x12<\n\x0b\x61\x63\x63\x65ss_type\x18\x03 \x01(\x0e\x32\".google.cloud.netapp.v1.AccessTypeH\x02\x88\x01\x01\x12\x12\n\x05nfsv3\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x12\n\x05nfsv4\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12!\n\x14kerberos_5_read_only\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\"\n\x15kerberos_5_read_write\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\"\n\x15kerberos_5i_read_only\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12#\n\x16kerberos_5i_read_write\x18\t \x01(\x08H\x08\x88\x01\x01\x12\"\n\x15kerberos_5p_read_only\x18\n \x01(\x08H\t\x88\x01\x01\x12#\n\x16kerberos_5p_read_write\x18\x0b \x01(\x08H\n\x88\x01\x01\x42\x12\n\x10_allowed_clientsB\x12\n\x10_has_root_accessB\x0e\n\x0c_access_typeB\x08\n\x06_nfsv3B\x08\n\x06_nfsv4B\x17\n\x15_kerberos_5_read_onlyB\x18\n\x16_kerberos_5_read_writeB\x18\n\x16_kerberos_5i_read_onlyB\x19\n\x17_kerberos_5i_read_writeB\x18\n\x16_kerberos_5p_read_onlyB\x19\n\x17_kerberos_5p_read_write\"\x9a\x03\n\x0eSnapshotPolicy\x12\x14\n\x07\x65nabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x44\n\x0fhourly_schedule\x18\x02 \x01(\x0b\x32&.google.cloud.netapp.v1.HourlyScheduleH\x01\x88\x01\x01\x12\x42\n\x0e\x64\x61ily_schedule\x18\x03 \x01(\x0b\x32%.google.cloud.netapp.v1.DailyScheduleH\x02\x88\x01\x01\x12\x44\n\x0fweekly_schedule\x18\x04 \x01(\x0b\x32&.google.cloud.netapp.v1.WeeklyScheduleH\x03\x88\x01\x01\x12\x46\n\x10monthly_schedule\x18\x05 \x01(\x0b\x32\'.google.cloud.netapp.v1.MonthlyScheduleH\x04\x88\x01\x01\x42\n\n\x08_enabledB\x12\n\x10_hourly_scheduleB\x11\n\x0f_daily_scheduleB\x12\n\x10_weekly_scheduleB\x13\n\x11_monthly_schedule\"f\n\x0eHourlySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minute\"\x81\x01\n\rDailySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x11\n\x04hour\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minuteB\x07\n\x05_hour\"\x9c\x01\n\x0eWeeklySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x11\n\x04hour\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03\x64\x61y\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minuteB\x07\n\x05_hourB\x06\n\x04_day\"\xb1\x01\n\x0fMonthlySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x11\n\x04hour\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rdays_of_month\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minuteB\x07\n\x05_hourB\x10\n\x0e_days_of_month\"\x9e\x01\n\x0bMountOption\x12\x0e\n\x06\x65xport\x18\x01 \x01(\t\x12\x13\n\x0b\x65xport_full\x18\x02 \x01(\t\x12\x33\n\x08protocol\x18\x03 \x01(\x0e\x32!.google.cloud.netapp.v1.Protocols\x12\x14\n\x0cinstructions\x18\x04 \x01(\t\x12\x1f\n\nip_address\x18\x05 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x02\"Q\n\x11RestoreParameters\x12\x19\n\x0fsource_snapshot\x18\x01 \x01(\tH\x00\x12\x17\n\rsource_backup\x18\x02 \x01(\tH\x00\x42\x08\n\x06source\"\x9a\x02\n\x0c\x42\x61\x63kupConfig\x12\x43\n\x0f\x62\x61\x63kup_policies\x18\x01 \x03(\tB*\xe0\x41\x01\xfa\x41$\n\"netapp.googleapis.com/BackupPolicy\x12?\n\x0c\x62\x61\x63kup_vault\x18\x02 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!netapp.googleapis.com/BackupVault\x12*\n\x18scheduled_backup_enabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12$\n\x12\x62\x61\x63kup_chain_bytes\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x1b\n\x19_scheduled_backup_enabledB\x15\n\x13_backup_chain_bytes\"\xf9\x01\n\rTieringPolicy\x12O\n\x0btier_action\x18\x01 \x01(\x0e\x32\x30.google.cloud.netapp.v1.TieringPolicy.TierActionB\x03\xe0\x41\x01H\x00\x88\x01\x01\x12(\n\x16\x63ooling_threshold_days\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\"B\n\nTierAction\x12\x1b\n\x17TIER_ACTION_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\n\n\x06PAUSED\x10\x02\x42\x0e\n\x0c_tier_actionB\x19\n\x17_cooling_threshold_days\"\x96\x03\n\x1bHybridReplicationParameters\x12>\n\x0breplication\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\x12\x1d\n\x10peer_volume_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11peer_cluster_name\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rpeer_svm_name\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11peer_ip_addresses\x18\x05 \x03(\tB\x03\xe0\x41\x02\x12\x1d\n\x10\x63luster_location\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12T\n\x06labels\x18\x08 \x03(\x0b\x32?.google.cloud.netapp.v1.HybridReplicationParameters.LabelsEntryB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*E\n\tProtocols\x12\x19\n\x15PROTOCOLS_UNSPECIFIED\x10\x00\x12\t\n\x05NFSV3\x10\x01\x12\t\n\x05NFSV4\x10\x02\x12\x07\n\x03SMB\x10\x03*W\n\nAccessType\x12\x1b\n\x17\x41\x43\x43\x45SS_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tREAD_ONLY\x10\x01\x12\x0e\n\nREAD_WRITE\x10\x02\x12\r\n\tREAD_NONE\x10\x03*\xe8\x01\n\x0bSMBSettings\x12\x1c\n\x18SMB_SETTINGS_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x45NCRYPT_DATA\x10\x01\x12\r\n\tBROWSABLE\x10\x02\x12\x11\n\rCHANGE_NOTIFY\x10\x03\x12\x11\n\rNON_BROWSABLE\x10\x04\x12\x0b\n\x07OPLOCKS\x10\x05\x12\x11\n\rSHOW_SNAPSHOT\x10\x06\x12\x1a\n\x16SHOW_PREVIOUS_VERSIONS\x10\x07\x12\x1c\n\x18\x41\x43\x43\x45SS_BASED_ENUMERATION\x10\x08\x12\x1a\n\x16\x43ONTINUOUSLY_AVAILABLE\x10\t*C\n\rSecurityStyle\x12\x1e\n\x1aSECURITY_STYLE_UNSPECIFIED\x10\x00\x12\x08\n\x04NTFS\x10\x01\x12\x08\n\x04UNIX\x10\x02*A\n\x10RestrictedAction\x12!\n\x1dRESTRICTED_ACTION_UNSPECIFIED\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x42\xad\x01\n\x1a\x63om.google.cloud.netapp.v1B\x0bVolumeProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" +descriptor_data = "\n#google/cloud/netapp/v1/volume.proto\x12\x16google.cloud.netapp.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/netapp/v1/common.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x93\x01\n\x12ListVolumesRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1cnetapp.googleapis.com/Volume\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"t\n\x13ListVolumesResponse\x12/\n\x07volumes\x18\x01 \x03(\x0b\x32\x1e.google.cloud.netapp.v1.Volume\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"F\n\x10GetVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\"\x98\x01\n\x13\x43reateVolumeRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1cnetapp.googleapis.com/Volume\x12\x16\n\tvolume_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x06volume\x18\x03 \x01(\x0b\x32\x1e.google.cloud.netapp.v1.VolumeB\x03\xe0\x41\x02\"\x80\x01\n\x13UpdateVolumeRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x33\n\x06volume\x18\x02 \x01(\x0b\x32\x1e.google.cloud.netapp.v1.VolumeB\x03\xe0\x41\x02\"X\n\x13\x44\x65leteVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"c\n\x13RevertVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cnetapp.googleapis.com/Volume\x12\x18\n\x0bsnapshot_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xd5\x11\n\x06Volume\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x38\n\x05state\x18\x02 \x01(\x0e\x32$.google.cloud.netapp.v1.Volume.StateB\x03\xe0\x41\x03\x12\x1a\n\rstate_details\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x17\n\nshare_name\x18\x05 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tpsa_range\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12?\n\x0cstorage_pool\x18\x07 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/StoragePool\x12\x37\n\x07network\x18\x08 \x01(\tB&\xe0\x41\x03\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x12@\n\rservice_level\x18\t \x01(\x0e\x32$.google.cloud.netapp.v1.ServiceLevelB\x03\xe0\x41\x03\x12\x19\n\x0c\x63\x61pacity_gib\x18\n \x01(\x03\x42\x03\xe0\x41\x02\x12@\n\rexport_policy\x18\x0b \x01(\x0b\x32$.google.cloud.netapp.v1.ExportPolicyB\x03\xe0\x41\x01\x12\x39\n\tprotocols\x18\x0c \x03(\x0e\x32!.google.cloud.netapp.v1.ProtocolsB\x03\xe0\x41\x02\x12>\n\x0csmb_settings\x18\r \x03(\x0e\x32#.google.cloud.netapp.v1.SMBSettingsB\x03\xe0\x41\x01\x12?\n\rmount_options\x18\x0e \x03(\x0b\x32#.google.cloud.netapp.v1.MountOptionB\x03\xe0\x41\x03\x12\x1d\n\x10unix_permissions\x18\x0f \x01(\tB\x03\xe0\x41\x01\x12?\n\x06labels\x18\x10 \x03(\x0b\x32*.google.cloud.netapp.v1.Volume.LabelsEntryB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x11 \x01(\tB\x03\xe0\x41\x01\x12\x44\n\x0fsnapshot_policy\x18\x12 \x01(\x0b\x32&.google.cloud.netapp.v1.SnapshotPolicyB\x03\xe0\x41\x01\x12\x19\n\x0csnap_reserve\x18\x13 \x01(\x01\x42\x03\xe0\x41\x01\x12\x1f\n\x12snapshot_directory\x18\x14 \x01(\x08\x42\x03\xe0\x41\x01\x12\x15\n\x08used_gib\x18\x15 \x01(\x03\x42\x03\xe0\x41\x03\x12\x42\n\x0esecurity_style\x18\x16 \x01(\x0e\x32%.google.cloud.netapp.v1.SecurityStyleB\x03\xe0\x41\x01\x12\x1d\n\x10kerberos_enabled\x18\x17 \x01(\x08\x42\x03\xe0\x41\x01\x12\x19\n\x0cldap_enabled\x18\x18 \x01(\x08\x42\x03\xe0\x41\x03\x12G\n\x10\x61\x63tive_directory\x18\x19 \x01(\tB-\xe0\x41\x03\xfa\x41\'\n%netapp.googleapis.com/ActiveDirectory\x12J\n\x12restore_parameters\x18\x1a \x01(\x0b\x32).google.cloud.netapp.v1.RestoreParametersB\x03\xe0\x41\x01\x12;\n\nkms_config\x18\x1b \x01(\tB\'\xe0\x41\x03\xfa\x41!\n\x1fnetapp.googleapis.com/KmsConfig\x12\x44\n\x0f\x65ncryption_type\x18\x1c \x01(\x0e\x32&.google.cloud.netapp.v1.EncryptionTypeB\x03\xe0\x41\x03\x12\x1c\n\x0fhas_replication\x18\x1d \x01(\x08\x42\x03\xe0\x41\x03\x12@\n\rbackup_config\x18\x1e \x01(\x0b\x32$.google.cloud.netapp.v1.BackupConfigH\x00\x88\x01\x01\x12I\n\x12restricted_actions\x18\x1f \x03(\x0e\x32(.google.cloud.netapp.v1.RestrictedActionB\x03\xe0\x41\x01\x12\x1b\n\x0elarge_capacity\x18 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\x12multiple_endpoints\x18! \x01(\x08\x42\x03\xe0\x41\x01\x12\x42\n\x0etiering_policy\x18\" \x01(\x0b\x32%.google.cloud.netapp.v1.TieringPolicyH\x01\x88\x01\x01\x12\x19\n\x0creplica_zone\x18$ \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04zone\x18% \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12\x63old_tier_size_gib\x18\' \x01(\x03\x42\x03\xe0\x41\x03\x12_\n\x1dhybrid_replication_parameters\x18( \x01(\x0b\x32\x33.google.cloud.netapp.v1.HybridReplicationParametersB\x03\xe0\x41\x01\x12\x1d\n\x10throughput_mibps\x18) \x01(\x01\x42\x03\xe0\x41\x01\x12#\n\x16hot_tier_size_used_gib\x18, \x01(\x03\x42\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x99\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0c\n\x08UPDATING\x10\x04\x12\r\n\tRESTORING\x10\x05\x12\x0c\n\x08\x44ISABLED\x10\x06\x12\t\n\x05\x45RROR\x10\x07\x12\r\n\tPREPARING\x10\x08\x12\r\n\tREAD_ONLY\x10\t:l\xea\x41i\n\x1cnetapp.googleapis.com/Volume\x12\x38projects/{project}/locations/{location}/volumes/{volume}*\x07volumes2\x06volumeB\x10\n\x0e_backup_configB\x11\n\x0f_tiering_policy\"R\n\x0c\x45xportPolicy\x12\x42\n\x05rules\x18\x01 \x03(\x0b\x32..google.cloud.netapp.v1.SimpleExportPolicyRuleB\x03\xe0\x41\x02\"\xfc\x04\n\x16SimpleExportPolicyRule\x12\x1c\n\x0f\x61llowed_clients\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fhas_root_access\x18\x02 \x01(\tH\x01\x88\x01\x01\x12<\n\x0b\x61\x63\x63\x65ss_type\x18\x03 \x01(\x0e\x32\".google.cloud.netapp.v1.AccessTypeH\x02\x88\x01\x01\x12\x12\n\x05nfsv3\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x12\n\x05nfsv4\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12!\n\x14kerberos_5_read_only\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\"\n\x15kerberos_5_read_write\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\"\n\x15kerberos_5i_read_only\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12#\n\x16kerberos_5i_read_write\x18\t \x01(\x08H\x08\x88\x01\x01\x12\"\n\x15kerberos_5p_read_only\x18\n \x01(\x08H\t\x88\x01\x01\x12#\n\x16kerberos_5p_read_write\x18\x0b \x01(\x08H\n\x88\x01\x01\x42\x12\n\x10_allowed_clientsB\x12\n\x10_has_root_accessB\x0e\n\x0c_access_typeB\x08\n\x06_nfsv3B\x08\n\x06_nfsv4B\x17\n\x15_kerberos_5_read_onlyB\x18\n\x16_kerberos_5_read_writeB\x18\n\x16_kerberos_5i_read_onlyB\x19\n\x17_kerberos_5i_read_writeB\x18\n\x16_kerberos_5p_read_onlyB\x19\n\x17_kerberos_5p_read_write\"\x9a\x03\n\x0eSnapshotPolicy\x12\x14\n\x07\x65nabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x44\n\x0fhourly_schedule\x18\x02 \x01(\x0b\x32&.google.cloud.netapp.v1.HourlyScheduleH\x01\x88\x01\x01\x12\x42\n\x0e\x64\x61ily_schedule\x18\x03 \x01(\x0b\x32%.google.cloud.netapp.v1.DailyScheduleH\x02\x88\x01\x01\x12\x44\n\x0fweekly_schedule\x18\x04 \x01(\x0b\x32&.google.cloud.netapp.v1.WeeklyScheduleH\x03\x88\x01\x01\x12\x46\n\x10monthly_schedule\x18\x05 \x01(\x0b\x32\'.google.cloud.netapp.v1.MonthlyScheduleH\x04\x88\x01\x01\x42\n\n\x08_enabledB\x12\n\x10_hourly_scheduleB\x11\n\x0f_daily_scheduleB\x12\n\x10_weekly_scheduleB\x13\n\x11_monthly_schedule\"f\n\x0eHourlySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minute\"\x81\x01\n\rDailySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x11\n\x04hour\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minuteB\x07\n\x05_hour\"\x9c\x01\n\x0eWeeklySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x11\n\x04hour\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x10\n\x03\x64\x61y\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minuteB\x07\n\x05_hourB\x06\n\x04_day\"\xb1\x01\n\x0fMonthlySchedule\x12\x1e\n\x11snapshots_to_keep\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x13\n\x06minute\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x11\n\x04hour\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rdays_of_month\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_snapshots_to_keepB\t\n\x07_minuteB\x07\n\x05_hourB\x10\n\x0e_days_of_month\"\x9e\x01\n\x0bMountOption\x12\x0e\n\x06\x65xport\x18\x01 \x01(\t\x12\x13\n\x0b\x65xport_full\x18\x02 \x01(\t\x12\x33\n\x08protocol\x18\x03 \x01(\x0e\x32!.google.cloud.netapp.v1.Protocols\x12\x14\n\x0cinstructions\x18\x04 \x01(\t\x12\x1f\n\nip_address\x18\x05 \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x02\"Q\n\x11RestoreParameters\x12\x19\n\x0fsource_snapshot\x18\x01 \x01(\tH\x00\x12\x17\n\rsource_backup\x18\x02 \x01(\tH\x00\x42\x08\n\x06source\"\x9a\x02\n\x0c\x42\x61\x63kupConfig\x12\x43\n\x0f\x62\x61\x63kup_policies\x18\x01 \x03(\tB*\xe0\x41\x01\xfa\x41$\n\"netapp.googleapis.com/BackupPolicy\x12?\n\x0c\x62\x61\x63kup_vault\x18\x02 \x01(\tB)\xe0\x41\x01\xfa\x41#\n!netapp.googleapis.com/BackupVault\x12*\n\x18scheduled_backup_enabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12$\n\x12\x62\x61\x63kup_chain_bytes\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03H\x01\x88\x01\x01\x42\x1b\n\x19_scheduled_backup_enabledB\x15\n\x13_backup_chain_bytes\"\xca\x02\n\rTieringPolicy\x12O\n\x0btier_action\x18\x01 \x01(\x0e\x32\x30.google.cloud.netapp.v1.TieringPolicy.TierActionB\x03\xe0\x41\x01H\x00\x88\x01\x01\x12(\n\x16\x63ooling_threshold_days\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12.\n\x1chot_tier_bypass_mode_enabled\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01H\x02\x88\x01\x01\"B\n\nTierAction\x12\x1b\n\x17TIER_ACTION_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x45NABLED\x10\x01\x12\n\n\x06PAUSED\x10\x02\x42\x0e\n\x0c_tier_actionB\x19\n\x17_cooling_threshold_daysB\x1f\n\x1d_hot_tier_bypass_mode_enabled\"\xc3\x06\n\x1bHybridReplicationParameters\x12>\n\x0breplication\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!netapp.googleapis.com/Replication\x12\x1d\n\x10peer_volume_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11peer_cluster_name\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rpeer_svm_name\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x1e\n\x11peer_ip_addresses\x18\x05 \x03(\tB\x03\xe0\x41\x02\x12\x1d\n\x10\x63luster_location\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12T\n\x06labels\x18\x08 \x03(\x0b\x32?.google.cloud.netapp.v1.HybridReplicationParameters.LabelsEntryB\x03\xe0\x41\x01\x12T\n\x14replication_schedule\x18\t \x01(\x0e\x32\x31.google.cloud.netapp.v1.HybridReplicationScheduleB\x03\xe0\x41\x01\x12u\n\x17hybrid_replication_type\x18\n \x01(\x0e\x32O.google.cloud.netapp.v1.HybridReplicationParameters.VolumeHybridReplicationTypeB\x03\xe0\x41\x01\x12+\n\x1elarge_volume_constituent_count\x18\x0b \x01(\x05\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb0\x01\n\x1bVolumeHybridReplicationType\x12.\n*VOLUME_HYBRID_REPLICATION_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tMIGRATION\x10\x01\x12\x1a\n\x16\x43ONTINUOUS_REPLICATION\x10\x02\x12\x16\n\x12ONPREM_REPLICATION\x10\x03\x12\x1e\n\x1aREVERSE_ONPREM_REPLICATION\x10\x04*E\n\tProtocols\x12\x19\n\x15PROTOCOLS_UNSPECIFIED\x10\x00\x12\t\n\x05NFSV3\x10\x01\x12\t\n\x05NFSV4\x10\x02\x12\x07\n\x03SMB\x10\x03*W\n\nAccessType\x12\x1b\n\x17\x41\x43\x43\x45SS_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tREAD_ONLY\x10\x01\x12\x0e\n\nREAD_WRITE\x10\x02\x12\r\n\tREAD_NONE\x10\x03*\xe8\x01\n\x0bSMBSettings\x12\x1c\n\x18SMB_SETTINGS_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x45NCRYPT_DATA\x10\x01\x12\r\n\tBROWSABLE\x10\x02\x12\x11\n\rCHANGE_NOTIFY\x10\x03\x12\x11\n\rNON_BROWSABLE\x10\x04\x12\x0b\n\x07OPLOCKS\x10\x05\x12\x11\n\rSHOW_SNAPSHOT\x10\x06\x12\x1a\n\x16SHOW_PREVIOUS_VERSIONS\x10\x07\x12\x1c\n\x18\x41\x43\x43\x45SS_BASED_ENUMERATION\x10\x08\x12\x1a\n\x16\x43ONTINUOUSLY_AVAILABLE\x10\t*C\n\rSecurityStyle\x12\x1e\n\x1aSECURITY_STYLE_UNSPECIFIED\x10\x00\x12\x08\n\x04NTFS\x10\x01\x12\x08\n\x04UNIX\x10\x02*A\n\x10RestrictedAction\x12!\n\x1dRESTRICTED_ACTION_UNSPECIFIED\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x42\xad\x01\n\x1a\x63om.google.cloud.netapp.v1B\x0bVolumeProtoP\x01Z2cloud.google.com/go/netapp/apiv1/netapppb;netapppb\xaa\x02\x16Google.Cloud.NetApp.V1\xca\x02\x16Google\\Cloud\\NetApp\\V1\xea\x02\x19Google::Cloud::NetApp::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -66,6 +66,7 @@ module V1 TieringPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.TieringPolicy").msgclass TieringPolicy::TierAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.TieringPolicy.TierAction").enummodule HybridReplicationParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.HybridReplicationParameters").msgclass + HybridReplicationParameters::VolumeHybridReplicationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.HybridReplicationParameters.VolumeHybridReplicationType").enummodule Protocols = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.Protocols").enummodule AccessType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.AccessType").enummodule SMBSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.netapp.v1.SMBSettings").enummodule diff --git a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/backup_vault.rb b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/backup_vault.rb index c4b9f51ce9f3..8a704f2e42f9 100644 --- a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/backup_vault.rb +++ b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/backup_vault.rb @@ -76,22 +76,22 @@ class BackupVault # @!attribute [rw] daily_backup_immutable # @return [::Boolean] # Optional. Indicates if the daily backups are immutable. - # Atleast one of daily_backup_immutable, weekly_backup_immutable, + # At least one of daily_backup_immutable, weekly_backup_immutable, # monthly_backup_immutable and manual_backup_immutable must be true. # @!attribute [rw] weekly_backup_immutable # @return [::Boolean] # Optional. Indicates if the weekly backups are immutable. - # Atleast one of daily_backup_immutable, weekly_backup_immutable, + # At least one of daily_backup_immutable, weekly_backup_immutable, # monthly_backup_immutable and manual_backup_immutable must be true. # @!attribute [rw] monthly_backup_immutable # @return [::Boolean] # Optional. Indicates if the monthly backups are immutable. - # Atleast one of daily_backup_immutable, weekly_backup_immutable, + # At least one of daily_backup_immutable, weekly_backup_immutable, # monthly_backup_immutable and manual_backup_immutable must be true. # @!attribute [rw] manual_backup_immutable # @return [::Boolean] # Optional. Indicates if the manual backups are immutable. - # Atleast one of daily_backup_immutable, weekly_backup_immutable, + # At least one of daily_backup_immutable, weekly_backup_immutable, # monthly_backup_immutable and manual_backup_immutable must be true. class BackupRetentionPolicy include ::Google::Protobuf::MessageExts diff --git a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/common.rb b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/common.rb index d58360f2d37e..451ad43c7565 100644 --- a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/common.rb +++ b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/common.rb @@ -29,11 +29,23 @@ module V1 # @!attribute [r] supported_flex_performance # @return [::Array<::Google::Cloud::NetApp::V1::FlexPerformance>] # Output only. Supported flex performance in a location. + # @!attribute [r] has_vcp + # @return [::Boolean] + # Output only. Indicates if the location has VCP support. class LocationMetadata include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + # UserCommands contains the commands to be executed by the customer. + # @!attribute [r] commands + # @return [::Array<::String>] + # Output only. List of commands to be executed by the customer. + class UserCommands + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # The service level of a storage pool and its volumes. module ServiceLevel # Unspecified service level. @@ -84,6 +96,35 @@ module DirectoryServiceType # Active directory policy attached to the storage pool. ACTIVE_DIRECTORY = 1 end + + # Schedule for Hybrid Replication. + # New enum values may be added in future to support different frequency of + # replication. + module HybridReplicationSchedule + # Unspecified HybridReplicationSchedule + HYBRID_REPLICATION_SCHEDULE_UNSPECIFIED = 0 + + # Replication happens once every 10 minutes. + EVERY_10_MINUTES = 1 + + # Replication happens once every hour. + HOURLY = 2 + + # Replication happens once every day. + DAILY = 3 + end + + # QoS (Quality of Service) Types of the storage pool + module QosType + # Unspecified QoS Type + QOS_TYPE_UNSPECIFIED = 0 + + # QoS Type is Auto + AUTO = 1 + + # QoS Type is Manual + MANUAL = 2 + end end end end diff --git a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/replication.rb b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/replication.rb index 15b0a54a3cd0..601958b23d9d 100644 --- a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/replication.rb +++ b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/replication.rb @@ -115,6 +115,10 @@ class TransferStats # @!attribute [r] hybrid_replication_type # @return [::Google::Cloud::NetApp::V1::Replication::HybridReplicationType] # Output only. Type of the hybrid replication. + # @!attribute [r] hybrid_replication_user_commands + # @return [::Google::Cloud::NetApp::V1::UserCommands] + # Output only. Copy pastable snapmirror commands to be executed on onprem + # cluster by the customer. class Replication include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -154,6 +158,13 @@ module State # Replication is waiting for SVM peering to be established. PENDING_SVM_PEERING = 9 + + # Replication is waiting for Commands to be executed on Onprem ONTAP. + PENDING_REMOTE_RESYNC = 10 + + # Onprem ONTAP is destination and Replication can only be managed from + # Onprem. + EXTERNALLY_MANAGED_REPLICATION = 11 end # New enum values may be added in future to support different replication @@ -210,6 +221,12 @@ module MirrorState # Replication is aborted. ABORTED = 6 + + # Replication is being managed from Onprem ONTAP. + EXTERNALLY_MANAGED = 7 + + # Peering is yet to be established. + PENDING_PEERING = 8 end # Hybrid replication type. @@ -222,36 +239,45 @@ module HybridReplicationType # Hybrid replication type for continuous replication. CONTINUOUS_REPLICATION = 2 + + # New field for reversible OnPrem replication, to be used for data + # protection. + ONPREM_REPLICATION = 3 + + # Hybrid replication type for incremental Transfer in the reverse direction + # (GCNV is source and Onprem is destination) + REVERSE_ONPREM_REPLICATION = 4 end end # HybridPeeringDetails contains details about the hybrid peering. - # @!attribute [rw] subnet_ip + # @!attribute [r] subnet_ip # @return [::String] - # Optional. IP address of the subnet. - # @!attribute [rw] command + # Output only. IP address of the subnet. + # @!attribute [r] command # @return [::String] - # Optional. Copy-paste-able commands to be used on user's ONTAP to accept + # Output only. Copy-paste-able commands to be used on user's ONTAP to accept # peering requests. - # @!attribute [rw] command_expiry_time + # @!attribute [r] command_expiry_time # @return [::Google::Protobuf::Timestamp] - # Optional. Expiration time for the peering command to be executed on user's - # ONTAP. - # @!attribute [rw] passphrase + # Output only. Expiration time for the peering command to be executed on + # user's ONTAP. + # @!attribute [r] passphrase # @return [::String] - # Optional. Temporary passphrase generated to accept cluster peering command. - # @!attribute [rw] peer_volume_name + # Output only. Temporary passphrase generated to accept cluster peering + # command. + # @!attribute [r] peer_volume_name # @return [::String] - # Optional. Name of the user's local source volume to be peered with the + # Output only. Name of the user's local source volume to be peered with the # destination volume. - # @!attribute [rw] peer_cluster_name + # @!attribute [r] peer_cluster_name # @return [::String] - # Optional. Name of the user's local source cluster to be peered with the + # Output only. Name of the user's local source cluster to be peered with the # destination cluster. - # @!attribute [rw] peer_svm_name + # @!attribute [r] peer_svm_name # @return [::String] - # Optional. Name of the user's local source vserver svm to be peered with the - # destination vserver svm. + # Output only. Name of the user's local source vserver svm to be peered with + # the destination vserver svm. class HybridPeeringDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/storage_pool.rb b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/storage_pool.rb index 56677e26e63b..f052b428200f 100644 --- a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/storage_pool.rb +++ b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/storage_pool.rb @@ -203,11 +203,37 @@ class SwitchActiveReplicaZoneRequest # (Hyperdisk) By default set to false # @!attribute [rw] total_throughput_mibps # @return [::Integer] - # Optional. Custom Performance Total Throughput of the pool (in MiB/s) + # Optional. Custom Performance Total Throughput of the pool (in MiBps) # @!attribute [rw] total_iops # @return [::Integer] # Optional. Custom Performance Total IOPS of the pool - # If not provided, it will be calculated based on the total_throughput_mibps + # if not provided, it will be calculated based on the total_throughput_mibps + # @!attribute [rw] hot_tier_size_gib + # @return [::Integer] + # Optional. Total hot tier capacity for the Storage Pool. It is applicable + # only to Flex service level. It should be less than the minimum storage pool + # size and cannot be more than the current storage pool size. It cannot be + # decreased once set. + # @!attribute [rw] enable_hot_tier_auto_resize + # @return [::Boolean] + # Optional. Flag indicating that the hot-tier threshold will be + # auto-increased by 10% of the hot-tier when it hits 100%. Default is true. + # The increment will kick in only if the new size after increment is + # still less than or equal to storage pool size. + # @!attribute [rw] qos_type + # @return [::Google::Cloud::NetApp::V1::QosType] + # Optional. QoS (Quality of Service) Type of the storage pool + # @!attribute [r] available_throughput_mibps + # @return [::Float] + # Output only. Available throughput of the storage pool (in MiB/s). + # @!attribute [r] cold_tier_size_used_gib + # @return [::Integer] + # Output only. Total cold tier data rounded down to the nearest GiB used by + # the storage pool. + # @!attribute [r] hot_tier_size_used_gib + # @return [::Integer] + # Output only. Total hot tier data rounded down to the nearest GiB used by + # the storage pool. class StoragePool include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/volume.rb b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/volume.rb index 0ea681f32577..82511405df5d 100644 --- a/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/volume.rb +++ b/google-cloud-netapp-v1/proto_docs/google/cloud/netapp/v1/volume.rb @@ -253,10 +253,18 @@ class RevertVolumeRequest # Output only. Specifies the active zone for regional volume. # @!attribute [r] cold_tier_size_gib # @return [::Integer] - # Output only. Size of the volume cold tier data in GiB. + # Output only. Size of the volume cold tier data rounded down to the nearest + # GiB. # @!attribute [rw] hybrid_replication_parameters # @return [::Google::Cloud::NetApp::V1::HybridReplicationParameters] # Optional. The Hybrid Replication parameters for the volume. + # @!attribute [rw] throughput_mibps + # @return [::Float] + # Optional. Throughput of the volume (in MiB/s) + # @!attribute [r] hot_tier_size_used_gib + # @return [::Integer] + # Output only. Total hot tier data rounded down to the nearest GiB used by + # the Volume. This field is only used for flex Service Level class Volume include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -534,6 +542,10 @@ class BackupConfig # @return [::Integer] # Optional. Time in days to mark the volume's data block as cold and make it # eligible for tiering, can be range from 2-183. Default is 31. + # @!attribute [rw] hot_tier_bypass_mode_enabled + # @return [::Boolean] + # Optional. Flag indicating that the hot tier bypass mode is enabled. Default + # is false. This is only applicable to Flex service level. class TieringPolicy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -581,6 +593,15 @@ module TierAction # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Labels to be added to the replication as the key value pairs. + # @!attribute [rw] replication_schedule + # @return [::Google::Cloud::NetApp::V1::HybridReplicationSchedule] + # Optional. Replication Schedule for the replication created. + # @!attribute [rw] hybrid_replication_type + # @return [::Google::Cloud::NetApp::V1::HybridReplicationParameters::VolumeHybridReplicationType] + # Optional. Type of the hybrid replication. + # @!attribute [rw] large_volume_constituent_count + # @return [::Integer] + # Optional. Constituent volume count for large volume. class HybridReplicationParameters include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -593,6 +614,26 @@ class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Type of the volume's hybrid replication. + module VolumeHybridReplicationType + # Unspecified hybrid replication type. + VOLUME_HYBRID_REPLICATION_TYPE_UNSPECIFIED = 0 + + # Hybrid replication type for migration. + MIGRATION = 1 + + # Hybrid replication type for continuous replication. + CONTINUOUS_REPLICATION = 2 + + # New field for reversible OnPrem replication, to be used for data + # protection. + ONPREM_REPLICATION = 3 + + # New field for reversible OnPrem replication, to be used for data + # protection. + REVERSE_ONPREM_REPLICATION = 4 + end end # Protocols is an enum of all the supported network protocols for a volume. diff --git a/google-cloud-netapp-v1/snippets/snippet_metadata_google.cloud.netapp.v1.json b/google-cloud-netapp-v1/snippets/snippet_metadata_google.cloud.netapp.v1.json index 39daa51e8f44..e9f726343019 100644 --- a/google-cloud-netapp-v1/snippets/snippet_metadata_google.cloud.netapp.v1.json +++ b/google-cloud-netapp-v1/snippets/snippet_metadata_google.cloud.netapp.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-netapp-v1", - "version": "2.3.0", + "version": "2.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-netapp/CHANGELOG.md b/google-cloud-netapp/CHANGELOG.md index fe93cb9c4845..e07fe12c8713 100644 --- a/google-cloud-netapp/CHANGELOG.md +++ b/google-cloud-netapp/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-netapp/README.md b/google-cloud-netapp/README.md index 9f114308bd64..0bb1cfed05f0 100644 --- a/google-cloud-netapp/README.md +++ b/google-cloud-netapp/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/netapp.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/netapp" + +client = Google::Cloud::NetApp.netapp +request = ::Google::Cloud::NetApp::V1::ListStoragePoolsRequest.new # (request fields as keyword arguments...) +response = client.list_storage_pools request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-netapp/lib/google/cloud/netapp/version.rb b/google-cloud-netapp/lib/google/cloud/netapp/version.rb index 7e6d035c9a74..3f1cc4b919db 100644 --- a/google-cloud-netapp/lib/google/cloud/netapp/version.rb +++ b/google-cloud-netapp/lib/google/cloud/netapp/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module NetApp - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-network_connectivity-v1/.owlbot-manifest.json b/google-cloud-network_connectivity-v1/.owlbot-manifest.json index 1346d8b65ae2..c2b4fd121655 100644 --- a/google-cloud-network_connectivity-v1/.owlbot-manifest.json +++ b/google-cloud-network_connectivity-v1/.owlbot-manifest.json @@ -20,6 +20,11 @@ "lib/google/cloud/network_connectivity/v1/cross_network_automation_service/credentials.rb", "lib/google/cloud/network_connectivity/v1/cross_network_automation_service/operations.rb", "lib/google/cloud/network_connectivity/v1/cross_network_automation_service/paths.rb", + "lib/google/cloud/network_connectivity/v1/data_transfer_service.rb", + "lib/google/cloud/network_connectivity/v1/data_transfer_service/client.rb", + "lib/google/cloud/network_connectivity/v1/data_transfer_service/credentials.rb", + "lib/google/cloud/network_connectivity/v1/data_transfer_service/operations.rb", + "lib/google/cloud/network_connectivity/v1/data_transfer_service/paths.rb", "lib/google/cloud/network_connectivity/v1/hub_service.rb", "lib/google/cloud/network_connectivity/v1/hub_service/client.rb", "lib/google/cloud/network_connectivity/v1/hub_service/credentials.rb", @@ -39,6 +44,8 @@ "lib/google/cloud/networkconnectivity/v1/common_pb.rb", "lib/google/cloud/networkconnectivity/v1/cross_network_automation_pb.rb", "lib/google/cloud/networkconnectivity/v1/cross_network_automation_services_pb.rb", + "lib/google/cloud/networkconnectivity/v1/data_transfer_pb.rb", + "lib/google/cloud/networkconnectivity/v1/data_transfer_services_pb.rb", "lib/google/cloud/networkconnectivity/v1/hub_pb.rb", "lib/google/cloud/networkconnectivity/v1/hub_services_pb.rb", "lib/google/cloud/networkconnectivity/v1/internal_range_pb.rb", @@ -53,6 +60,7 @@ "proto_docs/google/api/resource.rb", "proto_docs/google/cloud/networkconnectivity/v1/common.rb", "proto_docs/google/cloud/networkconnectivity/v1/cross_network_automation.rb", + "proto_docs/google/cloud/networkconnectivity/v1/data_transfer.rb", "proto_docs/google/cloud/networkconnectivity/v1/hub.rb", "proto_docs/google/cloud/networkconnectivity/v1/internal_range.rb", "proto_docs/google/cloud/networkconnectivity/v1/policy_based_routing.rb", @@ -84,6 +92,18 @@ "snippets/cross_network_automation_service/update_service_class.rb", "snippets/cross_network_automation_service/update_service_connection_map.rb", "snippets/cross_network_automation_service/update_service_connection_policy.rb", + "snippets/data_transfer_service/create_destination.rb", + "snippets/data_transfer_service/create_multicloud_data_transfer_config.rb", + "snippets/data_transfer_service/delete_destination.rb", + "snippets/data_transfer_service/delete_multicloud_data_transfer_config.rb", + "snippets/data_transfer_service/get_destination.rb", + "snippets/data_transfer_service/get_multicloud_data_transfer_config.rb", + "snippets/data_transfer_service/get_multicloud_data_transfer_supported_service.rb", + "snippets/data_transfer_service/list_destinations.rb", + "snippets/data_transfer_service/list_multicloud_data_transfer_configs.rb", + "snippets/data_transfer_service/list_multicloud_data_transfer_supported_services.rb", + "snippets/data_transfer_service/update_destination.rb", + "snippets/data_transfer_service/update_multicloud_data_transfer_config.rb", "snippets/hub_service/accept_hub_spoke.rb", "snippets/hub_service/accept_spoke_update.rb", "snippets/hub_service/create_hub.rb", @@ -120,6 +140,9 @@ "test/google/cloud/network_connectivity/v1/cross_network_automation_service_operations_test.rb", "test/google/cloud/network_connectivity/v1/cross_network_automation_service_paths_test.rb", "test/google/cloud/network_connectivity/v1/cross_network_automation_service_test.rb", + "test/google/cloud/network_connectivity/v1/data_transfer_service_operations_test.rb", + "test/google/cloud/network_connectivity/v1/data_transfer_service_paths_test.rb", + "test/google/cloud/network_connectivity/v1/data_transfer_service_test.rb", "test/google/cloud/network_connectivity/v1/hub_service_operations_test.rb", "test/google/cloud/network_connectivity/v1/hub_service_paths_test.rb", "test/google/cloud/network_connectivity/v1/hub_service_test.rb", diff --git a/google-cloud-network_connectivity-v1/CHANGELOG.md b/google-cloud-network_connectivity-v1/CHANGELOG.md index 9c6c0aa468db..fbcd2822ee0b 100644 --- a/google-cloud-network_connectivity-v1/CHANGELOG.md +++ b/google-cloud-network_connectivity-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 1.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 1.8.0 (2025-09-05) + +#### Features + +* introduce DataTransfer APIs ([#30950](https://github.com/googleapis/google-cloud-ruby/issues/30950)) + ### 1.7.0 (2025-07-24) #### Features diff --git a/google-cloud-network_connectivity-v1/gapic_metadata.json b/google-cloud-network_connectivity-v1/gapic_metadata.json index bdf68ec0062d..d13f83884c4e 100644 --- a/google-cloud-network_connectivity-v1/gapic_metadata.json +++ b/google-cloud-network_connectivity-v1/gapic_metadata.json @@ -104,6 +104,75 @@ } } }, + "DataTransferService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client", + "rpcs": { + "ListMulticloudDataTransferConfigs": { + "methods": [ + "list_multicloud_data_transfer_configs" + ] + }, + "GetMulticloudDataTransferConfig": { + "methods": [ + "get_multicloud_data_transfer_config" + ] + }, + "CreateMulticloudDataTransferConfig": { + "methods": [ + "create_multicloud_data_transfer_config" + ] + }, + "UpdateMulticloudDataTransferConfig": { + "methods": [ + "update_multicloud_data_transfer_config" + ] + }, + "DeleteMulticloudDataTransferConfig": { + "methods": [ + "delete_multicloud_data_transfer_config" + ] + }, + "ListDestinations": { + "methods": [ + "list_destinations" + ] + }, + "GetDestination": { + "methods": [ + "get_destination" + ] + }, + "CreateDestination": { + "methods": [ + "create_destination" + ] + }, + "UpdateDestination": { + "methods": [ + "update_destination" + ] + }, + "DeleteDestination": { + "methods": [ + "delete_destination" + ] + }, + "GetMulticloudDataTransferSupportedService": { + "methods": [ + "get_multicloud_data_transfer_supported_service" + ] + }, + "ListMulticloudDataTransferSupportedServices": { + "methods": [ + "list_multicloud_data_transfer_supported_services" + ] + } + } + } + } + }, "HubService": { "clients": { "grpc": { diff --git a/google-cloud-network_connectivity-v1/google-cloud-network_connectivity-v1.gemspec b/google-cloud-network_connectivity-v1/google-cloud-network_connectivity-v1.gemspec index 400dc99eb03f..395630a5f99a 100644 --- a/google-cloud-network_connectivity-v1/google-cloud-network_connectivity-v1.gemspec +++ b/google-cloud-network_connectivity-v1/google-cloud-network_connectivity-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1.rb index a2b1ea38adaf..2bb8f5abf439 100644 --- a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1.rb +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1.rb @@ -17,6 +17,7 @@ # Auto-generated by gapic-generator-ruby. DO NOT EDIT! require "google/cloud/network_connectivity/v1/cross_network_automation_service" +require "google/cloud/network_connectivity/v1/data_transfer_service" require "google/cloud/network_connectivity/v1/hub_service" require "google/cloud/network_connectivity/v1/internal_range_service" require "google/cloud/network_connectivity/v1/policy_based_routing_service" diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service.rb new file mode 100644 index 000000000000..e70ce7fce4f7 --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/network_connectivity/v1/version" + +require "google/cloud/network_connectivity/v1/data_transfer_service/credentials" +require "google/cloud/network_connectivity/v1/data_transfer_service/paths" +require "google/cloud/network_connectivity/v1/data_transfer_service/operations" +require "google/cloud/network_connectivity/v1/data_transfer_service/client" + +module Google + module Cloud + module NetworkConnectivity + module V1 + ## + # DataTransferService is the service for the Data Transfer API. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/cloud/network_connectivity/v1/data_transfer_service" + # client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + module DataTransferService + end + end + end + end +end + +helper_path = ::File.join __dir__, "data_transfer_service", "helpers.rb" +require "google/cloud/network_connectivity/v1/data_transfer_service/helpers" if ::File.file? helper_path diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/client.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/client.rb new file mode 100644 index 000000000000..42f35363ecdc --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/client.rb @@ -0,0 +1,1765 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/networkconnectivity/v1/data_transfer_pb" +require "google/cloud/location" +require "google/iam/v1" + +module Google + module Cloud + module NetworkConnectivity + module V1 + module DataTransferService + ## + # Client for the DataTransferService service. + # + # DataTransferService is the service for the Data Transfer API. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "networkconnectivity.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :data_transfer_service_stub + + ## + # Configure the DataTransferService Client class. + # + # See {::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all DataTransferService clients + # ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "NetworkConnectivity", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config.timeout = 60.0 + default_config.retry_policy = { + initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.list_multicloud_data_transfer_configs.timeout = 60.0 + + default_config.rpcs.get_multicloud_data_transfer_config.timeout = 60.0 + + default_config.rpcs.create_multicloud_data_transfer_config.timeout = 60.0 + + default_config.rpcs.update_multicloud_data_transfer_config.timeout = 60.0 + + default_config.rpcs.delete_multicloud_data_transfer_config.timeout = 60.0 + + default_config.rpcs.list_destinations.timeout = 60.0 + + default_config.rpcs.get_destination.timeout = 60.0 + + default_config.rpcs.create_destination.timeout = 60.0 + + default_config.rpcs.update_destination.timeout = 60.0 + + default_config.rpcs.delete_destination.timeout = 60.0 + + default_config.rpcs.get_multicloud_data_transfer_supported_service.timeout = 60.0 + + default_config.rpcs.list_multicloud_data_transfer_supported_services.timeout = 60.0 + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the DataTransferService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @data_transfer_service_stub.universe_domain + end + + ## + # Create a new DataTransferService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the DataTransferService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/cloud/networkconnectivity/v1/data_transfer_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_client = Operations.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @config.endpoint + config.universe_domain = @config.universe_domain + end + + @data_transfer_service_stub = ::Gapic::ServiceStub.new( + ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @data_transfer_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @data_transfer_service_stub.endpoint + config.universe_domain = @data_transfer_service_stub.universe_domain + config.logger = @data_transfer_service_stub.logger if config.respond_to? :logger= + end + + @iam_policy_client = Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @data_transfer_service_stub.endpoint + config.universe_domain = @data_transfer_service_stub.universe_domain + config.logger = @data_transfer_service_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for long-running operations. + # + # @return [::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations] + # + attr_reader :operations_client + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Client] + # + attr_reader :location_client + + ## + # Get the associated client for mix-in of the IAMPolicy. + # + # @return [Google::Iam::V1::IAMPolicy::Client] + # + attr_reader :iam_policy_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @data_transfer_service_stub.logger + end + + # Service calls + + ## + # Lists the `MulticloudDataTransferConfig` resources in a specified project + # and location. + # + # @overload list_multicloud_data_transfer_configs(request, options = nil) + # Pass arguments to `list_multicloud_data_transfer_configs` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_multicloud_data_transfer_configs(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, return_partial_success: nil) + # Pass arguments to `list_multicloud_data_transfer_configs` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The name of the parent resource. + # @param page_size [::Integer] + # Optional. The maximum number of results listed per page. + # @param page_token [::String] + # Optional. The page token. + # @param filter [::String] + # Optional. An expression that filters the results listed in the response. + # @param order_by [::String] + # Optional. The sort order of the results. + # @param return_partial_success [::Boolean] + # Optional. If `true`, allows partial responses for multi-regional aggregated + # list requests. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest.new + # + # # Call the list_multicloud_data_transfer_configs method. + # result = client.list_multicloud_data_transfer_configs request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig. + # p item + # end + # + def list_multicloud_data_transfer_configs request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_multicloud_data_transfer_configs.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_multicloud_data_transfer_configs.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_multicloud_data_transfer_configs.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :list_multicloud_data_transfer_configs, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @data_transfer_service_stub, :list_multicloud_data_transfer_configs, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the details of a `MulticloudDataTransferConfig` resource. + # + # @overload get_multicloud_data_transfer_config(request, options = nil) + # Pass arguments to `get_multicloud_data_transfer_config` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_multicloud_data_transfer_config(name: nil) + # Pass arguments to `get_multicloud_data_transfer_config` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the `MulticloudDataTransferConfig` resource to get. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest.new + # + # # Call the get_multicloud_data_transfer_config method. + # result = client.get_multicloud_data_transfer_config request + # + # # The returned object is of type Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig. + # p result + # + def get_multicloud_data_transfer_config request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_multicloud_data_transfer_config.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_multicloud_data_transfer_config.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_multicloud_data_transfer_config.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :get_multicloud_data_transfer_config, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a `MulticloudDataTransferConfig` resource in a specified project + # and location. + # + # @overload create_multicloud_data_transfer_config(request, options = nil) + # Pass arguments to `create_multicloud_data_transfer_config` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_multicloud_data_transfer_config(parent: nil, multicloud_data_transfer_config_id: nil, multicloud_data_transfer_config: nil, request_id: nil) + # Pass arguments to `create_multicloud_data_transfer_config` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The name of the parent resource. + # @param multicloud_data_transfer_config_id [::String] + # Required. The ID to use for the `MulticloudDataTransferConfig` resource, + # which becomes the final component of the `MulticloudDataTransferConfig` + # resource name. + # @param multicloud_data_transfer_config [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig, ::Hash] + # Required. The `MulticloudDataTransferConfig` resource to create. + # @param request_id [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest.new + # + # # Call the create_multicloud_data_transfer_config method. + # result = client.create_multicloud_data_transfer_config request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_multicloud_data_transfer_config request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_multicloud_data_transfer_config.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_multicloud_data_transfer_config.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_multicloud_data_transfer_config.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :create_multicloud_data_transfer_config, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a `MulticloudDataTransferConfig` resource in a specified project + # and location. + # + # @overload update_multicloud_data_transfer_config(request, options = nil) + # Pass arguments to `update_multicloud_data_transfer_config` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_multicloud_data_transfer_config(update_mask: nil, multicloud_data_transfer_config: nil, request_id: nil) + # Pass arguments to `update_multicloud_data_transfer_config` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # 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. + # @param multicloud_data_transfer_config [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig, ::Hash] + # Required. The `MulticloudDataTransferConfig` resource to update. + # @param request_id [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest.new + # + # # Call the update_multicloud_data_transfer_config method. + # result = client.update_multicloud_data_transfer_config request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def update_multicloud_data_transfer_config request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_multicloud_data_transfer_config.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.multicloud_data_transfer_config&.name + header_params["multicloud_data_transfer_config.name"] = request.multicloud_data_transfer_config.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_multicloud_data_transfer_config.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_multicloud_data_transfer_config.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :update_multicloud_data_transfer_config, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a `MulticloudDataTransferConfig` resource. + # + # @overload delete_multicloud_data_transfer_config(request, options = nil) + # Pass arguments to `delete_multicloud_data_transfer_config` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_multicloud_data_transfer_config(name: nil, request_id: nil, etag: nil) + # Pass arguments to `delete_multicloud_data_transfer_config` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the `MulticloudDataTransferConfig` resource to + # delete. + # @param request_id [::String] + # 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. + # @param etag [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest.new + # + # # Call the delete_multicloud_data_transfer_config method. + # result = client.delete_multicloud_data_transfer_config request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_multicloud_data_transfer_config request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_multicloud_data_transfer_config.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_multicloud_data_transfer_config.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_multicloud_data_transfer_config.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :delete_multicloud_data_transfer_config, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists the `Destination` resources in a specified project and location. + # + # @overload list_destinations(request, options = nil) + # Pass arguments to `list_destinations` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_destinations(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, return_partial_success: nil) + # Pass arguments to `list_destinations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The name of the parent resource. + # @param page_size [::Integer] + # Optional. The maximum number of results listed per page. + # @param page_token [::String] + # Optional. The page token. + # @param filter [::String] + # Optional. An expression that filters the results listed in the response. + # @param order_by [::String] + # Optional. The sort order of the results. + # @param return_partial_success [::Boolean] + # Optional. If `true`, allow partial responses for multi-regional aggregated + # list requests. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::NetworkConnectivity::V1::Destination>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::NetworkConnectivity::V1::Destination>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest.new + # + # # Call the list_destinations method. + # result = client.list_destinations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::NetworkConnectivity::V1::Destination. + # p item + # end + # + def list_destinations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_destinations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_destinations.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_destinations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :list_destinations, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @data_transfer_service_stub, :list_destinations, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the details of a `Destination` resource. + # + # @overload get_destination(request, options = nil) + # Pass arguments to `get_destination` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_destination(name: nil) + # Pass arguments to `get_destination` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the `Destination` resource to get. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::NetworkConnectivity::V1::Destination] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::NetworkConnectivity::V1::Destination] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest.new + # + # # Call the get_destination method. + # result = client.get_destination request + # + # # The returned object is of type Google::Cloud::NetworkConnectivity::V1::Destination. + # p result + # + def get_destination request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_destination.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_destination.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_destination.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :get_destination, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a `Destination` resource in a specified project and location. + # + # @overload create_destination(request, options = nil) + # Pass arguments to `create_destination` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_destination(parent: nil, destination_id: nil, destination: nil, request_id: nil) + # Pass arguments to `create_destination` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The name of the parent resource. + # @param destination_id [::String] + # Required. The ID to use for the `Destination` resource, which becomes the + # final component of the `Destination` resource name. + # @param destination [::Google::Cloud::NetworkConnectivity::V1::Destination, ::Hash] + # Required. The `Destination` resource to create. + # @param request_id [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest.new + # + # # Call the create_destination method. + # result = client.create_destination request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_destination request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_destination.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_destination.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_destination.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :create_destination, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a `Destination` resource in a specified project and location. + # + # @overload update_destination(request, options = nil) + # Pass arguments to `update_destination` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_destination(update_mask: nil, destination: nil, request_id: nil) + # Pass arguments to `update_destination` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # 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. + # @param destination [::Google::Cloud::NetworkConnectivity::V1::Destination, ::Hash] + # Required. The `Destination` resource to update. + # @param request_id [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest.new + # + # # Call the update_destination method. + # result = client.update_destination request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def update_destination request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_destination.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.destination&.name + header_params["destination.name"] = request.destination.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_destination.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_destination.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :update_destination, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a `Destination` resource. + # + # @overload delete_destination(request, options = nil) + # Pass arguments to `delete_destination` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_destination(name: nil, request_id: nil, etag: nil) + # Pass arguments to `delete_destination` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the `Destination` resource to delete. + # @param request_id [::String] + # 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. + # @param etag [::String] + # 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. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest.new + # + # # Call the delete_destination method. + # result = client.delete_destination request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_destination request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_destination.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_destination.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_destination.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :delete_destination, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the details of a service that is supported for Data Transfer + # Essentials. + # + # @overload get_multicloud_data_transfer_supported_service(request, options = nil) + # Pass arguments to `get_multicloud_data_transfer_supported_service` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_multicloud_data_transfer_supported_service(name: nil) + # Pass arguments to `get_multicloud_data_transfer_supported_service` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the service. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest.new + # + # # Call the get_multicloud_data_transfer_supported_service method. + # result = client.get_multicloud_data_transfer_supported_service request + # + # # The returned object is of type Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService. + # p result + # + def get_multicloud_data_transfer_supported_service request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_multicloud_data_transfer_supported_service.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_multicloud_data_transfer_supported_service.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_multicloud_data_transfer_supported_service.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :get_multicloud_data_transfer_supported_service, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists the services in the project for a region that are supported for + # Data Transfer Essentials. + # + # @overload list_multicloud_data_transfer_supported_services(request, options = nil) + # Pass arguments to `list_multicloud_data_transfer_supported_services` via a request object, either of type + # {::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_multicloud_data_transfer_supported_services(parent: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_multicloud_data_transfer_supported_services` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The name of the parent resource. + # @param page_size [::Integer] + # Optional. The maximum number of results listed per page. + # @param page_token [::String] + # Optional. The page token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/network_connectivity/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest.new + # + # # Call the list_multicloud_data_transfer_supported_services method. + # result = client.list_multicloud_data_transfer_supported_services request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService. + # p item + # end + # + def list_multicloud_data_transfer_supported_services request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_multicloud_data_transfer_supported_services.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_multicloud_data_transfer_supported_services.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_multicloud_data_transfer_supported_services.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @data_transfer_service_stub.call_rpc :list_multicloud_data_transfer_supported_services, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @data_transfer_service_stub, :list_multicloud_data_transfer_supported_services, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the DataTransferService API. + # + # This class represents the configuration for DataTransferService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_multicloud_data_transfer_configs to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_multicloud_data_transfer_configs.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_multicloud_data_transfer_configs.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the DataTransferService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_multicloud_data_transfer_configs` + # @return [::Gapic::Config::Method] + # + attr_reader :list_multicloud_data_transfer_configs + ## + # RPC-specific configuration for `get_multicloud_data_transfer_config` + # @return [::Gapic::Config::Method] + # + attr_reader :get_multicloud_data_transfer_config + ## + # RPC-specific configuration for `create_multicloud_data_transfer_config` + # @return [::Gapic::Config::Method] + # + attr_reader :create_multicloud_data_transfer_config + ## + # RPC-specific configuration for `update_multicloud_data_transfer_config` + # @return [::Gapic::Config::Method] + # + attr_reader :update_multicloud_data_transfer_config + ## + # RPC-specific configuration for `delete_multicloud_data_transfer_config` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_multicloud_data_transfer_config + ## + # RPC-specific configuration for `list_destinations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_destinations + ## + # RPC-specific configuration for `get_destination` + # @return [::Gapic::Config::Method] + # + attr_reader :get_destination + ## + # RPC-specific configuration for `create_destination` + # @return [::Gapic::Config::Method] + # + attr_reader :create_destination + ## + # RPC-specific configuration for `update_destination` + # @return [::Gapic::Config::Method] + # + attr_reader :update_destination + ## + # RPC-specific configuration for `delete_destination` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_destination + ## + # RPC-specific configuration for `get_multicloud_data_transfer_supported_service` + # @return [::Gapic::Config::Method] + # + attr_reader :get_multicloud_data_transfer_supported_service + ## + # RPC-specific configuration for `list_multicloud_data_transfer_supported_services` + # @return [::Gapic::Config::Method] + # + attr_reader :list_multicloud_data_transfer_supported_services + + # @private + def initialize parent_rpcs = nil + list_multicloud_data_transfer_configs_config = parent_rpcs.list_multicloud_data_transfer_configs if parent_rpcs.respond_to? :list_multicloud_data_transfer_configs + @list_multicloud_data_transfer_configs = ::Gapic::Config::Method.new list_multicloud_data_transfer_configs_config + get_multicloud_data_transfer_config_config = parent_rpcs.get_multicloud_data_transfer_config if parent_rpcs.respond_to? :get_multicloud_data_transfer_config + @get_multicloud_data_transfer_config = ::Gapic::Config::Method.new get_multicloud_data_transfer_config_config + create_multicloud_data_transfer_config_config = parent_rpcs.create_multicloud_data_transfer_config if parent_rpcs.respond_to? :create_multicloud_data_transfer_config + @create_multicloud_data_transfer_config = ::Gapic::Config::Method.new create_multicloud_data_transfer_config_config + update_multicloud_data_transfer_config_config = parent_rpcs.update_multicloud_data_transfer_config if parent_rpcs.respond_to? :update_multicloud_data_transfer_config + @update_multicloud_data_transfer_config = ::Gapic::Config::Method.new update_multicloud_data_transfer_config_config + delete_multicloud_data_transfer_config_config = parent_rpcs.delete_multicloud_data_transfer_config if parent_rpcs.respond_to? :delete_multicloud_data_transfer_config + @delete_multicloud_data_transfer_config = ::Gapic::Config::Method.new delete_multicloud_data_transfer_config_config + list_destinations_config = parent_rpcs.list_destinations if parent_rpcs.respond_to? :list_destinations + @list_destinations = ::Gapic::Config::Method.new list_destinations_config + get_destination_config = parent_rpcs.get_destination if parent_rpcs.respond_to? :get_destination + @get_destination = ::Gapic::Config::Method.new get_destination_config + create_destination_config = parent_rpcs.create_destination if parent_rpcs.respond_to? :create_destination + @create_destination = ::Gapic::Config::Method.new create_destination_config + update_destination_config = parent_rpcs.update_destination if parent_rpcs.respond_to? :update_destination + @update_destination = ::Gapic::Config::Method.new update_destination_config + delete_destination_config = parent_rpcs.delete_destination if parent_rpcs.respond_to? :delete_destination + @delete_destination = ::Gapic::Config::Method.new delete_destination_config + get_multicloud_data_transfer_supported_service_config = parent_rpcs.get_multicloud_data_transfer_supported_service if parent_rpcs.respond_to? :get_multicloud_data_transfer_supported_service + @get_multicloud_data_transfer_supported_service = ::Gapic::Config::Method.new get_multicloud_data_transfer_supported_service_config + list_multicloud_data_transfer_supported_services_config = parent_rpcs.list_multicloud_data_transfer_supported_services if parent_rpcs.respond_to? :list_multicloud_data_transfer_supported_services + @list_multicloud_data_transfer_supported_services = ::Gapic::Config::Method.new list_multicloud_data_transfer_supported_services_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/credentials.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/credentials.rb new file mode 100644 index 000000000000..095298466884 --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/credentials.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module NetworkConnectivity + module V1 + module DataTransferService + # Credentials for the DataTransferService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "NETWORK_CONNECTIVITY_CREDENTIALS", + "NETWORK_CONNECTIVITY_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "NETWORK_CONNECTIVITY_CREDENTIALS_JSON", + "NETWORK_CONNECTIVITY_KEYFILE_JSON", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/operations.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/operations.rb new file mode 100644 index 000000000000..9685059efd0d --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/operations.rb @@ -0,0 +1,813 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/operation" +require "google/longrunning/operations_pb" + +module Google + module Cloud + module NetworkConnectivity + module V1 + module DataTransferService + # Service that implements Longrunning Operations API. + class Operations + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "networkconnectivity.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :operations_stub + + ## + # Configuration for the DataTransferService Operations API. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def self.configure + @configure ||= Operations::Configuration.new + yield @configure if block_given? + @configure + end + + ## + # Configure the DataTransferService Operations instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Operations.configure}. + # + # @yield [config] Configure the Operations client. + # @yieldparam config [Operations::Configuration] + # + # @return [Operations::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @operations_stub.universe_domain + end + + ## + # Create a new Operations client object. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Operations::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/longrunning/operations_services_pb" + + # Create the configuration object + @config = Configuration.new Operations.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + credentials ||= Credentials.default scope: @config.scope + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @operations_stub = ::Gapic::ServiceStub.new( + ::Google::Longrunning::Operations::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool + ) + + # Used by an LRO wrapper for some methods of this service + @operations_client = self + end + + # Service calls + + ## + # Lists operations that match the specified filter in the request. If the + # server doesn't support this method, it returns `UNIMPLEMENTED`. + # + # @overload list_operations(request, options = nil) + # Pass arguments to `list_operations` via a request object, either of type + # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::ListOperationsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_operations(name: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_operations` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation's parent resource. + # @param filter [::String] + # The standard list filter. + # @param page_size [::Integer] + # The standard list page size. + # @param page_token [::String] + # The standard list page token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Gapic::Operation>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Gapic::Operation>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::ListOperationsRequest.new + # + # # Call the list_operations method. + # result = client.list_operations request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Longrunning::Operation. + # p item + # end + # + def list_operations request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::ListOperationsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_operations.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_operations.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_operations.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :list_operations, request, options: options do |response, operation| + wrap_lro_operation = ->(op_response) { ::Gapic::Operation.new op_response, @operations_client } + response = ::Gapic::PagedEnumerable.new @operations_stub, :list_operations, request, response, operation, options, format_resource: wrap_lro_operation + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the latest state of a long-running operation. Clients can use this + # method to poll the operation result at intervals as recommended by the API + # service. + # + # @overload get_operation(request, options = nil) + # Pass arguments to `get_operation` via a request object, either of type + # {::Google::Longrunning::GetOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::GetOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_operation(name: nil) + # Pass arguments to `get_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::GetOperationRequest.new + # + # # Call the get_operation method. + # result = client.get_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def get_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::GetOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :get_operation, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a long-running operation. This method indicates that the client is + # no longer interested in the operation result. It does not cancel the + # operation. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # + # @overload delete_operation(request, options = nil) + # Pass arguments to `delete_operation` via a request object, either of type + # {::Google::Longrunning::DeleteOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::DeleteOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_operation(name: nil) + # Pass arguments to `delete_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be deleted. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::DeleteOperationRequest.new + # + # # Call the delete_operation method. + # result = client.delete_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::DeleteOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :delete_operation, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Starts asynchronous cancellation on a long-running operation. The server + # makes a best effort to cancel the operation, but success is not + # guaranteed. If the server doesn't support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. Clients can use + # Operations.GetOperation or + # other methods to check whether the cancellation succeeded or whether the + # operation completed despite cancellation. On successful cancellation, + # the operation is not deleted; instead, it becomes an operation with + # an {::Google::Longrunning::Operation#error Operation.error} value with a + # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to + # `Code.CANCELLED`. + # + # @overload cancel_operation(request, options = nil) + # Pass arguments to `cancel_operation` via a request object, either of type + # {::Google::Longrunning::CancelOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::CancelOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload cancel_operation(name: nil) + # Pass arguments to `cancel_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to be cancelled. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::CancelOperationRequest.new + # + # # Call the cancel_operation method. + # result = client.cancel_operation request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def cancel_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::CancelOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.cancel_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.cancel_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.cancel_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :cancel_operation, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Waits until the specified long-running operation is done or reaches at most + # a specified timeout, returning the latest state. If the operation is + # already done, the latest state is immediately returned. If the timeout + # specified is greater than the default HTTP/RPC timeout, the HTTP/RPC + # timeout is used. If the server does not support this method, it returns + # `google.rpc.Code.UNIMPLEMENTED`. + # Note that this method is on a best-effort basis. It may return the latest + # state before the specified timeout (including immediately), meaning even an + # immediate response is no guarantee that the operation is done. + # + # @overload wait_operation(request, options = nil) + # Pass arguments to `wait_operation` via a request object, either of type + # {::Google::Longrunning::WaitOperationRequest} or an equivalent Hash. + # + # @param request [::Google::Longrunning::WaitOperationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload wait_operation(name: nil, timeout: nil) + # Pass arguments to `wait_operation` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # The name of the operation resource to wait on. + # @param timeout [::Google::Protobuf::Duration, ::Hash] + # The maximum duration to wait before timing out. If left blank, the wait + # will be at most the time permitted by the underlying HTTP/RPC protocol. + # If RPC context deadline is also specified, the shorter one will be used. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/longrunning" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Longrunning::Operations::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Longrunning::WaitOperationRequest.new + # + # # Call the wait_operation method. + # result = client.wait_operation request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def wait_operation request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::WaitOperationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.wait_operation.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::NetworkConnectivity::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.wait_operation.timeout, + metadata: metadata, + retry_policy: @config.rpcs.wait_operation.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @operations_stub.call_rpc :wait_operation, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the Operations API. + # + # This class represents the configuration for Operations, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Longrunning::Operations::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_operations to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Longrunning::Operations::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Longrunning::Operations::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_operations.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the Operations API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `list_operations` + # @return [::Gapic::Config::Method] + # + attr_reader :list_operations + ## + # RPC-specific configuration for `get_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :get_operation + ## + # RPC-specific configuration for `delete_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_operation + ## + # RPC-specific configuration for `cancel_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_operation + ## + # RPC-specific configuration for `wait_operation` + # @return [::Gapic::Config::Method] + # + attr_reader :wait_operation + + # @private + def initialize parent_rpcs = nil + list_operations_config = parent_rpcs.list_operations if parent_rpcs.respond_to? :list_operations + @list_operations = ::Gapic::Config::Method.new list_operations_config + get_operation_config = parent_rpcs.get_operation if parent_rpcs.respond_to? :get_operation + @get_operation = ::Gapic::Config::Method.new get_operation_config + delete_operation_config = parent_rpcs.delete_operation if parent_rpcs.respond_to? :delete_operation + @delete_operation = ::Gapic::Config::Method.new delete_operation_config + cancel_operation_config = parent_rpcs.cancel_operation if parent_rpcs.respond_to? :cancel_operation + @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config + wait_operation_config = parent_rpcs.wait_operation if parent_rpcs.respond_to? :wait_operation + @wait_operation = ::Gapic::Config::Method.new wait_operation_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/paths.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/paths.rb new file mode 100644 index 000000000000..31f8e1aaf0ee --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/data_transfer_service/paths.rb @@ -0,0 +1,109 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module NetworkConnectivity + module V1 + module DataTransferService + # Path helper methods for the DataTransferService API. + module Paths + ## + # Create a fully-qualified Destination resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}/destinations/{destination}` + # + # @param project [String] + # @param location [String] + # @param multicloud_data_transfer_config [String] + # @param destination [String] + # + # @return [::String] + def destination_path project:, location:, multicloud_data_transfer_config:, destination: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "multicloud_data_transfer_config cannot contain /" if multicloud_data_transfer_config.to_s.include? "/" + + "projects/#{project}/locations/#{location}/multicloudDataTransferConfigs/#{multicloud_data_transfer_config}/destinations/#{destination}" + end + + ## + # Create a fully-qualified Location resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}` + # + # @param project [String] + # @param location [String] + # + # @return [::String] + def location_path project:, location: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/locations/#{location}" + end + + ## + # Create a fully-qualified MulticloudDataTransferConfig resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}` + # + # @param project [String] + # @param location [String] + # @param multicloud_data_transfer_config [String] + # + # @return [::String] + def multicloud_data_transfer_config_path project:, location:, multicloud_data_transfer_config: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/multicloudDataTransferConfigs/#{multicloud_data_transfer_config}" + end + + ## + # Create a fully-qualified MulticloudDataTransferSupportedService resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/multicloudDataTransferSupportedServices/{multicloud_data_transfer_supported_service}` + # + # @param project [String] + # @param location [String] + # @param multicloud_data_transfer_supported_service [String] + # + # @return [::String] + def multicloud_data_transfer_supported_service_path project:, location:, multicloud_data_transfer_supported_service: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/multicloudDataTransferSupportedServices/#{multicloud_data_transfer_supported_service}" + end + + extend self + end + end + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/version.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/version.rb index e806e901a46d..c93d3a96825a 100644 --- a/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/version.rb +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/network_connectivity/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module NetworkConnectivity module V1 - VERSION = "1.7.0" + VERSION = "1.9.0" end end end diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/networkconnectivity/v1/data_transfer_pb.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/networkconnectivity/v1/data_transfer_pb.rb new file mode 100644 index 000000000000..717ea9c4d8a8 --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/networkconnectivity/v1/data_transfer_pb.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/networkconnectivity/v1/data_transfer.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/field_info_pb' +require 'google/api/resource_pb' +require 'google/cloud/networkconnectivity/v1/common_pb' +require 'google/longrunning/operations_pb' +require 'google/protobuf/empty_pb' +require 'google/protobuf/field_mask_pb' +require 'google/protobuf/timestamp_pb' + + +descriptor_data = "\n7google/cloud/networkconnectivity/v1/data_transfer.proto\x12#google.cloud.networkconnectivity.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x30google/cloud/networkconnectivity/v1/common.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf6\x06\n\x1cMulticloudDataTransferConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x62\n\x06labels\x18\x04 \x03(\x0b\x32M.google.cloud.networkconnectivity.v1.MulticloudDataTransferConfig.LabelsEntryB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x05 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12\x64\x65stinations_count\x18\x07 \x01(\x05\x42\x03\xe0\x41\x03\x12&\n\x19\x64\x65stinations_active_count\x18\x08 \x01(\x05\x42\x03\xe0\x41\x03\x12\x66\n\x08services\x18\t \x03(\x0b\x32O.google.cloud.networkconnectivity.v1.MulticloudDataTransferConfig.ServicesEntryB\x03\xe0\x41\x01\x12\x18\n\x03uid\x18\n \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x63\n\rServicesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.google.cloud.networkconnectivity.v1.StateTimeline:\x02\x38\x01:\xeb\x01\xea\x41\xe7\x01\n?networkconnectivity.googleapis.com/MulticloudDataTransferConfig\x12gprojects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}*\x1dmulticloudDataTransferConfigs2\x1cmulticloudDataTransferConfig\"\xe7\x01\n(ListMulticloudDataTransferConfigsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16return_partial_success\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\"\xc6\x01\n)ListMulticloudDataTransferConfigsResponse\x12k\n multicloud_data_transfer_configs\x18\x01 \x03(\x0b\x32\x41.google.cloud.networkconnectivity.v1.MulticloudDataTransferConfig\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"\x7f\n&GetMulticloudDataTransferConfigRequest\x12U\n\x04name\x18\x01 \x01(\tBG\xe0\x41\x02\xfa\x41\x41\n?networkconnectivity.googleapis.com/MulticloudDataTransferConfig\"\xa9\x02\n)CreateMulticloudDataTransferConfigRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12/\n\"multicloud_data_transfer_config_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12o\n\x1fmulticloud_data_transfer_config\x18\x03 \x01(\x0b\x32\x41.google.cloud.networkconnectivity.v1.MulticloudDataTransferConfigB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xf3\x01\n)UpdateMulticloudDataTransferConfigRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12o\n\x1fmulticloud_data_transfer_config\x18\x02 \x01(\x0b\x32\x41.google.cloud.networkconnectivity.v1.MulticloudDataTransferConfigB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb6\x01\n)DeleteMulticloudDataTransferConfigRequest\x12U\n\x04name\x18\x01 \x01(\tBG\xe0\x41\x02\xfa\x41\x41\n?networkconnectivity.googleapis.com/MulticloudDataTransferConfig\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xfe\x07\n\x0b\x44\x65stination\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12Q\n\x06labels\x18\x04 \x03(\x0b\x32<.google.cloud.networkconnectivity.v1.Destination.LabelsEntryB\x03\xe0\x41\x01\x12\x0c\n\x04\x65tag\x18\x05 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\tip_prefix\x18\x07 \x01(\tB\x06\xe0\x41\x02\xe0\x41\x05\x12_\n\tendpoints\x18\x08 \x03(\x0b\x32\x44.google.cloud.networkconnectivity.v1.Destination.DestinationEndpointB\x06\xe0\x41\x06\xe0\x41\x02\x12O\n\x0estate_timeline\x18\t \x01(\x0b\x32\x32.google.cloud.networkconnectivity.v1.StateTimelineB\x03\xe0\x41\x03\x12\x18\n\x03uid\x18\n \x01(\tB\x0b\xe0\x41\x03\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x1a\x87\x02\n\x13\x44\x65stinationEndpoint\x12\x10\n\x03\x61sn\x18\x01 \x01(\x03\x42\x03\xe0\x41\x02\x12\x10\n\x03\x63sp\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12^\n\x05state\x18\x03 \x01(\x0e\x32J.google.cloud.networkconnectivity.v1.Destination.DestinationEndpoint.StateB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"6\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05VALID\x10\x01\x12\x0b\n\x07INVALID\x10\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xd4\x01\xea\x41\xd0\x01\n.networkconnectivity.googleapis.com/Destination\x12\x82\x01projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}/destinations/{destination}*\x0c\x64\x65stinations2\x0b\x64\x65stination\"\xf4\x01\n\x17ListDestinationsRequest\x12W\n\x06parent\x18\x01 \x01(\tBG\xe0\x41\x02\xfa\x41\x41\n?networkconnectivity.googleapis.com/MulticloudDataTransferConfig\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16return_partial_success\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\"\x90\x01\n\x18ListDestinationsResponse\x12\x46\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32\x30.google.cloud.networkconnectivity.v1.Destination\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"]\n\x15GetDestinationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.networkconnectivity.googleapis.com/Destination\"\xfd\x01\n\x18\x43reateDestinationRequest\x12W\n\x06parent\x18\x01 \x01(\tBG\xe0\x41\x02\xfa\x41\x41\n?networkconnectivity.googleapis.com/MulticloudDataTransferConfig\x12\x1b\n\x0e\x64\x65stination_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12J\n\x0b\x64\x65stination\x18\x03 \x01(\x0b\x32\x30.google.cloud.networkconnectivity.v1.DestinationB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xbd\x01\n\x18UpdateDestinationRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12J\n\x0b\x64\x65stination\x18\x02 \x01(\x0b\x32\x30.google.cloud.networkconnectivity.v1.DestinationB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x94\x01\n\x18\x44\x65leteDestinationRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.networkconnectivity.googleapis.com/Destination\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xf2\x02\n\rStateTimeline\x12U\n\x06states\x18\x01 \x03(\x0b\x32@.google.cloud.networkconnectivity.v1.StateTimeline.StateMetadataB\x03\xe0\x41\x03\x1a\x89\x02\n\rStateMetadata\x12Z\n\x05state\x18\x01 \x01(\x0e\x32\x46.google.cloud.networkconnectivity.v1.StateTimeline.StateMetadata.StateB\x03\xe0\x41\x03\x12\x37\n\x0e\x65\x66\x66\x65\x63tive_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"c\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x44\x44ING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\x0e\n\nSUSPENDING\x10\x04\x12\r\n\tSUSPENDED\x10\x05\"\xae\x03\n&MulticloudDataTransferSupportedService\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12P\n\x0fservice_configs\x18\x02 \x03(\x0b\x32\x32.google.cloud.networkconnectivity.v1.ServiceConfigB\x03\xe0\x41\x03:\x9e\x02\xea\x41\x9a\x02\nInetworkconnectivity.googleapis.com/MulticloudDataTransferSupportedService\x12|projects/{project}/locations/{location}/multicloudDataTransferSupportedServices/{multicloud_data_transfer_supported_service}*\'multicloudDataTransferSupportedServices2&multicloudDataTransferSupportedService\"\xef\x02\n\rServiceConfig\x12i\n\x14\x65ligibility_criteria\x18\x01 \x01(\x0e\x32\x46.google.cloud.networkconnectivity.v1.ServiceConfig.EligibilityCriteriaB\x03\xe0\x41\x03\x12\x39\n\x10support_end_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\xb7\x01\n\x13\x45ligibilityCriteria\x12$\n ELIGIBILITY_CRITERIA_UNSPECIFIED\x10\x00\x12%\n!NETWORK_SERVICE_TIER_PREMIUM_ONLY\x10\x01\x12&\n\"NETWORK_SERVICE_TIER_STANDARD_ONLY\x10\x02\x12+\n\'REQUEST_ENDPOINT_REGIONAL_ENDPOINT_ONLY\x10\x03\"\x93\x01\n0GetMulticloudDataTransferSupportedServiceRequest\x12_\n\x04name\x18\x01 \x01(\tBQ\xe0\x41\x02\xfa\x41K\nInetworkconnectivity.googleapis.com/MulticloudDataTransferSupportedService\"\xa0\x01\n2ListMulticloudDataTransferSupportedServicesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xd1\x01\n3ListMulticloudDataTransferSupportedServicesResponse\x12\x80\x01\n+multicloud_data_transfer_supported_services\x18\x01 \x03(\x0b\x32K.google.cloud.networkconnectivity.v1.MulticloudDataTransferSupportedService\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xbb\x1c\n\x13\x44\x61taTransferService\x12\x96\x02\n!ListMulticloudDataTransferConfigs\x12M.google.cloud.networkconnectivity.v1.ListMulticloudDataTransferConfigsRequest\x1aN.google.cloud.networkconnectivity.v1.ListMulticloudDataTransferConfigsResponse\"R\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x43\x12\x41/v1/{parent=projects/*/locations/*}/multicloudDataTransferConfigs\x12\x83\x02\n\x1fGetMulticloudDataTransferConfig\x12K.google.cloud.networkconnectivity.v1.GetMulticloudDataTransferConfigRequest\x1a\x41.google.cloud.networkconnectivity.v1.MulticloudDataTransferConfig\"P\xda\x41\x04name\x82\xd3\xe4\x93\x02\x43\x12\x41/v1/{name=projects/*/locations/*/multicloudDataTransferConfigs/*}\x12\x80\x03\n\"CreateMulticloudDataTransferConfig\x12N.google.cloud.networkconnectivity.v1.CreateMulticloudDataTransferConfigRequest\x1a\x1d.google.longrunning.Operation\"\xea\x01\xca\x41\x31\n\x1cMulticloudDataTransferConfig\x12\x11OperationMetadata\xda\x41Iparent,multicloud_data_transfer_config,multicloud_data_transfer_config_id\x82\xd3\xe4\x93\x02\x64\"A/v1/{parent=projects/*/locations/*}/multicloudDataTransferConfigs:\x1fmulticloud_data_transfer_config\x12\x83\x03\n\"UpdateMulticloudDataTransferConfig\x12N.google.cloud.networkconnectivity.v1.UpdateMulticloudDataTransferConfigRequest\x1a\x1d.google.longrunning.Operation\"\xed\x01\xca\x41\x31\n\x1cMulticloudDataTransferConfig\x12\x11OperationMetadata\xda\x41+multicloud_data_transfer_config,update_mask\x82\xd3\xe4\x93\x02\x84\x01\x32\x61/v1/{multicloud_data_transfer_config.name=projects/*/locations/*/multicloudDataTransferConfigs/*}:\x1fmulticloud_data_transfer_config\x12\x92\x02\n\"DeleteMulticloudDataTransferConfig\x12N.google.cloud.networkconnectivity.v1.DeleteMulticloudDataTransferConfigRequest\x1a\x1d.google.longrunning.Operation\"}\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x43*A/v1/{name=projects/*/locations/*/multicloudDataTransferConfigs/*}\x12\xf2\x01\n\x10ListDestinations\x12<.google.cloud.networkconnectivity.v1.ListDestinationsRequest\x1a=.google.cloud.networkconnectivity.v1.ListDestinationsResponse\"a\xda\x41\x06parent\x82\xd3\xe4\x93\x02R\x12P/v1/{parent=projects/*/locations/*/multicloudDataTransferConfigs/*}/destinations\x12\xdf\x01\n\x0eGetDestination\x12:.google.cloud.networkconnectivity.v1.GetDestinationRequest\x1a\x30.google.cloud.networkconnectivity.v1.Destination\"_\xda\x41\x04name\x82\xd3\xe4\x93\x02R\x12P/v1/{name=projects/*/locations/*/multicloudDataTransferConfigs/*/destinations/*}\x12\xa0\x02\n\x11\x43reateDestination\x12=.google.cloud.networkconnectivity.v1.CreateDestinationRequest\x1a\x1d.google.longrunning.Operation\"\xac\x01\xca\x41 \n\x0b\x44\x65stination\x12\x11OperationMetadata\xda\x41!parent,destination,destination_id\x82\xd3\xe4\x93\x02_\"P/v1/{parent=projects/*/locations/*/multicloudDataTransferConfigs/*}/destinations:\x0b\x64\x65stination\x12\xa2\x02\n\x11UpdateDestination\x12=.google.cloud.networkconnectivity.v1.UpdateDestinationRequest\x1a\x1d.google.longrunning.Operation\"\xae\x01\xca\x41 \n\x0b\x44\x65stination\x12\x11OperationMetadata\xda\x41\x17\x64\x65stination,update_mask\x82\xd3\xe4\x93\x02k2\\/v1/{destination.name=projects/*/locations/*/multicloudDataTransferConfigs/*/destinations/*}:\x0b\x64\x65stination\x12\x80\x02\n\x11\x44\x65leteDestination\x12=.google.cloud.networkconnectivity.v1.DeleteDestinationRequest\x1a\x1d.google.longrunning.Operation\"\x8c\x01\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02R*P/v1/{name=projects/*/locations/*/multicloudDataTransferConfigs/*/destinations/*}\x12\xab\x02\n)GetMulticloudDataTransferSupportedService\x12U.google.cloud.networkconnectivity.v1.GetMulticloudDataTransferSupportedServiceRequest\x1aK.google.cloud.networkconnectivity.v1.MulticloudDataTransferSupportedService\"Z\xda\x41\x04name\x82\xd3\xe4\x93\x02M\x12K/v1/{name=projects/*/locations/*/multicloudDataTransferSupportedServices/*}\x12\xbe\x02\n+ListMulticloudDataTransferSupportedServices\x12W.google.cloud.networkconnectivity.v1.ListMulticloudDataTransferSupportedServicesRequest\x1aX.google.cloud.networkconnectivity.v1.ListMulticloudDataTransferSupportedServicesResponse\"\\\xda\x41\x06parent\x82\xd3\xe4\x93\x02M\x12K/v1/{parent=projects/*/locations/*}/multicloudDataTransferSupportedServices\x1aV\xca\x41\"networkconnectivity.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x8e\x02\n\'com.google.cloud.networkconnectivity.v1B\x11\x44\x61taTransferProtoP\x01ZYcloud.google.com/go/networkconnectivity/apiv1/networkconnectivitypb;networkconnectivitypb\xaa\x02#Google.Cloud.NetworkConnectivity.V1\xca\x02#Google\\Cloud\\NetworkConnectivity\\V1\xea\x02&Google::Cloud::NetworkConnectivity::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], + ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module NetworkConnectivity + module V1 + MulticloudDataTransferConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.MulticloudDataTransferConfig").msgclass + ListMulticloudDataTransferConfigsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListMulticloudDataTransferConfigsRequest").msgclass + ListMulticloudDataTransferConfigsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListMulticloudDataTransferConfigsResponse").msgclass + GetMulticloudDataTransferConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.GetMulticloudDataTransferConfigRequest").msgclass + CreateMulticloudDataTransferConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.CreateMulticloudDataTransferConfigRequest").msgclass + UpdateMulticloudDataTransferConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.UpdateMulticloudDataTransferConfigRequest").msgclass + DeleteMulticloudDataTransferConfigRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.DeleteMulticloudDataTransferConfigRequest").msgclass + Destination = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.Destination").msgclass + Destination::DestinationEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.Destination.DestinationEndpoint").msgclass + Destination::DestinationEndpoint::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.Destination.DestinationEndpoint.State").enummodule + ListDestinationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListDestinationsRequest").msgclass + ListDestinationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListDestinationsResponse").msgclass + GetDestinationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.GetDestinationRequest").msgclass + CreateDestinationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.CreateDestinationRequest").msgclass + UpdateDestinationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.UpdateDestinationRequest").msgclass + DeleteDestinationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.DeleteDestinationRequest").msgclass + StateTimeline = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.StateTimeline").msgclass + StateTimeline::StateMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.StateTimeline.StateMetadata").msgclass + StateTimeline::StateMetadata::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.StateTimeline.StateMetadata.State").enummodule + MulticloudDataTransferSupportedService = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.MulticloudDataTransferSupportedService").msgclass + ServiceConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ServiceConfig").msgclass + ServiceConfig::EligibilityCriteria = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ServiceConfig.EligibilityCriteria").enummodule + GetMulticloudDataTransferSupportedServiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.GetMulticloudDataTransferSupportedServiceRequest").msgclass + ListMulticloudDataTransferSupportedServicesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListMulticloudDataTransferSupportedServicesRequest").msgclass + ListMulticloudDataTransferSupportedServicesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.networkconnectivity.v1.ListMulticloudDataTransferSupportedServicesResponse").msgclass + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/lib/google/cloud/networkconnectivity/v1/data_transfer_services_pb.rb b/google-cloud-network_connectivity-v1/lib/google/cloud/networkconnectivity/v1/data_transfer_services_pb.rb new file mode 100644 index 000000000000..f2a2e4942600 --- /dev/null +++ b/google-cloud-network_connectivity-v1/lib/google/cloud/networkconnectivity/v1/data_transfer_services_pb.rb @@ -0,0 +1,72 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/networkconnectivity/v1/data_transfer.proto for package 'Google.Cloud.NetworkConnectivity.V1' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/networkconnectivity/v1/data_transfer_pb' + +module Google + module Cloud + module NetworkConnectivity + module V1 + module DataTransferService + # DataTransferService is the service for the Data Transfer API. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.networkconnectivity.v1.DataTransferService' + + # Lists the `MulticloudDataTransferConfig` resources in a specified project + # and location. + rpc :ListMulticloudDataTransferConfigs, ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest, ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsResponse + # Gets the details of a `MulticloudDataTransferConfig` resource. + rpc :GetMulticloudDataTransferConfig, ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest, ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig + # Creates a `MulticloudDataTransferConfig` resource in a specified project + # and location. + rpc :CreateMulticloudDataTransferConfig, ::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest, ::Google::Longrunning::Operation + # Updates a `MulticloudDataTransferConfig` resource in a specified project + # and location. + rpc :UpdateMulticloudDataTransferConfig, ::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest, ::Google::Longrunning::Operation + # Deletes a `MulticloudDataTransferConfig` resource. + rpc :DeleteMulticloudDataTransferConfig, ::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest, ::Google::Longrunning::Operation + # Lists the `Destination` resources in a specified project and location. + rpc :ListDestinations, ::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest, ::Google::Cloud::NetworkConnectivity::V1::ListDestinationsResponse + # Gets the details of a `Destination` resource. + rpc :GetDestination, ::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest, ::Google::Cloud::NetworkConnectivity::V1::Destination + # Creates a `Destination` resource in a specified project and location. + rpc :CreateDestination, ::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest, ::Google::Longrunning::Operation + # Updates a `Destination` resource in a specified project and location. + rpc :UpdateDestination, ::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest, ::Google::Longrunning::Operation + # Deletes a `Destination` resource. + rpc :DeleteDestination, ::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest, ::Google::Longrunning::Operation + # Gets the details of a service that is supported for Data Transfer + # Essentials. + rpc :GetMulticloudDataTransferSupportedService, ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest, ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService + # Lists the services in the project for a region that are supported for + # Data Transfer Essentials. + rpc :ListMulticloudDataTransferSupportedServices, ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest, ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesResponse + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/proto_docs/google/cloud/networkconnectivity/v1/data_transfer.rb b/google-cloud-network_connectivity-v1/proto_docs/google/cloud/networkconnectivity/v1/data_transfer.rb new file mode 100644 index 000000000000..5208dfea21a3 --- /dev/null +++ b/google-cloud-network_connectivity-v1/proto_docs/google/cloud/networkconnectivity/v1/data_transfer.rb @@ -0,0 +1,635 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module NetworkConnectivity + module V1 + # The `MulticloudDataTransferConfig` resource. It lists the services that you + # configure for Data Transfer Essentials billing and metering. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the `MulticloudDataTransferConfig` resource. + # Format: + # `projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}`. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Time when the `MulticloudDataTransferConfig` resource was + # created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Time when the `MulticloudDataTransferConfig` resource was + # updated. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. User-defined labels. + # @!attribute [rw] etag + # @return [::String] + # 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. + # @!attribute [rw] description + # @return [::String] + # Optional. A description of this resource. + # @!attribute [r] destinations_count + # @return [::Integer] + # Output only. The number of `Destination` resources configured for the + # `MulticloudDataTransferConfig` resource. + # @!attribute [r] destinations_active_count + # @return [::Integer] + # Output only. The number of `Destination` resources in use with the + # `MulticloudDataTransferConfig` resource. + # @!attribute [rw] services + # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::NetworkConnectivity::V1::StateTimeline}] + # 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", + # } + # ] + # } + # } + # @!attribute [r] uid + # @return [::String] + # 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. + class MulticloudDataTransferConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::Google::Cloud::NetworkConnectivity::V1::StateTimeline] + class ServicesEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Request message to list `MulticloudDataTransferConfig` resources. + # @!attribute [rw] parent + # @return [::String] + # Required. The name of the parent resource. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of results listed per page. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. An expression that filters the results listed in the response. + # @!attribute [rw] order_by + # @return [::String] + # Optional. The sort order of the results. + # @!attribute [rw] return_partial_success + # @return [::Boolean] + # Optional. If `true`, allows partial responses for multi-regional aggregated + # list requests. + class ListMulticloudDataTransferConfigsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message to list `MulticloudDataTransferConfig` resources. + # @!attribute [rw] multicloud_data_transfer_configs + # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig>] + # The list of `MulticloudDataTransferConfig` resources to be listed. + # @!attribute [rw] next_page_token + # @return [::String] + # The next page token. + # @!attribute [rw] unreachable + # @return [::Array<::String>] + # Locations that could not be reached. + class ListMulticloudDataTransferConfigsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to get the details of a `MulticloudDataTransferConfig` + # resource. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the `MulticloudDataTransferConfig` resource to get. + class GetMulticloudDataTransferConfigRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to create a `MulticloudDataTransferConfig` resource. + # @!attribute [rw] parent + # @return [::String] + # Required. The name of the parent resource. + # @!attribute [rw] multicloud_data_transfer_config_id + # @return [::String] + # Required. The ID to use for the `MulticloudDataTransferConfig` resource, + # which becomes the final component of the `MulticloudDataTransferConfig` + # resource name. + # @!attribute [rw] multicloud_data_transfer_config + # @return [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig] + # Required. The `MulticloudDataTransferConfig` resource to create. + # @!attribute [rw] request_id + # @return [::String] + # 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. + class CreateMulticloudDataTransferConfigRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to update a `MulticloudDataTransferConfig` resource. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # 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. + # @!attribute [rw] multicloud_data_transfer_config + # @return [::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig] + # Required. The `MulticloudDataTransferConfig` resource to update. + # @!attribute [rw] request_id + # @return [::String] + # 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. + class UpdateMulticloudDataTransferConfigRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to delete a `MulticloudDataTransferConfig` resource. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the `MulticloudDataTransferConfig` resource to + # delete. + # @!attribute [rw] request_id + # @return [::String] + # 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. + # @!attribute [rw] etag + # @return [::String] + # 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. + class DeleteMulticloudDataTransferConfigRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The `Destination` resource. It specifies the IP prefix and the associated + # autonomous system numbers (ASN) that you want to include in a + # `MulticloudDataTransferConfig` resource. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the `Destination` resource. + # Format: + # `projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}/destinations/{destination}`. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Time when the `Destination` resource was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Time when the `Destination` resource was updated. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. User-defined labels. + # @!attribute [rw] etag + # @return [::String] + # 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. + # @!attribute [rw] description + # @return [::String] + # Optional. A description of this resource. + # @!attribute [rw] ip_prefix + # @return [::String] + # Required. Immutable. The IP prefix that represents your workload on another + # CSP. + # @!attribute [rw] endpoints + # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::Destination::DestinationEndpoint>] + # Required. Unordered list. The list of `DestinationEndpoint` resources + # configured for the IP prefix. + # @!attribute [r] state_timeline + # @return [::Google::Cloud::NetworkConnectivity::V1::StateTimeline] + # 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" + # } + # ] + # } + # @!attribute [r] uid + # @return [::String] + # 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. + class Destination + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The metadata for a `DestinationEndpoint` resource. + # @!attribute [rw] asn + # @return [::Integer] + # Required. The ASN of the remote IP prefix. + # @!attribute [rw] csp + # @return [::String] + # Required. The CSP of the remote IP prefix. + # @!attribute [r] state + # @return [::Google::Cloud::NetworkConnectivity::V1::Destination::DestinationEndpoint::State] + # Output only. The state of the `DestinationEndpoint` resource. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Time when the `DestinationEndpoint` resource was updated. + class DestinationEndpoint + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The state of the `DestinationEndpoint` resource. + module State + # An invalid state, which is the default case. + STATE_UNSPECIFIED = 0 + + # The `DestinationEndpoint` resource is valid. + VALID = 1 + + # The `DestinationEndpoint` resource is invalid. + INVALID = 2 + end + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Request message to list `Destination` resources. + # @!attribute [rw] parent + # @return [::String] + # Required. The name of the parent resource. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of results listed per page. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. An expression that filters the results listed in the response. + # @!attribute [rw] order_by + # @return [::String] + # Optional. The sort order of the results. + # @!attribute [rw] return_partial_success + # @return [::Boolean] + # Optional. If `true`, allow partial responses for multi-regional aggregated + # list requests. + class ListDestinationsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message to list `Destination` resources. + # @!attribute [rw] destinations + # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::Destination>] + # The list of `Destination` resources to be listed. + # @!attribute [rw] next_page_token + # @return [::String] + # The next page token. + # @!attribute [rw] unreachable + # @return [::Array<::String>] + # Locations that could not be reached. + class ListDestinationsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to get the details of a `Destination` resource. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the `Destination` resource to get. + class GetDestinationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to create a `Destination` resource. + # @!attribute [rw] parent + # @return [::String] + # Required. The name of the parent resource. + # @!attribute [rw] destination_id + # @return [::String] + # Required. The ID to use for the `Destination` resource, which becomes the + # final component of the `Destination` resource name. + # @!attribute [rw] destination + # @return [::Google::Cloud::NetworkConnectivity::V1::Destination] + # Required. The `Destination` resource to create. + # @!attribute [rw] request_id + # @return [::String] + # 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. + class CreateDestinationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to update a `Destination` resource. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # 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. + # @!attribute [rw] destination + # @return [::Google::Cloud::NetworkConnectivity::V1::Destination] + # Required. The `Destination` resource to update. + # @!attribute [rw] request_id + # @return [::String] + # 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. + class UpdateDestinationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to delete a `Destination` resource. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the `Destination` resource to delete. + # @!attribute [rw] request_id + # @return [::String] + # 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. + # @!attribute [rw] etag + # @return [::String] + # 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. + class DeleteDestinationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The timeline of the pending states for a resource. + # @!attribute [r] states + # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::StateTimeline::StateMetadata>] + # Output only. The state and activation time details of the resource state. + class StateTimeline + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The state and activation time details of the resource state. + # @!attribute [r] state + # @return [::Google::Cloud::NetworkConnectivity::V1::StateTimeline::StateMetadata::State] + # Output only. The state of the resource. + # @!attribute [r] effective_time + # @return [::Google::Protobuf::Timestamp] + # 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`. + class StateMetadata + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The state of the resource. + module State + # An invalid state, which is the default case. + STATE_UNSPECIFIED = 0 + + # The resource is being added. + ADDING = 1 + + # The resource is in use. + ACTIVE = 2 + + # The resource is being deleted. + DELETING = 3 + + # The resource is being suspended. + SUSPENDING = 4 + + # The resource is suspended and not in use. + SUSPENDED = 5 + end + end + end + + # A service in your project in a region that is eligible for Data Transfer + # Essentials configuration. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the service. + # @!attribute [r] service_configs + # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::ServiceConfig>] + # Output only. The network service tier or regional endpoint supported for + # the service. + class MulticloudDataTransferSupportedService + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Specifies eligibility information for the service. + # @!attribute [r] eligibility_criteria + # @return [::Google::Cloud::NetworkConnectivity::V1::ServiceConfig::EligibilityCriteria] + # Output only. The eligibility criteria for the service. + # @!attribute [r] support_end_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The end time for eligibility criteria support. If not + # specified, no planned end time is set. + class ServiceConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The eligibility information for the service. + module EligibilityCriteria + # The service is not eligible for Data Transfer Essentials configuration. + # This is the default case. + ELIGIBILITY_CRITERIA_UNSPECIFIED = 0 + + # The service is eligible for Data Transfer Essentials configuration only + # for Premium Tier. + NETWORK_SERVICE_TIER_PREMIUM_ONLY = 1 + + # The service is eligible for Data Transfer Essentials configuration only + # for Standard Tier. + NETWORK_SERVICE_TIER_STANDARD_ONLY = 2 + + # The service is eligible for Data Transfer Essentials configuration only + # for the regional endpoint. + REQUEST_ENDPOINT_REGIONAL_ENDPOINT_ONLY = 3 + end + end + + # Request message to check if a service in your project in a region is + # eligible for Data Transfer Essentials configuration. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the service. + class GetMulticloudDataTransferSupportedServiceRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message to list the services in your project that are eligible for + # Data Transfer Essentials configuration. + # @!attribute [rw] parent + # @return [::String] + # Required. The name of the parent resource. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of results listed per page. + # @!attribute [rw] page_token + # @return [::String] + # Optional. The page token. + class ListMulticloudDataTransferSupportedServicesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message to list the services in your project in regions that are + # eligible for Data Transfer Essentials configuration. + # @!attribute [rw] multicloud_data_transfer_supported_services + # @return [::Array<::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService>] + # The list of supported services. + # @!attribute [rw] next_page_token + # @return [::String] + # The next page token. + class ListMulticloudDataTransferSupportedServicesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/create_destination.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/create_destination.rb new file mode 100644 index 000000000000..54c5ca077d62 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/create_destination.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_CreateDestination_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the create_destination call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#create_destination. +# +def create_destination + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest.new + + # Call the create_destination method. + result = client.create_destination request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END networkconnectivity_v1_generated_DataTransferService_CreateDestination_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/create_multicloud_data_transfer_config.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/create_multicloud_data_transfer_config.rb new file mode 100644 index 000000000000..6dc08194db1b --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/create_multicloud_data_transfer_config.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_CreateMulticloudDataTransferConfig_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the create_multicloud_data_transfer_config call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#create_multicloud_data_transfer_config. +# +def create_multicloud_data_transfer_config + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest.new + + # Call the create_multicloud_data_transfer_config method. + result = client.create_multicloud_data_transfer_config request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END networkconnectivity_v1_generated_DataTransferService_CreateMulticloudDataTransferConfig_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/delete_destination.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/delete_destination.rb new file mode 100644 index 000000000000..bf70db1b3664 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/delete_destination.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_DeleteDestination_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the delete_destination call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#delete_destination. +# +def delete_destination + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest.new + + # Call the delete_destination method. + result = client.delete_destination request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END networkconnectivity_v1_generated_DataTransferService_DeleteDestination_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/delete_multicloud_data_transfer_config.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/delete_multicloud_data_transfer_config.rb new file mode 100644 index 000000000000..4e5366a3d94e --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/delete_multicloud_data_transfer_config.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_DeleteMulticloudDataTransferConfig_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the delete_multicloud_data_transfer_config call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#delete_multicloud_data_transfer_config. +# +def delete_multicloud_data_transfer_config + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest.new + + # Call the delete_multicloud_data_transfer_config method. + result = client.delete_multicloud_data_transfer_config request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END networkconnectivity_v1_generated_DataTransferService_DeleteMulticloudDataTransferConfig_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_destination.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_destination.rb new file mode 100644 index 000000000000..b32b2e6ce719 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_destination.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_GetDestination_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the get_destination call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_destination. +# +def get_destination + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest.new + + # Call the get_destination method. + result = client.get_destination request + + # The returned object is of type Google::Cloud::NetworkConnectivity::V1::Destination. + p result +end +# [END networkconnectivity_v1_generated_DataTransferService_GetDestination_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_multicloud_data_transfer_config.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_multicloud_data_transfer_config.rb new file mode 100644 index 000000000000..e7bc70f177a9 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_multicloud_data_transfer_config.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_GetMulticloudDataTransferConfig_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the get_multicloud_data_transfer_config call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_multicloud_data_transfer_config. +# +def get_multicloud_data_transfer_config + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest.new + + # Call the get_multicloud_data_transfer_config method. + result = client.get_multicloud_data_transfer_config request + + # The returned object is of type Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig. + p result +end +# [END networkconnectivity_v1_generated_DataTransferService_GetMulticloudDataTransferConfig_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_multicloud_data_transfer_supported_service.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_multicloud_data_transfer_supported_service.rb new file mode 100644 index 000000000000..bb6f3ac3b747 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/get_multicloud_data_transfer_supported_service.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_GetMulticloudDataTransferSupportedService_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the get_multicloud_data_transfer_supported_service call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_multicloud_data_transfer_supported_service. +# +def get_multicloud_data_transfer_supported_service + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest.new + + # Call the get_multicloud_data_transfer_supported_service method. + result = client.get_multicloud_data_transfer_supported_service request + + # The returned object is of type Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService. + p result +end +# [END networkconnectivity_v1_generated_DataTransferService_GetMulticloudDataTransferSupportedService_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_destinations.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_destinations.rb new file mode 100644 index 000000000000..2f8088b7ddb4 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_destinations.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_ListDestinations_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the list_destinations call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_destinations. +# +def list_destinations + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest.new + + # Call the list_destinations method. + result = client.list_destinations request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::NetworkConnectivity::V1::Destination. + p item + end +end +# [END networkconnectivity_v1_generated_DataTransferService_ListDestinations_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_multicloud_data_transfer_configs.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_multicloud_data_transfer_configs.rb new file mode 100644 index 000000000000..b285d665c9bb --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_multicloud_data_transfer_configs.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_ListMulticloudDataTransferConfigs_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the list_multicloud_data_transfer_configs call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_multicloud_data_transfer_configs. +# +def list_multicloud_data_transfer_configs + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest.new + + # Call the list_multicloud_data_transfer_configs method. + result = client.list_multicloud_data_transfer_configs request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig. + p item + end +end +# [END networkconnectivity_v1_generated_DataTransferService_ListMulticloudDataTransferConfigs_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_multicloud_data_transfer_supported_services.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_multicloud_data_transfer_supported_services.rb new file mode 100644 index 000000000000..a2328941e7e8 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/list_multicloud_data_transfer_supported_services.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_ListMulticloudDataTransferSupportedServices_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the list_multicloud_data_transfer_supported_services call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_multicloud_data_transfer_supported_services. +# +def list_multicloud_data_transfer_supported_services + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest.new + + # Call the list_multicloud_data_transfer_supported_services method. + result = client.list_multicloud_data_transfer_supported_services request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService. + p item + end +end +# [END networkconnectivity_v1_generated_DataTransferService_ListMulticloudDataTransferSupportedServices_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/update_destination.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/update_destination.rb new file mode 100644 index 000000000000..f33310ce267c --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/update_destination.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_UpdateDestination_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the update_destination call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#update_destination. +# +def update_destination + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest.new + + # Call the update_destination method. + result = client.update_destination request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END networkconnectivity_v1_generated_DataTransferService_UpdateDestination_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/data_transfer_service/update_multicloud_data_transfer_config.rb b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/update_multicloud_data_transfer_config.rb new file mode 100644 index 000000000000..36154008fcc2 --- /dev/null +++ b/google-cloud-network_connectivity-v1/snippets/data_transfer_service/update_multicloud_data_transfer_config.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START networkconnectivity_v1_generated_DataTransferService_UpdateMulticloudDataTransferConfig_sync] +require "google/cloud/network_connectivity/v1" + +## +# Snippet for the update_multicloud_data_transfer_config call in the DataTransferService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#update_multicloud_data_transfer_config. +# +def update_multicloud_data_transfer_config + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest.new + + # Call the update_multicloud_data_transfer_config method. + result = client.update_multicloud_data_transfer_config request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END networkconnectivity_v1_generated_DataTransferService_UpdateMulticloudDataTransferConfig_sync] diff --git a/google-cloud-network_connectivity-v1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1.json b/google-cloud-network_connectivity-v1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1.json index c61cdbec9530..b5782388930e 100644 --- a/google-cloud-network_connectivity-v1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1.json +++ b/google-cloud-network_connectivity-v1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-network_connectivity-v1", - "version": "1.7.0", + "version": "1.9.0", "language": "RUBY", "apis": [ { @@ -731,6 +731,486 @@ } ] }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_ListMulticloudDataTransferConfigs_sync", + "title": "Snippet for the list_multicloud_data_transfer_configs call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_multicloud_data_transfer_configs.", + "file": "data_transfer_service/list_multicloud_data_transfer_configs.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_multicloud_data_transfer_configs", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_multicloud_data_transfer_configs", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsResponse", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "ListMulticloudDataTransferConfigs", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.ListMulticloudDataTransferConfigs", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_GetMulticloudDataTransferConfig_sync", + "title": "Snippet for the get_multicloud_data_transfer_config call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_multicloud_data_transfer_config.", + "file": "data_transfer_service/get_multicloud_data_transfer_config.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_multicloud_data_transfer_config", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_multicloud_data_transfer_config", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "GetMulticloudDataTransferConfig", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.GetMulticloudDataTransferConfig", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_CreateMulticloudDataTransferConfig_sync", + "title": "Snippet for the create_multicloud_data_transfer_config call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#create_multicloud_data_transfer_config.", + "file": "data_transfer_service/create_multicloud_data_transfer_config.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_multicloud_data_transfer_config", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#create_multicloud_data_transfer_config", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "CreateMulticloudDataTransferConfig", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.CreateMulticloudDataTransferConfig", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_UpdateMulticloudDataTransferConfig_sync", + "title": "Snippet for the update_multicloud_data_transfer_config call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#update_multicloud_data_transfer_config.", + "file": "data_transfer_service/update_multicloud_data_transfer_config.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_multicloud_data_transfer_config", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#update_multicloud_data_transfer_config", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "UpdateMulticloudDataTransferConfig", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.UpdateMulticloudDataTransferConfig", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_DeleteMulticloudDataTransferConfig_sync", + "title": "Snippet for the delete_multicloud_data_transfer_config call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#delete_multicloud_data_transfer_config.", + "file": "data_transfer_service/delete_multicloud_data_transfer_config.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_multicloud_data_transfer_config", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#delete_multicloud_data_transfer_config", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "DeleteMulticloudDataTransferConfig", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.DeleteMulticloudDataTransferConfig", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_ListDestinations_sync", + "title": "Snippet for the list_destinations call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_destinations.", + "file": "data_transfer_service/list_destinations.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_destinations", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_destinations", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::NetworkConnectivity::V1::ListDestinationsResponse", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "ListDestinations", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.ListDestinations", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_GetDestination_sync", + "title": "Snippet for the get_destination call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_destination.", + "file": "data_transfer_service/get_destination.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_destination", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_destination", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::NetworkConnectivity::V1::Destination", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "GetDestination", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.GetDestination", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_CreateDestination_sync", + "title": "Snippet for the create_destination call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#create_destination.", + "file": "data_transfer_service/create_destination.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_destination", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#create_destination", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "CreateDestination", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.CreateDestination", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_UpdateDestination_sync", + "title": "Snippet for the update_destination call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#update_destination.", + "file": "data_transfer_service/update_destination.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_destination", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#update_destination", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "UpdateDestination", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.UpdateDestination", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_DeleteDestination_sync", + "title": "Snippet for the delete_destination call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#delete_destination.", + "file": "data_transfer_service/delete_destination.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_destination", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#delete_destination", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "DeleteDestination", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.DeleteDestination", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_GetMulticloudDataTransferSupportedService_sync", + "title": "Snippet for the get_multicloud_data_transfer_supported_service call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_multicloud_data_transfer_supported_service.", + "file": "data_transfer_service/get_multicloud_data_transfer_supported_service.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_multicloud_data_transfer_supported_service", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#get_multicloud_data_transfer_supported_service", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "GetMulticloudDataTransferSupportedService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.GetMulticloudDataTransferSupportedService", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "networkconnectivity_v1_generated_DataTransferService_ListMulticloudDataTransferSupportedServices_sync", + "title": "Snippet for the list_multicloud_data_transfer_supported_services call in the DataTransferService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_multicloud_data_transfer_supported_services.", + "file": "data_transfer_service/list_multicloud_data_transfer_supported_services.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_multicloud_data_transfer_supported_services", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client#list_multicloud_data_transfer_supported_services", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesResponse", + "client": { + "short_name": "DataTransferService::Client", + "full_name": "::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client" + }, + "method": { + "short_name": "ListMulticloudDataTransferSupportedServices", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService.ListMulticloudDataTransferSupportedServices", + "service": { + "short_name": "DataTransferService", + "full_name": "google.cloud.networkconnectivity.v1.DataTransferService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, { "region_tag": "networkconnectivity_v1_generated_HubService_ListHubs_sync", "title": "Snippet for the list_hubs call in the HubService service", diff --git a/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_operations_test.rb b/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_operations_test.rb new file mode 100644 index 000000000000..c2f02a03522f --- /dev/null +++ b/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_operations_test.rb @@ -0,0 +1,398 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/networkconnectivity/v1/data_transfer_pb" +require "google/cloud/networkconnectivity/v1/data_transfer_services_pb" +require "google/cloud/network_connectivity/v1/data_transfer_service" + +class ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::OperationsTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_list_operations + # Create GRPC objects. + grpc_response = ::Google::Longrunning::ListOperationsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_operations_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_operations, name + assert_kind_of ::Google::Longrunning::ListOperationsRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["filter"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_operations_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_operations({ name: name, filter: filter, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_operations name: name, filter: filter, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_operations ::Google::Longrunning::ListOperationsRequest.new(name: name, filter: filter, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_operations({ name: name, filter: filter, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_operations(::Google::Longrunning::ListOperationsRequest.new(name: name, filter: filter, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_operations_client_stub.call_rpc_count + end + end + + def test_get_operation + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_operation, name + assert_kind_of ::Google::Longrunning::GetOperationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_operation_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_operation({ name: name }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_operation name: name do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_operation ::Google::Longrunning::GetOperationRequest.new(name: name) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_operation({ name: name }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_operation(::Google::Longrunning::GetOperationRequest.new(name: name), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_operation_client_stub.call_rpc_count + end + end + + def test_delete_operation + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_operation, name + assert_kind_of ::Google::Longrunning::DeleteOperationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_operation_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_operation({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_operation name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_operation ::Google::Longrunning::DeleteOperationRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_operation({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_operation(::Google::Longrunning::DeleteOperationRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_operation_client_stub.call_rpc_count + end + end + + def test_cancel_operation + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + cancel_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :cancel_operation, name + assert_kind_of ::Google::Longrunning::CancelOperationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, cancel_operation_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.cancel_operation({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.cancel_operation name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.cancel_operation ::Google::Longrunning::CancelOperationRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.cancel_operation({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.cancel_operation(::Google::Longrunning::CancelOperationRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, cancel_operation_client_stub.call_rpc_count + end + end + + def test_wait_operation + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + timeout = {} + + wait_operation_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :wait_operation, name + assert_kind_of ::Google::Longrunning::WaitOperationRequest, request + assert_equal "hello world", request["name"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::Duration), request["timeout"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, wait_operation_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.wait_operation({ name: name, timeout: timeout }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.wait_operation name: name, timeout: timeout do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.wait_operation ::Google::Longrunning::WaitOperationRequest.new(name: name, timeout: timeout) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.wait_operation({ name: name, timeout: timeout }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.wait_operation(::Google::Longrunning::WaitOperationRequest.new(name: name, timeout: timeout), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, wait_operation_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations::Configuration, config + end +end diff --git a/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_paths_test.rb b/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_paths_test.rb new file mode 100644 index 000000000000..1200b6b4028c --- /dev/null +++ b/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_paths_test.rb @@ -0,0 +1,91 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/network_connectivity/v1/data_transfer_service" + +class ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_destination_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.destination_path project: "value0", location: "value1", multicloud_data_transfer_config: "value2", destination: "value3" + assert_equal "projects/value0/locations/value1/multicloudDataTransferConfigs/value2/destinations/value3", path + end + end + + def test_location_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.location_path project: "value0", location: "value1" + assert_equal "projects/value0/locations/value1", path + end + end + + def test_multicloud_data_transfer_config_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.multicloud_data_transfer_config_path project: "value0", location: "value1", multicloud_data_transfer_config: "value2" + assert_equal "projects/value0/locations/value1/multicloudDataTransferConfigs/value2", path + end + end + + def test_multicloud_data_transfer_supported_service_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.multicloud_data_transfer_supported_service_path project: "value0", location: "value1", multicloud_data_transfer_supported_service: "value2" + assert_equal "projects/value0/locations/value1/multicloudDataTransferSupportedServices/value2", path + end + end +end diff --git a/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_test.rb b/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_test.rb new file mode 100644 index 000000000000..9e7479c3c93a --- /dev/null +++ b/google-cloud-network_connectivity-v1/test/google/cloud/network_connectivity/v1/data_transfer_service_test.rb @@ -0,0 +1,891 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/networkconnectivity/v1/data_transfer_pb" +require "google/cloud/network_connectivity/v1/data_transfer_service" + +class ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_list_multicloud_data_transfer_configs + # Create GRPC objects. + grpc_response = ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + return_partial_success = true + + list_multicloud_data_transfer_configs_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_multicloud_data_transfer_configs, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + assert_equal true, request["return_partial_success"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_multicloud_data_transfer_configs_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_multicloud_data_transfer_configs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_multicloud_data_transfer_configs parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_multicloud_data_transfer_configs ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_multicloud_data_transfer_configs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_multicloud_data_transfer_configs(::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferConfigsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_multicloud_data_transfer_configs_client_stub.call_rpc_count + end + end + + def test_get_multicloud_data_transfer_config + # Create GRPC objects. + grpc_response = ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_multicloud_data_transfer_config_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_multicloud_data_transfer_config, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_multicloud_data_transfer_config_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_multicloud_data_transfer_config({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_multicloud_data_transfer_config name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_multicloud_data_transfer_config ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_multicloud_data_transfer_config({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_multicloud_data_transfer_config(::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferConfigRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_multicloud_data_transfer_config_client_stub.call_rpc_count + end + end + + def test_create_multicloud_data_transfer_config + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + multicloud_data_transfer_config_id = "hello world" + multicloud_data_transfer_config = {} + request_id = "hello world" + + create_multicloud_data_transfer_config_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_multicloud_data_transfer_config, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["multicloud_data_transfer_config_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig), request["multicloud_data_transfer_config"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_multicloud_data_transfer_config_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_multicloud_data_transfer_config({ parent: parent, multicloud_data_transfer_config_id: multicloud_data_transfer_config_id, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_multicloud_data_transfer_config parent: parent, multicloud_data_transfer_config_id: multicloud_data_transfer_config_id, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_multicloud_data_transfer_config ::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest.new(parent: parent, multicloud_data_transfer_config_id: multicloud_data_transfer_config_id, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_multicloud_data_transfer_config({ parent: parent, multicloud_data_transfer_config_id: multicloud_data_transfer_config_id, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_multicloud_data_transfer_config(::Google::Cloud::NetworkConnectivity::V1::CreateMulticloudDataTransferConfigRequest.new(parent: parent, multicloud_data_transfer_config_id: multicloud_data_transfer_config_id, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_multicloud_data_transfer_config_client_stub.call_rpc_count + end + end + + def test_update_multicloud_data_transfer_config + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + update_mask = {} + multicloud_data_transfer_config = {} + request_id = "hello world" + + update_multicloud_data_transfer_config_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_multicloud_data_transfer_config, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferConfig), request["multicloud_data_transfer_config"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_multicloud_data_transfer_config_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_multicloud_data_transfer_config({ update_mask: update_mask, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_multicloud_data_transfer_config update_mask: update_mask, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_multicloud_data_transfer_config ::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest.new(update_mask: update_mask, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_multicloud_data_transfer_config({ update_mask: update_mask, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_multicloud_data_transfer_config(::Google::Cloud::NetworkConnectivity::V1::UpdateMulticloudDataTransferConfigRequest.new(update_mask: update_mask, multicloud_data_transfer_config: multicloud_data_transfer_config, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_multicloud_data_transfer_config_client_stub.call_rpc_count + end + end + + def test_delete_multicloud_data_transfer_config + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + request_id = "hello world" + etag = "hello world" + + delete_multicloud_data_transfer_config_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_multicloud_data_transfer_config, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["request_id"] + assert_equal "hello world", request["etag"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_multicloud_data_transfer_config_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_multicloud_data_transfer_config({ name: name, request_id: request_id, etag: etag }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_multicloud_data_transfer_config name: name, request_id: request_id, etag: etag do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_multicloud_data_transfer_config ::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest.new(name: name, request_id: request_id, etag: etag) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_multicloud_data_transfer_config({ name: name, request_id: request_id, etag: etag }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_multicloud_data_transfer_config(::Google::Cloud::NetworkConnectivity::V1::DeleteMulticloudDataTransferConfigRequest.new(name: name, request_id: request_id, etag: etag), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_multicloud_data_transfer_config_client_stub.call_rpc_count + end + end + + def test_list_destinations + # Create GRPC objects. + grpc_response = ::Google::Cloud::NetworkConnectivity::V1::ListDestinationsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + return_partial_success = true + + list_destinations_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_destinations, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + assert_equal true, request["return_partial_success"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_destinations_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_destinations({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_destinations parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_destinations ::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_destinations({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_destinations(::Google::Cloud::NetworkConnectivity::V1::ListDestinationsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by, return_partial_success: return_partial_success), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_destinations_client_stub.call_rpc_count + end + end + + def test_get_destination + # Create GRPC objects. + grpc_response = ::Google::Cloud::NetworkConnectivity::V1::Destination.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_destination_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_destination, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_destination_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_destination({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_destination name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_destination ::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_destination({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_destination(::Google::Cloud::NetworkConnectivity::V1::GetDestinationRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_destination_client_stub.call_rpc_count + end + end + + def test_create_destination + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + destination_id = "hello world" + destination = {} + request_id = "hello world" + + create_destination_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_destination, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["destination_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::NetworkConnectivity::V1::Destination), request["destination"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_destination_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_destination({ parent: parent, destination_id: destination_id, destination: destination, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_destination parent: parent, destination_id: destination_id, destination: destination, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_destination ::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest.new(parent: parent, destination_id: destination_id, destination: destination, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_destination({ parent: parent, destination_id: destination_id, destination: destination, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_destination(::Google::Cloud::NetworkConnectivity::V1::CreateDestinationRequest.new(parent: parent, destination_id: destination_id, destination: destination, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_destination_client_stub.call_rpc_count + end + end + + def test_update_destination + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + update_mask = {} + destination = {} + request_id = "hello world" + + update_destination_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_destination, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::NetworkConnectivity::V1::Destination), request["destination"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_destination_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_destination({ update_mask: update_mask, destination: destination, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_destination update_mask: update_mask, destination: destination, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_destination ::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest.new(update_mask: update_mask, destination: destination, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_destination({ update_mask: update_mask, destination: destination, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_destination(::Google::Cloud::NetworkConnectivity::V1::UpdateDestinationRequest.new(update_mask: update_mask, destination: destination, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_destination_client_stub.call_rpc_count + end + end + + def test_delete_destination + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + request_id = "hello world" + etag = "hello world" + + delete_destination_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_destination, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["request_id"] + assert_equal "hello world", request["etag"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_destination_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_destination({ name: name, request_id: request_id, etag: etag }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_destination name: name, request_id: request_id, etag: etag do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_destination ::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest.new(name: name, request_id: request_id, etag: etag) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_destination({ name: name, request_id: request_id, etag: etag }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_destination(::Google::Cloud::NetworkConnectivity::V1::DeleteDestinationRequest.new(name: name, request_id: request_id, etag: etag), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_destination_client_stub.call_rpc_count + end + end + + def test_get_multicloud_data_transfer_supported_service + # Create GRPC objects. + grpc_response = ::Google::Cloud::NetworkConnectivity::V1::MulticloudDataTransferSupportedService.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_multicloud_data_transfer_supported_service_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_multicloud_data_transfer_supported_service, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_multicloud_data_transfer_supported_service_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_multicloud_data_transfer_supported_service({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_multicloud_data_transfer_supported_service name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_multicloud_data_transfer_supported_service ::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_multicloud_data_transfer_supported_service({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_multicloud_data_transfer_supported_service(::Google::Cloud::NetworkConnectivity::V1::GetMulticloudDataTransferSupportedServiceRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_multicloud_data_transfer_supported_service_client_stub.call_rpc_count + end + end + + def test_list_multicloud_data_transfer_supported_services + # Create GRPC objects. + grpc_response = ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + + list_multicloud_data_transfer_supported_services_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_multicloud_data_transfer_supported_services, name + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_multicloud_data_transfer_supported_services_client_stub do + # Create client + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_multicloud_data_transfer_supported_services({ parent: parent, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_multicloud_data_transfer_supported_services parent: parent, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_multicloud_data_transfer_supported_services ::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest.new(parent: parent, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_multicloud_data_transfer_supported_services({ parent: parent, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_multicloud_data_transfer_supported_services(::Google::Cloud::NetworkConnectivity::V1::ListMulticloudDataTransferSupportedServicesRequest.new(parent: parent, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_multicloud_data_transfer_supported_services_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client::Configuration, config + end + + def test_operations_client + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client.new do |config| + config.credentials = grpc_channel + end + end + + assert_kind_of ::Google::Cloud::NetworkConnectivity::V1::DataTransferService::Operations, client.operations_client + end +end diff --git a/google-cloud-network_connectivity-v1alpha1/CHANGELOG.md b/google-cloud-network_connectivity-v1alpha1/CHANGELOG.md index f1d64fe6d7a3..507e1453a60e 100644 --- a/google-cloud-network_connectivity-v1alpha1/CHANGELOG.md +++ b/google-cloud-network_connectivity-v1alpha1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-network_connectivity-v1alpha1/google-cloud-network_connectivity-v1alpha1.gemspec b/google-cloud-network_connectivity-v1alpha1/google-cloud-network_connectivity-v1alpha1.gemspec index 52bbfebab06d..15bca4aaed98 100644 --- a/google-cloud-network_connectivity-v1alpha1/google-cloud-network_connectivity-v1alpha1.gemspec +++ b/google-cloud-network_connectivity-v1alpha1/google-cloud-network_connectivity-v1alpha1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-network_connectivity-v1alpha1/lib/google/cloud/network_connectivity/v1alpha1/version.rb b/google-cloud-network_connectivity-v1alpha1/lib/google/cloud/network_connectivity/v1alpha1/version.rb index 931bbd210c84..2029f7ff5bcc 100644 --- a/google-cloud-network_connectivity-v1alpha1/lib/google/cloud/network_connectivity/v1alpha1/version.rb +++ b/google-cloud-network_connectivity-v1alpha1/lib/google/cloud/network_connectivity/v1alpha1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module NetworkConnectivity module V1alpha1 - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-network_connectivity-v1alpha1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json b/google-cloud-network_connectivity-v1alpha1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json index af66073ff9f5..0fb2b1035ce2 100644 --- a/google-cloud-network_connectivity-v1alpha1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json +++ b/google-cloud-network_connectivity-v1alpha1/snippets/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-network_connectivity-v1alpha1", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-network_connectivity/CHANGELOG.md b/google-cloud-network_connectivity/CHANGELOG.md index af08c015ffdb..4dbabd9181fb 100644 --- a/google-cloud-network_connectivity/CHANGELOG.md +++ b/google-cloud-network_connectivity/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 2.3.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + +### 2.3.0 (2025-09-05) + +#### Features + +* introduce DataTransfer APIs ([#30949](https://github.com/googleapis/google-cloud-ruby/issues/30949)) + ### 2.2.0 (2025-07-24) #### Features diff --git a/google-cloud-network_connectivity/README.md b/google-cloud-network_connectivity/README.md index c70dc154ff03..cbbe9f80da28 100644 --- a/google-cloud-network_connectivity/README.md +++ b/google-cloud-network_connectivity/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/networkconnectivity.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/network_connectivity" + +client = Google::Cloud::NetworkConnectivity.cross_network_automation_service +request = ::Google::Cloud::NetworkConnectivity::V1::ListServiceConnectionMapsRequest.new # (request fields as keyword arguments...) +response = client.list_service_connection_maps request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb b/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb index b48a99b89e7a..f5555f865eaf 100644 --- a/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb +++ b/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb @@ -106,6 +106,67 @@ def self.cross_network_automation_service_available? version: :v1 false end + ## + # Create a new client object for DataTransferService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-DataTransferService-Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the DataTransferService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the DataTransferService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkConnectivity.data_transfer_service_available?}. + # + # ## About DataTransferService + # + # DataTransferService is the service for the Data Transfer API. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.data_transfer_service version: :v1, &block + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:DataTransferService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the DataTransferService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.data_transfer_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the DataTransferService service, + # or if the versioned client gem needs an update to support the DataTransferService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.data_transfer_service_available? version: :v1 + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkConnectivity.const_get package_name + return false unless service_module.const_defined? :DataTransferService + service_module = service_module.const_get :DataTransferService + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for HubService. # diff --git a/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb b/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb index aad6e1e94fb6..7830c4424f26 100644 --- a/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb +++ b/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module NetworkConnectivity - VERSION = "2.2.0" + VERSION = "2.3.1" end end end diff --git a/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb b/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb index 240770cda181..ec5f4be26f0f 100644 --- a/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb +++ b/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb @@ -51,6 +51,17 @@ def test_cross_network_automation_service_grpc end end + def test_data_transfer_service_grpc + skip unless Google::Cloud::NetworkConnectivity.data_transfer_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::NetworkConnectivity.data_transfer_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client, client + end + end + def test_hub_service_grpc skip unless Google::Cloud::NetworkConnectivity.hub_service_available? Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-network_management-v1/CHANGELOG.md b/google-cloud-network_management-v1/CHANGELOG.md index 45b854108fd8..d84a1012a920 100644 --- a/google-cloud-network_management-v1/CHANGELOG.md +++ b/google-cloud-network_management-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.3.0 (2025-08-12) #### Features diff --git a/google-cloud-network_management-v1/google-cloud-network_management-v1.gemspec b/google-cloud-network_management-v1/google-cloud-network_management-v1.gemspec index 4ddbd03bf5ff..dc189a3bd4d3 100644 --- a/google-cloud-network_management-v1/google-cloud-network_management-v1.gemspec +++ b/google-cloud-network_management-v1/google-cloud-network_management-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-network_management-v1/lib/google/cloud/network_management/v1/version.rb b/google-cloud-network_management-v1/lib/google/cloud/network_management/v1/version.rb index 131dc960b28e..f3e826ef0cc2 100644 --- a/google-cloud-network_management-v1/lib/google/cloud/network_management/v1/version.rb +++ b/google-cloud-network_management-v1/lib/google/cloud/network_management/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module NetworkManagement module V1 - VERSION = "2.3.0" + VERSION = "2.4.0" end end end diff --git a/google-cloud-network_management-v1/snippets/snippet_metadata_google.cloud.networkmanagement.v1.json b/google-cloud-network_management-v1/snippets/snippet_metadata_google.cloud.networkmanagement.v1.json index 36caf08ece22..b438f67ae63e 100644 --- a/google-cloud-network_management-v1/snippets/snippet_metadata_google.cloud.networkmanagement.v1.json +++ b/google-cloud-network_management-v1/snippets/snippet_metadata_google.cloud.networkmanagement.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-network_management-v1", - "version": "2.3.0", + "version": "2.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-network_management/CHANGELOG.md b/google-cloud-network_management/CHANGELOG.md index a624ca32b1b2..f197e9b1e9f8 100644 --- a/google-cloud-network_management/CHANGELOG.md +++ b/google-cloud-network_management/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-network_management/README.md b/google-cloud-network_management/README.md index 8a0ec874c064..10ae31b27d78 100644 --- a/google-cloud-network_management/README.md +++ b/google-cloud-network_management/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/networkmanagement.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/network_management" + +client = Google::Cloud::NetworkManagement.reachability_service +request = ::Google::Cloud::NetworkManagement::V1::ListConnectivityTestsRequest.new # (request fields as keyword arguments...) +response = client.list_connectivity_tests request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-network_management/lib/google/cloud/network_management/version.rb b/google-cloud-network_management/lib/google/cloud/network_management/version.rb index 2614eedf5f7f..15cc4593b609 100644 --- a/google-cloud-network_management/lib/google/cloud/network_management/version.rb +++ b/google-cloud-network_management/lib/google/cloud/network_management/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module NetworkManagement - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-network_security-v1beta1/CHANGELOG.md b/google-cloud-network_security-v1beta1/CHANGELOG.md index 14b090816dc9..f87f393ce0f2 100644 --- a/google-cloud-network_security-v1beta1/CHANGELOG.md +++ b/google-cloud-network_security-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.11.0 (2025-05-12) #### Features diff --git a/google-cloud-network_security-v1beta1/google-cloud-network_security-v1beta1.gemspec b/google-cloud-network_security-v1beta1/google-cloud-network_security-v1beta1.gemspec index e8c5b7e47f55..6c808947dd41 100644 --- a/google-cloud-network_security-v1beta1/google-cloud-network_security-v1beta1.gemspec +++ b/google-cloud-network_security-v1beta1/google-cloud-network_security-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-network_security-v1beta1/lib/google/cloud/network_security/v1beta1/version.rb b/google-cloud-network_security-v1beta1/lib/google/cloud/network_security/v1beta1/version.rb index b92b39c05fba..7492e814d874 100644 --- a/google-cloud-network_security-v1beta1/lib/google/cloud/network_security/v1beta1/version.rb +++ b/google-cloud-network_security-v1beta1/lib/google/cloud/network_security/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module NetworkSecurity module V1beta1 - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-cloud-network_security-v1beta1/snippets/snippet_metadata_google.cloud.networksecurity.v1beta1.json b/google-cloud-network_security-v1beta1/snippets/snippet_metadata_google.cloud.networksecurity.v1beta1.json index d9c6b674c2ec..0c593c1ef645 100644 --- a/google-cloud-network_security-v1beta1/snippets/snippet_metadata_google.cloud.networksecurity.v1beta1.json +++ b/google-cloud-network_security-v1beta1/snippets/snippet_metadata_google.cloud.networksecurity.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-network_security-v1beta1", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-network_security/CHANGELOG.md b/google-cloud-network_security/CHANGELOG.md index b554512662e7..9c5694daade0 100644 --- a/google-cloud-network_security/CHANGELOG.md +++ b/google-cloud-network_security/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-network_security/README.md b/google-cloud-network_security/README.md index 457a2414a61a..68809eef0c74 100644 --- a/google-cloud-network_security/README.md +++ b/google-cloud-network_security/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/networksecurity.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/network_security" + +client = Google::Cloud::NetworkSecurity.network_security +request = ::Google::Cloud::NetworkSecurity::V1beta1::ListAuthorizationPoliciesRequest.new # (request fields as keyword arguments...) +response = client.list_authorization_policies request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-network_security/lib/google/cloud/network_security/version.rb b/google-cloud-network_security/lib/google/cloud/network_security/version.rb index 998e2fd36aad..cd3e76570ff9 100644 --- a/google-cloud-network_security/lib/google/cloud/network_security/version.rb +++ b/google-cloud-network_security/lib/google/cloud/network_security/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module NetworkSecurity - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-cloud-network_services-v1/CHANGELOG.md b/google-cloud-network_services-v1/CHANGELOG.md index e7c21e495968..f972e74cea5c 100644 --- a/google-cloud-network_services-v1/CHANGELOG.md +++ b/google-cloud-network_services-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.4.0 (2025-07-15) #### Features diff --git a/google-cloud-network_services-v1/google-cloud-network_services-v1.gemspec b/google-cloud-network_services-v1/google-cloud-network_services-v1.gemspec index d49233387af4..26ddf90430ac 100644 --- a/google-cloud-network_services-v1/google-cloud-network_services-v1.gemspec +++ b/google-cloud-network_services-v1/google-cloud-network_services-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-network_services-v1/lib/google/cloud/network_services/v1/version.rb b/google-cloud-network_services-v1/lib/google/cloud/network_services/v1/version.rb index 8920683fe9e1..24ff91748785 100644 --- a/google-cloud-network_services-v1/lib/google/cloud/network_services/v1/version.rb +++ b/google-cloud-network_services-v1/lib/google/cloud/network_services/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module NetworkServices module V1 - VERSION = "2.4.0" + VERSION = "2.5.0" end end end diff --git a/google-cloud-network_services-v1/snippets/snippet_metadata_google.cloud.networkservices.v1.json b/google-cloud-network_services-v1/snippets/snippet_metadata_google.cloud.networkservices.v1.json index 14afcb32456a..780527fb83f0 100644 --- a/google-cloud-network_services-v1/snippets/snippet_metadata_google.cloud.networkservices.v1.json +++ b/google-cloud-network_services-v1/snippets/snippet_metadata_google.cloud.networkservices.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-network_services-v1", - "version": "2.4.0", + "version": "2.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-network_services/CHANGELOG.md b/google-cloud-network_services/CHANGELOG.md index 96b7fa6732c4..26faa47af920 100644 --- a/google-cloud-network_services/CHANGELOG.md +++ b/google-cloud-network_services/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-network_services/README.md b/google-cloud-network_services/README.md index 44d4f435fa40..2a5e8c593602 100644 --- a/google-cloud-network_services/README.md +++ b/google-cloud-network_services/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/networkservices.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/network_services" + +client = Google::Cloud::NetworkServices.dep_service +request = ::Google::Cloud::NetworkServices::V1::ListLbTrafficExtensionsRequest.new # (request fields as keyword arguments...) +response = client.list_lb_traffic_extensions request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-network_services/lib/google/cloud/network_services/version.rb b/google-cloud-network_services/lib/google/cloud/network_services/version.rb index 663cf9a1d8a3..c69dcab5b15e 100644 --- a/google-cloud-network_services/lib/google/cloud/network_services/version.rb +++ b/google-cloud-network_services/lib/google/cloud/network_services/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module NetworkServices - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-notebooks-v1/CHANGELOG.md b/google-cloud-notebooks-v1/CHANGELOG.md index 48d416d6f74c..ea8a1fe2542b 100644 --- a/google-cloud-notebooks-v1/CHANGELOG.md +++ b/google-cloud-notebooks-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-notebooks-v1/google-cloud-notebooks-v1.gemspec b/google-cloud-notebooks-v1/google-cloud-notebooks-v1.gemspec index 05ce7fb5dea9..a4556751c752 100644 --- a/google-cloud-notebooks-v1/google-cloud-notebooks-v1.gemspec +++ b/google-cloud-notebooks-v1/google-cloud-notebooks-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-notebooks-v1/lib/google/cloud/notebooks/v1/version.rb b/google-cloud-notebooks-v1/lib/google/cloud/notebooks/v1/version.rb index b494a52cc017..3273095363ef 100644 --- a/google-cloud-notebooks-v1/lib/google/cloud/notebooks/v1/version.rb +++ b/google-cloud-notebooks-v1/lib/google/cloud/notebooks/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Notebooks module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-notebooks-v1/snippets/snippet_metadata_google.cloud.notebooks.v1.json b/google-cloud-notebooks-v1/snippets/snippet_metadata_google.cloud.notebooks.v1.json index 0a7ddaae79a2..c4d3bb6c35c8 100644 --- a/google-cloud-notebooks-v1/snippets/snippet_metadata_google.cloud.notebooks.v1.json +++ b/google-cloud-notebooks-v1/snippets/snippet_metadata_google.cloud.notebooks.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-notebooks-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-notebooks-v1beta1/CHANGELOG.md b/google-cloud-notebooks-v1beta1/CHANGELOG.md index d1114e0ac165..f85dad3dab86 100644 --- a/google-cloud-notebooks-v1beta1/CHANGELOG.md +++ b/google-cloud-notebooks-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-notebooks-v1beta1/google-cloud-notebooks-v1beta1.gemspec b/google-cloud-notebooks-v1beta1/google-cloud-notebooks-v1beta1.gemspec index a0d357e9c444..3d04804bceb6 100644 --- a/google-cloud-notebooks-v1beta1/google-cloud-notebooks-v1beta1.gemspec +++ b/google-cloud-notebooks-v1beta1/google-cloud-notebooks-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-notebooks-v1beta1/lib/google/cloud/notebooks/v1beta1/version.rb b/google-cloud-notebooks-v1beta1/lib/google/cloud/notebooks/v1beta1/version.rb index 11392bca337b..ac7c508f1b01 100644 --- a/google-cloud-notebooks-v1beta1/lib/google/cloud/notebooks/v1beta1/version.rb +++ b/google-cloud-notebooks-v1beta1/lib/google/cloud/notebooks/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Notebooks module V1beta1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-notebooks-v1beta1/snippets/snippet_metadata_google.cloud.notebooks.v1beta1.json b/google-cloud-notebooks-v1beta1/snippets/snippet_metadata_google.cloud.notebooks.v1beta1.json index 0632eccf7489..cacb76cdedbb 100644 --- a/google-cloud-notebooks-v1beta1/snippets/snippet_metadata_google.cloud.notebooks.v1beta1.json +++ b/google-cloud-notebooks-v1beta1/snippets/snippet_metadata_google.cloud.notebooks.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-notebooks-v1beta1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-notebooks-v2/CHANGELOG.md b/google-cloud-notebooks-v2/CHANGELOG.md index 32fc02400c77..2a85d0025f46 100644 --- a/google-cloud-notebooks-v2/CHANGELOG.md +++ b/google-cloud-notebooks-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-notebooks-v2/google-cloud-notebooks-v2.gemspec b/google-cloud-notebooks-v2/google-cloud-notebooks-v2.gemspec index b54e5c29d47f..d95cd6a19c8e 100644 --- a/google-cloud-notebooks-v2/google-cloud-notebooks-v2.gemspec +++ b/google-cloud-notebooks-v2/google-cloud-notebooks-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-notebooks-v2/lib/google/cloud/notebooks/v2/version.rb b/google-cloud-notebooks-v2/lib/google/cloud/notebooks/v2/version.rb index 98cb288d9439..26d58cfdec62 100644 --- a/google-cloud-notebooks-v2/lib/google/cloud/notebooks/v2/version.rb +++ b/google-cloud-notebooks-v2/lib/google/cloud/notebooks/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Notebooks module V2 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-notebooks-v2/snippets/snippet_metadata_google.cloud.notebooks.v2.json b/google-cloud-notebooks-v2/snippets/snippet_metadata_google.cloud.notebooks.v2.json index e98fa2933f4f..768d2aac2caf 100644 --- a/google-cloud-notebooks-v2/snippets/snippet_metadata_google.cloud.notebooks.v2.json +++ b/google-cloud-notebooks-v2/snippets/snippet_metadata_google.cloud.notebooks.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-notebooks-v2", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-notebooks/CHANGELOG.md b/google-cloud-notebooks/CHANGELOG.md index 31ad892f3324..9989c0176cd7 100644 --- a/google-cloud-notebooks/CHANGELOG.md +++ b/google-cloud-notebooks/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 3.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 3.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-notebooks/README.md b/google-cloud-notebooks/README.md index 87525974cb36..25f05f91ff27 100644 --- a/google-cloud-notebooks/README.md +++ b/google-cloud-notebooks/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/notebooks.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/notebooks" + +client = Google::Cloud::Notebooks.managed_notebook_service +request = ::Google::Cloud::Notebooks::V1::ListRuntimesRequest.new # (request fields as keyword arguments...) +response = client.list_runtimes request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb b/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb index 12c519cbfc26..b867d3e885c7 100644 --- a/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb +++ b/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Notebooks - VERSION = "3.0.1" + VERSION = "3.0.2" end end end diff --git a/google-cloud-optimization-v1/CHANGELOG.md b/google-cloud-optimization-v1/CHANGELOG.md index 52c0f57b9421..d3ede7b16e02 100644 --- a/google-cloud-optimization-v1/CHANGELOG.md +++ b/google-cloud-optimization-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-optimization-v1/google-cloud-optimization-v1.gemspec b/google-cloud-optimization-v1/google-cloud-optimization-v1.gemspec index 22de9ba21045..cb97d80314bb 100644 --- a/google-cloud-optimization-v1/google-cloud-optimization-v1.gemspec +++ b/google-cloud-optimization-v1/google-cloud-optimization-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-optimization-v1/lib/google/cloud/optimization/v1/version.rb b/google-cloud-optimization-v1/lib/google/cloud/optimization/v1/version.rb index 9b88a798b123..e5b5bc958508 100644 --- a/google-cloud-optimization-v1/lib/google/cloud/optimization/v1/version.rb +++ b/google-cloud-optimization-v1/lib/google/cloud/optimization/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Optimization module V1 - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-optimization-v1/snippets/snippet_metadata_google.cloud.optimization.v1.json b/google-cloud-optimization-v1/snippets/snippet_metadata_google.cloud.optimization.v1.json index f3fa472ecefc..41c1036ef525 100644 --- a/google-cloud-optimization-v1/snippets/snippet_metadata_google.cloud.optimization.v1.json +++ b/google-cloud-optimization-v1/snippets/snippet_metadata_google.cloud.optimization.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-optimization-v1", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-optimization/CHANGELOG.md b/google-cloud-optimization/CHANGELOG.md index 2837c9895a66..0b90169b4463 100644 --- a/google-cloud-optimization/CHANGELOG.md +++ b/google-cloud-optimization/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-optimization/README.md b/google-cloud-optimization/README.md index 2de7b332fae3..5023fcd8f844 100644 --- a/google-cloud-optimization/README.md +++ b/google-cloud-optimization/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudoptimization.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/optimization" + +client = Google::Cloud::Optimization.fleet_routing +request = ::Google::Cloud::Optimization::V1::OptimizeToursRequest.new # (request fields as keyword arguments...) +response = client.optimize_tours request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-optimization/lib/google/cloud/optimization/version.rb b/google-cloud-optimization/lib/google/cloud/optimization/version.rb index 7b6a4fa9d4d0..46ef6e450b57 100644 --- a/google-cloud-optimization/lib/google/cloud/optimization/version.rb +++ b/google-cloud-optimization/lib/google/cloud/optimization/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Optimization - VERSION = "1.3.1" + VERSION = "1.3.2" end end end diff --git a/google-cloud-oracle_database-v1/CHANGELOG.md b/google-cloud-oracle_database-v1/CHANGELOG.md index cff91b7a0a70..d12994b41cee 100644 --- a/google-cloud-oracle_database-v1/CHANGELOG.md +++ b/google-cloud-oracle_database-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.8.0 (2025-05-12) #### Features diff --git a/google-cloud-oracle_database-v1/google-cloud-oracle_database-v1.gemspec b/google-cloud-oracle_database-v1/google-cloud-oracle_database-v1.gemspec index 6228d743bdd5..fcd6f1a95c00 100644 --- a/google-cloud-oracle_database-v1/google-cloud-oracle_database-v1.gemspec +++ b/google-cloud-oracle_database-v1/google-cloud-oracle_database-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-oracle_database-v1/lib/google/cloud/oracle_database/v1/version.rb b/google-cloud-oracle_database-v1/lib/google/cloud/oracle_database/v1/version.rb index 8174c74db807..8f678c14bd55 100644 --- a/google-cloud-oracle_database-v1/lib/google/cloud/oracle_database/v1/version.rb +++ b/google-cloud-oracle_database-v1/lib/google/cloud/oracle_database/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module OracleDatabase module V1 - VERSION = "0.8.0" + VERSION = "0.9.0" end end end diff --git a/google-cloud-oracle_database-v1/snippets/snippet_metadata_google.cloud.oracledatabase.v1.json b/google-cloud-oracle_database-v1/snippets/snippet_metadata_google.cloud.oracledatabase.v1.json index 22ab66d0fd89..cfdd558ff95d 100644 --- a/google-cloud-oracle_database-v1/snippets/snippet_metadata_google.cloud.oracledatabase.v1.json +++ b/google-cloud-oracle_database-v1/snippets/snippet_metadata_google.cloud.oracledatabase.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-oracle_database-v1", - "version": "0.8.0", + "version": "0.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-oracle_database/CHANGELOG.md b/google-cloud-oracle_database/CHANGELOG.md index 2bedda9be0cf..ababf9b33f7e 100644 --- a/google-cloud-oracle_database/CHANGELOG.md +++ b/google-cloud-oracle_database/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-oracle_database/README.md b/google-cloud-oracle_database/README.md index 77a07906a100..140ec5266776 100644 --- a/google-cloud-oracle_database/README.md +++ b/google-cloud-oracle_database/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/oracledatabase.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/oracle_database" + +client = Google::Cloud::OracleDatabase.oracle_database +request = ::Google::Cloud::OracleDatabase::V1::ListCloudExadataInfrastructuresRequest.new # (request fields as keyword arguments...) +response = client.list_cloud_exadata_infrastructures request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb b/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb index aef1088edc6f..b7ea49fd6dea 100644 --- a/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb +++ b/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module OracleDatabase - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/google-cloud-orchestration-airflow-service-v1/CHANGELOG.md b/google-cloud-orchestration-airflow-service-v1/CHANGELOG.md index d10f69c15b4f..9e3f344baaa1 100644 --- a/google-cloud-orchestration-airflow-service-v1/CHANGELOG.md +++ b/google-cloud-orchestration-airflow-service-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-orchestration-airflow-service-v1/google-cloud-orchestration-airflow-service-v1.gemspec b/google-cloud-orchestration-airflow-service-v1/google-cloud-orchestration-airflow-service-v1.gemspec index 7985e8f2e22d..3069ca20fee4 100644 --- a/google-cloud-orchestration-airflow-service-v1/google-cloud-orchestration-airflow-service-v1.gemspec +++ b/google-cloud-orchestration-airflow-service-v1/google-cloud-orchestration-airflow-service-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-orchestration-airflow-service-v1/lib/google/cloud/orchestration/airflow/service/v1/version.rb b/google-cloud-orchestration-airflow-service-v1/lib/google/cloud/orchestration/airflow/service/v1/version.rb index 4ba91f701b74..9cc6286849fb 100644 --- a/google-cloud-orchestration-airflow-service-v1/lib/google/cloud/orchestration/airflow/service/v1/version.rb +++ b/google-cloud-orchestration-airflow-service-v1/lib/google/cloud/orchestration/airflow/service/v1/version.rb @@ -23,7 +23,7 @@ module Orchestration module Airflow module Service module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-orchestration-airflow-service-v1/snippets/snippet_metadata_google.cloud.orchestration.airflow.service.v1.json b/google-cloud-orchestration-airflow-service-v1/snippets/snippet_metadata_google.cloud.orchestration.airflow.service.v1.json index 7a05ec10b58c..fc76b7b06732 100644 --- a/google-cloud-orchestration-airflow-service-v1/snippets/snippet_metadata_google.cloud.orchestration.airflow.service.v1.json +++ b/google-cloud-orchestration-airflow-service-v1/snippets/snippet_metadata_google.cloud.orchestration.airflow.service.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-orchestration-airflow-service-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-orchestration-airflow-service/CHANGELOG.md b/google-cloud-orchestration-airflow-service/CHANGELOG.md index 6e49a19cb036..044442165650 100644 --- a/google-cloud-orchestration-airflow-service/CHANGELOG.md +++ b/google-cloud-orchestration-airflow-service/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-orchestration-airflow-service/README.md b/google-cloud-orchestration-airflow-service/README.md index b55fd6fd934e..1bea184be8e9 100644 --- a/google-cloud-orchestration-airflow-service/README.md +++ b/google-cloud-orchestration-airflow-service/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/composer.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/orchestration/airflow/service" + +client = Google::Cloud::Orchestration::Airflow::Service.environments +request = ::Google::Cloud::Orchestration::Airflow::Service::V1::CreateEnvironmentRequest.new # (request fields as keyword arguments...) +response = client.create_environment request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb b/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb index d5c1e8607840..6670194cd794 100644 --- a/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb +++ b/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb @@ -22,7 +22,7 @@ module Cloud module Orchestration module Airflow module Service - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-org_policy-v2/CHANGELOG.md b/google-cloud-org_policy-v2/CHANGELOG.md index d95a8df1225a..c70c65160336 100644 --- a/google-cloud-org_policy-v2/CHANGELOG.md +++ b/google-cloud-org_policy-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.5.0 (2025-05-12) #### Features diff --git a/google-cloud-org_policy-v2/google-cloud-org_policy-v2.gemspec b/google-cloud-org_policy-v2/google-cloud-org_policy-v2.gemspec index f6c992a1a640..2aba3c1fd69a 100644 --- a/google-cloud-org_policy-v2/google-cloud-org_policy-v2.gemspec +++ b/google-cloud-org_policy-v2/google-cloud-org_policy-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-org_policy-v2/lib/google/cloud/org_policy/v2/version.rb b/google-cloud-org_policy-v2/lib/google/cloud/org_policy/v2/version.rb index 23493f4667db..a8b3a0f9ed7c 100644 --- a/google-cloud-org_policy-v2/lib/google/cloud/org_policy/v2/version.rb +++ b/google-cloud-org_policy-v2/lib/google/cloud/org_policy/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module OrgPolicy module V2 - VERSION = "1.5.0" + VERSION = "1.6.0" end end end diff --git a/google-cloud-org_policy-v2/snippets/snippet_metadata_google.cloud.orgpolicy.v2.json b/google-cloud-org_policy-v2/snippets/snippet_metadata_google.cloud.orgpolicy.v2.json index f7857d03e81d..9131a5421594 100644 --- a/google-cloud-org_policy-v2/snippets/snippet_metadata_google.cloud.orgpolicy.v2.json +++ b/google-cloud-org_policy-v2/snippets/snippet_metadata_google.cloud.orgpolicy.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-org_policy-v2", - "version": "1.5.0", + "version": "1.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-org_policy/CHANGELOG.md b/google-cloud-org_policy/CHANGELOG.md index 8959d0f89d19..85123dbf168a 100644 --- a/google-cloud-org_policy/CHANGELOG.md +++ b/google-cloud-org_policy/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-org_policy/README.md b/google-cloud-org_policy/README.md index fa2cfe11337b..96091723dd3d 100644 --- a/google-cloud-org_policy/README.md +++ b/google-cloud-org_policy/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/orgpolicy.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/org_policy" + +client = Google::Cloud::OrgPolicy.org_policy +request = ::Google::Cloud::OrgPolicy::V2::ListConstraintsRequest.new # (request fields as keyword arguments...) +response = client.list_constraints request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb b/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb index 2afb1c16e64c..1f846980aed0 100644 --- a/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb +++ b/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module OrgPolicy - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-os_config-v1/CHANGELOG.md b/google-cloud-os_config-v1/CHANGELOG.md index 03524ae0af6d..8b0efc6c1e5a 100644 --- a/google-cloud-os_config-v1/CHANGELOG.md +++ b/google-cloud-os_config-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-08-12) #### Features diff --git a/google-cloud-os_config-v1/google-cloud-os_config-v1.gemspec b/google-cloud-os_config-v1/google-cloud-os_config-v1.gemspec index a6c871480094..ede2b5abf6d3 100644 --- a/google-cloud-os_config-v1/google-cloud-os_config-v1.gemspec +++ b/google-cloud-os_config-v1/google-cloud-os_config-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-os_config-v1/lib/google/cloud/os_config/v1/version.rb b/google-cloud-os_config-v1/lib/google/cloud/os_config/v1/version.rb index d7e81f10f598..f84bdbb5ed36 100644 --- a/google-cloud-os_config-v1/lib/google/cloud/os_config/v1/version.rb +++ b/google-cloud-os_config-v1/lib/google/cloud/os_config/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module OsConfig module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-os_config-v1/snippets/snippet_metadata_google.cloud.osconfig.v1.json b/google-cloud-os_config-v1/snippets/snippet_metadata_google.cloud.osconfig.v1.json index 23ed259677be..81ef7c3f78ce 100644 --- a/google-cloud-os_config-v1/snippets/snippet_metadata_google.cloud.osconfig.v1.json +++ b/google-cloud-os_config-v1/snippets/snippet_metadata_google.cloud.osconfig.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-os_config-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-os_config-v1alpha/CHANGELOG.md b/google-cloud-os_config-v1alpha/CHANGELOG.md index 2c00ddfb1539..a3d4f161c6e8 100644 --- a/google-cloud-os_config-v1alpha/CHANGELOG.md +++ b/google-cloud-os_config-v1alpha/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-os_config-v1alpha/google-cloud-os_config-v1alpha.gemspec b/google-cloud-os_config-v1alpha/google-cloud-os_config-v1alpha.gemspec index f1c6161aeca0..9156b238a65a 100644 --- a/google-cloud-os_config-v1alpha/google-cloud-os_config-v1alpha.gemspec +++ b/google-cloud-os_config-v1alpha/google-cloud-os_config-v1alpha.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-os_config-v1alpha/lib/google/cloud/os_config/v1alpha/version.rb b/google-cloud-os_config-v1alpha/lib/google/cloud/os_config/v1alpha/version.rb index 4a4294542002..27c0836ef22c 100644 --- a/google-cloud-os_config-v1alpha/lib/google/cloud/os_config/v1alpha/version.rb +++ b/google-cloud-os_config-v1alpha/lib/google/cloud/os_config/v1alpha/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module OsConfig module V1alpha - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-os_config-v1alpha/snippets/snippet_metadata_google.cloud.osconfig.v1alpha.json b/google-cloud-os_config-v1alpha/snippets/snippet_metadata_google.cloud.osconfig.v1alpha.json index cfebb2ddb9e6..060820e37e5b 100644 --- a/google-cloud-os_config-v1alpha/snippets/snippet_metadata_google.cloud.osconfig.v1alpha.json +++ b/google-cloud-os_config-v1alpha/snippets/snippet_metadata_google.cloud.osconfig.v1alpha.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-os_config-v1alpha", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-os_config/CHANGELOG.md b/google-cloud-os_config/CHANGELOG.md index 45440d0298d3..fcee4d1dcf08 100644 --- a/google-cloud-os_config/CHANGELOG.md +++ b/google-cloud-os_config/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.7.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.7.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-os_config/README.md b/google-cloud-os_config/README.md index d3aafa0aa93c..4211781877a7 100644 --- a/google-cloud-os_config/README.md +++ b/google-cloud-os_config/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/osconfig.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/os_config" + +client = Google::Cloud::OsConfig.os_config_service +request = ::Google::Cloud::OsConfig::V1::ExecutePatchJobRequest.new # (request fields as keyword arguments...) +response = client.execute_patch_job request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-os_config/lib/google/cloud/os_config/version.rb b/google-cloud-os_config/lib/google/cloud/os_config/version.rb index 9bc5c7ef806b..8421b6d40179 100644 --- a/google-cloud-os_config/lib/google/cloud/os_config/version.rb +++ b/google-cloud-os_config/lib/google/cloud/os_config/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module OsConfig - VERSION = "1.7.1" + VERSION = "1.7.2" end end end diff --git a/google-cloud-os_login-v1/CHANGELOG.md b/google-cloud-os_login-v1/CHANGELOG.md index 75543ddaeed4..ff16de3b1d1e 100644 --- a/google-cloud-os_login-v1/CHANGELOG.md +++ b/google-cloud-os_login-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-os_login-v1/google-cloud-os_login-v1.gemspec b/google-cloud-os_login-v1/google-cloud-os_login-v1.gemspec index 1d833893267c..dee9b1ca8fd6 100644 --- a/google-cloud-os_login-v1/google-cloud-os_login-v1.gemspec +++ b/google-cloud-os_login-v1/google-cloud-os_login-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-os_login-v1/lib/google/cloud/os_login/v1/version.rb b/google-cloud-os_login-v1/lib/google/cloud/os_login/v1/version.rb index 56e4ebab0b74..80e996ded574 100644 --- a/google-cloud-os_login-v1/lib/google/cloud/os_login/v1/version.rb +++ b/google-cloud-os_login-v1/lib/google/cloud/os_login/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module OsLogin module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-os_login-v1/snippets/snippet_metadata_google.cloud.oslogin.v1.json b/google-cloud-os_login-v1/snippets/snippet_metadata_google.cloud.oslogin.v1.json index 814c573b4001..b5b387284ea0 100644 --- a/google-cloud-os_login-v1/snippets/snippet_metadata_google.cloud.oslogin.v1.json +++ b/google-cloud-os_login-v1/snippets/snippet_metadata_google.cloud.oslogin.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-os_login-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-os_login-v1beta/CHANGELOG.md b/google-cloud-os_login-v1beta/CHANGELOG.md index 7287cffac007..31dacec1c28a 100644 --- a/google-cloud-os_login-v1beta/CHANGELOG.md +++ b/google-cloud-os_login-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.19.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.18.0 (2025-05-12) #### Features diff --git a/google-cloud-os_login-v1beta/google-cloud-os_login-v1beta.gemspec b/google-cloud-os_login-v1beta/google-cloud-os_login-v1beta.gemspec index 832a95c7c735..9f7cdef2e85e 100644 --- a/google-cloud-os_login-v1beta/google-cloud-os_login-v1beta.gemspec +++ b/google-cloud-os_login-v1beta/google-cloud-os_login-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-os_login-v1beta/lib/google/cloud/os_login/v1beta/version.rb b/google-cloud-os_login-v1beta/lib/google/cloud/os_login/v1beta/version.rb index 9a9364291363..1c00daec4c8a 100644 --- a/google-cloud-os_login-v1beta/lib/google/cloud/os_login/v1beta/version.rb +++ b/google-cloud-os_login-v1beta/lib/google/cloud/os_login/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module OsLogin module V1beta - VERSION = "0.18.0" + VERSION = "0.19.0" end end end diff --git a/google-cloud-os_login-v1beta/snippets/snippet_metadata_google.cloud.oslogin.v1beta.json b/google-cloud-os_login-v1beta/snippets/snippet_metadata_google.cloud.oslogin.v1beta.json index e0c97b9017ba..481f367574b2 100644 --- a/google-cloud-os_login-v1beta/snippets/snippet_metadata_google.cloud.oslogin.v1beta.json +++ b/google-cloud-os_login-v1beta/snippets/snippet_metadata_google.cloud.oslogin.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-os_login-v1beta", - "version": "0.18.0", + "version": "0.19.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-os_login/CHANGELOG.md b/google-cloud-os_login/CHANGELOG.md index 0c820de37c6c..58124e07922d 100644 --- a/google-cloud-os_login/CHANGELOG.md +++ b/google-cloud-os_login/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-os_login/README.md b/google-cloud-os_login/README.md index fccdbe0be4af..6a3acf6f53cc 100644 --- a/google-cloud-os_login/README.md +++ b/google-cloud-os_login/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/os_login" + +client = Google::Cloud::OsLogin.os_login_service +request = ::Google::Cloud::OsLogin::V1::CreateSshPublicKeyRequest.new # (request fields as keyword arguments...) +response = client.create_ssh_public_key request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-os_login/lib/google/cloud/os_login/version.rb b/google-cloud-os_login/lib/google/cloud/os_login/version.rb index 82d80e134b0c..56f0fbca5cc2 100644 --- a/google-cloud-os_login/lib/google/cloud/os_login/version.rb +++ b/google-cloud-os_login/lib/google/cloud/os_login/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module OsLogin - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-parallelstore-v1/CHANGELOG.md b/google-cloud-parallelstore-v1/CHANGELOG.md index a7fd4a82dd05..49d62b1af670 100644 --- a/google-cloud-parallelstore-v1/CHANGELOG.md +++ b/google-cloud-parallelstore-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.2.0 (2025-05-12) #### Features diff --git a/google-cloud-parallelstore-v1/google-cloud-parallelstore-v1.gemspec b/google-cloud-parallelstore-v1/google-cloud-parallelstore-v1.gemspec index 8b6234d27210..9d30716d3408 100644 --- a/google-cloud-parallelstore-v1/google-cloud-parallelstore-v1.gemspec +++ b/google-cloud-parallelstore-v1/google-cloud-parallelstore-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-parallelstore-v1/lib/google/cloud/parallelstore/v1/version.rb b/google-cloud-parallelstore-v1/lib/google/cloud/parallelstore/v1/version.rb index 9df6efd37748..aa2f2754a0a5 100644 --- a/google-cloud-parallelstore-v1/lib/google/cloud/parallelstore/v1/version.rb +++ b/google-cloud-parallelstore-v1/lib/google/cloud/parallelstore/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Parallelstore module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-parallelstore-v1/snippets/snippet_metadata_google.cloud.parallelstore.v1.json b/google-cloud-parallelstore-v1/snippets/snippet_metadata_google.cloud.parallelstore.v1.json index bfa2e3308992..7de7e08afadd 100644 --- a/google-cloud-parallelstore-v1/snippets/snippet_metadata_google.cloud.parallelstore.v1.json +++ b/google-cloud-parallelstore-v1/snippets/snippet_metadata_google.cloud.parallelstore.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-parallelstore-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-parallelstore-v1beta/CHANGELOG.md b/google-cloud-parallelstore-v1beta/CHANGELOG.md index 367a30fbb5ea..a71510593aae 100644 --- a/google-cloud-parallelstore-v1beta/CHANGELOG.md +++ b/google-cloud-parallelstore-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.9.1 (2025-06-05) #### Documentation diff --git a/google-cloud-parallelstore-v1beta/google-cloud-parallelstore-v1beta.gemspec b/google-cloud-parallelstore-v1beta/google-cloud-parallelstore-v1beta.gemspec index a57d1d695977..12c62a959502 100644 --- a/google-cloud-parallelstore-v1beta/google-cloud-parallelstore-v1beta.gemspec +++ b/google-cloud-parallelstore-v1beta/google-cloud-parallelstore-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-parallelstore-v1beta/lib/google/cloud/parallelstore/v1beta/version.rb b/google-cloud-parallelstore-v1beta/lib/google/cloud/parallelstore/v1beta/version.rb index 6a7bda8736d2..b9d59e45fc49 100644 --- a/google-cloud-parallelstore-v1beta/lib/google/cloud/parallelstore/v1beta/version.rb +++ b/google-cloud-parallelstore-v1beta/lib/google/cloud/parallelstore/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Parallelstore module V1beta - VERSION = "0.9.1" + VERSION = "0.10.0" end end end diff --git a/google-cloud-parallelstore-v1beta/snippets/snippet_metadata_google.cloud.parallelstore.v1beta.json b/google-cloud-parallelstore-v1beta/snippets/snippet_metadata_google.cloud.parallelstore.v1beta.json index 5e72ab36be61..e45ba9c34cd0 100644 --- a/google-cloud-parallelstore-v1beta/snippets/snippet_metadata_google.cloud.parallelstore.v1beta.json +++ b/google-cloud-parallelstore-v1beta/snippets/snippet_metadata_google.cloud.parallelstore.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-parallelstore-v1beta", - "version": "0.9.1", + "version": "0.10.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-parallelstore/CHANGELOG.md b/google-cloud-parallelstore/CHANGELOG.md index 28322134ec22..20e55ba986d4 100644 --- a/google-cloud-parallelstore/CHANGELOG.md +++ b/google-cloud-parallelstore/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-parallelstore/README.md b/google-cloud-parallelstore/README.md index 3ce9e20f7e17..230618686a00 100644 --- a/google-cloud-parallelstore/README.md +++ b/google-cloud-parallelstore/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/parallelstore.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/parallelstore" + +client = Google::Cloud::Parallelstore.parallelstore +request = ::Google::Cloud::Parallelstore::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb b/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb index 38bb5cabf58d..913d6bd03d83 100644 --- a/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb +++ b/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Parallelstore - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-parameter_manager-v1/CHANGELOG.md b/google-cloud-parameter_manager-v1/CHANGELOG.md index becb634e3c7e..d98ed64f94df 100644 --- a/google-cloud-parameter_manager-v1/CHANGELOG.md +++ b/google-cloud-parameter_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.4.0 (2025-06-24) #### Features diff --git a/google-cloud-parameter_manager-v1/google-cloud-parameter_manager-v1.gemspec b/google-cloud-parameter_manager-v1/google-cloud-parameter_manager-v1.gemspec index 156f5373ff14..969b9d3c6b45 100644 --- a/google-cloud-parameter_manager-v1/google-cloud-parameter_manager-v1.gemspec +++ b/google-cloud-parameter_manager-v1/google-cloud-parameter_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-parameter_manager-v1/lib/google/cloud/parameter_manager/v1/version.rb b/google-cloud-parameter_manager-v1/lib/google/cloud/parameter_manager/v1/version.rb index c6074cc3e52b..a6b22a861231 100644 --- a/google-cloud-parameter_manager-v1/lib/google/cloud/parameter_manager/v1/version.rb +++ b/google-cloud-parameter_manager-v1/lib/google/cloud/parameter_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ParameterManager module V1 - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-cloud-parameter_manager-v1/snippets/snippet_metadata_google.cloud.parametermanager.v1.json b/google-cloud-parameter_manager-v1/snippets/snippet_metadata_google.cloud.parametermanager.v1.json index 14ab2ff3eef5..ad5552e7e6b6 100644 --- a/google-cloud-parameter_manager-v1/snippets/snippet_metadata_google.cloud.parametermanager.v1.json +++ b/google-cloud-parameter_manager-v1/snippets/snippet_metadata_google.cloud.parametermanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-parameter_manager-v1", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-parameter_manager/CHANGELOG.md b/google-cloud-parameter_manager/CHANGELOG.md index 82a46c874403..cede9f5e2928 100644 --- a/google-cloud-parameter_manager/CHANGELOG.md +++ b/google-cloud-parameter_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.2 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-parameter_manager/README.md b/google-cloud-parameter_manager/README.md index 6e8292ccc8d4..0376284f55a6 100644 --- a/google-cloud-parameter_manager/README.md +++ b/google-cloud-parameter_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/parametermanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/parameter_manager" + +client = Google::Cloud::ParameterManager.parameter_manager +request = ::Google::Cloud::ParameterManager::V1::ListParametersRequest.new # (request fields as keyword arguments...) +response = client.list_parameters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb b/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb index 055901d7584e..8c2d366418ec 100644 --- a/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb +++ b/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ParameterManager - VERSION = "0.1.2" + VERSION = "0.1.3" end end end diff --git a/google-cloud-phishing_protection-v1beta1/CHANGELOG.md b/google-cloud-phishing_protection-v1beta1/CHANGELOG.md index 9567f4c9d994..c5caab015dcb 100644 --- a/google-cloud-phishing_protection-v1beta1/CHANGELOG.md +++ b/google-cloud-phishing_protection-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-phishing_protection-v1beta1/google-cloud-phishing_protection-v1beta1.gemspec b/google-cloud-phishing_protection-v1beta1/google-cloud-phishing_protection-v1beta1.gemspec index 963643b0d7c3..c997a0e777b6 100644 --- a/google-cloud-phishing_protection-v1beta1/google-cloud-phishing_protection-v1beta1.gemspec +++ b/google-cloud-phishing_protection-v1beta1/google-cloud-phishing_protection-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-phishing_protection-v1beta1/lib/google/cloud/phishing_protection/v1beta1/version.rb b/google-cloud-phishing_protection-v1beta1/lib/google/cloud/phishing_protection/v1beta1/version.rb index 4160f0c0e8e5..5feeaa2b734a 100644 --- a/google-cloud-phishing_protection-v1beta1/lib/google/cloud/phishing_protection/v1beta1/version.rb +++ b/google-cloud-phishing_protection-v1beta1/lib/google/cloud/phishing_protection/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module PhishingProtection module V1beta1 - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-phishing_protection-v1beta1/snippets/snippet_metadata_google.cloud.phishingprotection.v1beta1.json b/google-cloud-phishing_protection-v1beta1/snippets/snippet_metadata_google.cloud.phishingprotection.v1beta1.json index df34d5c81f23..867193d2d3ea 100644 --- a/google-cloud-phishing_protection-v1beta1/snippets/snippet_metadata_google.cloud.phishingprotection.v1beta1.json +++ b/google-cloud-phishing_protection-v1beta1/snippets/snippet_metadata_google.cloud.phishingprotection.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-phishing_protection-v1beta1", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-phishing_protection/CHANGELOG.md b/google-cloud-phishing_protection/CHANGELOG.md index 3789d178b4d6..3c26950092e9 100644 --- a/google-cloud-phishing_protection/CHANGELOG.md +++ b/google-cloud-phishing_protection/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.16.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.16.2 (2025-05-27) #### Documentation diff --git a/google-cloud-phishing_protection/README.md b/google-cloud-phishing_protection/README.md index 28a5304f6366..5b1d9671e80b 100644 --- a/google-cloud-phishing_protection/README.md +++ b/google-cloud-phishing_protection/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/phishingprotection.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/phishing_protection" + +client = Google::Cloud::PhishingProtection.phishing_protection_service +request = ::Google::Cloud::PhishingProtection::V1beta1::ReportPhishingRequest.new # (request fields as keyword arguments...) +response = client.report_phishing request +``` + ## Migrating from pre-0.10 versions The 0.10 release of the google-cloud-phishing_protection client is a significant upgrade diff --git a/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb b/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb index 3bd0767e45e3..637704dfaa51 100644 --- a/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb +++ b/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module PhishingProtection - VERSION = "0.16.2" + VERSION = "0.16.3" end end end diff --git a/google-cloud-policy_simulator-v1/CHANGELOG.md b/google-cloud-policy_simulator-v1/CHANGELOG.md index a9031f9efe0e..ad138edddcd7 100644 --- a/google-cloud-policy_simulator-v1/CHANGELOG.md +++ b/google-cloud-policy_simulator-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-07-24) #### Features diff --git a/google-cloud-policy_simulator-v1/google-cloud-policy_simulator-v1.gemspec b/google-cloud-policy_simulator-v1/google-cloud-policy_simulator-v1.gemspec index d8a39fa61d3b..3315018a83fc 100644 --- a/google-cloud-policy_simulator-v1/google-cloud-policy_simulator-v1.gemspec +++ b/google-cloud-policy_simulator-v1/google-cloud-policy_simulator-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-org_policy-v2", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-policy_simulator-v1/lib/google/cloud/policy_simulator/v1/version.rb b/google-cloud-policy_simulator-v1/lib/google/cloud/policy_simulator/v1/version.rb index 1f748176e8ef..0c2e4c5870d0 100644 --- a/google-cloud-policy_simulator-v1/lib/google/cloud/policy_simulator/v1/version.rb +++ b/google-cloud-policy_simulator-v1/lib/google/cloud/policy_simulator/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module PolicySimulator module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-policy_simulator-v1/snippets/snippet_metadata_google.cloud.policysimulator.v1.json b/google-cloud-policy_simulator-v1/snippets/snippet_metadata_google.cloud.policysimulator.v1.json index a081bcd56e46..4b9554b35514 100644 --- a/google-cloud-policy_simulator-v1/snippets/snippet_metadata_google.cloud.policysimulator.v1.json +++ b/google-cloud-policy_simulator-v1/snippets/snippet_metadata_google.cloud.policysimulator.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-policy_simulator-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-policy_simulator/CHANGELOG.md b/google-cloud-policy_simulator/CHANGELOG.md index 8b75f7ea4fba..5a148b21bbb6 100644 --- a/google-cloud-policy_simulator/CHANGELOG.md +++ b/google-cloud-policy_simulator/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.3.0 (2025-07-24) #### Features diff --git a/google-cloud-policy_simulator/README.md b/google-cloud-policy_simulator/README.md index 25249940e5fd..02136b5ded56 100644 --- a/google-cloud-policy_simulator/README.md +++ b/google-cloud-policy_simulator/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/policysimulator.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/policy_simulator" + +client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service +request = ::Google::Cloud::PolicySimulator::V1::ListOrgPolicyViolationsPreviewsRequest.new # (request fields as keyword arguments...) +response = client.list_org_policy_violations_previews request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb b/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb index 4d54a82f7dfb..7601c6ed17a2 100644 --- a/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb +++ b/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module PolicySimulator - VERSION = "1.3.0" + VERSION = "1.3.1" end end end diff --git a/google-cloud-policy_troubleshooter-iam-v3/CHANGELOG.md b/google-cloud-policy_troubleshooter-iam-v3/CHANGELOG.md index 766e455392c2..0b14cb580f6f 100644 --- a/google-cloud-policy_troubleshooter-iam-v3/CHANGELOG.md +++ b/google-cloud-policy_troubleshooter-iam-v3/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.7.0 (2025-05-12) #### Features diff --git a/google-cloud-policy_troubleshooter-iam-v3/google-cloud-policy_troubleshooter-iam-v3.gemspec b/google-cloud-policy_troubleshooter-iam-v3/google-cloud-policy_troubleshooter-iam-v3.gemspec index a5520ef5a68d..f3601f7be3dc 100644 --- a/google-cloud-policy_troubleshooter-iam-v3/google-cloud-policy_troubleshooter-iam-v3.gemspec +++ b/google-cloud-policy_troubleshooter-iam-v3/google-cloud-policy_troubleshooter-iam-v3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "> 0.5", "< 2.a" gem.add_dependency "google-iam-v2", "> 0.3", "< 2.a" diff --git a/google-cloud-policy_troubleshooter-iam-v3/lib/google/cloud/policy_troubleshooter/iam/v3/version.rb b/google-cloud-policy_troubleshooter-iam-v3/lib/google/cloud/policy_troubleshooter/iam/v3/version.rb index 5792f9ab9b48..cfc10c94417d 100644 --- a/google-cloud-policy_troubleshooter-iam-v3/lib/google/cloud/policy_troubleshooter/iam/v3/version.rb +++ b/google-cloud-policy_troubleshooter-iam-v3/lib/google/cloud/policy_troubleshooter/iam/v3/version.rb @@ -22,7 +22,7 @@ module Cloud module PolicyTroubleshooter module Iam module V3 - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-cloud-policy_troubleshooter-iam-v3/snippets/snippet_metadata_google.cloud.policytroubleshooter.iam.v3.json b/google-cloud-policy_troubleshooter-iam-v3/snippets/snippet_metadata_google.cloud.policytroubleshooter.iam.v3.json index c6b2674e826f..b667f2e35642 100644 --- a/google-cloud-policy_troubleshooter-iam-v3/snippets/snippet_metadata_google.cloud.policytroubleshooter.iam.v3.json +++ b/google-cloud-policy_troubleshooter-iam-v3/snippets/snippet_metadata_google.cloud.policytroubleshooter.iam.v3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-policy_troubleshooter-iam-v3", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-policy_troubleshooter-v1/CHANGELOG.md b/google-cloud-policy_troubleshooter-v1/CHANGELOG.md index f030916bc5d3..ef03a0ff8934 100644 --- a/google-cloud-policy_troubleshooter-v1/CHANGELOG.md +++ b/google-cloud-policy_troubleshooter-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-policy_troubleshooter-v1/google-cloud-policy_troubleshooter-v1.gemspec b/google-cloud-policy_troubleshooter-v1/google-cloud-policy_troubleshooter-v1.gemspec index 509808dbf0ca..eb0a9718533d 100644 --- a/google-cloud-policy_troubleshooter-v1/google-cloud-policy_troubleshooter-v1.gemspec +++ b/google-cloud-policy_troubleshooter-v1/google-cloud-policy_troubleshooter-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-policy_troubleshooter-v1/lib/google/cloud/policy_troubleshooter/v1/version.rb b/google-cloud-policy_troubleshooter-v1/lib/google/cloud/policy_troubleshooter/v1/version.rb index 44068cb46909..9b68481d65ff 100644 --- a/google-cloud-policy_troubleshooter-v1/lib/google/cloud/policy_troubleshooter/v1/version.rb +++ b/google-cloud-policy_troubleshooter-v1/lib/google/cloud/policy_troubleshooter/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module PolicyTroubleshooter module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-policy_troubleshooter-v1/snippets/snippet_metadata_google.cloud.policytroubleshooter.v1.json b/google-cloud-policy_troubleshooter-v1/snippets/snippet_metadata_google.cloud.policytroubleshooter.v1.json index 2ea64aa2f0cc..8010446b5d57 100644 --- a/google-cloud-policy_troubleshooter-v1/snippets/snippet_metadata_google.cloud.policytroubleshooter.v1.json +++ b/google-cloud-policy_troubleshooter-v1/snippets/snippet_metadata_google.cloud.policytroubleshooter.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-policy_troubleshooter-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-policy_troubleshooter/CHANGELOG.md b/google-cloud-policy_troubleshooter/CHANGELOG.md index c7302cda14d4..24e2d443c15d 100644 --- a/google-cloud-policy_troubleshooter/CHANGELOG.md +++ b/google-cloud-policy_troubleshooter/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.7.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.7.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-policy_troubleshooter/README.md b/google-cloud-policy_troubleshooter/README.md index 857125b761af..1b6365086d2e 100644 --- a/google-cloud-policy_troubleshooter/README.md +++ b/google-cloud-policy_troubleshooter/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/policytroubleshooter.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/policy_troubleshooter" + +client = Google::Cloud::PolicyTroubleshooter.iam_checker +request = ::Google::Cloud::PolicyTroubleshooter::V1::TroubleshootIamPolicyRequest.new # (request fields as keyword arguments...) +response = client.troubleshoot_iam_policy request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb index 2c8eb52f582d..0f2c4c4233bc 100644 --- a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb +++ b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module PolicyTroubleshooter - VERSION = "1.7.1" + VERSION = "1.7.2" end end end diff --git a/google-cloud-private_catalog-v1beta1/CHANGELOG.md b/google-cloud-private_catalog-v1beta1/CHANGELOG.md index bc1f6bbab4ac..31f4e4a4f1a4 100644 --- a/google-cloud-private_catalog-v1beta1/CHANGELOG.md +++ b/google-cloud-private_catalog-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.10.0 (2025-05-12) #### Features diff --git a/google-cloud-private_catalog-v1beta1/google-cloud-private_catalog-v1beta1.gemspec b/google-cloud-private_catalog-v1beta1/google-cloud-private_catalog-v1beta1.gemspec index 69b53662822b..90cb5cfa1e3f 100644 --- a/google-cloud-private_catalog-v1beta1/google-cloud-private_catalog-v1beta1.gemspec +++ b/google-cloud-private_catalog-v1beta1/google-cloud-private_catalog-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-private_catalog-v1beta1/lib/google/cloud/private_catalog/v1beta1/version.rb b/google-cloud-private_catalog-v1beta1/lib/google/cloud/private_catalog/v1beta1/version.rb index 3380f729a40d..5bf2743aa5ac 100644 --- a/google-cloud-private_catalog-v1beta1/lib/google/cloud/private_catalog/v1beta1/version.rb +++ b/google-cloud-private_catalog-v1beta1/lib/google/cloud/private_catalog/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module PrivateCatalog module V1beta1 - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-private_catalog-v1beta1/snippets/snippet_metadata_google.cloud.privatecatalog.v1beta1.json b/google-cloud-private_catalog-v1beta1/snippets/snippet_metadata_google.cloud.privatecatalog.v1beta1.json index 200f62f2a4b0..16f6972ce7c8 100644 --- a/google-cloud-private_catalog-v1beta1/snippets/snippet_metadata_google.cloud.privatecatalog.v1beta1.json +++ b/google-cloud-private_catalog-v1beta1/snippets/snippet_metadata_google.cloud.privatecatalog.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-private_catalog-v1beta1", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-private_catalog/CHANGELOG.md b/google-cloud-private_catalog/CHANGELOG.md index 24b0c81823f2..c19f1c329c0a 100644 --- a/google-cloud-private_catalog/CHANGELOG.md +++ b/google-cloud-private_catalog/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-private_catalog/README.md b/google-cloud-private_catalog/README.md index 6fb7e3f2d55d..3c60d74a9187 100644 --- a/google-cloud-private_catalog/README.md +++ b/google-cloud-private_catalog/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudprivatecatalog.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/private_catalog" + +client = Google::Cloud::PrivateCatalog.private_catalog +request = ::Google::Cloud::PrivateCatalog::V1beta1::SearchCatalogsRequest.new # (request fields as keyword arguments...) +response = client.search_catalogs request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb b/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb index c96543698070..b47264d730b6 100644 --- a/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb +++ b/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module PrivateCatalog - VERSION = "0.6.1" + VERSION = "0.6.2" end end end diff --git a/google-cloud-privileged_access_manager-v1/CHANGELOG.md b/google-cloud-privileged_access_manager-v1/CHANGELOG.md index 31c28f4b4854..74cfce2857b4 100644 --- a/google-cloud-privileged_access_manager-v1/CHANGELOG.md +++ b/google-cloud-privileged_access_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.2.0 (2025-08-15) #### Features diff --git a/google-cloud-privileged_access_manager-v1/google-cloud-privileged_access_manager-v1.gemspec b/google-cloud-privileged_access_manager-v1/google-cloud-privileged_access_manager-v1.gemspec index bfba79292d67..a5ec6da4e1fc 100644 --- a/google-cloud-privileged_access_manager-v1/google-cloud-privileged_access_manager-v1.gemspec +++ b/google-cloud-privileged_access_manager-v1/google-cloud-privileged_access_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-privileged_access_manager-v1/lib/google/cloud/privileged_access_manager/v1/version.rb b/google-cloud-privileged_access_manager-v1/lib/google/cloud/privileged_access_manager/v1/version.rb index f71585082d00..b3f3570edc25 100644 --- a/google-cloud-privileged_access_manager-v1/lib/google/cloud/privileged_access_manager/v1/version.rb +++ b/google-cloud-privileged_access_manager-v1/lib/google/cloud/privileged_access_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module PrivilegedAccessManager module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-privileged_access_manager-v1/snippets/snippet_metadata_google.cloud.privilegedaccessmanager.v1.json b/google-cloud-privileged_access_manager-v1/snippets/snippet_metadata_google.cloud.privilegedaccessmanager.v1.json index 6bfb77c12beb..ffe09d2cb579 100644 --- a/google-cloud-privileged_access_manager-v1/snippets/snippet_metadata_google.cloud.privilegedaccessmanager.v1.json +++ b/google-cloud-privileged_access_manager-v1/snippets/snippet_metadata_google.cloud.privilegedaccessmanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-privileged_access_manager-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-privileged_access_manager/CHANGELOG.md b/google-cloud-privileged_access_manager/CHANGELOG.md index cba47a1d8216..126c78f07149 100644 --- a/google-cloud-privileged_access_manager/CHANGELOG.md +++ b/google-cloud-privileged_access_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-privileged_access_manager/README.md b/google-cloud-privileged_access_manager/README.md index 2645dca8f15a..bec43cab7e2f 100644 --- a/google-cloud-privileged_access_manager/README.md +++ b/google-cloud-privileged_access_manager/README.md @@ -81,6 +81,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/privilegedaccessmanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/privileged_access_manager" + +client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager +request = ::Google::Cloud::PrivilegedAccessManager::V1::CheckOnboardingStatusRequest.new # (request fields as keyword arguments...) +response = client.check_onboarding_status request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb b/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb index 754b992b99fd..463c923ef65e 100644 --- a/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb +++ b/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module PrivilegedAccessManager - VERSION = "1.0.1" + VERSION = "1.0.2" end end end diff --git a/google-cloud-profiler-v2/CHANGELOG.md b/google-cloud-profiler-v2/CHANGELOG.md index 618af3e3249f..622de3017f1d 100644 --- a/google-cloud-profiler-v2/CHANGELOG.md +++ b/google-cloud-profiler-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-profiler-v2/google-cloud-profiler-v2.gemspec b/google-cloud-profiler-v2/google-cloud-profiler-v2.gemspec index 03a9dd3e0248..92f4f65bf935 100644 --- a/google-cloud-profiler-v2/google-cloud-profiler-v2.gemspec +++ b/google-cloud-profiler-v2/google-cloud-profiler-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-profiler-v2/lib/google/cloud/profiler/v2/version.rb b/google-cloud-profiler-v2/lib/google/cloud/profiler/v2/version.rb index 7fd38071427d..8cecc8894d4e 100644 --- a/google-cloud-profiler-v2/lib/google/cloud/profiler/v2/version.rb +++ b/google-cloud-profiler-v2/lib/google/cloud/profiler/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Profiler module V2 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-profiler-v2/snippets/snippet_metadata_google.devtools.cloudprofiler.v2.json b/google-cloud-profiler-v2/snippets/snippet_metadata_google.devtools.cloudprofiler.v2.json index 4d866ce3b7fa..a4cd095308d3 100644 --- a/google-cloud-profiler-v2/snippets/snippet_metadata_google.devtools.cloudprofiler.v2.json +++ b/google-cloud-profiler-v2/snippets/snippet_metadata_google.devtools.cloudprofiler.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-profiler-v2", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-profiler/CHANGELOG.md b/google-cloud-profiler/CHANGELOG.md index b15aef72d823..b37b36ca80c8 100644 --- a/google-cloud-profiler/CHANGELOG.md +++ b/google-cloud-profiler/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-profiler/README.md b/google-cloud-profiler/README.md index c5cc40099cb6..82318ee25c51 100644 --- a/google-cloud-profiler/README.md +++ b/google-cloud-profiler/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudprofiler.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/profiler" + +client = Google::Cloud::Profiler.profiler_service +request = ::Google::Cloud::Profiler::V2::CreateProfileRequest.new # (request fields as keyword arguments...) +response = client.create_profile request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-profiler/lib/google/cloud/profiler/version.rb b/google-cloud-profiler/lib/google/cloud/profiler/version.rb index 13adc03d795f..0fa73150d6f3 100644 --- a/google-cloud-profiler/lib/google/cloud/profiler/version.rb +++ b/google-cloud-profiler/lib/google/cloud/profiler/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Profiler - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-pubsub-v1/.owlbot-manifest.json b/google-cloud-pubsub-v1/.owlbot-manifest.json index e7cf854fb5f9..ccb8d24a07ba 100644 --- a/google-cloud-pubsub-v1/.owlbot-manifest.json +++ b/google-cloud-pubsub-v1/.owlbot-manifest.json @@ -91,7 +91,6 @@ ], "static": [ ".OwlBot.yaml", - ".owlbot.rb", "lib/google/cloud/pubsub/v1/_helpers.rb", "lib/google/cloud/pubsub/v1/iam_policy.rb", "lib/google/cloud/pubsub/v1/iam_policy/client.rb", diff --git a/google-cloud-pubsub-v1/CHANGELOG.md b/google-cloud-pubsub-v1/CHANGELOG.md index e1af1125154b..f7bdc11b756d 100644 --- a/google-cloud-pubsub-v1/CHANGELOG.md +++ b/google-cloud-pubsub-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.11.1 (2025-07-15) #### Documentation diff --git a/google-cloud-pubsub-v1/google-cloud-pubsub-v1.gemspec b/google-cloud-pubsub-v1/google-cloud-pubsub-v1.gemspec index 281eead9ea17..bbc50898191b 100644 --- a/google-cloud-pubsub-v1/google-cloud-pubsub-v1.gemspec +++ b/google-cloud-pubsub-v1/google-cloud-pubsub-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" end diff --git a/google-cloud-pubsub-v1/lib/google/cloud/pubsub/v1/version.rb b/google-cloud-pubsub-v1/lib/google/cloud/pubsub/v1/version.rb index 3ed4de0d79c5..e5831338c0f0 100644 --- a/google-cloud-pubsub-v1/lib/google/cloud/pubsub/v1/version.rb +++ b/google-cloud-pubsub-v1/lib/google/cloud/pubsub/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module PubSub module V1 - VERSION = "1.11.1" + VERSION = "1.12.0" end end end diff --git a/google-cloud-pubsub-v1/snippets/snippet_metadata_google.pubsub.v1.json b/google-cloud-pubsub-v1/snippets/snippet_metadata_google.pubsub.v1.json index 1254ff671d94..3d42a4b8d151 100644 --- a/google-cloud-pubsub-v1/snippets/snippet_metadata_google.pubsub.v1.json +++ b/google-cloud-pubsub-v1/snippets/snippet_metadata_google.pubsub.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-pubsub-v1", - "version": "1.11.1", + "version": "1.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-pubsub/test/google/cloud/pubsub/convert/number_to_duration_test.rb b/google-cloud-pubsub/test/google/cloud/pubsub/convert/number_to_duration_test.rb index 46816a0683f2..1220b0c1fc39 100644 --- a/google-cloud-pubsub/test/google/cloud/pubsub/convert/number_to_duration_test.rb +++ b/google-cloud-pubsub/test/google/cloud/pubsub/convert/number_to_duration_test.rb @@ -65,8 +65,7 @@ number = BigDecimal "-643383279502884.1971693993751058209749445923078164062" duration = Google::Cloud::PubSub::Convert.number_to_duration number _(duration).must_be_kind_of Google::Protobuf::Duration - # This should really be -643383279502884, but BigDecimal is doing something here... - _(duration.seconds).must_equal -643383279502885 + _(duration.seconds).must_equal -643383279502884 _(duration.nanos).must_equal -197169399 end diff --git a/google-cloud-rapid_migration_assessment-v1/CHANGELOG.md b/google-cloud-rapid_migration_assessment-v1/CHANGELOG.md index 570f78a0a80d..c2cca56c6940 100644 --- a/google-cloud-rapid_migration_assessment-v1/CHANGELOG.md +++ b/google-cloud-rapid_migration_assessment-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-rapid_migration_assessment-v1/google-cloud-rapid_migration_assessment-v1.gemspec b/google-cloud-rapid_migration_assessment-v1/google-cloud-rapid_migration_assessment-v1.gemspec index 9fa33b4946ca..f463574e867d 100644 --- a/google-cloud-rapid_migration_assessment-v1/google-cloud-rapid_migration_assessment-v1.gemspec +++ b/google-cloud-rapid_migration_assessment-v1/google-cloud-rapid_migration_assessment-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-rapid_migration_assessment-v1/lib/google/cloud/rapid_migration_assessment/v1/version.rb b/google-cloud-rapid_migration_assessment-v1/lib/google/cloud/rapid_migration_assessment/v1/version.rb index 7c2e14686127..617f44c3f05c 100644 --- a/google-cloud-rapid_migration_assessment-v1/lib/google/cloud/rapid_migration_assessment/v1/version.rb +++ b/google-cloud-rapid_migration_assessment-v1/lib/google/cloud/rapid_migration_assessment/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module RapidMigrationAssessment module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-rapid_migration_assessment-v1/snippets/snippet_metadata_google.cloud.rapidmigrationassessment.v1.json b/google-cloud-rapid_migration_assessment-v1/snippets/snippet_metadata_google.cloud.rapidmigrationassessment.v1.json index 2d1b2ec567df..445c00401651 100644 --- a/google-cloud-rapid_migration_assessment-v1/snippets/snippet_metadata_google.cloud.rapidmigrationassessment.v1.json +++ b/google-cloud-rapid_migration_assessment-v1/snippets/snippet_metadata_google.cloud.rapidmigrationassessment.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-rapid_migration_assessment-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-rapid_migration_assessment/CHANGELOG.md b/google-cloud-rapid_migration_assessment/CHANGELOG.md index 098da8db7eab..ad9376302b6a 100644 --- a/google-cloud-rapid_migration_assessment/CHANGELOG.md +++ b/google-cloud-rapid_migration_assessment/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-rapid_migration_assessment/README.md b/google-cloud-rapid_migration_assessment/README.md index 36669004898e..6cfd314394b3 100644 --- a/google-cloud-rapid_migration_assessment/README.md +++ b/google-cloud-rapid_migration_assessment/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/rapidmigrationassessment.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/rapid_migration_assessment" + +client = Google::Cloud::RapidMigrationAssessment.rapid_migration_assessment +request = ::Google::Cloud::RapidMigrationAssessment::V1::CreateCollectorRequest.new # (request fields as keyword arguments...) +response = client.create_collector request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-rapid_migration_assessment/lib/google/cloud/rapid_migration_assessment/version.rb b/google-cloud-rapid_migration_assessment/lib/google/cloud/rapid_migration_assessment/version.rb index 30ae944907d4..ee7aaff7304e 100644 --- a/google-cloud-rapid_migration_assessment/lib/google/cloud/rapid_migration_assessment/version.rb +++ b/google-cloud-rapid_migration_assessment/lib/google/cloud/rapid_migration_assessment/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module RapidMigrationAssessment - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-recaptcha_enterprise-v1/CHANGELOG.md b/google-cloud-recaptcha_enterprise-v1/CHANGELOG.md index 821bb2e4f131..03693d8f94c0 100644 --- a/google-cloud-recaptcha_enterprise-v1/CHANGELOG.md +++ b/google-cloud-recaptcha_enterprise-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.9.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.8.0 (2025-05-12) #### Features diff --git a/google-cloud-recaptcha_enterprise-v1/google-cloud-recaptcha_enterprise-v1.gemspec b/google-cloud-recaptcha_enterprise-v1/google-cloud-recaptcha_enterprise-v1.gemspec index 56a08755d093..236873440b9e 100644 --- a/google-cloud-recaptcha_enterprise-v1/google-cloud-recaptcha_enterprise-v1.gemspec +++ b/google-cloud-recaptcha_enterprise-v1/google-cloud-recaptcha_enterprise-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-recaptcha_enterprise-v1/lib/google/cloud/recaptcha_enterprise/v1/version.rb b/google-cloud-recaptcha_enterprise-v1/lib/google/cloud/recaptcha_enterprise/v1/version.rb index a892f1515676..d1613601272f 100644 --- a/google-cloud-recaptcha_enterprise-v1/lib/google/cloud/recaptcha_enterprise/v1/version.rb +++ b/google-cloud-recaptcha_enterprise-v1/lib/google/cloud/recaptcha_enterprise/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module RecaptchaEnterprise module V1 - VERSION = "1.8.0" + VERSION = "1.9.0" end end end diff --git a/google-cloud-recaptcha_enterprise-v1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1.json b/google-cloud-recaptcha_enterprise-v1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1.json index eacd081bc4d6..37d997498ca7 100644 --- a/google-cloud-recaptcha_enterprise-v1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1.json +++ b/google-cloud-recaptcha_enterprise-v1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-recaptcha_enterprise-v1", - "version": "1.8.0", + "version": "1.9.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-recaptcha_enterprise-v1beta1/CHANGELOG.md b/google-cloud-recaptcha_enterprise-v1beta1/CHANGELOG.md index d96191e112db..bbedab22fa1c 100644 --- a/google-cloud-recaptcha_enterprise-v1beta1/CHANGELOG.md +++ b/google-cloud-recaptcha_enterprise-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.19.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.18.0 (2025-05-12) #### Features diff --git a/google-cloud-recaptcha_enterprise-v1beta1/google-cloud-recaptcha_enterprise-v1beta1.gemspec b/google-cloud-recaptcha_enterprise-v1beta1/google-cloud-recaptcha_enterprise-v1beta1.gemspec index 4023bbeecdb0..5b7e33e7c000 100644 --- a/google-cloud-recaptcha_enterprise-v1beta1/google-cloud-recaptcha_enterprise-v1beta1.gemspec +++ b/google-cloud-recaptcha_enterprise-v1beta1/google-cloud-recaptcha_enterprise-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-recaptcha_enterprise-v1beta1/lib/google/cloud/recaptcha_enterprise/v1beta1/version.rb b/google-cloud-recaptcha_enterprise-v1beta1/lib/google/cloud/recaptcha_enterprise/v1beta1/version.rb index 3a0ce784a480..9e14486812cd 100644 --- a/google-cloud-recaptcha_enterprise-v1beta1/lib/google/cloud/recaptcha_enterprise/v1beta1/version.rb +++ b/google-cloud-recaptcha_enterprise-v1beta1/lib/google/cloud/recaptcha_enterprise/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module RecaptchaEnterprise module V1beta1 - VERSION = "0.18.0" + VERSION = "0.19.0" end end end diff --git a/google-cloud-recaptcha_enterprise-v1beta1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1beta1.json b/google-cloud-recaptcha_enterprise-v1beta1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1beta1.json index 38eb3141f49f..b0dcfef11335 100644 --- a/google-cloud-recaptcha_enterprise-v1beta1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1beta1.json +++ b/google-cloud-recaptcha_enterprise-v1beta1/snippets/snippet_metadata_google.cloud.recaptchaenterprise.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-recaptcha_enterprise-v1beta1", - "version": "0.18.0", + "version": "0.19.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-recaptcha_enterprise/CHANGELOG.md b/google-cloud-recaptcha_enterprise/CHANGELOG.md index 06b53a9f952b..400e594b3c7f 100644 --- a/google-cloud-recaptcha_enterprise/CHANGELOG.md +++ b/google-cloud-recaptcha_enterprise/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-06-23) #### Documentation diff --git a/google-cloud-recaptcha_enterprise/README.md b/google-cloud-recaptcha_enterprise/README.md index 3d751b6d5867..2d7d2c76e33b 100644 --- a/google-cloud-recaptcha_enterprise/README.md +++ b/google-cloud-recaptcha_enterprise/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/recaptchaenterprise.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/recaptcha_enterprise" + +client = Google::Cloud::RecaptchaEnterprise.recaptcha_enterprise_service +request = ::Google::Cloud::RecaptchaEnterprise::V1::CreateAssessmentRequest.new # (request fields as keyword arguments...) +response = client.create_assessment request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-recaptcha_enterprise/lib/google/cloud/recaptcha_enterprise/version.rb b/google-cloud-recaptcha_enterprise/lib/google/cloud/recaptcha_enterprise/version.rb index 9a772f800250..f22551949490 100644 --- a/google-cloud-recaptcha_enterprise/lib/google/cloud/recaptcha_enterprise/version.rb +++ b/google-cloud-recaptcha_enterprise/lib/google/cloud/recaptcha_enterprise/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module RecaptchaEnterprise - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-recommendation_engine-v1beta1/CHANGELOG.md b/google-cloud-recommendation_engine-v1beta1/CHANGELOG.md index 33d85ce14538..28c7bd142112 100644 --- a/google-cloud-recommendation_engine-v1beta1/CHANGELOG.md +++ b/google-cloud-recommendation_engine-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-recommendation_engine-v1beta1/google-cloud-recommendation_engine-v1beta1.gemspec b/google-cloud-recommendation_engine-v1beta1/google-cloud-recommendation_engine-v1beta1.gemspec index 857baf0c3b7b..a68eb959300b 100644 --- a/google-cloud-recommendation_engine-v1beta1/google-cloud-recommendation_engine-v1beta1.gemspec +++ b/google-cloud-recommendation_engine-v1beta1/google-cloud-recommendation_engine-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-recommendation_engine-v1beta1/lib/google/cloud/recommendation_engine/v1beta1/version.rb b/google-cloud-recommendation_engine-v1beta1/lib/google/cloud/recommendation_engine/v1beta1/version.rb index 22b2472b2dc2..6168018645be 100644 --- a/google-cloud-recommendation_engine-v1beta1/lib/google/cloud/recommendation_engine/v1beta1/version.rb +++ b/google-cloud-recommendation_engine-v1beta1/lib/google/cloud/recommendation_engine/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module RecommendationEngine module V1beta1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-recommendation_engine-v1beta1/snippets/snippet_metadata_google.cloud.recommendationengine.v1beta1.json b/google-cloud-recommendation_engine-v1beta1/snippets/snippet_metadata_google.cloud.recommendationengine.v1beta1.json index 16affc5cba8c..4944fa1d4ec4 100644 --- a/google-cloud-recommendation_engine-v1beta1/snippets/snippet_metadata_google.cloud.recommendationengine.v1beta1.json +++ b/google-cloud-recommendation_engine-v1beta1/snippets/snippet_metadata_google.cloud.recommendationengine.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-recommendation_engine-v1beta1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-recommendation_engine/CHANGELOG.md b/google-cloud-recommendation_engine/CHANGELOG.md index fcd19294c892..a4f5a6b36b7e 100644 --- a/google-cloud-recommendation_engine/CHANGELOG.md +++ b/google-cloud-recommendation_engine/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.7.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.7.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-recommendation_engine/README.md b/google-cloud-recommendation_engine/README.md index 85d26d3a4990..e8663089ba0a 100644 --- a/google-cloud-recommendation_engine/README.md +++ b/google-cloud-recommendation_engine/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/recommendationengine.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/recommendation_engine" + +client = Google::Cloud::RecommendationEngine.catalog_service +request = ::Google::Cloud::RecommendationEngine::V1beta1::CreateCatalogItemRequest.new # (request fields as keyword arguments...) +response = client.create_catalog_item request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-recommendation_engine/lib/google/cloud/recommendation_engine/version.rb b/google-cloud-recommendation_engine/lib/google/cloud/recommendation_engine/version.rb index 19dde48ad686..54d6fbc56f3b 100644 --- a/google-cloud-recommendation_engine/lib/google/cloud/recommendation_engine/version.rb +++ b/google-cloud-recommendation_engine/lib/google/cloud/recommendation_engine/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module RecommendationEngine - VERSION = "0.7.1" + VERSION = "0.7.2" end end end diff --git a/google-cloud-recommender-v1/CHANGELOG.md b/google-cloud-recommender-v1/CHANGELOG.md index a0600bc057dc..3a6da28b60b3 100644 --- a/google-cloud-recommender-v1/CHANGELOG.md +++ b/google-cloud-recommender-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-recommender-v1/google-cloud-recommender-v1.gemspec b/google-cloud-recommender-v1/google-cloud-recommender-v1.gemspec index 324530c2551e..f6f8fbe70274 100644 --- a/google-cloud-recommender-v1/google-cloud-recommender-v1.gemspec +++ b/google-cloud-recommender-v1/google-cloud-recommender-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-recommender-v1/lib/google/cloud/recommender/v1/version.rb b/google-cloud-recommender-v1/lib/google/cloud/recommender/v1/version.rb index 07e51f1301dc..cad87fda41e6 100644 --- a/google-cloud-recommender-v1/lib/google/cloud/recommender/v1/version.rb +++ b/google-cloud-recommender-v1/lib/google/cloud/recommender/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Recommender module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-recommender-v1/snippets/snippet_metadata_google.cloud.recommender.v1.json b/google-cloud-recommender-v1/snippets/snippet_metadata_google.cloud.recommender.v1.json index 7c5a7dcf33f6..f9893220aee4 100644 --- a/google-cloud-recommender-v1/snippets/snippet_metadata_google.cloud.recommender.v1.json +++ b/google-cloud-recommender-v1/snippets/snippet_metadata_google.cloud.recommender.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-recommender-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-recommender/CHANGELOG.md b/google-cloud-recommender/CHANGELOG.md index dd2d60ab7cac..a4ecfb946560 100644 --- a/google-cloud-recommender/CHANGELOG.md +++ b/google-cloud-recommender/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.6.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-recommender/README.md b/google-cloud-recommender/README.md index dddac1d87345..38b53ad2f622 100644 --- a/google-cloud-recommender/README.md +++ b/google-cloud-recommender/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/recommender.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/recommender" + +client = Google::Cloud::Recommender.recommender_service +request = ::Google::Cloud::Recommender::V1::ListInsightsRequest.new # (request fields as keyword arguments...) +response = client.list_insights request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-recommender/lib/google/cloud/recommender/version.rb b/google-cloud-recommender/lib/google/cloud/recommender/version.rb index 3160930f4d8d..9df13c027582 100644 --- a/google-cloud-recommender/lib/google/cloud/recommender/version.rb +++ b/google-cloud-recommender/lib/google/cloud/recommender/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Recommender - VERSION = "1.6.1".freeze + VERSION = "1.6.2".freeze end end end diff --git a/google-cloud-redis-cluster-v1/CHANGELOG.md b/google-cloud-redis-cluster-v1/CHANGELOG.md index 0f481a6ce380..ba1fd76a11d2 100644 --- a/google-cloud-redis-cluster-v1/CHANGELOG.md +++ b/google-cloud-redis-cluster-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-redis-cluster-v1/google-cloud-redis-cluster-v1.gemspec b/google-cloud-redis-cluster-v1/google-cloud-redis-cluster-v1.gemspec index 3bd100c3f48e..412b717e7cb7 100644 --- a/google-cloud-redis-cluster-v1/google-cloud-redis-cluster-v1.gemspec +++ b/google-cloud-redis-cluster-v1/google-cloud-redis-cluster-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/version.rb b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/version.rb index e43a61626278..6b5f6fb7e002 100644 --- a/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/version.rb +++ b/google-cloud-redis-cluster-v1/lib/google/cloud/redis/cluster/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Redis module Cluster module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json b/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json index f72f2cdb1d2b..0290f4b57cc9 100644 --- a/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json +++ b/google-cloud-redis-cluster-v1/snippets/snippet_metadata_google.cloud.redis.cluster.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-redis-cluster-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-redis-cluster-v1beta1/CHANGELOG.md b/google-cloud-redis-cluster-v1beta1/CHANGELOG.md index 44535f5a5c1c..2349644043cf 100644 --- a/google-cloud-redis-cluster-v1beta1/CHANGELOG.md +++ b/google-cloud-redis-cluster-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.5.0 (2025-05-12) #### Features diff --git a/google-cloud-redis-cluster-v1beta1/google-cloud-redis-cluster-v1beta1.gemspec b/google-cloud-redis-cluster-v1beta1/google-cloud-redis-cluster-v1beta1.gemspec index ae12cfd75bd6..83483f0e982f 100644 --- a/google-cloud-redis-cluster-v1beta1/google-cloud-redis-cluster-v1beta1.gemspec +++ b/google-cloud-redis-cluster-v1beta1/google-cloud-redis-cluster-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-redis-cluster-v1beta1/lib/google/cloud/redis/cluster/v1beta1/version.rb b/google-cloud-redis-cluster-v1beta1/lib/google/cloud/redis/cluster/v1beta1/version.rb index 31b9b4b158af..cf975d872f96 100644 --- a/google-cloud-redis-cluster-v1beta1/lib/google/cloud/redis/cluster/v1beta1/version.rb +++ b/google-cloud-redis-cluster-v1beta1/lib/google/cloud/redis/cluster/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module Redis module Cluster module V1beta1 - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-cloud-redis-cluster-v1beta1/snippets/snippet_metadata_google.cloud.redis.cluster.v1beta1.json b/google-cloud-redis-cluster-v1beta1/snippets/snippet_metadata_google.cloud.redis.cluster.v1beta1.json index f572f01d74ab..bf6092bd2ac9 100644 --- a/google-cloud-redis-cluster-v1beta1/snippets/snippet_metadata_google.cloud.redis.cluster.v1beta1.json +++ b/google-cloud-redis-cluster-v1beta1/snippets/snippet_metadata_google.cloud.redis.cluster.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-redis-cluster-v1beta1", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-redis-cluster/CHANGELOG.md b/google-cloud-redis-cluster/CHANGELOG.md index 536ba95ca92c..71aa0f942236 100644 --- a/google-cloud-redis-cluster/CHANGELOG.md +++ b/google-cloud-redis-cluster/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-redis-cluster/README.md b/google-cloud-redis-cluster/README.md index 4473ffd22de0..5b7fde792872 100644 --- a/google-cloud-redis-cluster/README.md +++ b/google-cloud-redis-cluster/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/redis.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/redis/cluster" + +client = Google::Cloud::Redis::Cluster.cloud_redis_cluster +request = ::Google::Cloud::Redis::Cluster::V1::ListClustersRequest.new # (request fields as keyword arguments...) +response = client.list_clusters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-redis-cluster/lib/google/cloud/redis/cluster/version.rb b/google-cloud-redis-cluster/lib/google/cloud/redis/cluster/version.rb index 3ebb8f2b502e..381766a6be08 100644 --- a/google-cloud-redis-cluster/lib/google/cloud/redis/cluster/version.rb +++ b/google-cloud-redis-cluster/lib/google/cloud/redis/cluster/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Redis module Cluster - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-redis-v1/CHANGELOG.md b/google-cloud-redis-v1/CHANGELOG.md index da4a92d349e4..c4fb11610faa 100644 --- a/google-cloud-redis-v1/CHANGELOG.md +++ b/google-cloud-redis-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-redis-v1/google-cloud-redis-v1.gemspec b/google-cloud-redis-v1/google-cloud-redis-v1.gemspec index 3a8b5e91616c..3a409c712627 100644 --- a/google-cloud-redis-v1/google-cloud-redis-v1.gemspec +++ b/google-cloud-redis-v1/google-cloud-redis-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-redis-v1/lib/google/cloud/redis/v1/version.rb b/google-cloud-redis-v1/lib/google/cloud/redis/v1/version.rb index 5da532fcd020..cb76f7068fc1 100644 --- a/google-cloud-redis-v1/lib/google/cloud/redis/v1/version.rb +++ b/google-cloud-redis-v1/lib/google/cloud/redis/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Redis module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-redis-v1/snippets/snippet_metadata_google.cloud.redis.v1.json b/google-cloud-redis-v1/snippets/snippet_metadata_google.cloud.redis.v1.json index 56f3cfd9635e..e8b34088a8bf 100644 --- a/google-cloud-redis-v1/snippets/snippet_metadata_google.cloud.redis.v1.json +++ b/google-cloud-redis-v1/snippets/snippet_metadata_google.cloud.redis.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-redis-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-redis-v1beta1/CHANGELOG.md b/google-cloud-redis-v1beta1/CHANGELOG.md index 304b64df5d3e..32cce8b95aab 100644 --- a/google-cloud-redis-v1beta1/CHANGELOG.md +++ b/google-cloud-redis-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.18.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.17.0 (2025-05-12) #### Features diff --git a/google-cloud-redis-v1beta1/google-cloud-redis-v1beta1.gemspec b/google-cloud-redis-v1beta1/google-cloud-redis-v1beta1.gemspec index 2fbbfe33d925..cb00dcb15690 100644 --- a/google-cloud-redis-v1beta1/google-cloud-redis-v1beta1.gemspec +++ b/google-cloud-redis-v1beta1/google-cloud-redis-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-redis-v1beta1/lib/google/cloud/redis/v1beta1/version.rb b/google-cloud-redis-v1beta1/lib/google/cloud/redis/v1beta1/version.rb index 0e3ca7535cc4..e07fbc2bfb27 100644 --- a/google-cloud-redis-v1beta1/lib/google/cloud/redis/v1beta1/version.rb +++ b/google-cloud-redis-v1beta1/lib/google/cloud/redis/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Redis module V1beta1 - VERSION = "0.17.0" + VERSION = "0.18.0" end end end diff --git a/google-cloud-redis-v1beta1/snippets/snippet_metadata_google.cloud.redis.v1beta1.json b/google-cloud-redis-v1beta1/snippets/snippet_metadata_google.cloud.redis.v1beta1.json index 8911ce8b8cc8..89a079db7237 100644 --- a/google-cloud-redis-v1beta1/snippets/snippet_metadata_google.cloud.redis.v1beta1.json +++ b/google-cloud-redis-v1beta1/snippets/snippet_metadata_google.cloud.redis.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-redis-v1beta1", - "version": "0.17.0", + "version": "0.18.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-redis/CHANGELOG.md b/google-cloud-redis/CHANGELOG.md index 44c302d4cc50..6552e6ffcb2e 100644 --- a/google-cloud-redis/CHANGELOG.md +++ b/google-cloud-redis/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-redis/README.md b/google-cloud-redis/README.md index 4e94a987146e..1284375ee42d 100644 --- a/google-cloud-redis/README.md +++ b/google-cloud-redis/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/redis.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/redis" + +client = Google::Cloud::Redis.cloud_redis +request = ::Google::Cloud::Redis::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-redis/lib/google/cloud/redis/version.rb b/google-cloud-redis/lib/google/cloud/redis/version.rb index 36cce4ea1493..7bad417c733f 100644 --- a/google-cloud-redis/lib/google/cloud/redis/version.rb +++ b/google-cloud-redis/lib/google/cloud/redis/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Redis - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-resource_manager-v3/CHANGELOG.md b/google-cloud-resource_manager-v3/CHANGELOG.md index c5c7b4670240..f84da38ce975 100644 --- a/google-cloud-resource_manager-v3/CHANGELOG.md +++ b/google-cloud-resource_manager-v3/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-resource_manager-v3/google-cloud-resource_manager-v3.gemspec b/google-cloud-resource_manager-v3/google-cloud-resource_manager-v3.gemspec index 325b6fd47b52..b8d6ae64be9d 100644 --- a/google-cloud-resource_manager-v3/google-cloud-resource_manager-v3.gemspec +++ b/google-cloud-resource_manager-v3/google-cloud-resource_manager-v3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-resource_manager-v3/lib/google/cloud/resource_manager/v3/version.rb b/google-cloud-resource_manager-v3/lib/google/cloud/resource_manager/v3/version.rb index 1e3b1ffde0b7..982dffb0f3ed 100644 --- a/google-cloud-resource_manager-v3/lib/google/cloud/resource_manager/v3/version.rb +++ b/google-cloud-resource_manager-v3/lib/google/cloud/resource_manager/v3/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ResourceManager module V3 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-resource_manager-v3/snippets/snippet_metadata_google.cloud.resourcemanager.v3.json b/google-cloud-resource_manager-v3/snippets/snippet_metadata_google.cloud.resourcemanager.v3.json index 5bcfa4624c73..b54be2d6ae1d 100644 --- a/google-cloud-resource_manager-v3/snippets/snippet_metadata_google.cloud.resourcemanager.v3.json +++ b/google-cloud-resource_manager-v3/snippets/snippet_metadata_google.cloud.resourcemanager.v3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-resource_manager-v3", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-resource_manager/CHANGELOG.md b/google-cloud-resource_manager/CHANGELOG.md index c1afeb75d240..e578e52a8748 100644 --- a/google-cloud-resource_manager/CHANGELOG.md +++ b/google-cloud-resource_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-resource_manager/README.md b/google-cloud-resource_manager/README.md index 9e3348d3f03e..7fb718e3aac5 100644 --- a/google-cloud-resource_manager/README.md +++ b/google-cloud-resource_manager/README.md @@ -31,6 +31,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/resource_manager" + +client = Google::Cloud::ResourceManager.folders +request = ::Google::Cloud::ResourceManager::V3::GetFolderRequest.new # (request fields as keyword arguments...) +response = client.get_folder request +``` + ## Migrating from 0.x versions The 1.0 release of the google-cloud-resource_manager client is a significant upgrade diff --git a/google-cloud-resource_manager/lib/google/cloud/resource_manager/version.rb b/google-cloud-resource_manager/lib/google/cloud/resource_manager/version.rb index 777425a6c1b4..da3b8b437554 100644 --- a/google-cloud-resource_manager/lib/google/cloud/resource_manager/version.rb +++ b/google-cloud-resource_manager/lib/google/cloud/resource_manager/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ResourceManager - VERSION = "1.0.2" + VERSION = "1.0.3" end end end diff --git a/google-cloud-retail-v2/.owlbot-manifest.json b/google-cloud-retail-v2/.owlbot-manifest.json index dccf70097889..e574fe2198fd 100644 --- a/google-cloud-retail-v2/.owlbot-manifest.json +++ b/google-cloud-retail-v2/.owlbot-manifest.json @@ -57,6 +57,15 @@ "lib/google/cloud/retail/v2/control_service/rest/service_stub.rb", "lib/google/cloud/retail/v2/control_service_pb.rb", "lib/google/cloud/retail/v2/control_service_services_pb.rb", + "lib/google/cloud/retail/v2/conversational_search_service.rb", + "lib/google/cloud/retail/v2/conversational_search_service/client.rb", + "lib/google/cloud/retail/v2/conversational_search_service/credentials.rb", + "lib/google/cloud/retail/v2/conversational_search_service/paths.rb", + "lib/google/cloud/retail/v2/conversational_search_service/rest.rb", + "lib/google/cloud/retail/v2/conversational_search_service/rest/client.rb", + "lib/google/cloud/retail/v2/conversational_search_service/rest/service_stub.rb", + "lib/google/cloud/retail/v2/conversational_search_service_pb.rb", + "lib/google/cloud/retail/v2/conversational_search_service_services_pb.rb", "lib/google/cloud/retail/v2/export_config_pb.rb", "lib/google/cloud/retail/v2/generative_question_pb.rb", "lib/google/cloud/retail/v2/generative_question_service.rb", @@ -105,6 +114,7 @@ "lib/google/cloud/retail/v2/promotion_pb.rb", "lib/google/cloud/retail/v2/purge_config_pb.rb", "lib/google/cloud/retail/v2/rest.rb", + "lib/google/cloud/retail/v2/safety_pb.rb", "lib/google/cloud/retail/v2/search_service.rb", "lib/google/cloud/retail/v2/search_service/client.rb", "lib/google/cloud/retail/v2/search_service/credentials.rb", @@ -149,6 +159,7 @@ "proto_docs/google/cloud/retail/v2/completion_service.rb", "proto_docs/google/cloud/retail/v2/control.rb", "proto_docs/google/cloud/retail/v2/control_service.rb", + "proto_docs/google/cloud/retail/v2/conversational_search_service.rb", "proto_docs/google/cloud/retail/v2/export_config.rb", "proto_docs/google/cloud/retail/v2/generative_question.rb", "proto_docs/google/cloud/retail/v2/generative_question_service.rb", @@ -160,6 +171,7 @@ "proto_docs/google/cloud/retail/v2/product_service.rb", "proto_docs/google/cloud/retail/v2/promotion.rb", "proto_docs/google/cloud/retail/v2/purge_config.rb", + "proto_docs/google/cloud/retail/v2/safety.rb", "proto_docs/google/cloud/retail/v2/search_service.rb", "proto_docs/google/cloud/retail/v2/serving_config.rb", "proto_docs/google/cloud/retail/v2/serving_config_service.rb", @@ -195,6 +207,7 @@ "snippets/control_service/get_control.rb", "snippets/control_service/list_controls.rb", "snippets/control_service/update_control.rb", + "snippets/conversational_search_service/conversational_search.rb", "snippets/generative_question_service/batch_update_generative_question_configs.rb", "snippets/generative_question_service/get_generative_questions_feature_config.rb", "snippets/generative_question_service/list_generative_question_configs.rb", @@ -248,6 +261,9 @@ "test/google/cloud/retail/v2/control_service_paths_test.rb", "test/google/cloud/retail/v2/control_service_rest_test.rb", "test/google/cloud/retail/v2/control_service_test.rb", + "test/google/cloud/retail/v2/conversational_search_service_paths_test.rb", + "test/google/cloud/retail/v2/conversational_search_service_rest_test.rb", + "test/google/cloud/retail/v2/conversational_search_service_test.rb", "test/google/cloud/retail/v2/generative_question_service_paths_test.rb", "test/google/cloud/retail/v2/generative_question_service_rest_test.rb", "test/google/cloud/retail/v2/generative_question_service_test.rb", diff --git a/google-cloud-retail-v2/CHANGELOG.md b/google-cloud-retail-v2/CHANGELOG.md index 922ca1b5fecf..04f8be34b600 100644 --- a/google-cloud-retail-v2/CHANGELOG.md +++ b/google-cloud-retail-v2/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 2.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 2.4.0 (2025-09-09) + +#### Features + +* conversational search public SDK ([#30956](https://github.com/googleapis/google-cloud-ruby/issues/30956)) + ### 2.3.0 (2025-06-26) #### Features diff --git a/google-cloud-retail-v2/gapic_metadata.json b/google-cloud-retail-v2/gapic_metadata.json index b024ba7887f7..d2b8ccdd6732 100644 --- a/google-cloud-retail-v2/gapic_metadata.json +++ b/google-cloud-retail-v2/gapic_metadata.json @@ -136,6 +136,34 @@ } } }, + "SearchService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::Retail::V2::SearchService::Client", + "rpcs": { + "Search": { + "methods": [ + "search" + ] + } + } + } + } + }, + "ConversationalSearchService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Cloud::Retail::V2::ConversationalSearchService::Client", + "rpcs": { + "ConversationalSearch": { + "methods": [ + "conversational_search" + ] + } + } + } + } + }, "GenerativeQuestionService": { "clients": { "grpc": { @@ -302,20 +330,6 @@ } } }, - "SearchService": { - "clients": { - "grpc": { - "libraryClient": "::Google::Cloud::Retail::V2::SearchService::Client", - "rpcs": { - "Search": { - "methods": [ - "search" - ] - } - } - } - } - }, "ServingConfigService": { "clients": { "grpc": { diff --git a/google-cloud-retail-v2/google-cloud-retail-v2.gemspec b/google-cloud-retail-v2/google-cloud-retail-v2.gemspec index 41ab4701ae33..602bd7251faf 100644 --- a/google-cloud-retail-v2/google-cloud-retail-v2.gemspec +++ b/google-cloud-retail-v2/google-cloud-retail-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2.rb index 5af4782bcf4e..202c40fb87c8 100644 --- a/google-cloud-retail-v2/lib/google/cloud/retail/v2.rb +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2.rb @@ -20,11 +20,12 @@ require "google/cloud/retail/v2/catalog_service" require "google/cloud/retail/v2/completion_service" require "google/cloud/retail/v2/control_service" +require "google/cloud/retail/v2/search_service" +require "google/cloud/retail/v2/conversational_search_service" require "google/cloud/retail/v2/generative_question_service" require "google/cloud/retail/v2/model_service" require "google/cloud/retail/v2/prediction_service" require "google/cloud/retail/v2/product_service" -require "google/cloud/retail/v2/search_service" require "google/cloud/retail/v2/serving_config_service" require "google/cloud/retail/v2/user_event_service" require "google/cloud/retail/v2/version" diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service.rb new file mode 100644 index 000000000000..766eca885ef5 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/retail/v2/version" + +require "google/cloud/retail/v2/conversational_search_service/credentials" +require "google/cloud/retail/v2/conversational_search_service/paths" +require "google/cloud/retail/v2/conversational_search_service/client" +require "google/cloud/retail/v2/conversational_search_service/rest" + +module Google + module Cloud + module Retail + module V2 + ## + # Service for retail conversational search. + # + # This feature is only available for users who have Retail Conversational + # Search enabled. Enable Retail Conversational Search on Cloud Console + # before using this feature. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/cloud/retail/v2/conversational_search_service" + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/cloud/retail/v2/conversational_search_service/rest" + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new + # + module ConversationalSearchService + end + end + end + end +end + +helper_path = ::File.join __dir__, "conversational_search_service", "helpers.rb" +require "google/cloud/retail/v2/conversational_search_service/helpers" if ::File.file? helper_path diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/client.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/client.rb new file mode 100644 index 000000000000..5bb47b1f40b8 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/client.rb @@ -0,0 +1,557 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/retail/v2/conversational_search_service_pb" +require "google/cloud/location" + +module Google + module Cloud + module Retail + module V2 + module ConversationalSearchService + ## + # Client for the ConversationalSearchService service. + # + # Service for retail conversational search. + # + # This feature is only available for users who have Retail Conversational + # Search enabled. Enable Retail Conversational Search on Cloud Console + # before using this feature. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :conversational_search_service_stub + + ## + # Configure the ConversationalSearchService Client class. + # + # See {::Google::Cloud::Retail::V2::ConversationalSearchService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all ConversationalSearchService clients + # ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "Retail", "V2"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the ConversationalSearchService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::Retail::V2::ConversationalSearchService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @conversational_search_service_stub.universe_domain + end + + ## + # Create a new ConversationalSearchService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the ConversationalSearchService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/cloud/retail/v2/conversational_search_service_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @conversational_search_service_stub = ::Gapic::ServiceStub.new( + ::Google::Cloud::Retail::V2::ConversationalSearchService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @conversational_search_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @conversational_search_service_stub.endpoint + config.universe_domain = @conversational_search_service_stub.universe_domain + config.logger = @conversational_search_service_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @conversational_search_service_stub.logger + end + + # Service calls + + ## + # Performs a conversational search. + # + # This feature is only available for users who have Conversational Search + # enabled. + # + # @overload conversational_search(request, options = nil) + # Pass arguments to `conversational_search` via a request object, either of type + # {::Google::Cloud::Retail::V2::ConversationalSearchRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Retail::V2::ConversationalSearchRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload conversational_search(placement: nil, branch: nil, query: nil, page_categories: nil, conversation_id: nil, search_params: nil, visitor_id: nil, user_info: nil, conversational_filtering_spec: nil, user_labels: nil, safety_settings: nil) + # Pass arguments to `conversational_search` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param placement [::String] + # Required. The resource name of the search engine placement, such as + # `projects/*/locations/global/catalogs/default_catalog/placements/default_search` + # or + # `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` + # This field is used to identify the serving config name and the set + # of models that will be used to make the search. + # @param branch [::String] + # Required. The branch resource name, such as + # `projects/*/locations/global/catalogs/default_catalog/branches/0`. + # + # Use "default_branch" as the branch ID or leave this field empty, to search + # products under the default branch. + # @param query [::String] + # Optional. Raw search query to be searched for. + # + # If this field is empty, the request is considered a category browsing + # request. + # @param page_categories [::Array<::String>] + # Optional. The categories associated with a category page. Must be set for + # category navigation queries to achieve good search quality. The format + # should be the same as + # {::Google::Cloud::Retail::V2::UserEvent#page_categories UserEvent.page_categories}; + # + # To represent full path of category, use '>' sign to separate different + # hierarchies. If '>' is part of the category name, replace it with + # other character(s). + # + # Category pages include special pages such as sales or promotions. For + # instance, a special sale page may have the category hierarchy: + # "pageCategories" : ["Sales > 2017 Black Friday Deals"]. + # @param conversation_id [::String] + # Optional. This field specifies the conversation id, which maintains the + # state of the conversation between client side and server side. Use the + # value from the previous + # {::Google::Cloud::Retail::V2::ConversationalSearchResponse#conversation_id ConversationalSearchResponse.conversation_id}. + # For the initial request, this should be empty. + # @param search_params [::Google::Cloud::Retail::V2::ConversationalSearchRequest::SearchParams, ::Hash] + # Optional. Search parameters. + # @param visitor_id [::String] + # Required. A unique identifier for tracking visitors. For example, this + # could be implemented with an HTTP cookie, which should be able to uniquely + # identify a visitor on a single device. This unique identifier should not + # change if the visitor logs in or out of the website. + # + # This should be the same identifier as + # {::Google::Cloud::Retail::V2::UserEvent#visitor_id UserEvent.visitor_id}. + # + # The field must be a UTF-8 encoded string with a length limit of 128 + # characters. Otherwise, an INVALID_ARGUMENT error is returned. + # @param user_info [::Google::Cloud::Retail::V2::UserInfo, ::Hash] + # Optional. User information. + # @param conversational_filtering_spec [::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec, ::Hash] + # Optional. This field specifies all conversational filtering related + # parameters. + # @param user_labels [::Hash{::String => ::String}] + # Optional. The user labels applied to a resource must meet the following + # requirements: + # + # * Each resource can have multiple labels, up to a maximum of 64. + # * Each label must be a key-value pair. + # * Keys have a minimum length of 1 character and a maximum length of 63 + # characters and cannot be empty. Values can be empty and have a maximum + # length of 63 characters. + # * Keys and values can contain only lowercase letters, numeric characters, + # underscores, and dashes. All characters must use UTF-8 encoding, and + # international characters are allowed. + # * The key portion of a label must be unique. However, you can use the same + # key with multiple resources. + # * Keys must start with a lowercase letter or international character. + # + # See [Google Cloud + # Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + # for more details. + # @param safety_settings [::Array<::Google::Cloud::Retail::V2::SafetySetting, ::Hash>] + # Optional. The safety settings to be applied to the generated content. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Enumerable<::Google::Cloud::Retail::V2::ConversationalSearchResponse>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Enumerable<::Google::Cloud::Retail::V2::ConversationalSearchResponse>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/retail/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Retail::V2::ConversationalSearchService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Retail::V2::ConversationalSearchRequest.new + # + # # Call the conversational_search method to start streaming. + # output = client.conversational_search request + # + # # The returned object is a streamed enumerable yielding elements of type + # # ::Google::Cloud::Retail::V2::ConversationalSearchResponse + # output.each do |current_response| + # p current_response + # end + # + def conversational_search request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::ConversationalSearchRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.conversational_search.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Retail::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.placement + header_params["placement"] = request.placement + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.conversational_search.timeout, + metadata: metadata, + retry_policy: @config.rpcs.conversational_search.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @conversational_search_service_stub.call_rpc :conversational_search, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the ConversationalSearchService API. + # + # This class represents the configuration for ConversationalSearchService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::Retail::V2::ConversationalSearchService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # conversational_search to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.conversational_search.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.conversational_search.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "retail.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the ConversationalSearchService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `conversational_search` + # @return [::Gapic::Config::Method] + # + attr_reader :conversational_search + + # @private + def initialize parent_rpcs = nil + conversational_search_config = parent_rpcs.conversational_search if parent_rpcs.respond_to? :conversational_search + @conversational_search = ::Gapic::Config::Method.new conversational_search_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/credentials.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/credentials.rb new file mode 100644 index 000000000000..9c5d70081c2f --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/credentials.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Cloud + module Retail + module V2 + module ConversationalSearchService + # Credentials for the ConversationalSearchService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + self.env_vars = [ + "RETAIL_CREDENTIALS", + "RETAIL_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "RETAIL_CREDENTIALS_JSON", + "RETAIL_KEYFILE_JSON", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/paths.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/paths.rb new file mode 100644 index 000000000000..c2b679367ecc --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/paths.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module Retail + module V2 + module ConversationalSearchService + # Path helper methods for the ConversationalSearchService API. + module Paths + ## + # Create a fully-qualified Branch resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/catalogs/{catalog}/branches/{branch}` + # + # @param project [String] + # @param location [String] + # @param catalog [String] + # @param branch [String] + # + # @return [::String] + def branch_path project:, location:, catalog:, branch: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "catalog cannot contain /" if catalog.to_s.include? "/" + + "projects/#{project}/locations/#{location}/catalogs/#{catalog}/branches/#{branch}" + end + + extend self + end + end + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest.rb new file mode 100644 index 000000000000..c33e72994d45 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/retail/v2/version" + +require "google/cloud/retail/v2/conversational_search_service/credentials" +require "google/cloud/retail/v2/conversational_search_service/paths" +require "google/cloud/retail/v2/conversational_search_service/rest/client" + +module Google + module Cloud + module Retail + module V2 + ## + # Service for retail conversational search. + # + # This feature is only available for users who have Retail Conversational + # Search enabled. Enable Retail Conversational Search on Cloud Console + # before using this feature. + # + # To load this service and instantiate a REST client: + # + # require "google/cloud/retail/v2/conversational_search_service/rest" + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new + # + module ConversationalSearchService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/cloud/retail/v2/conversational_search_service/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest/client.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest/client.rb new file mode 100644 index 000000000000..ddf5f708a65e --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest/client.rb @@ -0,0 +1,526 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/cloud/retail/v2/conversational_search_service_pb" +require "google/cloud/retail/v2/conversational_search_service/rest/service_stub" +require "google/cloud/location/rest" + +module Google + module Cloud + module Retail + module V2 + module ConversationalSearchService + module Rest + ## + # REST client for the ConversationalSearchService service. + # + # Service for retail conversational search. + # + # This feature is only available for users who have Retail Conversational + # Search enabled. Enable Retail Conversational Search on Cloud Console + # before using this feature. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "retail.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :conversational_search_service_stub + + ## + # Configure the ConversationalSearchService Client class. + # + # See {::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all ConversationalSearchService clients + # ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Cloud", "Retail", "V2"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the ConversationalSearchService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @conversational_search_service_stub.universe_domain + end + + ## + # Create a new ConversationalSearchService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the ConversationalSearchService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @conversational_search_service_stub = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @conversational_search_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @conversational_search_service_stub.endpoint + config.universe_domain = @conversational_search_service_stub.universe_domain + config.logger = @conversational_search_service_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @conversational_search_service_stub.logger + end + + # Service calls + + ## + # Performs a conversational search. + # + # This feature is only available for users who have Conversational Search + # enabled. + # + # @overload conversational_search(request, options = nil) + # Pass arguments to `conversational_search` via a request object, either of type + # {::Google::Cloud::Retail::V2::ConversationalSearchRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Retail::V2::ConversationalSearchRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload conversational_search(placement: nil, branch: nil, query: nil, page_categories: nil, conversation_id: nil, search_params: nil, visitor_id: nil, user_info: nil, conversational_filtering_spec: nil, user_labels: nil, safety_settings: nil) + # Pass arguments to `conversational_search` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param placement [::String] + # Required. The resource name of the search engine placement, such as + # `projects/*/locations/global/catalogs/default_catalog/placements/default_search` + # or + # `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` + # This field is used to identify the serving config name and the set + # of models that will be used to make the search. + # @param branch [::String] + # Required. The branch resource name, such as + # `projects/*/locations/global/catalogs/default_catalog/branches/0`. + # + # Use "default_branch" as the branch ID or leave this field empty, to search + # products under the default branch. + # @param query [::String] + # Optional. Raw search query to be searched for. + # + # If this field is empty, the request is considered a category browsing + # request. + # @param page_categories [::Array<::String>] + # Optional. The categories associated with a category page. Must be set for + # category navigation queries to achieve good search quality. The format + # should be the same as + # {::Google::Cloud::Retail::V2::UserEvent#page_categories UserEvent.page_categories}; + # + # To represent full path of category, use '>' sign to separate different + # hierarchies. If '>' is part of the category name, replace it with + # other character(s). + # + # Category pages include special pages such as sales or promotions. For + # instance, a special sale page may have the category hierarchy: + # "pageCategories" : ["Sales > 2017 Black Friday Deals"]. + # @param conversation_id [::String] + # Optional. This field specifies the conversation id, which maintains the + # state of the conversation between client side and server side. Use the + # value from the previous + # {::Google::Cloud::Retail::V2::ConversationalSearchResponse#conversation_id ConversationalSearchResponse.conversation_id}. + # For the initial request, this should be empty. + # @param search_params [::Google::Cloud::Retail::V2::ConversationalSearchRequest::SearchParams, ::Hash] + # Optional. Search parameters. + # @param visitor_id [::String] + # Required. A unique identifier for tracking visitors. For example, this + # could be implemented with an HTTP cookie, which should be able to uniquely + # identify a visitor on a single device. This unique identifier should not + # change if the visitor logs in or out of the website. + # + # This should be the same identifier as + # {::Google::Cloud::Retail::V2::UserEvent#visitor_id UserEvent.visitor_id}. + # + # The field must be a UTF-8 encoded string with a length limit of 128 + # characters. Otherwise, an INVALID_ARGUMENT error is returned. + # @param user_info [::Google::Cloud::Retail::V2::UserInfo, ::Hash] + # Optional. User information. + # @param conversational_filtering_spec [::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec, ::Hash] + # Optional. This field specifies all conversational filtering related + # parameters. + # @param user_labels [::Hash{::String => ::String}] + # Optional. The user labels applied to a resource must meet the following + # requirements: + # + # * Each resource can have multiple labels, up to a maximum of 64. + # * Each label must be a key-value pair. + # * Keys have a minimum length of 1 character and a maximum length of 63 + # characters and cannot be empty. Values can be empty and have a maximum + # length of 63 characters. + # * Keys and values can contain only lowercase letters, numeric characters, + # underscores, and dashes. All characters must use UTF-8 encoding, and + # international characters are allowed. + # * The key portion of a label must be unique. However, you can use the same + # key with multiple resources. + # * Keys must start with a lowercase letter or international character. + # + # See [Google Cloud + # Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + # for more details. + # @param safety_settings [::Array<::Google::Cloud::Retail::V2::SafetySetting, ::Hash>] + # Optional. The safety settings to be applied to the generated content. + # @return [::Enumerable<::Google::Cloud::Retail::V2::ConversationalSearchResponse>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/retail/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Retail::V2::ConversationalSearchRequest.new + # + # # Call the conversational_search method to start streaming. + # output = client.conversational_search request + # + # # The returned object is a streamed enumerable yielding elements of type + # # ::Google::Cloud::Retail::V2::ConversationalSearchResponse + # output.each do |current_response| + # p current_response + # end + # + def conversational_search request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::ConversationalSearchRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.conversational_search.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Retail::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.conversational_search.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.conversational_search.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + ::Gapic::Rest::ServerStream.new( + ::Google::Cloud::Retail::V2::ConversationalSearchResponse, + ::Gapic::Rest::ThreadedEnumerator.new do |in_q, out_q| + @conversational_search_service_stub.conversational_search request, options do |chunk| + in_q.deq + out_q.enq chunk + end + end + ) + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the ConversationalSearchService REST API. + # + # This class represents the configuration for ConversationalSearchService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # conversational_search to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.conversational_search.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.conversational_search.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "retail.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the ConversationalSearchService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `conversational_search` + # @return [::Gapic::Config::Method] + # + attr_reader :conversational_search + + # @private + def initialize parent_rpcs = nil + conversational_search_config = parent_rpcs.conversational_search if parent_rpcs.respond_to? :conversational_search + @conversational_search = ::Gapic::Config::Method.new conversational_search_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest/service_stub.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest/service_stub.rb new file mode 100644 index 000000000000..242177503599 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service/rest/service_stub.rb @@ -0,0 +1,145 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/retail/v2/conversational_search_service_pb" + +module Google + module Cloud + module Retail + module V2 + module ConversationalSearchService + module Rest + ## + # REST service stub for the ConversationalSearchService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the conversational_search REST call + # + # @param request_pb [::Google::Cloud::Retail::V2::ConversationalSearchRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yieldparam chunk [::String] The chunk of data received during server streaming. + # + # @return [::Gapic::Rest::TransportOperation] + def conversational_search(request_pb, options = nil, &) + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_conversational_search_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "conversational_search", + options: options, + is_server_streaming: true, + & + ) + ::Gapic::Rest::TransportOperation.new response + end + + ## + # @private + # + # GRPC transcoding helper method for the conversational_search REST call + # + # @param request_pb [::Google::Cloud::Retail::V2::ConversationalSearchRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_conversational_search_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v2/{placement}:conversationalSearch", + body: "*", + matches: [ + ["placement", %r{^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+/?$}, false] + ] + ) + .with_bindings( + uri_method: :post, + uri_template: "/v2/{placement}:conversationalSearch", + body: "*", + matches: [ + ["placement", %r{^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service_pb.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service_pb.rb new file mode 100644 index 000000000000..41c473ddbc80 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service_pb.rb @@ -0,0 +1,65 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/retail/v2/conversational_search_service.proto + +require 'google/protobuf' + +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' +require 'google/cloud/retail/v2/common_pb' +require 'google/cloud/retail/v2/safety_pb' +require 'google/cloud/retail/v2/search_service_pb' + + +descriptor_data = "\n:google/cloud/retail/v2/conversational_search_service.proto\x12\x16google.cloud.retail.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/cloud/retail/v2/common.proto\x1a#google/cloud/retail/v2/safety.proto\x1a+google/cloud/retail/v2/search_service.proto\"\xef\x0b\n\x1b\x43onversationalSearchRequest\x12\x16\n\tplacement\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x34\n\x06\x62ranch\x18\x02 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1cretail.googleapis.com/Branch\x12\x12\n\x05query\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1c\n\x0fpage_categories\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12\x1c\n\x0f\x63onversation_id\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\\\n\rsearch_params\x18\x06 \x01(\x0b\x32@.google.cloud.retail.v2.ConversationalSearchRequest.SearchParamsB\x03\xe0\x41\x01\x12\x17\n\nvisitor_id\x18\t \x01(\tB\x03\xe0\x41\x02\x12\x38\n\tuser_info\x18\x07 \x01(\x0b\x32 .google.cloud.retail.v2.UserInfoB\x03\xe0\x41\x01\x12{\n\x1d\x63onversational_filtering_spec\x18\x08 \x01(\x0b\x32O.google.cloud.retail.v2.ConversationalSearchRequest.ConversationalFilteringSpecB\x03\xe0\x41\x01\x12]\n\x0buser_labels\x18\x0c \x03(\x0b\x32\x43.google.cloud.retail.v2.ConversationalSearchRequest.UserLabelsEntryB\x03\xe0\x41\x01\x12\x43\n\x0fsafety_settings\x18\x0e \x03(\x0b\x32%.google.cloud.retail.v2.SafetySettingB\x03\xe0\x41\x01\x1a\xa2\x01\n\x0cSearchParams\x12\x13\n\x06\x66ilter\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x1d\n\x10\x63\x61nonical_filter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x14\n\x07sort_by\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12H\n\nboost_spec\x18\x04 \x01(\x0b\x32/.google.cloud.retail.v2.SearchRequest.BoostSpecB\x03\xe0\x41\x01\x1a\x81\x02\n\nUserAnswer\x12\x15\n\x0btext_answer\x18\x01 \x01(\tH\x00\x12m\n\x0fselected_answer\x18\x02 \x01(\x0b\x32M.google.cloud.retail.v2.ConversationalSearchRequest.UserAnswer.SelectedAnswerB\x03\xe0\x41\x01H\x00\x1a\x65\n\x0eSelectedAnswer\x12S\n\x17product_attribute_value\x18\x01 \x01(\x0b\x32-.google.cloud.retail.v2.ProductAttributeValueB\x03\xe0\x41\x01\x42\x06\n\x04type\x1a\x83\x03\n\x1b\x43onversationalFilteringSpec\x12.\n\x1f\x65nable_conversational_filtering\x18\x01 \x01(\x08\x42\x05\x18\x01\xe0\x41\x01\x12X\n\x0buser_answer\x18\x02 \x01(\x0b\x32>.google.cloud.retail.v2.ConversationalSearchRequest.UserAnswerB\x03\xe0\x41\x01\x12\x80\x01\n\x1d\x63onversational_filtering_mode\x18\x04 \x01(\x0e\x32T.google.cloud.retail.v2.ConversationalSearchRequest.ConversationalFilteringSpec.ModeB\x03\xe0\x41\x01\"W\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x44ISABLED\x10\x01\x12\x0b\n\x07\x45NABLED\x10\x02\x12\x1e\n\x1a\x43ONVERSATIONAL_FILTER_ONLY\x10\x03\x1a\x31\n\x0fUserLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xcd\t\n\x1c\x43onversationalSearchResponse\x12\x18\n\x10user_query_types\x18\n \x03(\t\x12$\n\x1c\x63onversational_text_response\x18\x02 \x01(\t\x12`\n\x11\x66ollowup_question\x18\x03 \x01(\x0b\x32\x45.google.cloud.retail.v2.ConversationalSearchResponse.FollowupQuestion\x12\x17\n\x0f\x63onversation_id\x18\x04 \x01(\t\x12Z\n\x0erefined_search\x18\x06 \x03(\x0b\x32\x42.google.cloud.retail.v2.ConversationalSearchResponse.RefinedSearch\x12{\n\x1f\x63onversational_filtering_result\x18\x07 \x01(\x0b\x32R.google.cloud.retail.v2.ConversationalSearchResponse.ConversationalFilteringResult\x12N\n\x05state\x18\t \x01(\x0e\x32:.google.cloud.retail.v2.ConversationalSearchResponse.StateB\x03\xe0\x41\x03\x1a\x82\x02\n\x10\x46ollowupQuestion\x12\x19\n\x11\x66ollowup_question\x18\x01 \x01(\t\x12p\n\x11suggested_answers\x18\x02 \x03(\x0b\x32U.google.cloud.retail.v2.ConversationalSearchResponse.FollowupQuestion.SuggestedAnswer\x1a\x61\n\x0fSuggestedAnswer\x12N\n\x17product_attribute_value\x18\x01 \x01(\x0b\x32-.google.cloud.retail.v2.ProductAttributeValue\x1a\x1e\n\rRefinedSearch\x12\r\n\x05query\x18\x01 \x01(\t\x1a\xe5\x02\n\x1d\x43onversationalFilteringResult\x12`\n\x11\x66ollowup_question\x18\x01 \x01(\x0b\x32\x45.google.cloud.retail.v2.ConversationalSearchResponse.FollowupQuestion\x12~\n\x11\x61\x64\x64itional_filter\x18\x02 \x01(\x0b\x32\x63.google.cloud.retail.v2.ConversationalSearchResponse.ConversationalFilteringResult.AdditionalFilter\x1a\x62\n\x10\x41\x64\x64itionalFilter\x12N\n\x17product_attribute_value\x18\x01 \x01(\x0b\x32-.google.cloud.retail.v2.ProductAttributeValue\"<\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSTREAMING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x32\xae\x03\n\x1b\x43onversationalSearchService\x12\xc3\x02\n\x14\x43onversationalSearch\x12\x33.google.cloud.retail.v2.ConversationalSearchRequest\x1a\x34.google.cloud.retail.v2.ConversationalSearchResponse\"\xbd\x01\x82\xd3\xe4\x93\x02\xb6\x01\"S/v2/{placement=projects/*/locations/*/catalogs/*/placements/*}:conversationalSearch:\x01*Z\\\"W/v2/{placement=projects/*/locations/*/catalogs/*/servingConfigs/*}:conversationalSearch:\x01*0\x01\x1aI\xca\x41\x15retail.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xcb\x01\n\x1a\x63om.google.cloud.retail.v2B ConversationalSearchServiceProtoP\x01Z2cloud.google.com/go/retail/apiv2/retailpb;retailpb\xa2\x02\x06RETAIL\xaa\x02\x16Google.Cloud.Retail.V2\xca\x02\x16Google\\Cloud\\Retail\\V2\xea\x02\x19Google::Cloud::Retail::V2b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.cloud.retail.v2.UserInfo", "google/cloud/retail/v2/common.proto"], + ["google.cloud.retail.v2.SafetySetting", "google/cloud/retail/v2/safety.proto"], + ["google.cloud.retail.v2.SearchRequest.BoostSpec", "google/cloud/retail/v2/search_service.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module Retail + module V2 + ConversationalSearchRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchRequest").msgclass + ConversationalSearchRequest::SearchParams = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchRequest.SearchParams").msgclass + ConversationalSearchRequest::UserAnswer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchRequest.UserAnswer").msgclass + ConversationalSearchRequest::UserAnswer::SelectedAnswer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchRequest.UserAnswer.SelectedAnswer").msgclass + ConversationalSearchRequest::ConversationalFilteringSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchRequest.ConversationalFilteringSpec").msgclass + ConversationalSearchRequest::ConversationalFilteringSpec::Mode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchRequest.ConversationalFilteringSpec.Mode").enummodule + ConversationalSearchResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse").msgclass + ConversationalSearchResponse::FollowupQuestion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse.FollowupQuestion").msgclass + ConversationalSearchResponse::FollowupQuestion::SuggestedAnswer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse.FollowupQuestion.SuggestedAnswer").msgclass + ConversationalSearchResponse::RefinedSearch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse.RefinedSearch").msgclass + ConversationalSearchResponse::ConversationalFilteringResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse.ConversationalFilteringResult").msgclass + ConversationalSearchResponse::ConversationalFilteringResult::AdditionalFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse.ConversationalFilteringResult.AdditionalFilter").msgclass + ConversationalSearchResponse::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.ConversationalSearchResponse.State").enummodule + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service_services_pb.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service_services_pb.rb new file mode 100644 index 000000000000..f89ba3e94889 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/conversational_search_service_services_pb.rb @@ -0,0 +1,52 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/cloud/retail/v2/conversational_search_service.proto for package 'Google.Cloud.Retail.V2' +# Original file comments: +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/cloud/retail/v2/conversational_search_service_pb' + +module Google + module Cloud + module Retail + module V2 + module ConversationalSearchService + # Service for retail conversational search. + # + # This feature is only available for users who have Retail Conversational + # Search enabled. Enable Retail Conversational Search on Cloud Console + # before using this feature. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.cloud.retail.v2.ConversationalSearchService' + + # Performs a conversational search. + # + # This feature is only available for users who have Conversational Search + # enabled. + rpc :ConversationalSearch, ::Google::Cloud::Retail::V2::ConversationalSearchRequest, stream(::Google::Cloud::Retail::V2::ConversationalSearchResponse) + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/rest.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/rest.rb index 27766d0fbc42..2287197a5c7b 100644 --- a/google-cloud-retail-v2/lib/google/cloud/retail/v2/rest.rb +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/rest.rb @@ -20,11 +20,12 @@ require "google/cloud/retail/v2/catalog_service/rest" require "google/cloud/retail/v2/completion_service/rest" require "google/cloud/retail/v2/control_service/rest" +require "google/cloud/retail/v2/search_service/rest" +require "google/cloud/retail/v2/conversational_search_service/rest" require "google/cloud/retail/v2/generative_question_service/rest" require "google/cloud/retail/v2/model_service/rest" require "google/cloud/retail/v2/prediction_service/rest" require "google/cloud/retail/v2/product_service/rest" -require "google/cloud/retail/v2/search_service/rest" require "google/cloud/retail/v2/serving_config_service/rest" require "google/cloud/retail/v2/user_event_service/rest" require "google/cloud/retail/v2/version" diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/safety_pb.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/safety_pb.rb new file mode 100644 index 000000000000..f4a296baa3c5 --- /dev/null +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/safety_pb.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/cloud/retail/v2/safety.proto + +require 'google/protobuf' + +require 'google/api/field_behavior_pb' + + +descriptor_data = "\n#google/cloud/retail/v2/safety.proto\x12\x16google.cloud.retail.v2\x1a\x1fgoogle/api/field_behavior.proto\"\xd5\x03\n\rSafetySetting\x12\x36\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32$.google.cloud.retail.v2.HarmCategory\x12K\n\tthreshold\x18\x02 \x01(\x0e\x32\x38.google.cloud.retail.v2.SafetySetting.HarmBlockThreshold\x12J\n\x06method\x18\x03 \x01(\x0e\x32\x35.google.cloud.retail.v2.SafetySetting.HarmBlockMethodB\x03\xe0\x41\x01\"\x9d\x01\n\x12HarmBlockThreshold\x12$\n HARM_BLOCK_THRESHOLD_UNSPECIFIED\x10\x00\x12\x17\n\x13\x42LOCK_LOW_AND_ABOVE\x10\x01\x12\x1a\n\x16\x42LOCK_MEDIUM_AND_ABOVE\x10\x02\x12\x13\n\x0f\x42LOCK_ONLY_HIGH\x10\x03\x12\x0e\n\nBLOCK_NONE\x10\x04\x12\x07\n\x03OFF\x10\x05\"S\n\x0fHarmBlockMethod\x12!\n\x1dHARM_BLOCK_METHOD_UNSPECIFIED\x10\x00\x12\x0c\n\x08SEVERITY\x10\x01\x12\x0f\n\x0bPROBABILITY\x10\x02*\xd7\x01\n\x0cHarmCategory\x12\x1d\n\x19HARM_CATEGORY_UNSPECIFIED\x10\x00\x12\x1d\n\x19HARM_CATEGORY_HATE_SPEECH\x10\x01\x12#\n\x1fHARM_CATEGORY_DANGEROUS_CONTENT\x10\x02\x12\x1c\n\x18HARM_CATEGORY_HARASSMENT\x10\x03\x12#\n\x1fHARM_CATEGORY_SEXUALLY_EXPLICIT\x10\x04\x12!\n\x1dHARM_CATEGORY_CIVIC_INTEGRITY\x10\x05\x42\xb6\x01\n\x1a\x63om.google.cloud.retail.v2B\x0bSafetyProtoP\x01Z2cloud.google.com/go/retail/apiv2/retailpb;retailpb\xa2\x02\x06RETAIL\xaa\x02\x16Google.Cloud.Retail.V2\xca\x02\x16Google\\Cloud\\Retail\\V2\xea\x02\x19Google::Cloud::Retail::V2b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Cloud + module Retail + module V2 + SafetySetting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.SafetySetting").msgclass + SafetySetting::HarmBlockThreshold = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.SafetySetting.HarmBlockThreshold").enummodule + SafetySetting::HarmBlockMethod = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.SafetySetting.HarmBlockMethod").enummodule + HarmCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.retail.v2.HarmCategory").enummodule + end + end + end +end diff --git a/google-cloud-retail-v2/lib/google/cloud/retail/v2/version.rb b/google-cloud-retail-v2/lib/google/cloud/retail/v2/version.rb index a3cdda740088..3cb265eb4c7a 100644 --- a/google-cloud-retail-v2/lib/google/cloud/retail/v2/version.rb +++ b/google-cloud-retail-v2/lib/google/cloud/retail/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Retail module V2 - VERSION = "2.3.0" + VERSION = "2.5.0" end end end diff --git a/google-cloud-retail-v2/proto_docs/google/cloud/retail/v2/conversational_search_service.rb b/google-cloud-retail-v2/proto_docs/google/cloud/retail/v2/conversational_search_service.rb new file mode 100644 index 000000000000..2e88bb2fc427 --- /dev/null +++ b/google-cloud-retail-v2/proto_docs/google/cloud/retail/v2/conversational_search_service.rb @@ -0,0 +1,358 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module Retail + module V2 + # Request message for + # {::Google::Cloud::Retail::V2::ConversationalSearchService::Client#conversational_search ConversationalSearchService.ConversationalSearch} + # method. + # @!attribute [rw] placement + # @return [::String] + # Required. The resource name of the search engine placement, such as + # `projects/*/locations/global/catalogs/default_catalog/placements/default_search` + # or + # `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` + # This field is used to identify the serving config name and the set + # of models that will be used to make the search. + # @!attribute [rw] branch + # @return [::String] + # Required. The branch resource name, such as + # `projects/*/locations/global/catalogs/default_catalog/branches/0`. + # + # Use "default_branch" as the branch ID or leave this field empty, to search + # products under the default branch. + # @!attribute [rw] query + # @return [::String] + # Optional. Raw search query to be searched for. + # + # If this field is empty, the request is considered a category browsing + # request. + # @!attribute [rw] page_categories + # @return [::Array<::String>] + # Optional. The categories associated with a category page. Must be set for + # category navigation queries to achieve good search quality. The format + # should be the same as + # {::Google::Cloud::Retail::V2::UserEvent#page_categories UserEvent.page_categories}; + # + # To represent full path of category, use '>' sign to separate different + # hierarchies. If '>' is part of the category name, replace it with + # other character(s). + # + # Category pages include special pages such as sales or promotions. For + # instance, a special sale page may have the category hierarchy: + # "pageCategories" : ["Sales > 2017 Black Friday Deals"]. + # @!attribute [rw] conversation_id + # @return [::String] + # Optional. This field specifies the conversation id, which maintains the + # state of the conversation between client side and server side. Use the + # value from the previous + # {::Google::Cloud::Retail::V2::ConversationalSearchResponse#conversation_id ConversationalSearchResponse.conversation_id}. + # For the initial request, this should be empty. + # @!attribute [rw] search_params + # @return [::Google::Cloud::Retail::V2::ConversationalSearchRequest::SearchParams] + # Optional. Search parameters. + # @!attribute [rw] visitor_id + # @return [::String] + # Required. A unique identifier for tracking visitors. For example, this + # could be implemented with an HTTP cookie, which should be able to uniquely + # identify a visitor on a single device. This unique identifier should not + # change if the visitor logs in or out of the website. + # + # This should be the same identifier as + # {::Google::Cloud::Retail::V2::UserEvent#visitor_id UserEvent.visitor_id}. + # + # The field must be a UTF-8 encoded string with a length limit of 128 + # characters. Otherwise, an INVALID_ARGUMENT error is returned. + # @!attribute [rw] user_info + # @return [::Google::Cloud::Retail::V2::UserInfo] + # Optional. User information. + # @!attribute [rw] conversational_filtering_spec + # @return [::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec] + # Optional. This field specifies all conversational filtering related + # parameters. + # @!attribute [rw] user_labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. The user labels applied to a resource must meet the following + # requirements: + # + # * Each resource can have multiple labels, up to a maximum of 64. + # * Each label must be a key-value pair. + # * Keys have a minimum length of 1 character and a maximum length of 63 + # characters and cannot be empty. Values can be empty and have a maximum + # length of 63 characters. + # * Keys and values can contain only lowercase letters, numeric characters, + # underscores, and dashes. All characters must use UTF-8 encoding, and + # international characters are allowed. + # * The key portion of a label must be unique. However, you can use the same + # key with multiple resources. + # * Keys must start with a lowercase letter or international character. + # + # See [Google Cloud + # Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + # for more details. + # @!attribute [rw] safety_settings + # @return [::Array<::Google::Cloud::Retail::V2::SafetySetting>] + # Optional. The safety settings to be applied to the generated content. + class ConversationalSearchRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Search parameters. + # @!attribute [rw] filter + # @return [::String] + # Optional. The filter string to restrict search results. + # + # The syntax of the filter string is the same as + # {::Google::Cloud::Retail::V2::SearchRequest#filter SearchRequest.filter}. + # @!attribute [rw] canonical_filter + # @return [::String] + # Optional. The canonical filter string to restrict search results. + # + # The syntax of the canonical filter string is the same as + # {::Google::Cloud::Retail::V2::SearchRequest#canonical_filter SearchRequest.canonical_filter}. + # @!attribute [rw] sort_by + # @return [::String] + # Optional. The sort string to specify the sorting of search results. + # + # The syntax of the sort string is the same as + # [SearchRequest.sort][]. + # @!attribute [rw] boost_spec + # @return [::Google::Cloud::Retail::V2::SearchRequest::BoostSpec] + # Optional. The boost spec to specify the boosting of search results. + # + # The syntax of the boost spec is the same as + # {::Google::Cloud::Retail::V2::SearchRequest#boost_spec SearchRequest.boost_spec}. + class SearchParams + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # This field specifies the current user answer during the conversational + # filtering search. This can be either user selected from suggested answers + # or user input plain text. + # @!attribute [rw] text_answer + # @return [::String] + # This field specifies the incremental input text from the user during + # the conversational search. + # + # Note: The following fields are mutually exclusive: `text_answer`, `selected_answer`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] selected_answer + # @return [::Google::Cloud::Retail::V2::ConversationalSearchRequest::UserAnswer::SelectedAnswer] + # Optional. This field specifies the selected answer during the + # conversational search. This should be a subset of + # [ConversationalSearchResponse.followup_question.suggested_answers][]. + # + # Note: The following fields are mutually exclusive: `selected_answer`, `text_answer`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class UserAnswer + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # This field specifies the selected answers during the conversational + # search. + # @!attribute [rw] product_attribute_value + # @return [::Google::Cloud::Retail::V2::ProductAttributeValue] + # Optional. This field specifies the selected answer which is a attribute + # key-value. + class SelectedAnswer + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # This field specifies all conversational filtering related parameters + # addition to conversational retail search. + # @!attribute [rw] enable_conversational_filtering + # @deprecated This field is deprecated and may be removed in the next major version update. + # @return [::Boolean] + # Optional. This field is deprecated. Please use + # {::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec#conversational_filtering_mode ConversationalFilteringSpec.conversational_filtering_mode} + # instead. + # @!attribute [rw] user_answer + # @return [::Google::Cloud::Retail::V2::ConversationalSearchRequest::UserAnswer] + # Optional. This field specifies the current user answer during the + # conversational filtering search. It can be either user selected from + # suggested answers or user input plain text. + # @!attribute [rw] conversational_filtering_mode + # @return [::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec::Mode] + # Optional. Mode to control Conversational Filtering. + # Defaults to + # {::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec::Mode::DISABLED Mode.DISABLED} + # if it's unset. + class ConversationalFilteringSpec + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Enum to control Conversational Filtering mode. + # A single conversation session including multiple turns supports modes for + # Conversational Search OR Conversational Filtering without + # Conversational Search, but not both. + module Mode + # Default value. + MODE_UNSPECIFIED = 0 + + # Disables Conversational Filtering when using Conversational Search. + DISABLED = 1 + + # Enables Conversational Filtering when using Conversational Search. + ENABLED = 2 + + # Enables Conversational Filtering without Conversational Search. + CONVERSATIONAL_FILTER_ONLY = 3 + end + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class UserLabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Response message for + # {::Google::Cloud::Retail::V2::ConversationalSearchService::Client#conversational_search ConversationalSearchService.ConversationalSearch} + # method. + # @!attribute [rw] user_query_types + # @return [::Array<::String>] + # The types Retail classifies the search query as. + # + # Supported values are: + # + # - "ORDER_SUPPORT" + # - "SIMPLE_PRODUCT_SEARCH" + # - "INTENT_REFINEMENT" + # - "PRODUCT_DETAILS" + # - "PRODUCT_COMPARISON" + # - "DEALS_AND_COUPONS" + # - "STORE_RELEVANT" + # - "BLOCKLISTED" + # - "BEST_PRODUCT" + # - "RETAIL_SUPPORT" + # - "DISABLED" + # @!attribute [rw] conversational_text_response + # @return [::String] + # The conversational answer-based text response generated by the Server. + # @!attribute [rw] followup_question + # @return [::Google::Cloud::Retail::V2::ConversationalSearchResponse::FollowupQuestion] + # The conversational followup question generated for Intent refinement. + # @!attribute [rw] conversation_id + # @return [::String] + # Conversation UUID. This field will be stored in client side storage to + # maintain the conversation session with server and will be used for next + # search request's + # {::Google::Cloud::Retail::V2::ConversationalSearchRequest#conversation_id ConversationalSearchRequest.conversation_id} + # to restore conversation state in server. + # @!attribute [rw] refined_search + # @return [::Array<::Google::Cloud::Retail::V2::ConversationalSearchResponse::RefinedSearch>] + # The proposed refined search queries. They can be used to fetch the relevant + # search results. When using CONVERSATIONAL_FILTER_ONLY mode, the + # refined_query from search response will be populated here. + # @!attribute [rw] conversational_filtering_result + # @return [::Google::Cloud::Retail::V2::ConversationalSearchResponse::ConversationalFilteringResult] + # This field specifies all related information that is needed on client + # side for UI rendering of conversational filtering search. + # @!attribute [r] state + # @return [::Google::Cloud::Retail::V2::ConversationalSearchResponse::State] + # Output only. The state of the response generation. + class ConversationalSearchResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The conversational followup question generated for Intent refinement. + # @!attribute [rw] followup_question + # @return [::String] + # The conversational followup question generated for Intent refinement. + # @!attribute [rw] suggested_answers + # @return [::Array<::Google::Cloud::Retail::V2::ConversationalSearchResponse::FollowupQuestion::SuggestedAnswer>] + # The answer options provided to client for the follow-up question. + class FollowupQuestion + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Suggested answers to the follow-up question. + # If it's numerical attribute, only ProductAttributeInterval will be set. + # If it's textual attribute, only productAttributeValue will be set. + # @!attribute [rw] product_attribute_value + # @return [::Google::Cloud::Retail::V2::ProductAttributeValue] + # Product attribute value, including an attribute key and an + # attribute value. Other types can be added here in the future. + class SuggestedAnswer + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # The proposed refined search for intent-refinement/bundled shopping + # conversation. When using CONVERSATIONAL_FILTER_ONLY mode, the + # refined_query from search response will be populated here. + # @!attribute [rw] query + # @return [::String] + # The query to be used for search. + class RefinedSearch + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # This field specifies all related information that is needed on client + # side for UI rendering of conversational filtering search. + # @!attribute [rw] followup_question + # @return [::Google::Cloud::Retail::V2::ConversationalSearchResponse::FollowupQuestion] + # The conversational filtering question. + # @!attribute [rw] additional_filter + # @return [::Google::Cloud::Retail::V2::ConversationalSearchResponse::ConversationalFilteringResult::AdditionalFilter] + # This is the incremental additional filters implied from the current + # user answer. User should add the suggested addition filters to the + # previous [ConversationalSearchRequest.search_params.filter][] and + # {::Google::Cloud::Retail::V2::SearchRequest#filter SearchRequest.filter}, and + # use the merged filter in the follow up requests. + class ConversationalFilteringResult + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Additional filter that client side need to apply. + # @!attribute [rw] product_attribute_value + # @return [::Google::Cloud::Retail::V2::ProductAttributeValue] + # Product attribute value, including an attribute key and an + # attribute value. Other types can be added here in the future. + class AdditionalFilter + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # The state of the response generation. + module State + # Unknown. + STATE_UNSPECIFIED = 0 + + # Response generation is being streamed. + STREAMING = 1 + + # Response generation has succeeded. + SUCCEEDED = 2 + end + end + end + end + end +end diff --git a/google-cloud-retail-v2/proto_docs/google/cloud/retail/v2/safety.rb b/google-cloud-retail-v2/proto_docs/google/cloud/retail/v2/safety.rb new file mode 100644 index 000000000000..b03313e6c14e --- /dev/null +++ b/google-cloud-retail-v2/proto_docs/google/cloud/retail/v2/safety.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Cloud + module Retail + module V2 + # Safety settings. + # @!attribute [rw] category + # @return [::Google::Cloud::Retail::V2::HarmCategory] + # Harm category. + # @!attribute [rw] threshold + # @return [::Google::Cloud::Retail::V2::SafetySetting::HarmBlockThreshold] + # The harm block threshold. + # @!attribute [rw] method + # @return [::Google::Cloud::Retail::V2::SafetySetting::HarmBlockMethod] + # Optional. Specify if the threshold is used for probability or severity + # score. If not specified, the threshold is used for probability score. + class SafetySetting + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Probability based thresholds levels for blocking. + module HarmBlockThreshold + # Unspecified harm block threshold. + HARM_BLOCK_THRESHOLD_UNSPECIFIED = 0 + + # Block low threshold and above (i.e. block more). + BLOCK_LOW_AND_ABOVE = 1 + + # Block medium threshold and above. + BLOCK_MEDIUM_AND_ABOVE = 2 + + # Block only high threshold (i.e. block less). + BLOCK_ONLY_HIGH = 3 + + # Block none. + BLOCK_NONE = 4 + + # Turn off the safety filter. + OFF = 5 + end + + # Probability vs severity. + module HarmBlockMethod + # The harm block method is unspecified. + HARM_BLOCK_METHOD_UNSPECIFIED = 0 + + # The harm block method uses both probability and severity scores. + SEVERITY = 1 + + # The harm block method uses the probability score. + PROBABILITY = 2 + end + end + + # Harm categories that will block the content. + module HarmCategory + # The harm category is unspecified. + HARM_CATEGORY_UNSPECIFIED = 0 + + # The harm category is hate speech. + HARM_CATEGORY_HATE_SPEECH = 1 + + # The harm category is dangerous content. + HARM_CATEGORY_DANGEROUS_CONTENT = 2 + + # The harm category is harassment. + HARM_CATEGORY_HARASSMENT = 3 + + # The harm category is sexually explicit content. + HARM_CATEGORY_SEXUALLY_EXPLICIT = 4 + + # The harm category is civic integrity. + HARM_CATEGORY_CIVIC_INTEGRITY = 5 + end + end + end + end +end diff --git a/google-cloud-retail-v2/snippets/conversational_search_service/conversational_search.rb b/google-cloud-retail-v2/snippets/conversational_search_service/conversational_search.rb new file mode 100644 index 000000000000..a970c3d7663d --- /dev/null +++ b/google-cloud-retail-v2/snippets/conversational_search_service/conversational_search.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START retail_v2_generated_ConversationalSearchService_ConversationalSearch_sync] +require "google/cloud/retail/v2" + +## +# Snippet for the conversational_search call in the ConversationalSearchService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Retail::V2::ConversationalSearchService::Client#conversational_search. +# +def conversational_search + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Retail::V2::ConversationalSearchService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Retail::V2::ConversationalSearchRequest.new + + # Call the conversational_search method to start streaming. + output = client.conversational_search request + + # The returned object is a streamed enumerable yielding elements of type + # ::Google::Cloud::Retail::V2::ConversationalSearchResponse + output.each do |current_response| + p current_response + end +end +# [END retail_v2_generated_ConversationalSearchService_ConversationalSearch_sync] diff --git a/google-cloud-retail-v2/snippets/snippet_metadata_google.cloud.retail.v2.json b/google-cloud-retail-v2/snippets/snippet_metadata_google.cloud.retail.v2.json index 0ec1c882e3c2..b15aae3aa1ce 100644 --- a/google-cloud-retail-v2/snippets/snippet_metadata_google.cloud.retail.v2.json +++ b/google-cloud-retail-v2/snippets/snippet_metadata_google.cloud.retail.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-retail-v2", - "version": "2.3.0", + "version": "2.5.0", "language": "RUBY", "apis": [ { @@ -771,6 +771,86 @@ } ] }, + { + "region_tag": "retail_v2_generated_SearchService_Search_sync", + "title": "Snippet for the search call in the SearchService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Retail::V2::SearchService::Client#search.", + "file": "search_service/search.rb", + "language": "RUBY", + "client_method": { + "short_name": "search", + "full_name": "::Google::Cloud::Retail::V2::SearchService::Client#search", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Retail::V2::SearchRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Retail::V2::SearchResponse", + "client": { + "short_name": "SearchService::Client", + "full_name": "::Google::Cloud::Retail::V2::SearchService::Client" + }, + "method": { + "short_name": "Search", + "full_name": "google.cloud.retail.v2.SearchService.Search", + "service": { + "short_name": "SearchService", + "full_name": "google.cloud.retail.v2.SearchService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "retail_v2_generated_ConversationalSearchService_ConversationalSearch_sync", + "title": "Snippet for the conversational_search call in the ConversationalSearchService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Retail::V2::ConversationalSearchService::Client#conversational_search.", + "file": "conversational_search_service/conversational_search.rb", + "language": "RUBY", + "client_method": { + "short_name": "conversational_search", + "full_name": "::Google::Cloud::Retail::V2::ConversationalSearchService::Client#conversational_search", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Retail::V2::ConversationalSearchRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Retail::V2::ConversationalSearchResponse", + "client": { + "short_name": "ConversationalSearchService::Client", + "full_name": "::Google::Cloud::Retail::V2::ConversationalSearchService::Client" + }, + "method": { + "short_name": "ConversationalSearch", + "full_name": "google.cloud.retail.v2.ConversationalSearchService.ConversationalSearch", + "service": { + "short_name": "ConversationalSearchService", + "full_name": "google.cloud.retail.v2.ConversationalSearchService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 49, + "type": "FULL" + } + ] + }, { "region_tag": "retail_v2_generated_GenerativeQuestionService_UpdateGenerativeQuestionsFeatureConfig_sync", "title": "Snippet for the update_generative_questions_feature_config call in the GenerativeQuestionService service", @@ -1811,46 +1891,6 @@ } ] }, - { - "region_tag": "retail_v2_generated_SearchService_Search_sync", - "title": "Snippet for the search call in the SearchService service", - "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Retail::V2::SearchService::Client#search.", - "file": "search_service/search.rb", - "language": "RUBY", - "client_method": { - "short_name": "search", - "full_name": "::Google::Cloud::Retail::V2::SearchService::Client#search", - "async": false, - "parameters": [ - { - "type": "::Google::Cloud::Retail::V2::SearchRequest", - "name": "request" - } - ], - "result_type": "::Google::Cloud::Retail::V2::SearchResponse", - "client": { - "short_name": "SearchService::Client", - "full_name": "::Google::Cloud::Retail::V2::SearchService::Client" - }, - "method": { - "short_name": "Search", - "full_name": "google.cloud.retail.v2.SearchService.Search", - "service": { - "short_name": "SearchService", - "full_name": "google.cloud.retail.v2.SearchService" - } - } - }, - "canonical": true, - "origin": "API_DEFINITION", - "segments": [ - { - "start": 20, - "end": 50, - "type": "FULL" - } - ] - }, { "region_tag": "retail_v2_generated_ServingConfigService_CreateServingConfig_sync", "title": "Snippet for the create_serving_config call in the ServingConfigService service", diff --git a/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_paths_test.rb b/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_paths_test.rb new file mode 100644 index 000000000000..c0cbde3285de --- /dev/null +++ b/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_paths_test.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/retail/v2/conversational_search_service" + +class ::Google::Cloud::Retail::V2::ConversationalSearchService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_branch_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.branch_path project: "value0", location: "value1", catalog: "value2", branch: "value3" + assert_equal "projects/value0/locations/value1/catalogs/value2/branches/value3", path + end + end +end diff --git a/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_rest_test.rb b/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_rest_test.rb new file mode 100644 index 000000000000..62dc627d6154 --- /dev/null +++ b/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_rest_test.rb @@ -0,0 +1,163 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/cloud/retail/v2/conversational_search_service_pb" +require "google/cloud/retail/v2/conversational_search_service/rest" + + +class ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_conversational_search + # Create test objects. + client_result = ::Google::Cloud::Retail::V2::ConversationalSearchResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + placement = "hello world" + branch = "hello world" + query = "hello world" + page_categories = ["hello world"] + conversation_id = "hello world" + search_params = {} + visitor_id = "hello world" + user_info = {} + conversational_filtering_spec = {} + user_labels = {} + safety_settings = [{}] + + conversational_search_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, is_server_streaming:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::ServiceStub.stub :transcode_conversational_search_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, conversational_search_client_stub do + # Create client + client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.conversational_search({ placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings }) do |_result, response| + assert_equal http_response, response.underlying_op + end.first + + # Use named arguments + client.conversational_search placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings do |_result, response| + assert_equal http_response, response.underlying_op + end.first + + # Use protobuf object + client.conversational_search ::Google::Cloud::Retail::V2::ConversationalSearchRequest.new(placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings) do |_result, response| + assert_equal http_response, response.underlying_op + end.first + + # Use hash object with options + client.conversational_search({ placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end.first + + # Use protobuf object with options + client.conversational_search(::Google::Cloud::Retail::V2::ConversationalSearchRequest.new(placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end.first + + # Verify method calls + assert_equal 5, conversational_search_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_test.rb b/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_test.rb new file mode 100644 index 000000000000..0eb7280bfade --- /dev/null +++ b/google-cloud-retail-v2/test/google/cloud/retail/v2/conversational_search_service_test.rb @@ -0,0 +1,177 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/cloud/retail/v2/conversational_search_service_pb" +require "google/cloud/retail/v2/conversational_search_service" + +class ::Google::Cloud::Retail::V2::ConversationalSearchService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_conversational_search + # Create GRPC objects. + grpc_response = ::Google::Cloud::Retail::V2::ConversationalSearchResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a server streaming method. + placement = "hello world" + branch = "hello world" + query = "hello world" + page_categories = ["hello world"] + conversation_id = "hello world" + search_params = {} + visitor_id = "hello world" + user_info = {} + conversational_filtering_spec = {} + user_labels = {} + safety_settings = [{}] + + conversational_search_client_stub = ClientStub.new [grpc_response].to_enum, grpc_operation do |name, request, options:| + assert_equal :conversational_search, name + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchRequest, request + assert_equal "hello world", request["placement"] + assert_equal "hello world", request["branch"] + assert_equal "hello world", request["query"] + assert_equal ["hello world"], request["page_categories"] + assert_equal "hello world", request["conversation_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Retail::V2::ConversationalSearchRequest::SearchParams), request["search_params"] + assert_equal "hello world", request["visitor_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Retail::V2::UserInfo), request["user_info"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::Retail::V2::ConversationalSearchRequest::ConversationalFilteringSpec), request["conversational_filtering_spec"] + assert_equal({}, request["user_labels"].to_h) + assert_kind_of ::Google::Cloud::Retail::V2::SafetySetting, request["safety_settings"].first + refute_nil options + end + + Gapic::ServiceStub.stub :new, conversational_search_client_stub do + # Create client + client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.conversational_search({ placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings }) do |response, operation| + assert_kind_of Enumerable, response + response.to_a.each do |r| + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchResponse, r + end + assert_equal grpc_operation, operation + end + + # Use named arguments + client.conversational_search placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings do |response, operation| + assert_kind_of Enumerable, response + response.to_a.each do |r| + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchResponse, r + end + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.conversational_search ::Google::Cloud::Retail::V2::ConversationalSearchRequest.new(placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings) do |response, operation| + assert_kind_of Enumerable, response + response.to_a.each do |r| + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchResponse, r + end + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.conversational_search({ placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings }, grpc_options) do |response, operation| + assert_kind_of Enumerable, response + response.to_a.each do |r| + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchResponse, r + end + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.conversational_search(::Google::Cloud::Retail::V2::ConversationalSearchRequest.new(placement: placement, branch: branch, query: query, page_categories: page_categories, conversation_id: conversation_id, search_params: search_params, visitor_id: visitor_id, user_info: user_info, conversational_filtering_spec: conversational_filtering_spec, user_labels: user_labels, safety_settings: safety_settings), grpc_options) do |response, operation| + assert_kind_of Enumerable, response + response.to_a.each do |r| + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchResponse, r + end + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, conversational_search_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Cloud::Retail::V2::ConversationalSearchService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Cloud::Retail::V2::ConversationalSearchService::Client::Configuration, config + end +end diff --git a/google-cloud-retail/CHANGELOG.md b/google-cloud-retail/CHANGELOG.md index 301bf5569938..6cdaf3d32d38 100644 --- a/google-cloud-retail/CHANGELOG.md +++ b/google-cloud-retail/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 2.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + +### 2.1.0 (2025-09-09) + +#### Features + +* conversational search public SDK ([#30955](https://github.com/googleapis/google-cloud-ruby/issues/30955)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-retail/README.md b/google-cloud-retail/README.md index a3381906da74..ba0a543827bc 100644 --- a/google-cloud-retail/README.md +++ b/google-cloud-retail/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/retail.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/retail" + +client = Google::Cloud::Retail.analytics_service +request = ::Google::Cloud::Retail::V2::ExportAnalyticsMetricsRequest.new # (request fields as keyword arguments...) +response = client.export_analytics_metrics request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-retail/lib/google/cloud/retail.rb b/google-cloud-retail/lib/google/cloud/retail.rb index e55353dd5594..6fab6a706363 100644 --- a/google-cloud-retail/lib/google/cloud/retail.rb +++ b/google-cloud-retail/lib/google/cloud/retail.rb @@ -329,6 +329,153 @@ def self.control_service_available? version: :v2, transport: :grpc false end + ## + # Create a new client object for SearchService. + # + # By default, this returns an instance of + # [Google::Cloud::Retail::V2::SearchService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-retail-v2/latest/Google-Cloud-Retail-V2-SearchService-Client) + # for a gRPC client for version V2 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the SearchService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the SearchService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Retail.search_service_available?}. + # + # ## About SearchService + # + # Service for search. + # + # This feature is only available for users who have Retail Search enabled. + # Enable Retail Search on Cloud Console before using this feature. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v2`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.search_service version: :v2, transport: :grpc, &block + require "google/cloud/retail/#{version.to_s.downcase}" + + package_name = Google::Cloud::Retail + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Retail.const_get(package_name).const_get(:SearchService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the SearchService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Retail.search_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the SearchService service, + # or if the versioned client gem needs an update to support the SearchService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v2`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.search_service_available? version: :v2, transport: :grpc + require "google/cloud/retail/#{version.to_s.downcase}" + package_name = Google::Cloud::Retail + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Retail.const_get package_name + return false unless service_module.const_defined? :SearchService + service_module = service_module.const_get :SearchService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for ConversationalSearchService. + # + # By default, this returns an instance of + # [Google::Cloud::Retail::V2::ConversationalSearchService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-retail-v2/latest/Google-Cloud-Retail-V2-ConversationalSearchService-Client) + # for a gRPC client for version V2 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the ConversationalSearchService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the ConversationalSearchService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Retail.conversational_search_service_available?}. + # + # ## About ConversationalSearchService + # + # Service for retail conversational search. + # + # This feature is only available for users who have Retail Conversational + # Search enabled. Enable Retail Conversational Search on Cloud Console + # before using this feature. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v2`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.conversational_search_service version: :v2, transport: :grpc, &block + require "google/cloud/retail/#{version.to_s.downcase}" + + package_name = Google::Cloud::Retail + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Retail.const_get(package_name).const_get(:ConversationalSearchService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the ConversationalSearchService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Retail.conversational_search_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ConversationalSearchService service, + # or if the versioned client gem needs an update to support the ConversationalSearchService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v2`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.conversational_search_service_available? version: :v2, transport: :grpc + require "google/cloud/retail/#{version.to_s.downcase}" + package_name = Google::Cloud::Retail + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Retail.const_get package_name + return false unless service_module.const_defined? :ConversationalSearchService + service_module = service_module.const_get :ConversationalSearchService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + ## # Create a new client object for GenerativeQuestionService. # @@ -621,79 +768,6 @@ def self.product_service_available? version: :v2, transport: :grpc false end - ## - # Create a new client object for SearchService. - # - # By default, this returns an instance of - # [Google::Cloud::Retail::V2::SearchService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-retail-v2/latest/Google-Cloud-Retail-V2-SearchService-Client) - # for a gRPC client for version V2 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the SearchService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the SearchService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Retail.search_service_available?}. - # - # ## About SearchService - # - # Service for search. - # - # This feature is only available for users who have Retail Search enabled. - # Enable Retail Search on Cloud Console before using this feature. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v2`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.search_service version: :v2, transport: :grpc, &block - require "google/cloud/retail/#{version.to_s.downcase}" - - package_name = Google::Cloud::Retail - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Retail.const_get(package_name).const_get(:SearchService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the SearchService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Retail.search_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the SearchService service, - # or if the versioned client gem needs an update to support the SearchService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v2`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.search_service_available? version: :v2, transport: :grpc - require "google/cloud/retail/#{version.to_s.downcase}" - package_name = Google::Cloud::Retail - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Retail.const_get package_name - return false unless service_module.const_defined? :SearchService - service_module = service_module.const_get :SearchService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - ## # Create a new client object for ServingConfigService. # diff --git a/google-cloud-retail/lib/google/cloud/retail/version.rb b/google-cloud-retail/lib/google/cloud/retail/version.rb index e6d113272317..fea8ef7ef5ee 100644 --- a/google-cloud-retail/lib/google/cloud/retail/version.rb +++ b/google-cloud-retail/lib/google/cloud/retail/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Retail - VERSION = "2.0.1" + VERSION = "2.1.1" end end end diff --git a/google-cloud-retail/test/google/cloud/retail/client_test.rb b/google-cloud-retail/test/google/cloud/retail/client_test.rb index 9fe6fe05c321..5804475f0387 100644 --- a/google-cloud-retail/test/google/cloud/retail/client_test.rb +++ b/google-cloud-retail/test/google/cloud/retail/client_test.rb @@ -125,6 +125,48 @@ def test_control_service_rest end end + def test_search_service_grpc + skip unless Google::Cloud::Retail.search_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Retail.search_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Retail::V2::SearchService::Client, client + end + end + + def test_search_service_rest + skip unless Google::Cloud::Retail.search_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Retail.search_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Retail::V2::SearchService::Rest::Client, client + end + end + + def test_conversational_search_service_grpc + skip unless Google::Cloud::Retail.conversational_search_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Retail.conversational_search_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Retail::V2::ConversationalSearchService::Client, client + end + end + + def test_conversational_search_service_rest + skip unless Google::Cloud::Retail.conversational_search_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Retail.conversational_search_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Retail::V2::ConversationalSearchService::Rest::Client, client + end + end + def test_generative_question_service_grpc skip unless Google::Cloud::Retail.generative_question_service_available? transport: :grpc Gapic::ServiceStub.stub :new, DummyStub.new do @@ -209,27 +251,6 @@ def test_product_service_rest end end - def test_search_service_grpc - skip unless Google::Cloud::Retail.search_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Retail.search_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Retail::V2::SearchService::Client, client - end - end - - def test_search_service_rest - skip unless Google::Cloud::Retail.search_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Retail.search_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Retail::V2::SearchService::Rest::Client, client - end - end - def test_serving_config_service_grpc skip unless Google::Cloud::Retail.serving_config_service_available? transport: :grpc Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-run-client/CHANGELOG.md b/google-cloud-run-client/CHANGELOG.md index e06a6cdea867..286860776589 100644 --- a/google-cloud-run-client/CHANGELOG.md +++ b/google-cloud-run-client/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.0 (2025-08-15) #### Features diff --git a/google-cloud-run-client/README.md b/google-cloud-run-client/README.md index c5a51d11f8ad..b8965503405d 100644 --- a/google-cloud-run-client/README.md +++ b/google-cloud-run-client/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/run.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/run" + +client = Google::Cloud::Run.builds +request = ::Google::Cloud::Run::V2::SubmitBuildRequest.new # (request fields as keyword arguments...) +response = client.submit_build request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-run-client/lib/google/cloud/run/client/version.rb b/google-cloud-run-client/lib/google/cloud/run/client/version.rb index 2b996090cb98..1d9772240eb9 100644 --- a/google-cloud-run-client/lib/google/cloud/run/client/version.rb +++ b/google-cloud-run-client/lib/google/cloud/run/client/version.rb @@ -18,7 +18,7 @@ module Google module Cloud module Run module Client - VERSION = "1.5.0" + VERSION = "1.5.1" end end end diff --git a/google-cloud-run-v2/CHANGELOG.md b/google-cloud-run-v2/CHANGELOG.md index d981414ea75a..6717907f34a0 100644 --- a/google-cloud-run-v2/CHANGELOG.md +++ b/google-cloud-run-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.27.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.26.0 (2025-08-15) #### Features diff --git a/google-cloud-run-v2/google-cloud-run-v2.gemspec b/google-cloud-run-v2/google-cloud-run-v2.gemspec index 434faf33fc7a..fb4e613ad8b0 100644 --- a/google-cloud-run-v2/google-cloud-run-v2.gemspec +++ b/google-cloud-run-v2/google-cloud-run-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-run-v2/lib/google/cloud/run/v2/version.rb b/google-cloud-run-v2/lib/google/cloud/run/v2/version.rb index 4b82d559f822..1d35901d2da6 100644 --- a/google-cloud-run-v2/lib/google/cloud/run/v2/version.rb +++ b/google-cloud-run-v2/lib/google/cloud/run/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Run module V2 - VERSION = "0.26.0" + VERSION = "0.27.0" end end end diff --git a/google-cloud-run-v2/snippets/snippet_metadata_google.cloud.run.v2.json b/google-cloud-run-v2/snippets/snippet_metadata_google.cloud.run.v2.json index 05933cd6a221..d570956aa79a 100644 --- a/google-cloud-run-v2/snippets/snippet_metadata_google.cloud.run.v2.json +++ b/google-cloud-run-v2/snippets/snippet_metadata_google.cloud.run.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-run-v2", - "version": "0.26.0", + "version": "0.27.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/CHANGELOG.md b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/CHANGELOG.md index 6df3ab8abf52..4d366f6addea 100644 --- a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/CHANGELOG.md +++ b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.1.0 (2025-08-26) #### Features diff --git a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/google-cloud-saas_platform-saas_service_mgmt-v1beta1.gemspec b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/google-cloud-saas_platform-saas_service_mgmt-v1beta1.gemspec index a589f5373ec9..47e32029da1c 100644 --- a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/google-cloud-saas_platform-saas_service_mgmt-v1beta1.gemspec +++ b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/google-cloud-saas_platform-saas_service_mgmt-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/lib/google/cloud/saas_platform/saas_service_mgmt/v1beta1/version.rb b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/lib/google/cloud/saas_platform/saas_service_mgmt/v1beta1/version.rb index d0ac49c5fc71..c4392f7615db 100644 --- a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/lib/google/cloud/saas_platform/saas_service_mgmt/v1beta1/version.rb +++ b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/lib/google/cloud/saas_platform/saas_service_mgmt/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module SaasPlatform module SaasServiceMgmt module V1beta1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/snippets/snippet_metadata_google.cloud.saasplatform.saasservicemgmt.v1beta1.json b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/snippets/snippet_metadata_google.cloud.saasplatform.saasservicemgmt.v1beta1.json index 2a15ff15aa59..ec33c2d50f6a 100644 --- a/google-cloud-saas_platform-saas_service_mgmt-v1beta1/snippets/snippet_metadata_google.cloud.saasplatform.saasservicemgmt.v1beta1.json +++ b/google-cloud-saas_platform-saas_service_mgmt-v1beta1/snippets/snippet_metadata_google.cloud.saasplatform.saasservicemgmt.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-saas_platform-saas_service_mgmt-v1beta1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-saas_platform-saas_service_mgmt/CHANGELOG.md b/google-cloud-saas_platform-saas_service_mgmt/CHANGELOG.md index 94b5453b68c9..b1801cb9b87b 100644 --- a/google-cloud-saas_platform-saas_service_mgmt/CHANGELOG.md +++ b/google-cloud-saas_platform-saas_service_mgmt/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-08-27) #### Features diff --git a/google-cloud-saas_platform-saas_service_mgmt/README.md b/google-cloud-saas_platform-saas_service_mgmt/README.md index 8e2f6f5c5d4d..5dbf814c0a47 100644 --- a/google-cloud-saas_platform-saas_service_mgmt/README.md +++ b/google-cloud-saas_platform-saas_service_mgmt/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/saasservicemgmt.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/saas_platform/saas_service_mgmt" + +client = Google::Cloud::SaasPlatform::SaasServiceMgmt.saas_deployments +request = ::Google::Cloud::SaasPlatform::SaasServiceMgmt::V1beta1::ListSaasRequest.new # (request fields as keyword arguments...) +response = client.list_saas request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-saas_platform-saas_service_mgmt/lib/google/cloud/saas_platform/saas_service_mgmt/version.rb b/google-cloud-saas_platform-saas_service_mgmt/lib/google/cloud/saas_platform/saas_service_mgmt/version.rb index ebaf36b780ee..4911a49034be 100644 --- a/google-cloud-saas_platform-saas_service_mgmt/lib/google/cloud/saas_platform/saas_service_mgmt/version.rb +++ b/google-cloud-saas_platform-saas_service_mgmt/lib/google/cloud/saas_platform/saas_service_mgmt/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SaasPlatform module SaasServiceMgmt - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-cloud-scheduler-v1/CHANGELOG.md b/google-cloud-scheduler-v1/CHANGELOG.md index f24b75068b9f..35536c8c5428 100644 --- a/google-cloud-scheduler-v1/CHANGELOG.md +++ b/google-cloud-scheduler-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-scheduler-v1/google-cloud-scheduler-v1.gemspec b/google-cloud-scheduler-v1/google-cloud-scheduler-v1.gemspec index 22119a07766c..b1b1c971b3b6 100644 --- a/google-cloud-scheduler-v1/google-cloud-scheduler-v1.gemspec +++ b/google-cloud-scheduler-v1/google-cloud-scheduler-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-scheduler-v1/lib/google/cloud/scheduler/v1/version.rb b/google-cloud-scheduler-v1/lib/google/cloud/scheduler/v1/version.rb index 448b99c7e63f..d7e35c2b4754 100644 --- a/google-cloud-scheduler-v1/lib/google/cloud/scheduler/v1/version.rb +++ b/google-cloud-scheduler-v1/lib/google/cloud/scheduler/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Scheduler module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-scheduler-v1/snippets/snippet_metadata_google.cloud.scheduler.v1.json b/google-cloud-scheduler-v1/snippets/snippet_metadata_google.cloud.scheduler.v1.json index dda0d210f5f3..a510a1af4904 100644 --- a/google-cloud-scheduler-v1/snippets/snippet_metadata_google.cloud.scheduler.v1.json +++ b/google-cloud-scheduler-v1/snippets/snippet_metadata_google.cloud.scheduler.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-scheduler-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-scheduler-v1beta1/CHANGELOG.md b/google-cloud-scheduler-v1beta1/CHANGELOG.md index ae186b68c90d..b0b995824894 100644 --- a/google-cloud-scheduler-v1beta1/CHANGELOG.md +++ b/google-cloud-scheduler-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.14.0 (2025-05-12) #### Features diff --git a/google-cloud-scheduler-v1beta1/google-cloud-scheduler-v1beta1.gemspec b/google-cloud-scheduler-v1beta1/google-cloud-scheduler-v1beta1.gemspec index 0a1f10db702a..cfc2de299e77 100644 --- a/google-cloud-scheduler-v1beta1/google-cloud-scheduler-v1beta1.gemspec +++ b/google-cloud-scheduler-v1beta1/google-cloud-scheduler-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-scheduler-v1beta1/lib/google/cloud/scheduler/v1beta1/version.rb b/google-cloud-scheduler-v1beta1/lib/google/cloud/scheduler/v1beta1/version.rb index 8f221de809de..d8f188163fd9 100644 --- a/google-cloud-scheduler-v1beta1/lib/google/cloud/scheduler/v1beta1/version.rb +++ b/google-cloud-scheduler-v1beta1/lib/google/cloud/scheduler/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Scheduler module V1beta1 - VERSION = "0.14.0" + VERSION = "0.15.0" end end end diff --git a/google-cloud-scheduler-v1beta1/snippets/snippet_metadata_google.cloud.scheduler.v1beta1.json b/google-cloud-scheduler-v1beta1/snippets/snippet_metadata_google.cloud.scheduler.v1beta1.json index 9f771ec62de6..223226d7cc92 100644 --- a/google-cloud-scheduler-v1beta1/snippets/snippet_metadata_google.cloud.scheduler.v1beta1.json +++ b/google-cloud-scheduler-v1beta1/snippets/snippet_metadata_google.cloud.scheduler.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-scheduler-v1beta1", - "version": "0.14.0", + "version": "0.15.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-scheduler/CHANGELOG.md b/google-cloud-scheduler/CHANGELOG.md index e8a696f0048c..96bbaf9e2e82 100644 --- a/google-cloud-scheduler/CHANGELOG.md +++ b/google-cloud-scheduler/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 3.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 3.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-scheduler/README.md b/google-cloud-scheduler/README.md index 055d093c822b..a2cf39c345db 100644 --- a/google-cloud-scheduler/README.md +++ b/google-cloud-scheduler/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudscheduler.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/scheduler" + +client = Google::Cloud::Scheduler.cloud_scheduler +request = ::Google::Cloud::Scheduler::V1::ListJobsRequest.new # (request fields as keyword arguments...) +response = client.list_jobs request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-scheduler/lib/google/cloud/scheduler/version.rb b/google-cloud-scheduler/lib/google/cloud/scheduler/version.rb index aca9ab158cb6..eb3e741cb243 100644 --- a/google-cloud-scheduler/lib/google/cloud/scheduler/version.rb +++ b/google-cloud-scheduler/lib/google/cloud/scheduler/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Scheduler - VERSION = "3.0.2" + VERSION = "3.0.3" end end end diff --git a/google-cloud-secret_manager-v1/CHANGELOG.md b/google-cloud-secret_manager-v1/CHANGELOG.md index 91d372f7ba04..20cbee611fb8 100644 --- a/google-cloud-secret_manager-v1/CHANGELOG.md +++ b/google-cloud-secret_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-06-16) #### Features diff --git a/google-cloud-secret_manager-v1/google-cloud-secret_manager-v1.gemspec b/google-cloud-secret_manager-v1/google-cloud-secret_manager-v1.gemspec index 88f429c721f1..fcfd382fc96e 100644 --- a/google-cloud-secret_manager-v1/google-cloud-secret_manager-v1.gemspec +++ b/google-cloud-secret_manager-v1/google-cloud-secret_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-secret_manager-v1/lib/google/cloud/secret_manager/v1/version.rb b/google-cloud-secret_manager-v1/lib/google/cloud/secret_manager/v1/version.rb index a73ca28703ca..cf2f7844af2c 100644 --- a/google-cloud-secret_manager-v1/lib/google/cloud/secret_manager/v1/version.rb +++ b/google-cloud-secret_manager-v1/lib/google/cloud/secret_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecretManager module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-secret_manager-v1/snippets/snippet_metadata_google.cloud.secretmanager.v1.json b/google-cloud-secret_manager-v1/snippets/snippet_metadata_google.cloud.secretmanager.v1.json index ec8b7f43885e..d3e8956c73d2 100644 --- a/google-cloud-secret_manager-v1/snippets/snippet_metadata_google.cloud.secretmanager.v1.json +++ b/google-cloud-secret_manager-v1/snippets/snippet_metadata_google.cloud.secretmanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-secret_manager-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-secret_manager-v1beta1/CHANGELOG.md b/google-cloud-secret_manager-v1beta1/CHANGELOG.md index 2649fe7d1aee..522ed2986147 100644 --- a/google-cloud-secret_manager-v1beta1/CHANGELOG.md +++ b/google-cloud-secret_manager-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.19.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.18.0 (2025-05-12) #### Features diff --git a/google-cloud-secret_manager-v1beta1/google-cloud-secret_manager-v1beta1.gemspec b/google-cloud-secret_manager-v1beta1/google-cloud-secret_manager-v1beta1.gemspec index 1936cb6f637a..0606f2b840f3 100644 --- a/google-cloud-secret_manager-v1beta1/google-cloud-secret_manager-v1beta1.gemspec +++ b/google-cloud-secret_manager-v1beta1/google-cloud-secret_manager-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-secret_manager-v1beta1/lib/google/cloud/secret_manager/v1beta1/version.rb b/google-cloud-secret_manager-v1beta1/lib/google/cloud/secret_manager/v1beta1/version.rb index 33a6d5f3dea6..f120b8dd1f99 100644 --- a/google-cloud-secret_manager-v1beta1/lib/google/cloud/secret_manager/v1beta1/version.rb +++ b/google-cloud-secret_manager-v1beta1/lib/google/cloud/secret_manager/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecretManager module V1beta1 - VERSION = "0.18.0" + VERSION = "0.19.0" end end end diff --git a/google-cloud-secret_manager-v1beta1/snippets/snippet_metadata_google.cloud.secrets.v1beta1.json b/google-cloud-secret_manager-v1beta1/snippets/snippet_metadata_google.cloud.secrets.v1beta1.json index a7f517daa996..92cbc6a71d96 100644 --- a/google-cloud-secret_manager-v1beta1/snippets/snippet_metadata_google.cloud.secrets.v1beta1.json +++ b/google-cloud-secret_manager-v1beta1/snippets/snippet_metadata_google.cloud.secrets.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-secret_manager-v1beta1", - "version": "0.18.0", + "version": "0.19.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-secret_manager-v1beta2/CHANGELOG.md b/google-cloud-secret_manager-v1beta2/CHANGELOG.md index 5a00605b3f80..be7a1621f4a9 100644 --- a/google-cloud-secret_manager-v1beta2/CHANGELOG.md +++ b/google-cloud-secret_manager-v1beta2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.4.0 (2025-05-12) #### Features diff --git a/google-cloud-secret_manager-v1beta2/google-cloud-secret_manager-v1beta2.gemspec b/google-cloud-secret_manager-v1beta2/google-cloud-secret_manager-v1beta2.gemspec index e576c6601ceb..8a4625b0efb0 100644 --- a/google-cloud-secret_manager-v1beta2/google-cloud-secret_manager-v1beta2.gemspec +++ b/google-cloud-secret_manager-v1beta2/google-cloud-secret_manager-v1beta2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-secret_manager-v1beta2/lib/google/cloud/secret_manager/v1beta2/version.rb b/google-cloud-secret_manager-v1beta2/lib/google/cloud/secret_manager/v1beta2/version.rb index 4e2f0212e6b2..8db74141cfd0 100644 --- a/google-cloud-secret_manager-v1beta2/lib/google/cloud/secret_manager/v1beta2/version.rb +++ b/google-cloud-secret_manager-v1beta2/lib/google/cloud/secret_manager/v1beta2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecretManager module V1beta2 - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-cloud-secret_manager-v1beta2/snippets/snippet_metadata_google.cloud.secretmanager.v1beta2.json b/google-cloud-secret_manager-v1beta2/snippets/snippet_metadata_google.cloud.secretmanager.v1beta2.json index 8a91b376e405..b777b2f78859 100644 --- a/google-cloud-secret_manager-v1beta2/snippets/snippet_metadata_google.cloud.secretmanager.v1beta2.json +++ b/google-cloud-secret_manager-v1beta2/snippets/snippet_metadata_google.cloud.secretmanager.v1beta2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-secret_manager-v1beta2", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-secret_manager/.owlbot-manifest.json b/google-cloud-secret_manager/.owlbot-manifest.json index 67747c5cb488..c10c3991daed 100644 --- a/google-cloud-secret_manager/.owlbot-manifest.json +++ b/google-cloud-secret_manager/.owlbot-manifest.json @@ -30,10 +30,14 @@ "samples/acceptance/add_secret_version_test.rb", "samples/acceptance/create_regional_secret_test.rb", "samples/acceptance/create_regional_secret_with_annotations_test.rb", + "samples/acceptance/create_regional_secret_with_delayed_destroy_test.rb", "samples/acceptance/create_regional_secret_with_labels_test.rb", + "samples/acceptance/create_regional_secret_with_tags_test.rb", "samples/acceptance/create_secret_test.rb", "samples/acceptance/create_secret_with_annotations_test.rb", + "samples/acceptance/create_secret_with_delayed_destroy_test.rb", "samples/acceptance/create_secret_with_labels_test.rb", + "samples/acceptance/create_secret_with_tags_test.rb", "samples/acceptance/create_ummr_secret_test.rb", "samples/acceptance/delete_regional_secret_test.rb", "samples/acceptance/delete_regional_secret_with_etag_test.rb", @@ -41,8 +45,10 @@ "samples/acceptance/destroy_regional_secret_version_test.rb", "samples/acceptance/destroy_regional_secret_version_with_etag_test.rb", "samples/acceptance/destroy_secret_version_test.rb", + "samples/acceptance/disable_regional_secret_delayed_destroy_test.rb", "samples/acceptance/disable_regional_secret_version_test.rb", "samples/acceptance/disable_regional_secret_version_with_etag_test.rb", + "samples/acceptance/disable_secret_delayed_destroy_test.rb", "samples/acceptance/disable_secret_version_test.rb", "samples/acceptance/edit_regional_secret_annotations_test.rb", "samples/acceptance/edit_secret_annotations_test.rb", @@ -71,9 +77,11 @@ "samples/acceptance/snippets_test.rb", "samples/acceptance/update_regional_secret_test.rb", "samples/acceptance/update_regional_secret_with_alias_test.rb", + "samples/acceptance/update_regional_secret_with_delayed_destroy_test.rb", "samples/acceptance/update_regional_secret_with_etag_test.rb", "samples/acceptance/update_secret_test.rb", "samples/acceptance/update_secret_with_alias_test.rb", + "samples/acceptance/update_secret_with_delayed_destroy_test.rb", "samples/acceptance/view_regional_secret_annotations_test.rb", "samples/acceptance/view_regional_secret_labels_test.rb", "samples/acceptance/view_secret_annotations_test.rb", @@ -84,10 +92,14 @@ "samples/add_secret_version.rb", "samples/create_regional_secret.rb", "samples/create_regional_secret_with_annotations.rb", + "samples/create_regional_secret_with_delayed_destroy.rb", "samples/create_regional_secret_with_labels.rb", + "samples/create_regional_secret_with_tags.rb", "samples/create_secret.rb", "samples/create_secret_with_annotations.rb", + "samples/create_secret_with_delayed_destroy.rb", "samples/create_secret_with_labels.rb", + "samples/create_secret_with_tags.rb", "samples/create_ummr_secret.rb", "samples/delete_regional_secret.rb", "samples/delete_regional_secret_with_etag.rb", @@ -95,8 +107,10 @@ "samples/destroy_regional_secret_version.rb", "samples/destroy_regional_secret_version_with_etag.rb", "samples/destroy_secret_version.rb", + "samples/disable_regional_secret_delayed_destroy.rb", "samples/disable_regional_secret_version.rb", "samples/disable_regional_secret_version_with_etag.rb", + "samples/disable_secret_delayed_destroy.rb", "samples/disable_secret_version.rb", "samples/edit_regional_secret_annotations.rb", "samples/edit_secret_annotations.rb", @@ -123,9 +137,11 @@ "samples/snippets.rb", "samples/update_regional_secret.rb", "samples/update_regional_secret_with_alias.rb", + "samples/update_regional_secret_with_delayed_destroy.rb", "samples/update_regional_secret_with_etag.rb", "samples/update_secret.rb", "samples/update_secret_with_alias.rb", + "samples/update_secret_with_delayed_destroy.rb", "samples/view_regional_secret_annotations.rb", "samples/view_regional_secret_labels.rb", "samples/view_secret_annotations.rb", diff --git a/google-cloud-secret_manager/CHANGELOG.md b/google-cloud-secret_manager/CHANGELOG.md index c41e8ee519e2..eb064b16487f 100644 --- a/google-cloud-secret_manager/CHANGELOG.md +++ b/google-cloud-secret_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Update README in wrapper libraries ([#31313](https://github.com/googleapis/google-cloud-ruby/issues/31313)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-secret_manager/README.md b/google-cloud-secret_manager/README.md index bb2f63184751..d02c416d3958 100644 --- a/google-cloud-secret_manager/README.md +++ b/google-cloud-secret_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/secretmanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/secret_manager" + +client = Google::Cloud::SecretManager.secret_manager_service +request = ::Google::Cloud::SecretManager::V1::ListSecretsRequest.new # (request fields as keyword arguments...) +response = client.list_secrets request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-secret_manager/lib/google/cloud/secret_manager/version.rb b/google-cloud-secret_manager/lib/google/cloud/secret_manager/version.rb index 8c0bbd09f14b..938c425e40e1 100644 --- a/google-cloud-secret_manager/lib/google/cloud/secret_manager/version.rb +++ b/google-cloud-secret_manager/lib/google/cloud/secret_manager/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module SecretManager - VERSION = "2.0.1".freeze + VERSION = "2.0.2".freeze end end end diff --git a/google-cloud-secure_source_manager-v1/CHANGELOG.md b/google-cloud-secure_source_manager-v1/CHANGELOG.md index 41b839cd671a..7d7edd0e4a63 100644 --- a/google-cloud-secure_source_manager-v1/CHANGELOG.md +++ b/google-cloud-secure_source_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.2.1 (2025-08-12) #### Documentation diff --git a/google-cloud-secure_source_manager-v1/google-cloud-secure_source_manager-v1.gemspec b/google-cloud-secure_source_manager-v1/google-cloud-secure_source_manager-v1.gemspec index ad182c15419b..f5de10c34478 100644 --- a/google-cloud-secure_source_manager-v1/google-cloud-secure_source_manager-v1.gemspec +++ b/google-cloud-secure_source_manager-v1/google-cloud-secure_source_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-secure_source_manager-v1/lib/google/cloud/secure_source_manager/v1/version.rb b/google-cloud-secure_source_manager-v1/lib/google/cloud/secure_source_manager/v1/version.rb index b8bb693bf25d..df5fb94851be 100644 --- a/google-cloud-secure_source_manager-v1/lib/google/cloud/secure_source_manager/v1/version.rb +++ b/google-cloud-secure_source_manager-v1/lib/google/cloud/secure_source_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecureSourceManager module V1 - VERSION = "2.2.1" + VERSION = "2.3.0" end end end diff --git a/google-cloud-secure_source_manager-v1/snippets/snippet_metadata_google.cloud.securesourcemanager.v1.json b/google-cloud-secure_source_manager-v1/snippets/snippet_metadata_google.cloud.securesourcemanager.v1.json index b5c9339abf25..c418c11e39f8 100644 --- a/google-cloud-secure_source_manager-v1/snippets/snippet_metadata_google.cloud.securesourcemanager.v1.json +++ b/google-cloud-secure_source_manager-v1/snippets/snippet_metadata_google.cloud.securesourcemanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-secure_source_manager-v1", - "version": "2.2.1", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-secure_source_manager/CHANGELOG.md b/google-cloud-secure_source_manager/CHANGELOG.md index ec81a1f042f2..9580c377d611 100644 --- a/google-cloud-secure_source_manager/CHANGELOG.md +++ b/google-cloud-secure_source_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.1.0 (2025-07-28) #### Features diff --git a/google-cloud-secure_source_manager/README.md b/google-cloud-secure_source_manager/README.md index 36f0f2d7db43..626209d4b024 100644 --- a/google-cloud-secure_source_manager/README.md +++ b/google-cloud-secure_source_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/securesourcemanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/secure_source_manager" + +client = Google::Cloud::SecureSourceManager.secure_source_manager +request = ::Google::Cloud::SecureSourceManager::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-secure_source_manager/lib/google/cloud/secure_source_manager/version.rb b/google-cloud-secure_source_manager/lib/google/cloud/secure_source_manager/version.rb index dd99e2e01f3f..d9b95df69bf0 100644 --- a/google-cloud-secure_source_manager/lib/google/cloud/secure_source_manager/version.rb +++ b/google-cloud-secure_source_manager/lib/google/cloud/secure_source_manager/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module SecureSourceManager - VERSION = "2.1.0" + VERSION = "2.1.1" end end end diff --git a/google-cloud-security-private_ca-v1/CHANGELOG.md b/google-cloud-security-private_ca-v1/CHANGELOG.md index f62bc6d23d23..4621ebb4e351 100644 --- a/google-cloud-security-private_ca-v1/CHANGELOG.md +++ b/google-cloud-security-private_ca-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.2.0 (2025-07-15) #### Features diff --git a/google-cloud-security-private_ca-v1/google-cloud-security-private_ca-v1.gemspec b/google-cloud-security-private_ca-v1/google-cloud-security-private_ca-v1.gemspec index 84d906a4db2f..41395182ee5c 100644 --- a/google-cloud-security-private_ca-v1/google-cloud-security-private_ca-v1.gemspec +++ b/google-cloud-security-private_ca-v1/google-cloud-security-private_ca-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-security-private_ca-v1/lib/google/cloud/security/private_ca/v1/version.rb b/google-cloud-security-private_ca-v1/lib/google/cloud/security/private_ca/v1/version.rb index 4b8c96d70e01..090a73aed9dd 100644 --- a/google-cloud-security-private_ca-v1/lib/google/cloud/security/private_ca/v1/version.rb +++ b/google-cloud-security-private_ca-v1/lib/google/cloud/security/private_ca/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Security module PrivateCA module V1 - VERSION = "2.2.0" + VERSION = "2.3.0" end end end diff --git a/google-cloud-security-private_ca-v1/snippets/snippet_metadata_google.cloud.security.privateca.v1.json b/google-cloud-security-private_ca-v1/snippets/snippet_metadata_google.cloud.security.privateca.v1.json index 8d549f15ac0a..ff2cd5b4446a 100644 --- a/google-cloud-security-private_ca-v1/snippets/snippet_metadata_google.cloud.security.privateca.v1.json +++ b/google-cloud-security-private_ca-v1/snippets/snippet_metadata_google.cloud.security.privateca.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security-private_ca-v1", - "version": "2.2.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security-private_ca-v1beta1/CHANGELOG.md b/google-cloud-security-private_ca-v1beta1/CHANGELOG.md index af37af908acc..1dfb2b6cd399 100644 --- a/google-cloud-security-private_ca-v1beta1/CHANGELOG.md +++ b/google-cloud-security-private_ca-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-security-private_ca-v1beta1/google-cloud-security-private_ca-v1beta1.gemspec b/google-cloud-security-private_ca-v1beta1/google-cloud-security-private_ca-v1beta1.gemspec index 0563174b39f3..bca1b9e35dd5 100644 --- a/google-cloud-security-private_ca-v1beta1/google-cloud-security-private_ca-v1beta1.gemspec +++ b/google-cloud-security-private_ca-v1beta1/google-cloud-security-private_ca-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-security-private_ca-v1beta1/lib/google/cloud/security/private_ca/v1beta1/version.rb b/google-cloud-security-private_ca-v1beta1/lib/google/cloud/security/private_ca/v1beta1/version.rb index b7c5a6f7453d..8b41e48d06be 100644 --- a/google-cloud-security-private_ca-v1beta1/lib/google/cloud/security/private_ca/v1beta1/version.rb +++ b/google-cloud-security-private_ca-v1beta1/lib/google/cloud/security/private_ca/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module Security module PrivateCA module V1beta1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-security-private_ca-v1beta1/snippets/snippet_metadata_google.cloud.security.privateca.v1beta1.json b/google-cloud-security-private_ca-v1beta1/snippets/snippet_metadata_google.cloud.security.privateca.v1beta1.json index d4f2fa6f8c36..badaf0bb4d59 100644 --- a/google-cloud-security-private_ca-v1beta1/snippets/snippet_metadata_google.cloud.security.privateca.v1beta1.json +++ b/google-cloud-security-private_ca-v1beta1/snippets/snippet_metadata_google.cloud.security.privateca.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security-private_ca-v1beta1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security-private_ca/CHANGELOG.md b/google-cloud-security-private_ca/CHANGELOG.md index 2e731244369d..82bdbf0726df 100644 --- a/google-cloud-security-private_ca/CHANGELOG.md +++ b/google-cloud-security-private_ca/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-security-private_ca/README.md b/google-cloud-security-private_ca/README.md index 6baf4f141146..dc9693dda88a 100644 --- a/google-cloud-security-private_ca/README.md +++ b/google-cloud-security-private_ca/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/privateca.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/security/private_ca" + +client = Google::Cloud::Security::PrivateCA.certificate_authority_service +request = ::Google::Cloud::Security::PrivateCA::V1::CreateCertificateRequest.new # (request fields as keyword arguments...) +response = client.create_certificate request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-security-private_ca/lib/google/cloud/security/private_ca/version.rb b/google-cloud-security-private_ca/lib/google/cloud/security/private_ca/version.rb index 32ba8dc0efc3..64937b50944f 100644 --- a/google-cloud-security-private_ca/lib/google/cloud/security/private_ca/version.rb +++ b/google-cloud-security-private_ca/lib/google/cloud/security/private_ca/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Security module PrivateCA - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-security-public_ca-v1/CHANGELOG.md b/google-cloud-security-public_ca-v1/CHANGELOG.md index 0a9a52c5869f..bbf4afd9354d 100644 --- a/google-cloud-security-public_ca-v1/CHANGELOG.md +++ b/google-cloud-security-public_ca-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-security-public_ca-v1/google-cloud-security-public_ca-v1.gemspec b/google-cloud-security-public_ca-v1/google-cloud-security-public_ca-v1.gemspec index a679ba2bde5e..1dbc84949d91 100644 --- a/google-cloud-security-public_ca-v1/google-cloud-security-public_ca-v1.gemspec +++ b/google-cloud-security-public_ca-v1/google-cloud-security-public_ca-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-security-public_ca-v1/lib/google/cloud/security/public_ca/v1/version.rb b/google-cloud-security-public_ca-v1/lib/google/cloud/security/public_ca/v1/version.rb index 1fcacb996dde..dfe43af97d23 100644 --- a/google-cloud-security-public_ca-v1/lib/google/cloud/security/public_ca/v1/version.rb +++ b/google-cloud-security-public_ca-v1/lib/google/cloud/security/public_ca/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Security module PublicCA module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-security-public_ca-v1/snippets/snippet_metadata_google.cloud.security.publicca.v1.json b/google-cloud-security-public_ca-v1/snippets/snippet_metadata_google.cloud.security.publicca.v1.json index 7f4c2fa9a787..315e4d0577c7 100644 --- a/google-cloud-security-public_ca-v1/snippets/snippet_metadata_google.cloud.security.publicca.v1.json +++ b/google-cloud-security-public_ca-v1/snippets/snippet_metadata_google.cloud.security.publicca.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security-public_ca-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security-public_ca-v1beta1/CHANGELOG.md b/google-cloud-security-public_ca-v1beta1/CHANGELOG.md index 6b9eeb73b0ec..217d4127dff2 100644 --- a/google-cloud-security-public_ca-v1beta1/CHANGELOG.md +++ b/google-cloud-security-public_ca-v1beta1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 0.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 0.9.1 (2025-09-03) + +#### Documentation + +* Add API publishing information for public CA.googleapis.com ([#30931](https://github.com/googleapis/google-cloud-ruby/issues/30931)) + ### 0.9.0 (2025-05-12) #### Features diff --git a/google-cloud-security-public_ca-v1beta1/google-cloud-security-public_ca-v1beta1.gemspec b/google-cloud-security-public_ca-v1beta1/google-cloud-security-public_ca-v1beta1.gemspec index 71941ee77ea5..b59dc4cf499b 100644 --- a/google-cloud-security-public_ca-v1beta1/google-cloud-security-public_ca-v1beta1.gemspec +++ b/google-cloud-security-public_ca-v1beta1/google-cloud-security-public_ca-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/client.rb b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/client.rb index c25ad3277910..a63f0478de76 100644 --- a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/client.rb +++ b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/client.rb @@ -192,7 +192,9 @@ def logger # Service calls ## - # Creates a new {::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey ExternalAccountKey} bound to the project. + # Creates a new + # {::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey ExternalAccountKey} + # bound to the project. # # @overload create_external_account_key(request, options = nil) # Pass arguments to `create_external_account_key` via a request object, either of type @@ -210,13 +212,13 @@ def logger # the default parameter values, pass an empty Hash as a request object (see above). # # @param parent [::String] - # Required. The parent resource where this external_account_key will be created. - # Format: projects/[project_id]/locations/[location]. - # At present only the "global" location is supported. + # Required. The parent resource where this external_account_key will be + # created. Format: projects/[project_id]/locations/[location]. At present + # only the "global" location is supported. # @param external_account_key [::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey, ::Hash] - # Required. The external account key to create. This field only exists to future-proof - # the API. At present, all fields in ExternalAccountKey are output only and - # all values are ignored. For the purpose of the + # Required. The external account key to create. This field only exists to + # future-proof the API. At present, all fields in ExternalAccountKey are + # output only and all values are ignored. For the purpose of the # CreateExternalAccountKeyRequest, set it to a default/empty value. # # @yield [response, operation] Access the result along with the RPC operation diff --git a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/rest/client.rb b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/rest/client.rb index bba6d9fc4a4a..9911368383ed 100644 --- a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/rest/client.rb +++ b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/public_certificate_authority_service/rest/client.rb @@ -185,7 +185,9 @@ def logger # Service calls ## - # Creates a new {::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey ExternalAccountKey} bound to the project. + # Creates a new + # {::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey ExternalAccountKey} + # bound to the project. # # @overload create_external_account_key(request, options = nil) # Pass arguments to `create_external_account_key` via a request object, either of type @@ -203,13 +205,13 @@ def logger # the default parameter values, pass an empty Hash as a request object (see above). # # @param parent [::String] - # Required. The parent resource where this external_account_key will be created. - # Format: projects/[project_id]/locations/[location]. - # At present only the "global" location is supported. + # Required. The parent resource where this external_account_key will be + # created. Format: projects/[project_id]/locations/[location]. At present + # only the "global" location is supported. # @param external_account_key [::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey, ::Hash] - # Required. The external account key to create. This field only exists to future-proof - # the API. At present, all fields in ExternalAccountKey are output only and - # all values are ignored. For the purpose of the + # Required. The external account key to create. This field only exists to + # future-proof the API. At present, all fields in ExternalAccountKey are + # output only and all values are ignored. For the purpose of the # CreateExternalAccountKeyRequest, set it to a default/empty value. # @yield [result, operation] Access the result along with the TransportOperation object # @yieldparam result [::Google::Cloud::Security::PublicCA::V1beta1::ExternalAccountKey] diff --git a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/version.rb b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/version.rb index cda7d0d05c2b..962f45c9b975 100644 --- a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/version.rb +++ b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/public_ca/v1beta1/version.rb @@ -22,7 +22,7 @@ module Cloud module Security module PublicCA module V1beta1 - VERSION = "0.9.0" + VERSION = "0.10.0" end end end diff --git a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/resources_pb.rb b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/resources_pb.rb index 302a1958ba35..2471a392f3bd 100644 --- a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/resources_pb.rb +++ b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/resources_pb.rb @@ -8,7 +8,7 @@ require 'google/api/resource_pb' -descriptor_data = "\n6google/cloud/security/publicca/v1beta1/resources.proto\x12&google.cloud.security.publicca.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xdd\x01\n\x12\x45xternalAccountKey\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x13\n\x06key_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x62\x36\x34_mac_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x03:\x84\x01\xea\x41\x80\x01\n*publicca.googleapis.com/ExternalAccountKey\x12Rprojects/{project}/locations/{location}/externalAccountKeys/{external_account_key}B\x88\x02\n*com.google.cloud.security.publicca.v1beta1B\x0eResourcesProtoP\x01ZFcloud.google.com/go/security/publicca/apiv1beta1/publiccapb;publiccapb\xf8\x01\x01\xaa\x02&Google.Cloud.Security.PublicCA.V1Beta1\xca\x02&Google\\Cloud\\Security\\PublicCA\\V1beta1\xea\x02*Google::Cloud::Security::PublicCA::V1beta1b\x06proto3" +descriptor_data = "\n6google/cloud/security/publicca/v1beta1/resources.proto\x12&google.cloud.security.publicca.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xdd\x01\n\x12\x45xternalAccountKey\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x13\n\x06key_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0b\x62\x36\x34_mac_key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x03:\x84\x01\xea\x41\x80\x01\n*publicca.googleapis.com/ExternalAccountKey\x12Rprojects/{project}/locations/{location}/externalAccountKeys/{external_account_key}B\x85\x02\n*com.google.cloud.security.publicca.v1beta1B\x0eResourcesProtoP\x01ZFcloud.google.com/go/security/publicca/apiv1beta1/publiccapb;publiccapb\xaa\x02&Google.Cloud.Security.PublicCA.V1Beta1\xca\x02&Google\\Cloud\\Security\\PublicCA\\V1beta1\xea\x02*Google::Cloud::Security::PublicCA::V1beta1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/service_pb.rb b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/service_pb.rb index 9f1609d84843..ab1d46a05a20 100644 --- a/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/service_pb.rb +++ b/google-cloud-security-public_ca-v1beta1/lib/google/cloud/security/publicca/v1beta1/service_pb.rb @@ -11,7 +11,7 @@ require 'google/cloud/security/publicca/v1beta1/resources_pb' -descriptor_data = "\n4google/cloud/security/publicca/v1beta1/service.proto\x12&google.cloud.security.publicca.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x36google/cloud/security/publicca/v1beta1/resources.proto\"\xc4\x01\n\x1f\x43reateExternalAccountKeyRequest\x12\x42\n\x06parent\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\x12*publicca.googleapis.com/ExternalAccountKey\x12]\n\x14\x65xternal_account_key\x18\x02 \x01(\x0b\x32:.google.cloud.security.publicca.v1beta1.ExternalAccountKeyB\x03\xe0\x41\x02\x32\x8c\x03\n!PublicCertificateAuthorityService\x12\x99\x02\n\x18\x43reateExternalAccountKey\x12G.google.cloud.security.publicca.v1beta1.CreateExternalAccountKeyRequest\x1a:.google.cloud.security.publicca.v1beta1.ExternalAccountKey\"x\xda\x41\x1bparent,external_account_key\x82\xd3\xe4\x93\x02T\" 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-security_center-v1/lib/google/cloud/security_center/v1/version.rb b/google-cloud-security_center-v1/lib/google/cloud/security_center/v1/version.rb index 43d6b32df19a..be7f78599e99 100644 --- a/google-cloud-security_center-v1/lib/google/cloud/security_center/v1/version.rb +++ b/google-cloud-security_center-v1/lib/google/cloud/security_center/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecurityCenter module V1 - VERSION = "1.5.0" + VERSION = "1.6.0" end end end diff --git a/google-cloud-security_center-v1/snippets/snippet_metadata_google.cloud.securitycenter.v1.json b/google-cloud-security_center-v1/snippets/snippet_metadata_google.cloud.securitycenter.v1.json index 9657618db36b..db1ece09f7dd 100644 --- a/google-cloud-security_center-v1/snippets/snippet_metadata_google.cloud.securitycenter.v1.json +++ b/google-cloud-security_center-v1/snippets/snippet_metadata_google.cloud.securitycenter.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security_center-v1", - "version": "1.5.0", + "version": "1.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security_center-v1p1beta1/CHANGELOG.md b/google-cloud-security_center-v1p1beta1/CHANGELOG.md index 8fc90a66a869..7a7ebdbdf744 100644 --- a/google-cloud-security_center-v1p1beta1/CHANGELOG.md +++ b/google-cloud-security_center-v1p1beta1/CHANGELOG.md @@ -4,6 +4,12 @@ * Clarify Finding#event_time description +### 0.18.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.17.0 (2025-05-12) #### Features diff --git a/google-cloud-security_center-v1p1beta1/google-cloud-security_center-v1p1beta1.gemspec b/google-cloud-security_center-v1p1beta1/google-cloud-security_center-v1p1beta1.gemspec index e6223bad7225..1747199ef686 100644 --- a/google-cloud-security_center-v1p1beta1/google-cloud-security_center-v1p1beta1.gemspec +++ b/google-cloud-security_center-v1p1beta1/google-cloud-security_center-v1p1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-security_center-v1p1beta1/lib/google/cloud/security_center/v1p1beta1/version.rb b/google-cloud-security_center-v1p1beta1/lib/google/cloud/security_center/v1p1beta1/version.rb index 671744e22f6d..b94b6a3e403a 100644 --- a/google-cloud-security_center-v1p1beta1/lib/google/cloud/security_center/v1p1beta1/version.rb +++ b/google-cloud-security_center-v1p1beta1/lib/google/cloud/security_center/v1p1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecurityCenter module V1p1beta1 - VERSION = "0.17.0" + VERSION = "0.18.0" end end end diff --git a/google-cloud-security_center-v1p1beta1/snippets/snippet_metadata_google.cloud.securitycenter.v1p1beta1.json b/google-cloud-security_center-v1p1beta1/snippets/snippet_metadata_google.cloud.securitycenter.v1p1beta1.json index 612eed29da3f..bb3587c9c8b0 100644 --- a/google-cloud-security_center-v1p1beta1/snippets/snippet_metadata_google.cloud.securitycenter.v1p1beta1.json +++ b/google-cloud-security_center-v1p1beta1/snippets/snippet_metadata_google.cloud.securitycenter.v1p1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security_center-v1p1beta1", - "version": "0.17.0", + "version": "0.18.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security_center-v2/CHANGELOG.md b/google-cloud-security_center-v2/CHANGELOG.md index ca732c34e04d..8e9464e0a0c4 100644 --- a/google-cloud-security_center-v2/CHANGELOG.md +++ b/google-cloud-security_center-v2/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* add GCE to DeploymentPlatform enum ([#31007](https://github.com/googleapis/google-cloud-ruby/issues/31007)) +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ + ### 1.3.0 (2025-07-15) #### Features diff --git a/google-cloud-security_center-v2/google-cloud-security_center-v2.gemspec b/google-cloud-security_center-v2/google-cloud-security_center-v2.gemspec index e44eebb195f6..792088f8a2f5 100644 --- a/google-cloud-security_center-v2/google-cloud-security_center-v2.gemspec +++ b/google-cloud-security_center-v2/google-cloud-security_center-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-security_center-v2/lib/google/cloud/security_center/v2/version.rb b/google-cloud-security_center-v2/lib/google/cloud/security_center/v2/version.rb index 903fc371a9d2..9456fe390c81 100644 --- a/google-cloud-security_center-v2/lib/google/cloud/security_center/v2/version.rb +++ b/google-cloud-security_center-v2/lib/google/cloud/security_center/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecurityCenter module V2 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-security_center-v2/lib/google/cloud/securitycenter/v2/ai_model_pb.rb b/google-cloud-security_center-v2/lib/google/cloud/securitycenter/v2/ai_model_pb.rb index 54a0eff11416..f110a6045ed4 100644 --- a/google-cloud-security_center-v2/lib/google/cloud/securitycenter/v2/ai_model_pb.rb +++ b/google-cloud-security_center-v2/lib/google/cloud/securitycenter/v2/ai_model_pb.rb @@ -5,7 +5,7 @@ require 'google/protobuf' -descriptor_data = "\n-google/cloud/securitycenter/v2/ai_model.proto\x12\x1egoogle.cloud.securitycenter.v2\"\x9f\x02\n\x07\x41iModel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\x12\x0f\n\x07library\x18\x03 \x01(\t\x12\x10\n\x08location\x18\x04 \x01(\t\x12\x11\n\tpublisher\x18\x05 \x01(\t\x12W\n\x13\x64\x65ployment_platform\x18\x06 \x01(\x0e\x32:.google.cloud.securitycenter.v2.AiModel.DeploymentPlatform\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\"Q\n\x12\x44\x65ploymentPlatform\x12#\n\x1f\x44\x45PLOYMENT_PLATFORM_UNSPECIFIED\x10\x00\x12\r\n\tVERTEX_AI\x10\x01\x12\x07\n\x03GKE\x10\x02\x42\xe6\x01\n\"com.google.cloud.securitycenter.v2B\x0c\x41iModelProtoP\x01ZJcloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb\xaa\x02\x1eGoogle.Cloud.SecurityCenter.V2\xca\x02\x1eGoogle\\Cloud\\SecurityCenter\\V2\xea\x02!Google::Cloud::SecurityCenter::V2b\x06proto3" +descriptor_data = "\n-google/cloud/securitycenter/v2/ai_model.proto\x12\x1egoogle.cloud.securitycenter.v2\"\xbe\x02\n\x07\x41iModel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x64omain\x18\x02 \x01(\t\x12\x0f\n\x07library\x18\x03 \x01(\t\x12\x10\n\x08location\x18\x04 \x01(\t\x12\x11\n\tpublisher\x18\x05 \x01(\t\x12W\n\x13\x64\x65ployment_platform\x18\x06 \x01(\x0e\x32:.google.cloud.securitycenter.v2.AiModel.DeploymentPlatform\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\"p\n\x12\x44\x65ploymentPlatform\x12#\n\x1f\x44\x45PLOYMENT_PLATFORM_UNSPECIFIED\x10\x00\x12\r\n\tVERTEX_AI\x10\x01\x12\x07\n\x03GKE\x10\x02\x12\x07\n\x03GCE\x10\x03\x12\x14\n\x10\x46INE_TUNED_MODEL\x10\x04\x42\xe6\x01\n\"com.google.cloud.securitycenter.v2B\x0c\x41iModelProtoP\x01ZJcloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb\xaa\x02\x1eGoogle.Cloud.SecurityCenter.V2\xca\x02\x1eGoogle\\Cloud\\SecurityCenter\\V2\xea\x02!Google::Cloud::SecurityCenter::V2b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-security_center-v2/proto_docs/google/cloud/securitycenter/v2/ai_model.rb b/google-cloud-security_center-v2/proto_docs/google/cloud/securitycenter/v2/ai_model.rb index 898de40e9731..d0f01679f0b5 100644 --- a/google-cloud-security_center-v2/proto_docs/google/cloud/securitycenter/v2/ai_model.rb +++ b/google-cloud-security_center-v2/proto_docs/google/cloud/securitycenter/v2/ai_model.rb @@ -57,6 +57,12 @@ module DeploymentPlatform # Google Kubernetes Engine. GKE = 2 + + # Google Compute Engine. + GCE = 3 + + # Fine tuned model. + FINE_TUNED_MODEL = 4 end end end diff --git a/google-cloud-security_center-v2/snippets/snippet_metadata_google.cloud.securitycenter.v2.json b/google-cloud-security_center-v2/snippets/snippet_metadata_google.cloud.securitycenter.v2.json index 2b057b21c1b6..5435928be870 100644 --- a/google-cloud-security_center-v2/snippets/snippet_metadata_google.cloud.securitycenter.v2.json +++ b/google-cloud-security_center-v2/snippets/snippet_metadata_google.cloud.securitycenter.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security_center-v2", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security_center/CHANGELOG.md b/google-cloud-security_center/CHANGELOG.md index 3fd7df1261a7..91bd22a2c713 100644 --- a/google-cloud-security_center/CHANGELOG.md +++ b/google-cloud-security_center/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-security_center/README.md b/google-cloud-security_center/README.md index 67bc25309056..2b2527b5e43a 100644 --- a/google-cloud-security_center/README.md +++ b/google-cloud-security_center/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/securitycenter.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/security_center" + +client = Google::Cloud::SecurityCenter.security_center +request = ::Google::Cloud::SecurityCenter::V2::BatchCreateResourceValueConfigsRequest.new # (request fields as keyword arguments...) +response = client.batch_create_resource_value_configs request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-security_center/lib/google/cloud/security_center/version.rb b/google-cloud-security_center/lib/google/cloud/security_center/version.rb index b3c721e3ae19..06fe33911c53 100644 --- a/google-cloud-security_center/lib/google/cloud/security_center/version.rb +++ b/google-cloud-security_center/lib/google/cloud/security_center/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module SecurityCenter - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-security_center_management-v1/CHANGELOG.md b/google-cloud-security_center_management-v1/CHANGELOG.md index d35952899ee1..1b138c92b108 100644 --- a/google-cloud-security_center_management-v1/CHANGELOG.md +++ b/google-cloud-security_center_management-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-security_center_management-v1/google-cloud-security_center_management-v1.gemspec b/google-cloud-security_center_management-v1/google-cloud-security_center_management-v1.gemspec index b469b655cbc2..f378fdeee742 100644 --- a/google-cloud-security_center_management-v1/google-cloud-security_center_management-v1.gemspec +++ b/google-cloud-security_center_management-v1/google-cloud-security_center_management-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-security_center_management-v1/lib/google/cloud/security_center_management/v1/version.rb b/google-cloud-security_center_management-v1/lib/google/cloud/security_center_management/v1/version.rb index 341945f65642..bb05dcd53346 100644 --- a/google-cloud-security_center_management-v1/lib/google/cloud/security_center_management/v1/version.rb +++ b/google-cloud-security_center_management-v1/lib/google/cloud/security_center_management/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module SecurityCenterManagement module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-security_center_management-v1/snippets/snippet_metadata_google.cloud.securitycentermanagement.v1.json b/google-cloud-security_center_management-v1/snippets/snippet_metadata_google.cloud.securitycentermanagement.v1.json index 081393bdcd23..b681ac474a5a 100644 --- a/google-cloud-security_center_management-v1/snippets/snippet_metadata_google.cloud.securitycentermanagement.v1.json +++ b/google-cloud-security_center_management-v1/snippets/snippet_metadata_google.cloud.securitycentermanagement.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-security_center_management-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-security_center_management/CHANGELOG.md b/google-cloud-security_center_management/CHANGELOG.md index 28521fecd955..287bcb38073c 100644 --- a/google-cloud-security_center_management/CHANGELOG.md +++ b/google-cloud-security_center_management/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-security_center_management/README.md b/google-cloud-security_center_management/README.md index e2a1cba0f19a..494787bf8e3d 100644 --- a/google-cloud-security_center_management/README.md +++ b/google-cloud-security_center_management/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/securitycentermanagement.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/security_center_management" + +client = Google::Cloud::SecurityCenterManagement.security_center_management +request = ::Google::Cloud::SecurityCenterManagement::V1::ListEffectiveSecurityHealthAnalyticsCustomModulesRequest.new # (request fields as keyword arguments...) +response = client.list_effective_security_health_analytics_custom_modules request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-security_center_management/lib/google/cloud/security_center_management/version.rb b/google-cloud-security_center_management/lib/google/cloud/security_center_management/version.rb index 8402ec00f12a..1b0aac7199b5 100644 --- a/google-cloud-security_center_management/lib/google/cloud/security_center_management/version.rb +++ b/google-cloud-security_center_management/lib/google/cloud/security_center_management/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module SecurityCenterManagement - VERSION = "1.2.1" + VERSION = "1.2.2" end end end diff --git a/google-cloud-service_control-v1/CHANGELOG.md b/google-cloud-service_control-v1/CHANGELOG.md index d9646f13a7c2..2a33e4f6299f 100644 --- a/google-cloud-service_control-v1/CHANGELOG.md +++ b/google-cloud-service_control-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-service_control-v1/google-cloud-service_control-v1.gemspec b/google-cloud-service_control-v1/google-cloud-service_control-v1.gemspec index 05767869a3a6..e16a9fec501a 100644 --- a/google-cloud-service_control-v1/google-cloud-service_control-v1.gemspec +++ b/google-cloud-service_control-v1/google-cloud-service_control-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-service_control-v1/lib/google/cloud/service_control/v1/version.rb b/google-cloud-service_control-v1/lib/google/cloud/service_control/v1/version.rb index 595777d093d9..d4e212d2d134 100644 --- a/google-cloud-service_control-v1/lib/google/cloud/service_control/v1/version.rb +++ b/google-cloud-service_control-v1/lib/google/cloud/service_control/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ServiceControl module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-service_control-v1/snippets/snippet_metadata_google.api.servicecontrol.v1.json b/google-cloud-service_control-v1/snippets/snippet_metadata_google.api.servicecontrol.v1.json index 5109a103a089..233e13f4868a 100644 --- a/google-cloud-service_control-v1/snippets/snippet_metadata_google.api.servicecontrol.v1.json +++ b/google-cloud-service_control-v1/snippets/snippet_metadata_google.api.servicecontrol.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-service_control-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-service_control/CHANGELOG.md b/google-cloud-service_control/CHANGELOG.md index c4c728a2d9d6..1fb6ee5ce616 100644 --- a/google-cloud-service_control/CHANGELOG.md +++ b/google-cloud-service_control/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-service_control/README.md b/google-cloud-service_control/README.md index 9054ce15f8ca..4e1144c2af51 100644 --- a/google-cloud-service_control/README.md +++ b/google-cloud-service_control/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/servicecontrol.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/service_control" + +client = Google::Cloud::ServiceControl.quota_controller +request = ::Google::Cloud::ServiceControl::V1::AllocateQuotaRequest.new # (request fields as keyword arguments...) +response = client.allocate_quota request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-service_control/lib/google/cloud/service_control/version.rb b/google-cloud-service_control/lib/google/cloud/service_control/version.rb index dc02fd3082f0..5075d23b6ece 100644 --- a/google-cloud-service_control/lib/google/cloud/service_control/version.rb +++ b/google-cloud-service_control/lib/google/cloud/service_control/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ServiceControl - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-service_directory-v1/CHANGELOG.md b/google-cloud-service_directory-v1/CHANGELOG.md index 59d09219d35f..0c4bc55c58ae 100644 --- a/google-cloud-service_directory-v1/CHANGELOG.md +++ b/google-cloud-service_directory-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-service_directory-v1/google-cloud-service_directory-v1.gemspec b/google-cloud-service_directory-v1/google-cloud-service_directory-v1.gemspec index 452605582b48..85eb27c1425c 100644 --- a/google-cloud-service_directory-v1/google-cloud-service_directory-v1.gemspec +++ b/google-cloud-service_directory-v1/google-cloud-service_directory-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-service_directory-v1/lib/google/cloud/service_directory/v1/version.rb b/google-cloud-service_directory-v1/lib/google/cloud/service_directory/v1/version.rb index 8083e425fcf4..fccd158d5096 100644 --- a/google-cloud-service_directory-v1/lib/google/cloud/service_directory/v1/version.rb +++ b/google-cloud-service_directory-v1/lib/google/cloud/service_directory/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ServiceDirectory module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-service_directory-v1/snippets/snippet_metadata_google.cloud.servicedirectory.v1.json b/google-cloud-service_directory-v1/snippets/snippet_metadata_google.cloud.servicedirectory.v1.json index 37db0ec8879d..0c6ebfe03964 100644 --- a/google-cloud-service_directory-v1/snippets/snippet_metadata_google.cloud.servicedirectory.v1.json +++ b/google-cloud-service_directory-v1/snippets/snippet_metadata_google.cloud.servicedirectory.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-service_directory-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-service_directory-v1beta1/CHANGELOG.md b/google-cloud-service_directory-v1beta1/CHANGELOG.md index 586bafc7462d..3e2646d2120f 100644 --- a/google-cloud-service_directory-v1beta1/CHANGELOG.md +++ b/google-cloud-service_directory-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.19.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.18.0 (2025-05-12) #### Features diff --git a/google-cloud-service_directory-v1beta1/google-cloud-service_directory-v1beta1.gemspec b/google-cloud-service_directory-v1beta1/google-cloud-service_directory-v1beta1.gemspec index f5ed2de43395..5ed4e374b997 100644 --- a/google-cloud-service_directory-v1beta1/google-cloud-service_directory-v1beta1.gemspec +++ b/google-cloud-service_directory-v1beta1/google-cloud-service_directory-v1beta1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-service_directory-v1beta1/lib/google/cloud/service_directory/v1beta1/version.rb b/google-cloud-service_directory-v1beta1/lib/google/cloud/service_directory/v1beta1/version.rb index 55af835547b7..3974485c9874 100644 --- a/google-cloud-service_directory-v1beta1/lib/google/cloud/service_directory/v1beta1/version.rb +++ b/google-cloud-service_directory-v1beta1/lib/google/cloud/service_directory/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ServiceDirectory module V1beta1 - VERSION = "0.18.0" + VERSION = "0.19.0" end end end diff --git a/google-cloud-service_directory-v1beta1/snippets/snippet_metadata_google.cloud.servicedirectory.v1beta1.json b/google-cloud-service_directory-v1beta1/snippets/snippet_metadata_google.cloud.servicedirectory.v1beta1.json index 09d8a232a41c..61adf6f69a02 100644 --- a/google-cloud-service_directory-v1beta1/snippets/snippet_metadata_google.cloud.servicedirectory.v1beta1.json +++ b/google-cloud-service_directory-v1beta1/snippets/snippet_metadata_google.cloud.servicedirectory.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-service_directory-v1beta1", - "version": "0.18.0", + "version": "0.19.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-service_directory/CHANGELOG.md b/google-cloud-service_directory/CHANGELOG.md index c1e86d65922e..1896b77b976e 100644 --- a/google-cloud-service_directory/CHANGELOG.md +++ b/google-cloud-service_directory/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-service_directory/README.md b/google-cloud-service_directory/README.md index b2eec73e5d2c..a77bc8d141c8 100644 --- a/google-cloud-service_directory/README.md +++ b/google-cloud-service_directory/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/servicedirectory.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/service_directory" + +client = Google::Cloud::ServiceDirectory.lookup_service +request = ::Google::Cloud::ServiceDirectory::V1::ResolveServiceRequest.new # (request fields as keyword arguments...) +response = client.resolve_service request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-service_directory/lib/google/cloud/service_directory/version.rb b/google-cloud-service_directory/lib/google/cloud/service_directory/version.rb index 446f62dc6525..aa11d7c3e3bf 100644 --- a/google-cloud-service_directory/lib/google/cloud/service_directory/version.rb +++ b/google-cloud-service_directory/lib/google/cloud/service_directory/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module ServiceDirectory - VERSION = "2.0.1".freeze + VERSION = "2.0.2".freeze end end end diff --git a/google-cloud-service_health-v1/CHANGELOG.md b/google-cloud-service_health-v1/CHANGELOG.md index 9ba4708fc4d5..4f7d850a9cb3 100644 --- a/google-cloud-service_health-v1/CHANGELOG.md +++ b/google-cloud-service_health-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-service_health-v1/google-cloud-service_health-v1.gemspec b/google-cloud-service_health-v1/google-cloud-service_health-v1.gemspec index 4b4b4eaf4663..38e22a4b06e5 100644 --- a/google-cloud-service_health-v1/google-cloud-service_health-v1.gemspec +++ b/google-cloud-service_health-v1/google-cloud-service_health-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-service_health-v1/lib/google/cloud/service_health/v1/version.rb b/google-cloud-service_health-v1/lib/google/cloud/service_health/v1/version.rb index ce82c5d982b8..b868c1650490 100644 --- a/google-cloud-service_health-v1/lib/google/cloud/service_health/v1/version.rb +++ b/google-cloud-service_health-v1/lib/google/cloud/service_health/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ServiceHealth module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-service_health-v1/snippets/snippet_metadata_google.cloud.servicehealth.v1.json b/google-cloud-service_health-v1/snippets/snippet_metadata_google.cloud.servicehealth.v1.json index 446ded7f1831..c34b54584c7e 100644 --- a/google-cloud-service_health-v1/snippets/snippet_metadata_google.cloud.servicehealth.v1.json +++ b/google-cloud-service_health-v1/snippets/snippet_metadata_google.cloud.servicehealth.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-service_health-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-service_health/CHANGELOG.md b/google-cloud-service_health/CHANGELOG.md index a73be327d391..5e9f1184758d 100644 --- a/google-cloud-service_health/CHANGELOG.md +++ b/google-cloud-service_health/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-service_health/README.md b/google-cloud-service_health/README.md index 13ab0c63529a..8c6c3cbb7169 100644 --- a/google-cloud-service_health/README.md +++ b/google-cloud-service_health/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/servicehealth.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/service_health" + +client = Google::Cloud::ServiceHealth.service_health +request = ::Google::Cloud::ServiceHealth::V1::ListEventsRequest.new # (request fields as keyword arguments...) +response = client.list_events request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-service_health/lib/google/cloud/service_health/version.rb b/google-cloud-service_health/lib/google/cloud/service_health/version.rb index 8b3797ab8a8a..20d4e875594d 100644 --- a/google-cloud-service_health/lib/google/cloud/service_health/version.rb +++ b/google-cloud-service_health/lib/google/cloud/service_health/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ServiceHealth - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-service_management-v1/CHANGELOG.md b/google-cloud-service_management-v1/CHANGELOG.md index ca61157dcbb8..28e73126b286 100644 --- a/google-cloud-service_management-v1/CHANGELOG.md +++ b/google-cloud-service_management-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-service_management-v1/google-cloud-service_management-v1.gemspec b/google-cloud-service_management-v1/google-cloud-service_management-v1.gemspec index 96e4a4d7d219..67f45cd5405f 100644 --- a/google-cloud-service_management-v1/google-cloud-service_management-v1.gemspec +++ b/google-cloud-service_management-v1/google-cloud-service_management-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" end diff --git a/google-cloud-service_management-v1/lib/google/cloud/service_management/v1/version.rb b/google-cloud-service_management-v1/lib/google/cloud/service_management/v1/version.rb index 8d7570bcddea..7d186c0a9f24 100644 --- a/google-cloud-service_management-v1/lib/google/cloud/service_management/v1/version.rb +++ b/google-cloud-service_management-v1/lib/google/cloud/service_management/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ServiceManagement module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-service_management-v1/snippets/snippet_metadata_google.api.servicemanagement.v1.json b/google-cloud-service_management-v1/snippets/snippet_metadata_google.api.servicemanagement.v1.json index 920c4e929745..cb075ad46985 100644 --- a/google-cloud-service_management-v1/snippets/snippet_metadata_google.api.servicemanagement.v1.json +++ b/google-cloud-service_management-v1/snippets/snippet_metadata_google.api.servicemanagement.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-service_management-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-service_management/CHANGELOG.md b/google-cloud-service_management/CHANGELOG.md index 0de0cbc26d99..4866995fcaea 100644 --- a/google-cloud-service_management/CHANGELOG.md +++ b/google-cloud-service_management/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-service_management/README.md b/google-cloud-service_management/README.md index 2f0422f42a2a..9f2e27979905 100644 --- a/google-cloud-service_management/README.md +++ b/google-cloud-service_management/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/servicemanagement.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/service_management" + +client = Google::Cloud::ServiceManagement.service_manager +request = ::Google::Cloud::ServiceManagement::V1::ListServicesRequest.new # (request fields as keyword arguments...) +response = client.list_services request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-service_management/lib/google/cloud/service_management/version.rb b/google-cloud-service_management/lib/google/cloud/service_management/version.rb index 3b00ff857a95..fd0c97e3ff0c 100644 --- a/google-cloud-service_management/lib/google/cloud/service_management/version.rb +++ b/google-cloud-service_management/lib/google/cloud/service_management/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ServiceManagement - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-service_usage-v1/CHANGELOG.md b/google-cloud-service_usage-v1/CHANGELOG.md index db6686d3ac5e..591edb73117d 100644 --- a/google-cloud-service_usage-v1/CHANGELOG.md +++ b/google-cloud-service_usage-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-service_usage-v1/google-cloud-service_usage-v1.gemspec b/google-cloud-service_usage-v1/google-cloud-service_usage-v1.gemspec index 2e7ee89e144f..7c3cd29e4be8 100644 --- a/google-cloud-service_usage-v1/google-cloud-service_usage-v1.gemspec +++ b/google-cloud-service_usage-v1/google-cloud-service_usage-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-service_usage-v1/lib/google/cloud/service_usage/v1/version.rb b/google-cloud-service_usage-v1/lib/google/cloud/service_usage/v1/version.rb index 2a8ba14a0d7b..0df40f0316c9 100644 --- a/google-cloud-service_usage-v1/lib/google/cloud/service_usage/v1/version.rb +++ b/google-cloud-service_usage-v1/lib/google/cloud/service_usage/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module ServiceUsage module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-service_usage-v1/snippets/snippet_metadata_google.api.serviceusage.v1.json b/google-cloud-service_usage-v1/snippets/snippet_metadata_google.api.serviceusage.v1.json index 5859a66ecb76..951a01ad9391 100644 --- a/google-cloud-service_usage-v1/snippets/snippet_metadata_google.api.serviceusage.v1.json +++ b/google-cloud-service_usage-v1/snippets/snippet_metadata_google.api.serviceusage.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-service_usage-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-service_usage/CHANGELOG.md b/google-cloud-service_usage/CHANGELOG.md index 7b04a066a675..c1fad101f80b 100644 --- a/google-cloud-service_usage/CHANGELOG.md +++ b/google-cloud-service_usage/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-service_usage/README.md b/google-cloud-service_usage/README.md index 032d7d7a607c..e2a61474eb9e 100644 --- a/google-cloud-service_usage/README.md +++ b/google-cloud-service_usage/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/serviceusage.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/service_usage" + +client = Google::Cloud::ServiceUsage.service_usage +request = ::Google::Cloud::ServiceUsage::V1::EnableServiceRequest.new # (request fields as keyword arguments...) +response = client.enable_service request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-service_usage/lib/google/cloud/service_usage/version.rb b/google-cloud-service_usage/lib/google/cloud/service_usage/version.rb index bdbfa7115878..73181ca6e0a0 100644 --- a/google-cloud-service_usage/lib/google/cloud/service_usage/version.rb +++ b/google-cloud-service_usage/lib/google/cloud/service_usage/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module ServiceUsage - VERSION = "1.4.1" + VERSION = "1.4.2" end end end diff --git a/google-cloud-shell-v1/CHANGELOG.md b/google-cloud-shell-v1/CHANGELOG.md index 517bed0a22ab..7b0960dae711 100644 --- a/google-cloud-shell-v1/CHANGELOG.md +++ b/google-cloud-shell-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-shell-v1/google-cloud-shell-v1.gemspec b/google-cloud-shell-v1/google-cloud-shell-v1.gemspec index 88653930b497..0cb5339eb1c2 100644 --- a/google-cloud-shell-v1/google-cloud-shell-v1.gemspec +++ b/google-cloud-shell-v1/google-cloud-shell-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-shell-v1/lib/google/cloud/shell/v1/version.rb b/google-cloud-shell-v1/lib/google/cloud/shell/v1/version.rb index 275e63b05373..a7f1d89e271f 100644 --- a/google-cloud-shell-v1/lib/google/cloud/shell/v1/version.rb +++ b/google-cloud-shell-v1/lib/google/cloud/shell/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Shell module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-shell-v1/snippets/snippet_metadata_google.cloud.shell.v1.json b/google-cloud-shell-v1/snippets/snippet_metadata_google.cloud.shell.v1.json index a51ab45f5a9c..6c1df44ddb48 100644 --- a/google-cloud-shell-v1/snippets/snippet_metadata_google.cloud.shell.v1.json +++ b/google-cloud-shell-v1/snippets/snippet_metadata_google.cloud.shell.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-shell-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-shell/CHANGELOG.md b/google-cloud-shell/CHANGELOG.md index 4a9499bcf3d9..c695f065086e 100644 --- a/google-cloud-shell/CHANGELOG.md +++ b/google-cloud-shell/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-shell/README.md b/google-cloud-shell/README.md index 19f944318eb6..d8ad6287fb54 100644 --- a/google-cloud-shell/README.md +++ b/google-cloud-shell/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudshell.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/shell" + +client = Google::Cloud::Shell.cloud_shell_service +request = ::Google::Cloud::Shell::V1::GetEnvironmentRequest.new # (request fields as keyword arguments...) +response = client.get_environment request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-shell/lib/google/cloud/shell/version.rb b/google-cloud-shell/lib/google/cloud/shell/version.rb index 5c18bdc0a989..fdbb380a00a0 100644 --- a/google-cloud-shell/lib/google/cloud/shell/version.rb +++ b/google-cloud-shell/lib/google/cloud/shell/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Shell - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-spanner-admin-database-v1/CHANGELOG.md b/google-cloud-spanner-admin-database-v1/CHANGELOG.md index fc4f22d8b294..c8527bad0bdc 100644 --- a/google-cloud-spanner-admin-database-v1/CHANGELOG.md +++ b/google-cloud-spanner-admin-database-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.9.0 (2025-07-28) #### Features diff --git a/google-cloud-spanner-admin-database-v1/google-cloud-spanner-admin-database-v1.gemspec b/google-cloud-spanner-admin-database-v1/google-cloud-spanner-admin-database-v1.gemspec index a2a17c9c46c8..cc11d8a7b2ab 100644 --- a/google-cloud-spanner-admin-database-v1/google-cloud-spanner-admin-database-v1.gemspec +++ b/google-cloud-spanner-admin-database-v1/google-cloud-spanner-admin-database-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-spanner-admin-database-v1/lib/google/cloud/spanner/admin/database/v1/version.rb b/google-cloud-spanner-admin-database-v1/lib/google/cloud/spanner/admin/database/v1/version.rb index 9736c1fcffb7..a29abded805c 100644 --- a/google-cloud-spanner-admin-database-v1/lib/google/cloud/spanner/admin/database/v1/version.rb +++ b/google-cloud-spanner-admin-database-v1/lib/google/cloud/spanner/admin/database/v1/version.rb @@ -23,7 +23,7 @@ module Spanner module Admin module Database module V1 - VERSION = "1.9.0" + VERSION = "1.10.0" end end end diff --git a/google-cloud-spanner-admin-database-v1/snippets/snippet_metadata_google.spanner.admin.database.v1.json b/google-cloud-spanner-admin-database-v1/snippets/snippet_metadata_google.spanner.admin.database.v1.json index 731c87f5ae44..4ed6047d4265 100644 --- a/google-cloud-spanner-admin-database-v1/snippets/snippet_metadata_google.spanner.admin.database.v1.json +++ b/google-cloud-spanner-admin-database-v1/snippets/snippet_metadata_google.spanner.admin.database.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-spanner-admin-database-v1", - "version": "1.9.0", + "version": "1.10.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-spanner-admin-instance-v1/CHANGELOG.md b/google-cloud-spanner-admin-instance-v1/CHANGELOG.md index 1f0af70e9dbc..83387baf8a99 100644 --- a/google-cloud-spanner-admin-instance-v1/CHANGELOG.md +++ b/google-cloud-spanner-admin-instance-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-spanner-admin-instance-v1/google-cloud-spanner-admin-instance-v1.gemspec b/google-cloud-spanner-admin-instance-v1/google-cloud-spanner-admin-instance-v1.gemspec index 0bceaa3b0d53..cf8cdfdcad2d 100644 --- a/google-cloud-spanner-admin-instance-v1/google-cloud-spanner-admin-instance-v1.gemspec +++ b/google-cloud-spanner-admin-instance-v1/google-cloud-spanner-admin-instance-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-spanner-admin-instance-v1/lib/google/cloud/spanner/admin/instance/v1/version.rb b/google-cloud-spanner-admin-instance-v1/lib/google/cloud/spanner/admin/instance/v1/version.rb index c2d520902ea5..2a9ed99f5559 100644 --- a/google-cloud-spanner-admin-instance-v1/lib/google/cloud/spanner/admin/instance/v1/version.rb +++ b/google-cloud-spanner-admin-instance-v1/lib/google/cloud/spanner/admin/instance/v1/version.rb @@ -23,7 +23,7 @@ module Spanner module Admin module Instance module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-spanner-admin-instance-v1/snippets/snippet_metadata_google.spanner.admin.instance.v1.json b/google-cloud-spanner-admin-instance-v1/snippets/snippet_metadata_google.spanner.admin.instance.v1.json index ed5fe0df2e1f..73d401f10a7e 100644 --- a/google-cloud-spanner-admin-instance-v1/snippets/snippet_metadata_google.spanner.admin.instance.v1.json +++ b/google-cloud-spanner-admin-instance-v1/snippets/snippet_metadata_google.spanner.admin.instance.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-spanner-admin-instance-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-spanner-v1/CHANGELOG.md b/google-cloud-spanner-v1/CHANGELOG.md index c5e7655c689c..72ba35cc9c11 100644 --- a/google-cloud-spanner-v1/CHANGELOG.md +++ b/google-cloud-spanner-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 1.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 1.10.1 (2025-09-03) + +#### Documentation + +* A comment for field `ranges` in message `.google.spanner.v1.KeySet` is changed ([#30926](https://github.com/googleapis/google-cloud-ruby/issues/30926)) + ### 1.10.0 (2025-07-24) #### Features diff --git a/google-cloud-spanner-v1/google-cloud-spanner-v1.gemspec b/google-cloud-spanner-v1/google-cloud-spanner-v1.gemspec index 1d202a053c18..aa059c10b7aa 100644 --- a/google-cloud-spanner-v1/google-cloud-spanner-v1.gemspec +++ b/google-cloud-spanner-v1/google-cloud-spanner-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/spanner/client.rb b/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/spanner/client.rb index 6a1e26691c20..7eba8862d564 100644 --- a/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/spanner/client.rb +++ b/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/spanner/client.rb @@ -269,14 +269,14 @@ def logger # transaction internally, and count toward the one transaction # limit. # - # Active sessions use additional server resources, so it is a good idea to + # Active sessions use additional server resources, so it's a good idea to # delete idle and unneeded sessions. - # Aside from explicit deletes, Cloud Spanner may delete sessions for which no + # Aside from explicit deletes, Cloud Spanner can delete sessions when no # operations are sent for more than an hour. If a session is deleted, # requests to it return `NOT_FOUND`. # # Idle sessions can be kept alive by sending a trivial SQL query - # periodically, e.g., `"SELECT 1"`. + # periodically, for example, `"SELECT 1"`. # # @overload create_session(request, options = nil) # Pass arguments to `create_session` via a request object, either of type @@ -386,12 +386,12 @@ def create_session request, options = nil # @param database [::String] # Required. The database in which the new sessions are created. # @param session_template [::Google::Cloud::Spanner::V1::Session, ::Hash] - # Parameters to be applied to each created session. + # Parameters to apply to each created session. # @param session_count [::Integer] # Required. The number of sessions to be created in this batch call. - # The API may return fewer than the requested number of sessions. If a + # The API can return fewer than the requested number of sessions. If a # specific number of sessions are desired, the client can make additional - # calls to BatchCreateSessions (adjusting + # calls to `BatchCreateSessions` (adjusting # {::Google::Cloud::Spanner::V1::BatchCreateSessionsRequest#session_count session_count} # as necessary). # @@ -460,7 +460,7 @@ def batch_create_sessions request, options = nil end ## - # Gets a session. Returns `NOT_FOUND` if the session does not exist. + # Gets a session. Returns `NOT_FOUND` if the session doesn't exist. # This is mainly useful for determining whether a session is still # alive. # @@ -657,9 +657,9 @@ def list_sessions request, options = nil end ## - # Ends a session, releasing server resources associated with it. This will - # asynchronously trigger cancellation of any operations that are running with - # this session. + # Ends a session, releasing server resources associated with it. This + # asynchronously triggers the cancellation of any operations that are running + # with this session. # # @overload delete_session(request, options = nil) # Pass arguments to `delete_session` via a request object, either of type @@ -745,7 +745,7 @@ def delete_session request, options = nil ## # Executes an SQL statement, returning all results in a single reply. This - # method cannot be used to return a result set larger than 10 MiB; + # method can't be used to return a result set larger than 10 MiB; # if the query yields more data than that, the query fails with # a `FAILED_PRECONDITION` error. # @@ -758,6 +758,9 @@ def delete_session request, options = nil # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql ExecuteStreamingSql} # instead. # + # The query string can be SQL or [Graph Query Language + # (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro). + # # @overload execute_sql(request, options = nil) # Pass arguments to `execute_sql` via a request object, either of type # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest} or an equivalent Hash. @@ -782,7 +785,7 @@ def delete_session request, options = nil # transaction with strong concurrency. # # Standard DML statements require a read-write transaction. To protect - # against replays, single-use transactions are not supported. The caller + # against replays, single-use transactions are not supported. The caller # must either supply an existing transaction ID or begin a new transaction. # # Partitioned DML requires an existing Partitioned DML transaction ID. @@ -796,19 +799,19 @@ def delete_session request, options = nil # to the naming requirements of identifiers as specified at # https://cloud.google.com/spanner/docs/lexical#identifiers. # - # Parameters can appear anywhere that a literal value is expected. The same + # Parameters can appear anywhere that a literal value is expected. The same # parameter name can be used more than once, for example: # # `"WHERE id > @msg_id AND id < @msg_id + 100"` # - # It is an error to execute a SQL statement with unbound parameters. + # It's an error to execute a SQL statement with unbound parameters. # @param param_types [::Hash{::String => ::Google::Cloud::Spanner::V1::Type, ::Hash}] - # It is not always possible for Cloud Spanner to infer the right SQL type - # from a JSON value. For example, values of type `BYTES` and values + # It isn't always possible for Cloud Spanner to infer the right SQL type + # from a JSON value. For example, values of type `BYTES` and values # of type `STRING` both appear in # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#params params} as JSON strings. # - # In these cases, `param_types` can be used to specify the exact + # In these cases, you can use `param_types` to specify the exact # SQL type for some or all of the SQL statement parameters. See the # definition of {::Google::Cloud::Spanner::V1::Type Type} for more information # about SQL types. @@ -827,19 +830,19 @@ def delete_session request, options = nil # be set to # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryMode::NORMAL QueryMode.NORMAL}. # @param partition_token [::String] - # If present, results will be restricted to the specified partition - # previously created using PartitionQuery(). There must be an exact + # If present, results are restricted to the specified partition + # previously created using `PartitionQuery`. There must be an exact # match for the values of fields common to this message and the - # PartitionQueryRequest message used to create this partition_token. + # `PartitionQueryRequest` message used to create this `partition_token`. # @param seqno [::Integer] # A per-transaction sequence number used to identify this request. This field # makes each request idempotent such that if the request is received multiple - # times, at most one will succeed. + # times, at most one succeeds. # # The sequence number must be monotonically increasing within the # transaction. If a request arrives for the first time with an out-of-order - # sequence number, the transaction may be aborted. Replays of previously - # handled requests will yield the same response as the first execution. + # sequence number, the transaction can be aborted. Replays of previously + # handled requests yield the same response as the first execution. # # Required for DML statements. Ignored for queries. # @param query_options [::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryOptions, ::Hash] @@ -852,18 +855,18 @@ def delete_session request, options = nil # If this is for a partitioned query and this field is set to `true`, the # request is executed with Spanner Data Boost independent compute resources. # - # If the field is set to `true` but the request does not set + # If the field is set to `true` but the request doesn't set # `partition_token`, the API returns an `INVALID_ARGUMENT` error. # @param last_statement [::Boolean] - # Optional. If set to true, this statement marks the end of the transaction. - # The transaction should be committed or aborted after this statement - # executes, and attempts to execute any other requests against this - # transaction (including reads and queries) will be rejected. + # Optional. If set to `true`, this statement marks the end of the + # transaction. After this statement executes, you must commit or abort the + # transaction. Attempts to execute any other requests against this + # transaction (including reads and queries) are rejected. # - # For DML statements, setting this option may cause some error reporting to - # be deferred until commit time (e.g. validation of unique constraints). - # Given this, successful execution of a DML statement should not be assumed - # until a subsequent Commit call completes successfully. + # For DML statements, setting this option might cause some error reporting to + # be deferred until commit time (for example, validation of unique + # constraints). Given this, successful execution of a DML statement shouldn't + # be assumed until a subsequent `Commit` call completes successfully. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Cloud::Spanner::V1::ResultSet] @@ -936,6 +939,9 @@ def execute_sql request, options = nil # the size of the returned result set. However, no individual row in the # result set can exceed 100 MiB, and no column value can exceed 10 MiB. # + # The query string can be SQL or [Graph Query Language + # (GQL)](https://cloud.google.com/spanner/docs/reference/standard-sql/graph-intro). + # # @overload execute_streaming_sql(request, options = nil) # Pass arguments to `execute_streaming_sql` via a request object, either of type # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest} or an equivalent Hash. @@ -960,7 +966,7 @@ def execute_sql request, options = nil # transaction with strong concurrency. # # Standard DML statements require a read-write transaction. To protect - # against replays, single-use transactions are not supported. The caller + # against replays, single-use transactions are not supported. The caller # must either supply an existing transaction ID or begin a new transaction. # # Partitioned DML requires an existing Partitioned DML transaction ID. @@ -974,19 +980,19 @@ def execute_sql request, options = nil # to the naming requirements of identifiers as specified at # https://cloud.google.com/spanner/docs/lexical#identifiers. # - # Parameters can appear anywhere that a literal value is expected. The same + # Parameters can appear anywhere that a literal value is expected. The same # parameter name can be used more than once, for example: # # `"WHERE id > @msg_id AND id < @msg_id + 100"` # - # It is an error to execute a SQL statement with unbound parameters. + # It's an error to execute a SQL statement with unbound parameters. # @param param_types [::Hash{::String => ::Google::Cloud::Spanner::V1::Type, ::Hash}] - # It is not always possible for Cloud Spanner to infer the right SQL type - # from a JSON value. For example, values of type `BYTES` and values + # It isn't always possible for Cloud Spanner to infer the right SQL type + # from a JSON value. For example, values of type `BYTES` and values # of type `STRING` both appear in # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#params params} as JSON strings. # - # In these cases, `param_types` can be used to specify the exact + # In these cases, you can use `param_types` to specify the exact # SQL type for some or all of the SQL statement parameters. See the # definition of {::Google::Cloud::Spanner::V1::Type Type} for more information # about SQL types. @@ -1005,19 +1011,19 @@ def execute_sql request, options = nil # be set to # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryMode::NORMAL QueryMode.NORMAL}. # @param partition_token [::String] - # If present, results will be restricted to the specified partition - # previously created using PartitionQuery(). There must be an exact + # If present, results are restricted to the specified partition + # previously created using `PartitionQuery`. There must be an exact # match for the values of fields common to this message and the - # PartitionQueryRequest message used to create this partition_token. + # `PartitionQueryRequest` message used to create this `partition_token`. # @param seqno [::Integer] # A per-transaction sequence number used to identify this request. This field # makes each request idempotent such that if the request is received multiple - # times, at most one will succeed. + # times, at most one succeeds. # # The sequence number must be monotonically increasing within the # transaction. If a request arrives for the first time with an out-of-order - # sequence number, the transaction may be aborted. Replays of previously - # handled requests will yield the same response as the first execution. + # sequence number, the transaction can be aborted. Replays of previously + # handled requests yield the same response as the first execution. # # Required for DML statements. Ignored for queries. # @param query_options [::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryOptions, ::Hash] @@ -1030,18 +1036,18 @@ def execute_sql request, options = nil # If this is for a partitioned query and this field is set to `true`, the # request is executed with Spanner Data Boost independent compute resources. # - # If the field is set to `true` but the request does not set + # If the field is set to `true` but the request doesn't set # `partition_token`, the API returns an `INVALID_ARGUMENT` error. # @param last_statement [::Boolean] - # Optional. If set to true, this statement marks the end of the transaction. - # The transaction should be committed or aborted after this statement - # executes, and attempts to execute any other requests against this - # transaction (including reads and queries) will be rejected. + # Optional. If set to `true`, this statement marks the end of the + # transaction. After this statement executes, you must commit or abort the + # transaction. Attempts to execute any other requests against this + # transaction (including reads and queries) are rejected. # - # For DML statements, setting this option may cause some error reporting to - # be deferred until commit time (e.g. validation of unique constraints). - # Given this, successful execution of a DML statement should not be assumed - # until a subsequent Commit call completes successfully. + # For DML statements, setting this option might cause some error reporting to + # be deferred until commit time (for example, validation of unique + # constraints). Given this, successful execution of a DML statement shouldn't + # be assumed until a subsequent `Commit` call completes successfully. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Enumerable<::Google::Cloud::Spanner::V1::PartialResultSet>] @@ -1157,24 +1163,24 @@ def execute_streaming_sql request, options = nil # @param seqno [::Integer] # Required. A per-transaction sequence number used to identify this request. # This field makes each request idempotent such that if the request is - # received multiple times, at most one will succeed. + # received multiple times, at most one succeeds. # # The sequence number must be monotonically increasing within the # transaction. If a request arrives for the first time with an out-of-order - # sequence number, the transaction may be aborted. Replays of previously - # handled requests will yield the same response as the first execution. + # sequence number, the transaction might be aborted. Replays of previously + # handled requests yield the same response as the first execution. # @param request_options [::Google::Cloud::Spanner::V1::RequestOptions, ::Hash] # Common options for this request. # @param last_statements [::Boolean] - # Optional. If set to true, this request marks the end of the transaction. - # The transaction should be committed or aborted after these statements - # execute, and attempts to execute any other requests against this - # transaction (including reads and queries) will be rejected. + # Optional. If set to `true`, this request marks the end of the transaction. + # After these statements execute, you must commit or abort the transaction. + # Attempts to execute any other requests against this transaction + # (including reads and queries) are rejected. # - # Setting this option may cause some error reporting to be deferred until - # commit time (e.g. validation of unique constraints). Given this, successful - # execution of statements should not be assumed until a subsequent Commit - # call completes successfully. + # Setting this option might cause some error reporting to be deferred until + # commit time (for example, validation of unique constraints). Given this, + # successful execution of statements shouldn't be assumed until a subsequent + # `Commit` call completes successfully. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Cloud::Spanner::V1::ExecuteBatchDmlResponse] @@ -1243,7 +1249,7 @@ def execute_batch_dml request, options = nil ## # Reads rows from the database using key lookups and scans, as a # simple key/value style alternative to - # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_sql ExecuteSql}. This method cannot be + # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_sql ExecuteSql}. This method can't be # used to return a result set larger than 10 MiB; if the read matches more # data than that, the read fails with a `FAILED_PRECONDITION` # error. @@ -1299,15 +1305,15 @@ def execute_batch_dml request, options = nil # If the {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} # field is empty, rows are yielded in table primary key order (if # {::Google::Cloud::Spanner::V1::ReadRequest#index index} is empty) or index key order - # (if {::Google::Cloud::Spanner::V1::ReadRequest#index index} is non-empty). If the - # {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} field is - # not empty, rows will be yielded in an unspecified order. + # (if {::Google::Cloud::Spanner::V1::ReadRequest#index index} is non-empty). If the + # {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} field + # isn't empty, rows are yielded in an unspecified order. # - # It is not an error for the `key_set` to name rows that do not + # It isn't an error for the `key_set` to name rows that don't # exist in the database. Read yields nothing for nonexistent rows. # @param limit [::Integer] # If greater than zero, only the first `limit` rows are yielded. If `limit` - # is zero, the default is no limit. A limit cannot be specified if + # is zero, the default is no limit. A limit can't be specified if # `partition_token` is set. # @param resume_token [::String] # If this request is resuming a previously interrupted read, @@ -1317,8 +1323,8 @@ def execute_batch_dml request, options = nil # left off. The rest of the request parameters must exactly match the request # that yielded this token. # @param partition_token [::String] - # If present, results will be restricted to the specified partition - # previously created using PartitionRead(). There must be an exact + # If present, results are restricted to the specified partition + # previously created using `PartitionRead`. There must be an exact # match for the values of fields common to this message and the # PartitionReadRequest message used to create this partition_token. # @param request_options [::Google::Cloud::Spanner::V1::RequestOptions, ::Hash] @@ -1329,16 +1335,17 @@ def execute_batch_dml request, options = nil # If this is for a partitioned read and this field is set to `true`, the # request is executed with Spanner Data Boost independent compute resources. # - # If the field is set to `true` but the request does not set + # If the field is set to `true` but the request doesn't set # `partition_token`, the API returns an `INVALID_ARGUMENT` error. # @param order_by [::Google::Cloud::Spanner::V1::ReadRequest::OrderBy] # Optional. Order for the returned rows. # - # By default, Spanner will return result rows in primary key order except for - # PartitionRead requests. For applications that do not require rows to be + # By default, Spanner returns result rows in primary key order except for + # PartitionRead requests. For applications that don't require rows to be # returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting # `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval, - # resulting in lower latencies in certain cases (e.g. bulk point lookups). + # resulting in lower latencies in certain cases (for example, bulk point + # lookups). # @param lock_hint [::Google::Cloud::Spanner::V1::ReadRequest::LockHint] # Optional. Lock Hint for the request, it can only be used with read-write # transactions. @@ -1457,15 +1464,15 @@ def read request, options = nil # If the {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} # field is empty, rows are yielded in table primary key order (if # {::Google::Cloud::Spanner::V1::ReadRequest#index index} is empty) or index key order - # (if {::Google::Cloud::Spanner::V1::ReadRequest#index index} is non-empty). If the - # {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} field is - # not empty, rows will be yielded in an unspecified order. + # (if {::Google::Cloud::Spanner::V1::ReadRequest#index index} is non-empty). If the + # {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} field + # isn't empty, rows are yielded in an unspecified order. # - # It is not an error for the `key_set` to name rows that do not + # It isn't an error for the `key_set` to name rows that don't # exist in the database. Read yields nothing for nonexistent rows. # @param limit [::Integer] # If greater than zero, only the first `limit` rows are yielded. If `limit` - # is zero, the default is no limit. A limit cannot be specified if + # is zero, the default is no limit. A limit can't be specified if # `partition_token` is set. # @param resume_token [::String] # If this request is resuming a previously interrupted read, @@ -1475,8 +1482,8 @@ def read request, options = nil # left off. The rest of the request parameters must exactly match the request # that yielded this token. # @param partition_token [::String] - # If present, results will be restricted to the specified partition - # previously created using PartitionRead(). There must be an exact + # If present, results are restricted to the specified partition + # previously created using `PartitionRead`. There must be an exact # match for the values of fields common to this message and the # PartitionReadRequest message used to create this partition_token. # @param request_options [::Google::Cloud::Spanner::V1::RequestOptions, ::Hash] @@ -1487,16 +1494,17 @@ def read request, options = nil # If this is for a partitioned read and this field is set to `true`, the # request is executed with Spanner Data Boost independent compute resources. # - # If the field is set to `true` but the request does not set + # If the field is set to `true` but the request doesn't set # `partition_token`, the API returns an `INVALID_ARGUMENT` error. # @param order_by [::Google::Cloud::Spanner::V1::ReadRequest::OrderBy] # Optional. Order for the returned rows. # - # By default, Spanner will return result rows in primary key order except for - # PartitionRead requests. For applications that do not require rows to be + # By default, Spanner returns result rows in primary key order except for + # PartitionRead requests. For applications that don't require rows to be # returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting # `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval, - # resulting in lower latencies in certain cases (e.g. bulk point lookups). + # resulting in lower latencies in certain cases (for example, bulk point + # lookups). # @param lock_hint [::Google::Cloud::Spanner::V1::ReadRequest::LockHint] # Optional. Lock Hint for the request, it can only be used with read-write # transactions. @@ -1597,16 +1605,14 @@ def streaming_read request, options = nil # @param request_options [::Google::Cloud::Spanner::V1::RequestOptions, ::Hash] # Common options for this request. # Priority is ignored for this request. Setting the priority in this - # request_options struct will not do anything. To set the priority for a + # `request_options` struct doesn't do anything. To set the priority for a # transaction, set it on the reads and writes that are part of this # transaction instead. # @param mutation_key [::Google::Cloud::Spanner::V1::Mutation, ::Hash] # Optional. Required for read-write transactions on a multiplexed session - # that commit mutations but do not perform any reads or queries. Clients - # should randomly select one of the mutations from the mutation set and send - # it as a part of this request. - # This feature is not yet supported and will result in an UNIMPLEMENTED - # error. + # that commit mutations but don't perform any reads or queries. You must + # randomly select one of the mutations from the mutation set and send it as a + # part of this request. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Cloud::Spanner::V1::Transaction] @@ -1679,8 +1685,8 @@ def begin_transaction request, options = nil # `Commit` might return an `ABORTED` error. This can occur at any time; # commonly, the cause is conflicts with concurrent # transactions. However, it can also happen for a variety of other - # reasons. If `Commit` returns `ABORTED`, the caller should re-attempt - # the transaction from the beginning, re-using the same session. + # reasons. If `Commit` returns `ABORTED`, the caller should retry + # the transaction from the beginning, reusing the same session. # # On very rare occasions, `Commit` might return `UNKNOWN`. This can happen, # for example, if the client job experiences a 1+ hour networking failure. @@ -1715,7 +1721,7 @@ def begin_transaction request, options = nil # temporary transaction is non-idempotent. That is, if the # `CommitRequest` is sent to Cloud Spanner more than once (for # instance, due to retries in the application, or in the - # transport library), it is possible that the mutations are + # transport library), it's possible that the mutations are # executed more than once. If this is undesirable, use # {::Google::Cloud::Spanner::V1::Spanner::Client#begin_transaction BeginTransaction} and # {::Google::Cloud::Spanner::V1::Spanner::Client#commit Commit} instead. @@ -1726,24 +1732,22 @@ def begin_transaction request, options = nil # mutations are applied atomically, in the order they appear in # this list. # @param return_commit_stats [::Boolean] - # If `true`, then statistics related to the transaction will be included in + # If `true`, then statistics related to the transaction is included in # the {::Google::Cloud::Spanner::V1::CommitResponse#commit_stats CommitResponse}. # Default value is `false`. # @param max_commit_delay [::Google::Protobuf::Duration, ::Hash] - # Optional. The amount of latency this request is willing to incur in order - # to improve throughput. If this field is not set, Spanner assumes requests - # are relatively latency sensitive and automatically determines an - # appropriate delay time. You can specify a batching delay value between 0 - # and 500 ms. + # Optional. The amount of latency this request is configured to incur in + # order to improve throughput. If this field isn't set, Spanner assumes + # requests are relatively latency sensitive and automatically determines an + # appropriate delay time. You can specify a commit delay value between 0 and + # 500 ms. # @param request_options [::Google::Cloud::Spanner::V1::RequestOptions, ::Hash] # Common options for this request. # @param precommit_token [::Google::Cloud::Spanner::V1::MultiplexedSessionPrecommitToken, ::Hash] # Optional. If the read-write transaction was executed on a multiplexed - # session, the precommit token with the highest sequence number received in - # this transaction attempt, should be included here. Failing to do so will - # result in a FailedPrecondition error. - # This feature is not yet supported and will result in an UNIMPLEMENTED - # error. + # session, then you must include the precommit token with the highest + # sequence number received in this transaction attempt. Failing to do so + # results in a `FailedPrecondition` error. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Cloud::Spanner::V1::CommitResponse] @@ -1810,14 +1814,14 @@ def commit request, options = nil end ## - # Rolls back a transaction, releasing any locks it holds. It is a good + # Rolls back a transaction, releasing any locks it holds. It's a good # idea to call this for any transaction that includes one or more # {::Google::Cloud::Spanner::V1::Spanner::Client#read Read} or # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_sql ExecuteSql} requests and ultimately # decides not to commit. # # `Rollback` returns `OK` if it successfully aborts the transaction, the - # transaction was already aborted, or the transaction is not + # transaction was already aborted, or the transaction isn't # found. `Rollback` never returns `ABORTED`. # # @overload rollback(request, options = nil) @@ -1906,16 +1910,16 @@ def rollback request, options = nil ## # Creates a set of partition tokens that can be used to execute a query - # operation in parallel. Each of the returned partition tokens can be used + # operation in parallel. Each of the returned partition tokens can be used # by {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql ExecuteStreamingSql} to - # specify a subset of the query result to read. The same session and - # read-only transaction must be used by the PartitionQueryRequest used to - # create the partition tokens and the ExecuteSqlRequests that use the + # specify a subset of the query result to read. The same session and + # read-only transaction must be used by the `PartitionQueryRequest` used to + # create the partition tokens and the `ExecuteSqlRequests` that use the # partition tokens. # # Partition tokens become invalid when the session used to create them # is deleted, is idle for too long, begins a new transaction, or becomes too - # old. When any of these happen, it is not possible to resume the query, and + # old. When any of these happen, it isn't possible to resume the query, and # the whole operation must be restarted from the beginning. # # @overload partition_query(request, options = nil) @@ -1936,21 +1940,22 @@ def rollback request, options = nil # @param session [::String] # Required. The session used to create the partitions. # @param transaction [::Google::Cloud::Spanner::V1::TransactionSelector, ::Hash] - # Read only snapshot transactions are supported, read/write and single use - # transactions are not. + # Read-only snapshot transactions are supported, read and write and + # single-use transactions are not. # @param sql [::String] - # Required. The query request to generate partitions for. The request will - # fail if the query is not root partitionable. For a query to be root + # Required. The query request to generate partitions for. The request fails + # if the query isn't root partitionable. For a query to be root # partitionable, it needs to satisfy a few conditions. For example, if the # query execution plan contains a distributed union operator, then it must be # the first operator in the plan. For more information about other # conditions, see [Read data in # parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel). # - # The query request must not contain DML commands, such as INSERT, UPDATE, or - # DELETE. Use - # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql ExecuteStreamingSql} with a - # PartitionedDml transaction for large, partition-friendly DML operations. + # The query request must not contain DML commands, such as `INSERT`, + # `UPDATE`, or `DELETE`. Use + # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql `ExecuteStreamingSql`} with + # a `PartitionedDml` transaction for large, partition-friendly DML + # operations. # @param params [::Google::Protobuf::Struct, ::Hash] # Parameter names and values that bind to placeholders in the SQL string. # @@ -1958,15 +1963,15 @@ def rollback request, options = nil # parameter name (for example, `@firstName`). Parameter names can contain # letters, numbers, and underscores. # - # Parameters can appear anywhere that a literal value is expected. The same + # Parameters can appear anywhere that a literal value is expected. The same # parameter name can be used more than once, for example: # # `"WHERE id > @msg_id AND id < @msg_id + 100"` # - # It is an error to execute a SQL statement with unbound parameters. + # It's an error to execute a SQL statement with unbound parameters. # @param param_types [::Hash{::String => ::Google::Cloud::Spanner::V1::Type, ::Hash}] - # It is not always possible for Cloud Spanner to infer the right SQL type - # from a JSON value. For example, values of type `BYTES` and values + # It isn't always possible for Cloud Spanner to infer the right SQL type + # from a JSON value. For example, values of type `BYTES` and values # of type `STRING` both appear in # {::Google::Cloud::Spanner::V1::PartitionQueryRequest#params params} as JSON strings. # @@ -2043,18 +2048,18 @@ def partition_query request, options = nil ## # Creates a set of partition tokens that can be used to execute a read - # operation in parallel. Each of the returned partition tokens can be used + # operation in parallel. Each of the returned partition tokens can be used # by {::Google::Cloud::Spanner::V1::Spanner::Client#streaming_read StreamingRead} to specify a - # subset of the read result to read. The same session and read-only - # transaction must be used by the PartitionReadRequest used to create the - # partition tokens and the ReadRequests that use the partition tokens. There - # are no ordering guarantees on rows returned among the returned partition - # tokens, or even within each individual StreamingRead call issued with a - # partition_token. + # subset of the read result to read. The same session and read-only + # transaction must be used by the `PartitionReadRequest` used to create the + # partition tokens and the `ReadRequests` that use the partition tokens. + # There are no ordering guarantees on rows returned among the returned + # partition tokens, or even within each individual `StreamingRead` call + # issued with a `partition_token`. # # Partition tokens become invalid when the session used to create them # is deleted, is idle for too long, begins a new transaction, or becomes too - # old. When any of these happen, it is not possible to resume the read, and + # old. When any of these happen, it isn't possible to resume the read, and # the whole operation must be restarted from the beginning. # # @overload partition_read(request, options = nil) @@ -2098,7 +2103,7 @@ def partition_query request, options = nil # {::Google::Cloud::Spanner::V1::PartitionReadRequest#key_set key_set} instead names # index keys in {::Google::Cloud::Spanner::V1::PartitionReadRequest#index index}. # - # It is not an error for the `key_set` to name rows that do not + # It isn't an error for the `key_set` to name rows that don't # exist in the database. Read yields nothing for nonexistent rows. # @param partition_options [::Google::Cloud::Spanner::V1::PartitionOptions, ::Hash] # Additional options that affect how many partitions are created. @@ -2172,15 +2177,15 @@ def partition_read request, options = nil # transactions. All mutations in a group are committed atomically. However, # mutations across groups can be committed non-atomically in an unspecified # order and thus, they must be independent of each other. Partial failure is - # possible, i.e., some groups may have been committed successfully, while - # some may have failed. The results of individual batches are streamed into - # the response as the batches are applied. - # - # BatchWrite requests are not replay protected, meaning that each mutation - # group may be applied more than once. Replays of non-idempotent mutations - # may have undesirable effects. For example, replays of an insert mutation - # may produce an already exists error or if you use generated or commit - # timestamp-based keys, it may result in additional rows being added to the + # possible, that is, some groups might have been committed successfully, + # while some might have failed. The results of individual batches are + # streamed into the response as the batches are applied. + # + # `BatchWrite` requests are not replay protected, meaning that each mutation + # group can be applied more than once. Replays of non-idempotent mutations + # can have undesirable effects. For example, replays of an insert mutation + # can produce an already exists error or if you use generated or commit + # timestamp-based keys, it can result in additional rows being added to the # mutation's table. We recommend structuring your mutation groups to be # idempotent to avoid this issue. # @@ -2206,18 +2211,9 @@ def partition_read request, options = nil # @param mutation_groups [::Array<::Google::Cloud::Spanner::V1::BatchWriteRequest::MutationGroup, ::Hash>] # Required. The groups of mutations to be applied. # @param exclude_txn_from_change_streams [::Boolean] - # Optional. When `exclude_txn_from_change_streams` is set to `true`: - # * Mutations from all transactions in this batch write operation will not - # be recorded in change streams with DDL option `allow_txn_exclusion=true` - # that are tracking columns modified by these transactions. - # * Mutations from all transactions in this batch write operation will be - # recorded in change streams with DDL option `allow_txn_exclusion=false or - # not set` that are tracking columns modified by these transactions. - # - # When `exclude_txn_from_change_streams` is set to `false` or not set, - # mutations from all transactions in this batch write operation will be - # recorded in all change streams that are tracking columns modified by these - # transactions. + # Optional. If you don't set the `exclude_txn_from_change_streams` option or + # if it's set to `false`, then any change streams monitoring columns modified + # by transactions will capture the updates made within that transaction. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Enumerable<::Google::Cloud::Spanner::V1::BatchWriteResponse>] diff --git a/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/version.rb b/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/version.rb index 034a8b668005..30c287b788ac 100644 --- a/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/version.rb +++ b/google-cloud-spanner-v1/lib/google/cloud/spanner/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Spanner module V1 - VERSION = "1.10.0" + VERSION = "1.11.0" end end end diff --git a/google-cloud-spanner-v1/lib/google/spanner/v1/spanner_pb.rb b/google-cloud-spanner-v1/lib/google/spanner/v1/spanner_pb.rb index fff1c06fcd65..f78267d77964 100644 --- a/google-cloud-spanner-v1/lib/google/spanner/v1/spanner_pb.rb +++ b/google-cloud-spanner-v1/lib/google/spanner/v1/spanner_pb.rb @@ -21,7 +21,7 @@ require 'google/spanner/v1/type_pb' -descriptor_data = "\n\x1fgoogle/spanner/v1/spanner.proto\x12\x11google.spanner.v1\x1a\'google/spanner/v1/commit_response.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x1cgoogle/spanner/v1/keys.proto\x1a google/spanner/v1/mutation.proto\x1a\"google/spanner/v1/result_set.proto\x1a#google/spanner/v1/transaction.proto\x1a\x1cgoogle/spanner/v1/type.proto\"\x83\x01\n\x14\x43reateSessionRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x30\n\x07session\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.SessionB\x03\xe0\x41\x02\"\xa9\x01\n\x1a\x42\x61tchCreateSessionsRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x34\n\x10session_template\x18\x02 \x01(\x0b\x32\x1a.google.spanner.v1.Session\x12\x1a\n\rsession_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\"J\n\x1b\x42\x61tchCreateSessionsResponse\x12+\n\x07session\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\"\xa3\x03\n\x07Session\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x36\n\x06labels\x18\x02 \x03(\x0b\x32&.google.spanner.v1.Session.LabelsEntry\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x19\x61pproximate_last_use_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x14\n\x0c\x63reator_role\x18\x05 \x01(\t\x12\x18\n\x0bmultiplexed\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:t\xea\x41q\n\x1espanner.googleapis.com/Session\x12Oprojects/{project}/instances/{instance}/databases/{database}/sessions/{session}\"I\n\x11GetSessionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\"\x87\x01\n\x13ListSessionsRequest\x12\x39\n\x08\x64\x61tabase\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1fspanner.googleapis.com/Database\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"]\n\x14ListSessionsResponse\x12,\n\x08sessions\x18\x01 \x03(\x0b\x32\x1a.google.spanner.v1.Session\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"L\n\x14\x44\x65leteSessionRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\"\xdc\x01\n\x0eRequestOptions\x12<\n\x08priority\x18\x01 \x01(\x0e\x32*.google.spanner.v1.RequestOptions.Priority\x12\x13\n\x0brequest_tag\x18\x02 \x01(\t\x12\x17\n\x0ftransaction_tag\x18\x03 \x01(\t\"^\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cPRIORITY_LOW\x10\x01\x12\x13\n\x0fPRIORITY_MEDIUM\x10\x02\x12\x11\n\rPRIORITY_HIGH\x10\x03\"\xea\x04\n\x13\x44irectedReadOptions\x12R\n\x10include_replicas\x18\x01 \x01(\x0b\x32\x36.google.spanner.v1.DirectedReadOptions.IncludeReplicasH\x00\x12R\n\x10\x65xclude_replicas\x18\x02 \x01(\x0b\x32\x36.google.spanner.v1.DirectedReadOptions.ExcludeReplicasH\x00\x1a\xad\x01\n\x10ReplicaSelection\x12\x10\n\x08location\x18\x01 \x01(\t\x12J\n\x04type\x18\x02 \x01(\x0e\x32<.google.spanner.v1.DirectedReadOptions.ReplicaSelection.Type\";\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nREAD_WRITE\x10\x01\x12\r\n\tREAD_ONLY\x10\x02\x1a\x86\x01\n\x0fIncludeReplicas\x12S\n\x12replica_selections\x18\x01 \x03(\x0b\x32\x37.google.spanner.v1.DirectedReadOptions.ReplicaSelection\x12\x1e\n\x16\x61uto_failover_disabled\x18\x02 \x01(\x08\x1a\x66\n\x0f\x45xcludeReplicas\x12S\n\x12replica_selections\x18\x01 \x03(\x0b\x32\x37.google.spanner.v1.DirectedReadOptions.ReplicaSelectionB\n\n\x08replicas\"\x8d\x07\n\x11\x45xecuteSqlRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x10\n\x03sql\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12I\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x34.google.spanner.v1.ExecuteSqlRequest.ParamTypesEntry\x12\x14\n\x0cresume_token\x18\x06 \x01(\x0c\x12\x42\n\nquery_mode\x18\x07 \x01(\x0e\x32..google.spanner.v1.ExecuteSqlRequest.QueryMode\x12\x17\n\x0fpartition_token\x18\x08 \x01(\x0c\x12\r\n\x05seqno\x18\t \x01(\x03\x12H\n\rquery_options\x18\n \x01(\x0b\x32\x31.google.spanner.v1.ExecuteSqlRequest.QueryOptions\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0f \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x10 \x01(\x08\x12\x1b\n\x0elast_statement\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01\x1aO\n\x0cQueryOptions\x12\x19\n\x11optimizer_version\x18\x01 \x01(\t\x12$\n\x1coptimizer_statistics_package\x18\x02 \x01(\t\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"W\n\tQueryMode\x12\n\n\x06NORMAL\x10\x00\x12\x08\n\x04PLAN\x10\x01\x12\x0b\n\x07PROFILE\x10\x02\x12\x0e\n\nWITH_STATS\x10\x03\x12\x17\n\x13WITH_PLAN_AND_STATS\x10\x04\"\xbe\x04\n\x16\x45xecuteBatchDmlRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12@\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelectorB\x03\xe0\x41\x02\x12L\n\nstatements\x18\x03 \x03(\x0b\x32\x33.google.spanner.v1.ExecuteBatchDmlRequest.StatementB\x03\xe0\x41\x02\x12\x12\n\x05seqno\x18\x04 \x01(\x03\x42\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x05 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x1c\n\x0flast_statements\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01\x1a\xec\x01\n\tStatement\x12\x10\n\x03sql\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12X\n\x0bparam_types\x18\x03 \x03(\x0b\x32\x43.google.spanner.v1.ExecuteBatchDmlRequest.Statement.ParamTypesEntry\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xc3\x01\n\x17\x45xecuteBatchDmlResponse\x12\x31\n\x0bresult_sets\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.ResultSet\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12Q\n\x0fprecommit_token\x18\x03 \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\"H\n\x10PartitionOptions\x12\x1c\n\x14partition_size_bytes\x18\x01 \x01(\x03\x12\x16\n\x0emax_partitions\x18\x02 \x01(\x03\"\xa3\x03\n\x15PartitionQueryRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x10\n\x03sql\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\'\n\x06params\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12M\n\x0bparam_types\x18\x05 \x03(\x0b\x32\x38.google.spanner.v1.PartitionQueryRequest.ParamTypesEntry\x12>\n\x11partition_options\x18\x06 \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xb1\x02\n\x14PartitionReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x05 \x03(\t\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12>\n\x11partition_options\x18\t \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\"$\n\tPartition\x12\x17\n\x0fpartition_token\x18\x01 \x01(\x0c\"z\n\x11PartitionResponse\x12\x30\n\npartitions\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.Partition\x12\x33\n\x0btransaction\x18\x02 \x01(\x0b\x32\x1e.google.spanner.v1.Transaction\"\xf6\x05\n\x0bReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x14\n\x07\x63olumns\x18\x05 \x03(\tB\x03\xe0\x41\x02\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x08 \x01(\x03\x12\x14\n\x0cresume_token\x18\t \x01(\x0c\x12\x17\n\x0fpartition_token\x18\n \x01(\x0c\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0e \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x0f \x01(\x08\x12=\n\x08order_by\x18\x10 \x01(\x0e\x32&.google.spanner.v1.ReadRequest.OrderByB\x03\xe0\x41\x01\x12?\n\tlock_hint\x18\x11 \x01(\x0e\x32\'.google.spanner.v1.ReadRequest.LockHintB\x03\xe0\x41\x01\"T\n\x07OrderBy\x12\x18\n\x14ORDER_BY_UNSPECIFIED\x10\x00\x12\x18\n\x14ORDER_BY_PRIMARY_KEY\x10\x01\x12\x15\n\x11ORDER_BY_NO_ORDER\x10\x02\"T\n\x08LockHint\x12\x19\n\x15LOCK_HINT_UNSPECIFIED\x10\x00\x12\x14\n\x10LOCK_HINT_SHARED\x10\x01\x12\x17\n\x13LOCK_HINT_EXCLUSIVE\x10\x02\"\x83\x02\n\x17\x42\x65ginTransactionRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x07options\x18\x02 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsB\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x36\n\x0cmutation_key\x18\x04 \x01(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x01\"\xd0\x03\n\rCommitRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x18\n\x0etransaction_id\x18\x02 \x01(\x0cH\x00\x12G\n\x16single_use_transaction\x18\x03 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x12.\n\tmutations\x18\x04 \x03(\x0b\x32\x1b.google.spanner.v1.Mutation\x12\x1b\n\x13return_commit_stats\x18\x05 \x01(\x08\x12\x38\n\x10max_commit_delay\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12:\n\x0frequest_options\x18\x06 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12Q\n\x0fprecommit_token\x18\t \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\x42\r\n\x0btransaction\"g\n\x0fRollbackRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x1b\n\x0etransaction_id\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xce\x02\n\x11\x42\x61tchWriteRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12P\n\x0fmutation_groups\x18\x04 \x03(\x0b\x32\x32.google.spanner.v1.BatchWriteRequest.MutationGroupB\x03\xe0\x41\x02\x12,\n\x1f\x65xclude_txn_from_change_streams\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x44\n\rMutationGroup\x12\x33\n\tmutations\x18\x01 \x03(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x02\"\x7f\n\x12\x42\x61tchWriteResponse\x12\x0f\n\x07indexes\x18\x01 \x03(\x05\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12\x34\n\x10\x63ommit_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\x8b\x18\n\x07Spanner\x12\xa6\x01\n\rCreateSession\x12\'.google.spanner.v1.CreateSessionRequest\x1a\x1a.google.spanner.v1.Session\"P\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/instances/*/databases/*}/sessions:\x01*\x12\xe0\x01\n\x13\x42\x61tchCreateSessions\x12-.google.spanner.v1.BatchCreateSessionsRequest\x1a..google.spanner.v1.BatchCreateSessionsResponse\"j\xda\x41\x16\x64\x61tabase,session_count\x82\xd3\xe4\x93\x02K\"F/v1/{database=projects/*/instances/*/databases/*}/sessions:batchCreate:\x01*\x12\x97\x01\n\nGetSession\x12$.google.spanner.v1.GetSessionRequest\x1a\x1a.google.spanner.v1.Session\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:\x12\x38/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xae\x01\n\x0cListSessions\x12&.google.spanner.v1.ListSessionsRequest\x1a\'.google.spanner.v1.ListSessionsResponse\"M\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02<\x12:/v1/{database=projects/*/instances/*/databases/*}/sessions\x12\x99\x01\n\rDeleteSession\x12\'.google.spanner.v1.DeleteSessionRequest\x1a\x16.google.protobuf.Empty\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xa3\x01\n\nExecuteSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a\x1c.google.spanner.v1.ResultSet\"Q\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSql:\x01*\x12\xbe\x01\n\x13\x45xecuteStreamingSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a#.google.spanner.v1.PartialResultSet\"Z\x82\xd3\xe4\x93\x02T\"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeStreamingSql:\x01*0\x01\x12\xc0\x01\n\x0f\x45xecuteBatchDml\x12).google.spanner.v1.ExecuteBatchDmlRequest\x1a*.google.spanner.v1.ExecuteBatchDmlResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeBatchDml:\x01*\x12\x91\x01\n\x04Read\x12\x1e.google.spanner.v1.ReadRequest\x1a\x1c.google.spanner.v1.ResultSet\"K\x82\xd3\xe4\x93\x02\x45\"@/v1/{session=projects/*/instances/*/databases/*/sessions/*}:read:\x01*\x12\xac\x01\n\rStreamingRead\x12\x1e.google.spanner.v1.ReadRequest\x1a#.google.spanner.v1.PartialResultSet\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:streamingRead:\x01*0\x01\x12\xc9\x01\n\x10\x42\x65ginTransaction\x12*.google.spanner.v1.BeginTransactionRequest\x1a\x1e.google.spanner.v1.Transaction\"i\xda\x41\x0fsession,options\x82\xd3\xe4\x93\x02Q\"L/v1/{session=projects/*/instances/*/databases/*/sessions/*}:beginTransaction:\x01*\x12\xeb\x01\n\x06\x43ommit\x12 .google.spanner.v1.CommitRequest\x1a!.google.spanner.v1.CommitResponse\"\x9b\x01\xda\x41 session,transaction_id,mutations\xda\x41(session,single_use_transaction,mutations\x82\xd3\xe4\x93\x02G\"B/v1/{session=projects/*/instances/*/databases/*/sessions/*}:commit:\x01*\x12\xb0\x01\n\x08Rollback\x12\".google.spanner.v1.RollbackRequest\x1a\x16.google.protobuf.Empty\"h\xda\x41\x16session,transaction_id\x82\xd3\xe4\x93\x02I\"D/v1/{session=projects/*/instances/*/databases/*/sessions/*}:rollback:\x01*\x12\xb7\x01\n\x0ePartitionQuery\x12(.google.spanner.v1.PartitionQueryRequest\x1a$.google.spanner.v1.PartitionResponse\"U\x82\xd3\xe4\x93\x02O\"J/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\x01*\x12\xb4\x01\n\rPartitionRead\x12\'.google.spanner.v1.PartitionReadRequest\x1a$.google.spanner.v1.PartitionResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead:\x01*\x12\xc8\x01\n\nBatchWrite\x12$.google.spanner.v1.BatchWriteRequest\x1a%.google.spanner.v1.BatchWriteResponse\"k\xda\x41\x17session,mutation_groups\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:batchWrite:\x01*0\x01\x1aw\xca\x41\x16spanner.googleapis.com\xd2\x41[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spanner.dataB\x91\x02\n\x15\x63om.google.spanner.v1B\x0cSpannerProtoP\x01Z5cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V1\xea\x02\x1aGoogle::Cloud::Spanner::V1\xea\x41_\n\x1fspanner.googleapis.com/Database\x12\n\x11partition_options\x18\x06 \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\x1aJ\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.spanner.v1.Type:\x02\x38\x01\"\xb1\x02\n\x14PartitionReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x05 \x03(\t\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12>\n\x11partition_options\x18\t \x01(\x0b\x32#.google.spanner.v1.PartitionOptions\"$\n\tPartition\x12\x17\n\x0fpartition_token\x18\x01 \x01(\x0c\"z\n\x11PartitionResponse\x12\x30\n\npartitions\x18\x01 \x03(\x0b\x32\x1c.google.spanner.v1.Partition\x12\x33\n\x0btransaction\x18\x02 \x01(\x0b\x32\x1e.google.spanner.v1.Transaction\"\xf6\x05\n\x0bReadRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x0btransaction\x18\x02 \x01(\x0b\x32&.google.spanner.v1.TransactionSelector\x12\x12\n\x05table\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\r\n\x05index\x18\x04 \x01(\t\x12\x14\n\x07\x63olumns\x18\x05 \x03(\tB\x03\xe0\x41\x02\x12/\n\x07key_set\x18\x06 \x01(\x0b\x32\x19.google.spanner.v1.KeySetB\x03\xe0\x41\x02\x12\r\n\x05limit\x18\x08 \x01(\x03\x12\x14\n\x0cresume_token\x18\t \x01(\x0c\x12\x17\n\x0fpartition_token\x18\n \x01(\x0c\x12:\n\x0frequest_options\x18\x0b \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x45\n\x15\x64irected_read_options\x18\x0e \x01(\x0b\x32&.google.spanner.v1.DirectedReadOptions\x12\x1a\n\x12\x64\x61ta_boost_enabled\x18\x0f \x01(\x08\x12=\n\x08order_by\x18\x10 \x01(\x0e\x32&.google.spanner.v1.ReadRequest.OrderByB\x03\xe0\x41\x01\x12?\n\tlock_hint\x18\x11 \x01(\x0e\x32\'.google.spanner.v1.ReadRequest.LockHintB\x03\xe0\x41\x01\"T\n\x07OrderBy\x12\x18\n\x14ORDER_BY_UNSPECIFIED\x10\x00\x12\x18\n\x14ORDER_BY_PRIMARY_KEY\x10\x01\x12\x15\n\x11ORDER_BY_NO_ORDER\x10\x02\"T\n\x08LockHint\x12\x19\n\x15LOCK_HINT_UNSPECIFIED\x10\x00\x12\x14\n\x10LOCK_HINT_SHARED\x10\x01\x12\x17\n\x13LOCK_HINT_EXCLUSIVE\x10\x02\"\x83\x02\n\x17\x42\x65ginTransactionRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12;\n\x07options\x18\x02 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsB\x03\xe0\x41\x02\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12\x36\n\x0cmutation_key\x18\x04 \x01(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x01\"\xd0\x03\n\rCommitRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x18\n\x0etransaction_id\x18\x02 \x01(\x0cH\x00\x12G\n\x16single_use_transaction\x18\x03 \x01(\x0b\x32%.google.spanner.v1.TransactionOptionsH\x00\x12.\n\tmutations\x18\x04 \x03(\x0b\x32\x1b.google.spanner.v1.Mutation\x12\x1b\n\x13return_commit_stats\x18\x05 \x01(\x08\x12\x38\n\x10max_commit_delay\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01\x12:\n\x0frequest_options\x18\x06 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12Q\n\x0fprecommit_token\x18\t \x01(\x0b\x32\x33.google.spanner.v1.MultiplexedSessionPrecommitTokenB\x03\xe0\x41\x01\x42\r\n\x0btransaction\"g\n\x0fRollbackRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12\x1b\n\x0etransaction_id\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\xce\x02\n\x11\x42\x61tchWriteRequest\x12\x37\n\x07session\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1espanner.googleapis.com/Session\x12:\n\x0frequest_options\x18\x03 \x01(\x0b\x32!.google.spanner.v1.RequestOptions\x12P\n\x0fmutation_groups\x18\x04 \x03(\x0b\x32\x32.google.spanner.v1.BatchWriteRequest.MutationGroupB\x03\xe0\x41\x02\x12,\n\x1f\x65xclude_txn_from_change_streams\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x1a\x44\n\rMutationGroup\x12\x33\n\tmutations\x18\x01 \x03(\x0b\x32\x1b.google.spanner.v1.MutationB\x03\xe0\x41\x02\"\x7f\n\x12\x42\x61tchWriteResponse\x12\x0f\n\x07indexes\x18\x01 \x03(\x05\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\x12\x34\n\x10\x63ommit_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\x8b\x18\n\x07Spanner\x12\xa6\x01\n\rCreateSession\x12\'.google.spanner.v1.CreateSessionRequest\x1a\x1a.google.spanner.v1.Session\"P\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02?\":/v1/{database=projects/*/instances/*/databases/*}/sessions:\x01*\x12\xe0\x01\n\x13\x42\x61tchCreateSessions\x12-.google.spanner.v1.BatchCreateSessionsRequest\x1a..google.spanner.v1.BatchCreateSessionsResponse\"j\xda\x41\x16\x64\x61tabase,session_count\x82\xd3\xe4\x93\x02K\"F/v1/{database=projects/*/instances/*/databases/*}/sessions:batchCreate:\x01*\x12\x97\x01\n\nGetSession\x12$.google.spanner.v1.GetSessionRequest\x1a\x1a.google.spanner.v1.Session\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:\x12\x38/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xae\x01\n\x0cListSessions\x12&.google.spanner.v1.ListSessionsRequest\x1a\'.google.spanner.v1.ListSessionsResponse\"M\xda\x41\x08\x64\x61tabase\x82\xd3\xe4\x93\x02<\x12:/v1/{database=projects/*/instances/*/databases/*}/sessions\x12\x99\x01\n\rDeleteSession\x12\'.google.spanner.v1.DeleteSessionRequest\x1a\x16.google.protobuf.Empty\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:*8/v1/{name=projects/*/instances/*/databases/*/sessions/*}\x12\xa3\x01\n\nExecuteSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a\x1c.google.spanner.v1.ResultSet\"Q\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeSql:\x01*\x12\xbe\x01\n\x13\x45xecuteStreamingSql\x12$.google.spanner.v1.ExecuteSqlRequest\x1a#.google.spanner.v1.PartialResultSet\"Z\x82\xd3\xe4\x93\x02T\"O/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeStreamingSql:\x01*0\x01\x12\xc0\x01\n\x0f\x45xecuteBatchDml\x12).google.spanner.v1.ExecuteBatchDmlRequest\x1a*.google.spanner.v1.ExecuteBatchDmlResponse\"V\x82\xd3\xe4\x93\x02P\"K/v1/{session=projects/*/instances/*/databases/*/sessions/*}:executeBatchDml:\x01*\x12\x91\x01\n\x04Read\x12\x1e.google.spanner.v1.ReadRequest\x1a\x1c.google.spanner.v1.ResultSet\"K\x82\xd3\xe4\x93\x02\x45\"@/v1/{session=projects/*/instances/*/databases/*/sessions/*}:read:\x01*\x12\xac\x01\n\rStreamingRead\x12\x1e.google.spanner.v1.ReadRequest\x1a#.google.spanner.v1.PartialResultSet\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:streamingRead:\x01*0\x01\x12\xc9\x01\n\x10\x42\x65ginTransaction\x12*.google.spanner.v1.BeginTransactionRequest\x1a\x1e.google.spanner.v1.Transaction\"i\xda\x41\x0fsession,options\x82\xd3\xe4\x93\x02Q\"L/v1/{session=projects/*/instances/*/databases/*/sessions/*}:beginTransaction:\x01*\x12\xeb\x01\n\x06\x43ommit\x12 .google.spanner.v1.CommitRequest\x1a!.google.spanner.v1.CommitResponse\"\x9b\x01\xda\x41 session,transaction_id,mutations\xda\x41(session,single_use_transaction,mutations\x82\xd3\xe4\x93\x02G\"B/v1/{session=projects/*/instances/*/databases/*/sessions/*}:commit:\x01*\x12\xb0\x01\n\x08Rollback\x12\".google.spanner.v1.RollbackRequest\x1a\x16.google.protobuf.Empty\"h\xda\x41\x16session,transaction_id\x82\xd3\xe4\x93\x02I\"D/v1/{session=projects/*/instances/*/databases/*/sessions/*}:rollback:\x01*\x12\xb7\x01\n\x0ePartitionQuery\x12(.google.spanner.v1.PartitionQueryRequest\x1a$.google.spanner.v1.PartitionResponse\"U\x82\xd3\xe4\x93\x02O\"J/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionQuery:\x01*\x12\xb4\x01\n\rPartitionRead\x12\'.google.spanner.v1.PartitionReadRequest\x1a$.google.spanner.v1.PartitionResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{session=projects/*/instances/*/databases/*/sessions/*}:partitionRead:\x01*\x12\xc8\x01\n\nBatchWrite\x12$.google.spanner.v1.BatchWriteRequest\x1a%.google.spanner.v1.BatchWriteResponse\"k\xda\x41\x17session,mutation_groups\x82\xd3\xe4\x93\x02K\"F/v1/{session=projects/*/instances/*/databases/*/sessions/*}:batchWrite:\x01*0\x01\x1aw\xca\x41\x16spanner.googleapis.com\xd2\x41[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spanner.dataB\x91\x02\n\x15\x63om.google.spanner.v1B\x0cSpannerProtoP\x01Z5cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V1\xea\x02\x1aGoogle::Cloud::Spanner::V1\xea\x41_\n\x1fspanner.googleapis.com/Database\x12] - # A list of key ranges. See {::Google::Cloud::Spanner::V1::KeyRange KeyRange} for more information about - # key range specifications. + # A list of key ranges. See {::Google::Cloud::Spanner::V1::KeyRange KeyRange} for more + # information about key range specifications. # @!attribute [rw] all # @return [::Boolean] # For convenience `all` can be set to `true` to indicate that this diff --git a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/mutation.rb b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/mutation.rb index fa62386a5637..a483c13d5c1a 100644 --- a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/mutation.rb +++ b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/mutation.rb @@ -38,21 +38,24 @@ module V1 # Note: The following fields are mutually exclusive: `update`, `insert`, `insert_or_update`, `replace`, `delete`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] insert_or_update # @return [::Google::Cloud::Spanner::V1::Mutation::Write] - # Like {::Google::Cloud::Spanner::V1::Mutation#insert insert}, except that if the row already exists, then - # its column values are overwritten with the ones provided. Any - # column values not explicitly written are preserved. + # Like {::Google::Cloud::Spanner::V1::Mutation#insert insert}, except that if the row + # already exists, then its column values are overwritten with the ones + # provided. Any column values not explicitly written are preserved. # - # When using {::Google::Cloud::Spanner::V1::Mutation#insert_or_update insert_or_update}, just as when using {::Google::Cloud::Spanner::V1::Mutation#insert insert}, all `NOT - # NULL` columns in the table must be given a value. This holds true - # even when the row already exists and will therefore actually be updated. + # When using + # {::Google::Cloud::Spanner::V1::Mutation#insert_or_update insert_or_update}, just as + # when using {::Google::Cloud::Spanner::V1::Mutation#insert insert}, all `NOT NULL` + # columns in the table must be given a value. This holds true even when the + # row already exists and will therefore actually be updated. # # Note: The following fields are mutually exclusive: `insert_or_update`, `insert`, `update`, `replace`, `delete`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] replace # @return [::Google::Cloud::Spanner::V1::Mutation::Write] - # Like {::Google::Cloud::Spanner::V1::Mutation#insert insert}, except that if the row already exists, it is - # deleted, and the column values provided are inserted - # instead. Unlike {::Google::Cloud::Spanner::V1::Mutation#insert_or_update insert_or_update}, this means any values not - # explicitly written become `NULL`. + # Like {::Google::Cloud::Spanner::V1::Mutation#insert insert}, except that if the row + # already exists, it is deleted, and the column values provided are + # inserted instead. Unlike + # {::Google::Cloud::Spanner::V1::Mutation#insert_or_update insert_or_update}, this + # means any values not explicitly written become `NULL`. # # In an interleaved table, if you create the child table with the # `ON DELETE CASCADE` annotation, then replacing a parent row @@ -70,14 +73,17 @@ class Mutation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # Arguments to {::Google::Cloud::Spanner::V1::Mutation#insert insert}, {::Google::Cloud::Spanner::V1::Mutation#update update}, {::Google::Cloud::Spanner::V1::Mutation#insert_or_update insert_or_update}, and + # Arguments to {::Google::Cloud::Spanner::V1::Mutation#insert insert}, + # {::Google::Cloud::Spanner::V1::Mutation#update update}, + # {::Google::Cloud::Spanner::V1::Mutation#insert_or_update insert_or_update}, and # {::Google::Cloud::Spanner::V1::Mutation#replace replace} operations. # @!attribute [rw] table # @return [::String] # Required. The table whose rows will be written. # @!attribute [rw] columns # @return [::Array<::String>] - # The names of the columns in {::Google::Cloud::Spanner::V1::Mutation::Write#table table} to be written. + # The names of the columns in + # {::Google::Cloud::Spanner::V1::Mutation::Write#table table} to be written. # # The list of columns must contain enough columns to allow # Cloud Spanner to derive values for all primary key columns in the @@ -87,11 +93,13 @@ class Mutation # The values to be written. `values` can contain more than one # list of values. If it does, then multiple rows are written, one # for each entry in `values`. Each list in `values` must have - # exactly as many entries as there are entries in {::Google::Cloud::Spanner::V1::Mutation::Write#columns columns} - # above. Sending multiple lists is equivalent to sending multiple - # `Mutation`s, each containing one `values` entry and repeating - # {::Google::Cloud::Spanner::V1::Mutation::Write#table table} and {::Google::Cloud::Spanner::V1::Mutation::Write#columns columns}. Individual values in each list are - # encoded as described {::Google::Cloud::Spanner::V1::TypeCode here}. + # exactly as many entries as there are entries in + # {::Google::Cloud::Spanner::V1::Mutation::Write#columns columns} above. Sending + # multiple lists is equivalent to sending multiple `Mutation`s, each + # containing one `values` entry and repeating + # {::Google::Cloud::Spanner::V1::Mutation::Write#table table} and + # {::Google::Cloud::Spanner::V1::Mutation::Write#columns columns}. Individual values in + # each list are encoded as described {::Google::Cloud::Spanner::V1::TypeCode here}. class Write include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -103,12 +111,12 @@ class Write # Required. The table whose rows will be deleted. # @!attribute [rw] key_set # @return [::Google::Cloud::Spanner::V1::KeySet] - # Required. The primary keys of the rows within {::Google::Cloud::Spanner::V1::Mutation::Delete#table table} to delete. The - # primary keys must be specified in the order in which they appear in the - # `PRIMARY KEY()` clause of the table's equivalent DDL statement (the DDL - # statement used to create the table). - # Delete is idempotent. The transaction will succeed even if some or all - # rows do not exist. + # Required. The primary keys of the rows within + # {::Google::Cloud::Spanner::V1::Mutation::Delete#table table} to delete. The primary + # keys must be specified in the order in which they appear in the `PRIMARY + # KEY()` clause of the table's equivalent DDL statement (the DDL statement + # used to create the table). Delete is idempotent. The transaction will + # succeed even if some or all rows do not exist. class Delete include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/query_plan.rb b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/query_plan.rb index ccf2a01d3a7d..52ac00dbdfa9 100644 --- a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/query_plan.rb +++ b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/query_plan.rb @@ -21,17 +21,19 @@ module Google module Cloud module Spanner module V1 - # Node information for nodes appearing in a {::Google::Cloud::Spanner::V1::QueryPlan#plan_nodes QueryPlan.plan_nodes}. + # Node information for nodes appearing in a + # {::Google::Cloud::Spanner::V1::QueryPlan#plan_nodes QueryPlan.plan_nodes}. # @!attribute [rw] index # @return [::Integer] - # The `PlanNode`'s index in {::Google::Cloud::Spanner::V1::QueryPlan#plan_nodes node list}. + # The `PlanNode`'s index in [node + # list][google.spanner.v1.QueryPlan.plan_nodes]. # @!attribute [rw] kind # @return [::Google::Cloud::Spanner::V1::PlanNode::Kind] # Used to determine the type of node. May be needed for visualizing # different kinds of nodes differently. For example, If the node is a - # {::Google::Cloud::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} node, it will have a condensed representation - # which can be used to directly embed a description of the node in its - # parent. + # {::Google::Cloud::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} node, it will have a + # condensed representation which can be used to directly embed a description + # of the node in its parent. # @!attribute [rw] display_name # @return [::String] # The display name for the node. @@ -40,7 +42,8 @@ module V1 # List of child node `index`es and their relationship to this parent. # @!attribute [rw] short_representation # @return [::Google::Cloud::Spanner::V1::PlanNode::ShortRepresentation] - # Condensed representation for {::Google::Cloud::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} nodes. + # Condensed representation for + # {::Google::Cloud::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} nodes. # @!attribute [rw] metadata # @return [::Google::Protobuf::Struct] # Attributes relevant to the node contained in a group of key-value pairs. @@ -74,14 +77,14 @@ class PlanNode # with the output variable. # @!attribute [rw] variable # @return [::String] - # Only present if the child node is {::Google::Cloud::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} and corresponds - # to an output variable of the parent node. The field carries the name of - # the output variable. - # For example, a `TableScan` operator that reads rows from a table will - # have child links to the `SCALAR` nodes representing the output variables - # created for each column that is read by the operator. The corresponding - # `variable` fields will be set to the variable names assigned to the - # columns. + # Only present if the child node is + # {::Google::Cloud::Spanner::V1::PlanNode::Kind::SCALAR SCALAR} and corresponds to an + # output variable of the parent node. The field carries the name of the + # output variable. For example, a `TableScan` operator that reads rows from + # a table will have child links to the `SCALAR` nodes representing the + # output variables created for each column that is read by the operator. + # The corresponding `variable` fields will be set to the variable names + # assigned to the columns. class ChildLink include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -113,8 +116,8 @@ class SubqueriesEntry end end - # The kind of {::Google::Cloud::Spanner::V1::PlanNode PlanNode}. Distinguishes between the two different kinds of - # nodes that can appear in a query plan. + # The kind of {::Google::Cloud::Spanner::V1::PlanNode PlanNode}. Distinguishes between + # the two different kinds of nodes that can appear in a query plan. module Kind # Not specified. KIND_UNSPECIFIED = 0 @@ -136,8 +139,8 @@ module Kind # @!attribute [rw] plan_nodes # @return [::Array<::Google::Cloud::Spanner::V1::PlanNode>] # The nodes in the query plan. Plan nodes are returned in pre-order starting - # with the plan root. Each {::Google::Cloud::Spanner::V1::PlanNode PlanNode}'s `id` corresponds to its index in - # `plan_nodes`. + # with the plan root. Each {::Google::Cloud::Spanner::V1::PlanNode PlanNode}'s `id` + # corresponds to its index in `plan_nodes`. class QueryPlan include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/spanner.rb b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/spanner.rb index 12058a24a1b9..3e093d134843 100644 --- a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/spanner.rb +++ b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/spanner.rb @@ -40,13 +40,13 @@ class CreateSessionRequest # Required. The database in which the new sessions are created. # @!attribute [rw] session_template # @return [::Google::Cloud::Spanner::V1::Session] - # Parameters to be applied to each created session. + # Parameters to apply to each created session. # @!attribute [rw] session_count # @return [::Integer] # Required. The number of sessions to be created in this batch call. - # The API may return fewer than the requested number of sessions. If a + # The API can return fewer than the requested number of sessions. If a # specific number of sessions are desired, the client can make additional - # calls to BatchCreateSessions (adjusting + # calls to `BatchCreateSessions` (adjusting # {::Google::Cloud::Spanner::V1::BatchCreateSessionsRequest#session_count session_count} # as necessary). class BatchCreateSessionsRequest @@ -84,20 +84,21 @@ class BatchCreateSessionsResponse # Output only. The timestamp when the session is created. # @!attribute [r] approximate_last_use_time # @return [::Google::Protobuf::Timestamp] - # Output only. The approximate timestamp when the session is last used. It is + # Output only. The approximate timestamp when the session is last used. It's # typically earlier than the actual last use time. # @!attribute [rw] creator_role # @return [::String] # The database role which created this session. # @!attribute [rw] multiplexed # @return [::Boolean] - # Optional. If true, specifies a multiplexed session. A multiplexed session - # may be used for multiple, concurrent read-only operations but can not be - # used for read-write transactions, partitioned reads, or partitioned - # queries. Multiplexed sessions can be created via - # {::Google::Cloud::Spanner::V1::Spanner::Client#create_session CreateSession} but not via - # {::Google::Cloud::Spanner::V1::Spanner::Client#batch_create_sessions BatchCreateSessions}. - # Multiplexed sessions may not be deleted nor listed. + # Optional. If `true`, specifies a multiplexed session. Use a multiplexed + # session for multiple, concurrent read-only operations. Don't use them for + # read-write transactions, partitioned reads, or partitioned queries. Use + # {::Google::Cloud::Spanner::V1::Spanner::Client#create_session `sessions.create`} to create + # multiplexed sessions. Don't use + # {::Google::Cloud::Spanner::V1::Spanner::Client#batch_create_sessions BatchCreateSessions} to + # create a multiplexed session. You can't delete or list multiplexed + # sessions. class Session include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -183,47 +184,47 @@ class DeleteSessionRequest # @return [::String] # A per-request tag which can be applied to queries or reads, used for # statistics collection. - # Both request_tag and transaction_tag can be specified for a read or query - # that belongs to a transaction. - # This field is ignored for requests where it's not applicable (e.g. - # CommitRequest). + # Both `request_tag` and `transaction_tag` can be specified for a read or + # query that belongs to a transaction. + # This field is ignored for requests where it's not applicable (for example, + # `CommitRequest`). # Legal characters for `request_tag` values are all printable characters # (ASCII 32 - 126) and the length of a request_tag is limited to 50 # characters. Values that exceed this limit are truncated. - # Any leading underscore (_) characters will be removed from the string. + # Any leading underscore (_) characters are removed from the string. # @!attribute [rw] transaction_tag # @return [::String] # A tag used for statistics collection about this transaction. - # Both request_tag and transaction_tag can be specified for a read or query - # that belongs to a transaction. + # Both `request_tag` and `transaction_tag` can be specified for a read or + # query that belongs to a transaction. # The value of transaction_tag should be the same for all requests belonging # to the same transaction. - # If this request doesn't belong to any transaction, transaction_tag will be + # If this request doesn't belong to any transaction, `transaction_tag` is # ignored. # Legal characters for `transaction_tag` values are all printable characters - # (ASCII 32 - 126) and the length of a transaction_tag is limited to 50 + # (ASCII 32 - 126) and the length of a `transaction_tag` is limited to 50 # characters. Values that exceed this limit are truncated. - # Any leading underscore (_) characters will be removed from the string. + # Any leading underscore (_) characters are removed from the string. class RequestOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods - # The relative priority for requests. Note that priority is not applicable + # The relative priority for requests. Note that priority isn't applicable # for {::Google::Cloud::Spanner::V1::Spanner::Client#begin_transaction BeginTransaction}. # - # The priority acts as a hint to the Cloud Spanner scheduler and does not + # The priority acts as a hint to the Cloud Spanner scheduler and doesn't # guarantee priority or order of execution. For example: # # * Some parts of a write operation always execute at `PRIORITY_HIGH`, - # regardless of the specified priority. This may cause you to see an + # regardless of the specified priority. This can cause you to see an # increase in high priority workload even when executing a low priority # request. This can also potentially cause a priority inversion where a - # lower priority request will be fulfilled ahead of a higher priority + # lower priority request is fulfilled ahead of a higher priority # request. # * If a transaction contains multiple operations with different priorities, - # Cloud Spanner does not guarantee to process the higher priority - # operations first. There may be other constraints to satisfy, such as - # order of operations. + # Cloud Spanner doesn't guarantee to process the higher priority + # operations first. There might be other constraints to satisfy, such as + # the order of operations. module Priority # `PRIORITY_UNSPECIFIED` is equivalent to `PRIORITY_HIGH`. PRIORITY_UNSPECIFIED = 0 @@ -239,24 +240,24 @@ module Priority end end - # The DirectedReadOptions can be used to indicate which replicas or regions + # The `DirectedReadOptions` can be used to indicate which replicas or regions # should be used for non-transactional reads or queries. # - # DirectedReadOptions may only be specified for a read-only transaction, - # otherwise the API will return an `INVALID_ARGUMENT` error. + # `DirectedReadOptions` can only be specified for a read-only transaction, + # otherwise the API returns an `INVALID_ARGUMENT` error. # @!attribute [rw] include_replicas # @return [::Google::Cloud::Spanner::V1::DirectedReadOptions::IncludeReplicas] - # Include_replicas indicates the order of replicas (as they appear in - # this list) to process the request. If auto_failover_disabled is set to - # true and all replicas are exhausted without finding a healthy replica, - # Spanner will wait for a replica in the list to become available, requests - # may fail due to `DEADLINE_EXCEEDED` errors. + # `Include_replicas` indicates the order of replicas (as they appear in + # this list) to process the request. If `auto_failover_disabled` is set to + # `true` and all replicas are exhausted without finding a healthy replica, + # Spanner waits for a replica in the list to become available, requests + # might fail due to `DEADLINE_EXCEEDED` errors. # # Note: The following fields are mutually exclusive: `include_replicas`, `exclude_replicas`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] exclude_replicas # @return [::Google::Cloud::Spanner::V1::DirectedReadOptions::ExcludeReplicas] - # Exclude_replicas indicates that specified replicas should be excluded - # from serving requests. Spanner will not route requests to the replicas + # `Exclude_replicas` indicates that specified replicas should be excluded + # from serving requests. Spanner doesn't route requests to the replicas # in this list. # # Note: The following fields are mutually exclusive: `exclude_replicas`, `include_replicas`. If a field in that set is populated, all other fields in the set will automatically be cleared. @@ -275,16 +276,16 @@ class DirectedReadOptions # Some examples of using replica_selectors are: # # * `location:us-east1` --> The "us-east1" replica(s) of any available type - # will be used to process the request. - # * `type:READ_ONLY` --> The "READ_ONLY" type replica(s) in nearest - # available location will be used to process the + # is used to process the request. + # * `type:READ_ONLY` --> The "READ_ONLY" type replica(s) in the nearest + # available location are used to process the # request. # * `location:us-east1 type:READ_ONLY` --> The "READ_ONLY" type replica(s) - # in location "us-east1" will be used to process + # in location "us-east1" is used to process # the request. # @!attribute [rw] location # @return [::String] - # The location or region of the serving requests, e.g. "us-east1". + # The location or region of the serving requests, for example, "us-east1". # @!attribute [rw] type # @return [::Google::Cloud::Spanner::V1::DirectedReadOptions::ReplicaSelection::Type] # The type of replica. @@ -305,16 +306,16 @@ module Type end end - # An IncludeReplicas contains a repeated set of ReplicaSelection which + # An `IncludeReplicas` contains a repeated set of `ReplicaSelection` which # indicates the order in which replicas should be considered. # @!attribute [rw] replica_selections # @return [::Array<::Google::Cloud::Spanner::V1::DirectedReadOptions::ReplicaSelection>] # The directed read replica selector. # @!attribute [rw] auto_failover_disabled # @return [::Boolean] - # If true, Spanner will not route requests to a replica outside the - # include_replicas list when all of the specified replicas are unavailable - # or unhealthy. Default value is `false`. + # If `true`, Spanner doesn't route requests to a replica outside the + # <`include_replicas` list when all of the specified replicas are + # unavailable or unhealthy. Default value is `false`. class IncludeReplicas include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -344,7 +345,7 @@ class ExcludeReplicas # transaction with strong concurrency. # # Standard DML statements require a read-write transaction. To protect - # against replays, single-use transactions are not supported. The caller + # against replays, single-use transactions are not supported. The caller # must either supply an existing transaction ID or begin a new transaction. # # Partitioned DML requires an existing Partitioned DML transaction ID. @@ -360,20 +361,20 @@ class ExcludeReplicas # to the naming requirements of identifiers as specified at # https://cloud.google.com/spanner/docs/lexical#identifiers. # - # Parameters can appear anywhere that a literal value is expected. The same + # Parameters can appear anywhere that a literal value is expected. The same # parameter name can be used more than once, for example: # # `"WHERE id > @msg_id AND id < @msg_id + 100"` # - # It is an error to execute a SQL statement with unbound parameters. + # It's an error to execute a SQL statement with unbound parameters. # @!attribute [rw] param_types # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Spanner::V1::Type}] - # It is not always possible for Cloud Spanner to infer the right SQL type - # from a JSON value. For example, values of type `BYTES` and values + # It isn't always possible for Cloud Spanner to infer the right SQL type + # from a JSON value. For example, values of type `BYTES` and values # of type `STRING` both appear in # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest#params params} as JSON strings. # - # In these cases, `param_types` can be used to specify the exact + # In these cases, you can use `param_types` to specify the exact # SQL type for some or all of the SQL statement parameters. See the # definition of {::Google::Cloud::Spanner::V1::Type Type} for more information # about SQL types. @@ -395,20 +396,20 @@ class ExcludeReplicas # {::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryMode::NORMAL QueryMode.NORMAL}. # @!attribute [rw] partition_token # @return [::String] - # If present, results will be restricted to the specified partition - # previously created using PartitionQuery(). There must be an exact + # If present, results are restricted to the specified partition + # previously created using `PartitionQuery`. There must be an exact # match for the values of fields common to this message and the - # PartitionQueryRequest message used to create this partition_token. + # `PartitionQueryRequest` message used to create this `partition_token`. # @!attribute [rw] seqno # @return [::Integer] # A per-transaction sequence number used to identify this request. This field # makes each request idempotent such that if the request is received multiple - # times, at most one will succeed. + # times, at most one succeeds. # # The sequence number must be monotonically increasing within the # transaction. If a request arrives for the first time with an out-of-order - # sequence number, the transaction may be aborted. Replays of previously - # handled requests will yield the same response as the first execution. + # sequence number, the transaction can be aborted. Replays of previously + # handled requests yield the same response as the first execution. # # Required for DML statements. Ignored for queries. # @!attribute [rw] query_options @@ -425,19 +426,19 @@ class ExcludeReplicas # If this is for a partitioned query and this field is set to `true`, the # request is executed with Spanner Data Boost independent compute resources. # - # If the field is set to `true` but the request does not set + # If the field is set to `true` but the request doesn't set # `partition_token`, the API returns an `INVALID_ARGUMENT` error. # @!attribute [rw] last_statement # @return [::Boolean] - # Optional. If set to true, this statement marks the end of the transaction. - # The transaction should be committed or aborted after this statement - # executes, and attempts to execute any other requests against this - # transaction (including reads and queries) will be rejected. + # Optional. If set to `true`, this statement marks the end of the + # transaction. After this statement executes, you must commit or abort the + # transaction. Attempts to execute any other requests against this + # transaction (including reads and queries) are rejected. # - # For DML statements, setting this option may cause some error reporting to - # be deferred until commit time (e.g. validation of unique constraints). - # Given this, successful execution of a DML statement should not be assumed - # until a subsequent Commit call completes successfully. + # For DML statements, setting this option might cause some error reporting to + # be deferred until commit time (for example, validation of unique + # constraints). Given this, successful execution of a DML statement shouldn't + # be assumed until a subsequent `Commit` call completes successfully. class ExecuteSqlRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -457,7 +458,7 @@ class ExecuteSqlRequest # overrides the default optimizer version for query execution. # # The list of supported optimizer versions can be queried from - # SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS. + # `SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS`. # # Executing a SQL statement with an invalid optimizer version fails with # an `INVALID_ARGUMENT` error. @@ -477,13 +478,13 @@ class ExecuteSqlRequest # Specifying `latest` as a value instructs Cloud Spanner to use the latest # generated statistics package. If not specified, Cloud Spanner uses # the statistics package set at the database level options, or the latest - # package if the database option is not set. + # package if the database option isn't set. # # The statistics package requested by the query has to be exempt from # garbage collection. This can be achieved with the following DDL # statement: # - # ``` + # ```sql # ALTER STATISTICS SET OPTIONS (allow_gc=false) # ``` # @@ -518,7 +519,7 @@ module QueryMode # This mode returns the query plan, overall execution statistics, # operator level execution statistics along with the results. This has a - # performance overhead compared to the other modes. It is not recommended + # performance overhead compared to the other modes. It isn't recommended # to use this mode for production traffic. PROFILE = 2 @@ -555,26 +556,26 @@ module QueryMode # @return [::Integer] # Required. A per-transaction sequence number used to identify this request. # This field makes each request idempotent such that if the request is - # received multiple times, at most one will succeed. + # received multiple times, at most one succeeds. # # The sequence number must be monotonically increasing within the # transaction. If a request arrives for the first time with an out-of-order - # sequence number, the transaction may be aborted. Replays of previously - # handled requests will yield the same response as the first execution. + # sequence number, the transaction might be aborted. Replays of previously + # handled requests yield the same response as the first execution. # @!attribute [rw] request_options # @return [::Google::Cloud::Spanner::V1::RequestOptions] # Common options for this request. # @!attribute [rw] last_statements # @return [::Boolean] - # Optional. If set to true, this request marks the end of the transaction. - # The transaction should be committed or aborted after these statements - # execute, and attempts to execute any other requests against this - # transaction (including reads and queries) will be rejected. + # Optional. If set to `true`, this request marks the end of the transaction. + # After these statements execute, you must commit or abort the transaction. + # Attempts to execute any other requests against this transaction + # (including reads and queries) are rejected. # - # Setting this option may cause some error reporting to be deferred until - # commit time (e.g. validation of unique constraints). Given this, successful - # execution of statements should not be assumed until a subsequent Commit - # call completes successfully. + # Setting this option might cause some error reporting to be deferred until + # commit time (for example, validation of unique constraints). Given this, + # successful execution of statements shouldn't be assumed until a subsequent + # `Commit` call completes successfully. class ExecuteBatchDmlRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -591,16 +592,16 @@ class ExecuteBatchDmlRequest # parameter name (for example, `@firstName`). Parameter names can contain # letters, numbers, and underscores. # - # Parameters can appear anywhere that a literal value is expected. The + # Parameters can appear anywhere that a literal value is expected. The # same parameter name can be used more than once, for example: # # `"WHERE id > @msg_id AND id < @msg_id + 100"` # - # It is an error to execute a SQL statement with unbound parameters. + # It's an error to execute a SQL statement with unbound parameters. # @!attribute [rw] param_types # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Spanner::V1::Type}] - # It is not always possible for Cloud Spanner to infer the right SQL type - # from a JSON value. For example, values of type `BYTES` and values + # It isn't always possible for Cloud Spanner to infer the right SQL type + # from a JSON value. For example, values of type `BYTES` and values # of type `STRING` both appear in # {::Google::Cloud::Spanner::V1::ExecuteBatchDmlRequest::Statement#params params} as # JSON strings. @@ -672,38 +673,34 @@ class ParamTypesEntry # Otherwise, the error status of the first failed statement. # @!attribute [rw] precommit_token # @return [::Google::Cloud::Spanner::V1::MultiplexedSessionPrecommitToken] - # Optional. A precommit token will be included if the read-write transaction - # is on a multiplexed session. - # The precommit token with the highest sequence number from this transaction - # attempt should be passed to the + # Optional. A precommit token is included if the read-write transaction + # is on a multiplexed session. Pass the precommit token with the highest + # sequence number from this transaction attempt should be passed to the # {::Google::Cloud::Spanner::V1::Spanner::Client#commit Commit} request for this transaction. - # This feature is not yet supported and will result in an UNIMPLEMENTED - # error. class ExecuteBatchDmlResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end - # Options for a PartitionQueryRequest and - # PartitionReadRequest. + # Options for a `PartitionQueryRequest` and `PartitionReadRequest`. # @!attribute [rw] partition_size_bytes # @return [::Integer] - # **Note:** This hint is currently ignored by PartitionQuery and - # PartitionRead requests. + # **Note:** This hint is currently ignored by `PartitionQuery` and + # `PartitionRead` requests. # - # The desired data size for each partition generated. The default for this - # option is currently 1 GiB. This is only a hint. The actual size of each - # partition may be smaller or larger than this size request. + # The desired data size for each partition generated. The default for this + # option is currently 1 GiB. This is only a hint. The actual size of each + # partition can be smaller or larger than this size request. # @!attribute [rw] max_partitions # @return [::Integer] - # **Note:** This hint is currently ignored by PartitionQuery and - # PartitionRead requests. + # **Note:** This hint is currently ignored by `PartitionQuery` and + # `PartitionRead` requests. # - # The desired maximum number of partitions to return. For example, this may - # be set to the number of workers available. The default for this option - # is currently 10,000. The maximum value is currently 200,000. This is only - # a hint. The actual number of partitions returned may be smaller or larger - # than this maximum count request. + # The desired maximum number of partitions to return. For example, this + # might be set to the number of workers available. The default for this + # option is currently 10,000. The maximum value is currently 200,000. This + # is only a hint. The actual number of partitions returned can be smaller or + # larger than this maximum count request. class PartitionOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -715,22 +712,23 @@ class PartitionOptions # Required. The session used to create the partitions. # @!attribute [rw] transaction # @return [::Google::Cloud::Spanner::V1::TransactionSelector] - # Read only snapshot transactions are supported, read/write and single use - # transactions are not. + # Read-only snapshot transactions are supported, read and write and + # single-use transactions are not. # @!attribute [rw] sql # @return [::String] - # Required. The query request to generate partitions for. The request will - # fail if the query is not root partitionable. For a query to be root + # Required. The query request to generate partitions for. The request fails + # if the query isn't root partitionable. For a query to be root # partitionable, it needs to satisfy a few conditions. For example, if the # query execution plan contains a distributed union operator, then it must be # the first operator in the plan. For more information about other # conditions, see [Read data in # parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel). # - # The query request must not contain DML commands, such as INSERT, UPDATE, or - # DELETE. Use - # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql ExecuteStreamingSql} with a - # PartitionedDml transaction for large, partition-friendly DML operations. + # The query request must not contain DML commands, such as `INSERT`, + # `UPDATE`, or `DELETE`. Use + # {::Google::Cloud::Spanner::V1::Spanner::Client#execute_streaming_sql `ExecuteStreamingSql`} with + # a `PartitionedDml` transaction for large, partition-friendly DML + # operations. # @!attribute [rw] params # @return [::Google::Protobuf::Struct] # Parameter names and values that bind to placeholders in the SQL string. @@ -739,16 +737,16 @@ class PartitionOptions # parameter name (for example, `@firstName`). Parameter names can contain # letters, numbers, and underscores. # - # Parameters can appear anywhere that a literal value is expected. The same + # Parameters can appear anywhere that a literal value is expected. The same # parameter name can be used more than once, for example: # # `"WHERE id > @msg_id AND id < @msg_id + 100"` # - # It is an error to execute a SQL statement with unbound parameters. + # It's an error to execute a SQL statement with unbound parameters. # @!attribute [rw] param_types # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Spanner::V1::Type}] - # It is not always possible for Cloud Spanner to infer the right SQL type - # from a JSON value. For example, values of type `BYTES` and values + # It isn't always possible for Cloud Spanner to infer the right SQL type + # from a JSON value. For example, values of type `BYTES` and values # of type `STRING` both appear in # {::Google::Cloud::Spanner::V1::PartitionQueryRequest#params params} as JSON strings. # @@ -806,7 +804,7 @@ class ParamTypesEntry # {::Google::Cloud::Spanner::V1::PartitionReadRequest#key_set key_set} instead names # index keys in {::Google::Cloud::Spanner::V1::PartitionReadRequest#index index}. # - # It is not an error for the `key_set` to name rows that do not + # It isn't an error for the `key_set` to name rows that don't # exist in the database. Read yields nothing for nonexistent rows. # @!attribute [rw] partition_options # @return [::Google::Cloud::Spanner::V1::PartitionOptions] @@ -820,9 +818,9 @@ class PartitionReadRequest # PartitionResponse. # @!attribute [rw] partition_token # @return [::String] - # This token can be passed to Read, StreamingRead, ExecuteSql, or - # ExecuteStreamingSql requests to restrict the results to those identified by - # this partition token. + # This token can be passed to `Read`, `StreamingRead`, `ExecuteSql`, or + # `ExecuteStreamingSql` requests to restrict the results to those identified + # by this partition token. class Partition include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -877,16 +875,16 @@ class PartitionResponse # If the {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} # field is empty, rows are yielded in table primary key order (if # {::Google::Cloud::Spanner::V1::ReadRequest#index index} is empty) or index key order - # (if {::Google::Cloud::Spanner::V1::ReadRequest#index index} is non-empty). If the - # {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} field is - # not empty, rows will be yielded in an unspecified order. + # (if {::Google::Cloud::Spanner::V1::ReadRequest#index index} is non-empty). If the + # {::Google::Cloud::Spanner::V1::ReadRequest#partition_token partition_token} field + # isn't empty, rows are yielded in an unspecified order. # - # It is not an error for the `key_set` to name rows that do not + # It isn't an error for the `key_set` to name rows that don't # exist in the database. Read yields nothing for nonexistent rows. # @!attribute [rw] limit # @return [::Integer] # If greater than zero, only the first `limit` rows are yielded. If `limit` - # is zero, the default is no limit. A limit cannot be specified if + # is zero, the default is no limit. A limit can't be specified if # `partition_token` is set. # @!attribute [rw] resume_token # @return [::String] @@ -898,8 +896,8 @@ class PartitionResponse # that yielded this token. # @!attribute [rw] partition_token # @return [::String] - # If present, results will be restricted to the specified partition - # previously created using PartitionRead(). There must be an exact + # If present, results are restricted to the specified partition + # previously created using `PartitionRead`. There must be an exact # match for the values of fields common to this message and the # PartitionReadRequest message used to create this partition_token. # @!attribute [rw] request_options @@ -913,17 +911,18 @@ class PartitionResponse # If this is for a partitioned read and this field is set to `true`, the # request is executed with Spanner Data Boost independent compute resources. # - # If the field is set to `true` but the request does not set + # If the field is set to `true` but the request doesn't set # `partition_token`, the API returns an `INVALID_ARGUMENT` error. # @!attribute [rw] order_by # @return [::Google::Cloud::Spanner::V1::ReadRequest::OrderBy] # Optional. Order for the returned rows. # - # By default, Spanner will return result rows in primary key order except for - # PartitionRead requests. For applications that do not require rows to be + # By default, Spanner returns result rows in primary key order except for + # PartitionRead requests. For applications that don't require rows to be # returned in primary key (`ORDER_BY_PRIMARY_KEY`) order, setting # `ORDER_BY_NO_ORDER` option allows Spanner to optimize row retrieval, - # resulting in lower latencies in certain cases (e.g. bulk point lookups). + # resulting in lower latencies in certain cases (for example, bulk point + # lookups). # @!attribute [rw] lock_hint # @return [::Google::Cloud::Spanner::V1::ReadRequest::LockHint] # Optional. Lock Hint for the request, it can only be used with read-write @@ -936,13 +935,13 @@ class ReadRequest module OrderBy # Default value. # - # ORDER_BY_UNSPECIFIED is equivalent to ORDER_BY_PRIMARY_KEY. + # `ORDER_BY_UNSPECIFIED` is equivalent to `ORDER_BY_PRIMARY_KEY`. ORDER_BY_UNSPECIFIED = 0 # Read rows are returned in primary key order. # # In the event that this option is used in conjunction with the - # `partition_token` field, the API will return an `INVALID_ARGUMENT` error. + # `partition_token` field, the API returns an `INVALID_ARGUMENT` error. ORDER_BY_PRIMARY_KEY = 1 # Read rows are returned in any order. @@ -953,7 +952,7 @@ module OrderBy module LockHint # Default value. # - # LOCK_HINT_UNSPECIFIED is equivalent to LOCK_HINT_SHARED. + # `LOCK_HINT_UNSPECIFIED` is equivalent to `LOCK_HINT_SHARED`. LOCK_HINT_UNSPECIFIED = 0 # Acquire shared locks. @@ -984,8 +983,8 @@ module LockHint # serialized. Each transaction waits its turn to acquire the lock and # avoids getting into deadlock situations. # - # Because the exclusive lock hint is just a hint, it should not be - # considered equivalent to a mutex. In other words, you should not use + # Because the exclusive lock hint is just a hint, it shouldn't be + # considered equivalent to a mutex. In other words, you shouldn't use # Spanner exclusive locks as a mutual exclusion mechanism for the execution # of code outside of Spanner. # @@ -1010,17 +1009,15 @@ module LockHint # @return [::Google::Cloud::Spanner::V1::RequestOptions] # Common options for this request. # Priority is ignored for this request. Setting the priority in this - # request_options struct will not do anything. To set the priority for a + # `request_options` struct doesn't do anything. To set the priority for a # transaction, set it on the reads and writes that are part of this # transaction instead. # @!attribute [rw] mutation_key # @return [::Google::Cloud::Spanner::V1::Mutation] # Optional. Required for read-write transactions on a multiplexed session - # that commit mutations but do not perform any reads or queries. Clients - # should randomly select one of the mutations from the mutation set and send - # it as a part of this request. - # This feature is not yet supported and will result in an UNIMPLEMENTED - # error. + # that commit mutations but don't perform any reads or queries. You must + # randomly select one of the mutations from the mutation set and send it as a + # part of this request. class BeginTransactionRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1042,7 +1039,7 @@ class BeginTransactionRequest # temporary transaction is non-idempotent. That is, if the # `CommitRequest` is sent to Cloud Spanner more than once (for # instance, due to retries in the application, or in the - # transport library), it is possible that the mutations are + # transport library), it's possible that the mutations are # executed more than once. If this is undesirable, use # {::Google::Cloud::Spanner::V1::Spanner::Client#begin_transaction BeginTransaction} and # {::Google::Cloud::Spanner::V1::Spanner::Client#commit Commit} instead. @@ -1055,27 +1052,25 @@ class BeginTransactionRequest # this list. # @!attribute [rw] return_commit_stats # @return [::Boolean] - # If `true`, then statistics related to the transaction will be included in + # If `true`, then statistics related to the transaction is included in # the {::Google::Cloud::Spanner::V1::CommitResponse#commit_stats CommitResponse}. # Default value is `false`. # @!attribute [rw] max_commit_delay # @return [::Google::Protobuf::Duration] - # Optional. The amount of latency this request is willing to incur in order - # to improve throughput. If this field is not set, Spanner assumes requests - # are relatively latency sensitive and automatically determines an - # appropriate delay time. You can specify a batching delay value between 0 - # and 500 ms. + # Optional. The amount of latency this request is configured to incur in + # order to improve throughput. If this field isn't set, Spanner assumes + # requests are relatively latency sensitive and automatically determines an + # appropriate delay time. You can specify a commit delay value between 0 and + # 500 ms. # @!attribute [rw] request_options # @return [::Google::Cloud::Spanner::V1::RequestOptions] # Common options for this request. # @!attribute [rw] precommit_token # @return [::Google::Cloud::Spanner::V1::MultiplexedSessionPrecommitToken] # Optional. If the read-write transaction was executed on a multiplexed - # session, the precommit token with the highest sequence number received in - # this transaction attempt, should be included here. Failing to do so will - # result in a FailedPrecondition error. - # This feature is not yet supported and will result in an UNIMPLEMENTED - # error. + # session, then you must include the precommit token with the highest + # sequence number received in this transaction attempt. Failing to do so + # results in a `FailedPrecondition` error. class CommitRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1105,18 +1100,9 @@ class RollbackRequest # Required. The groups of mutations to be applied. # @!attribute [rw] exclude_txn_from_change_streams # @return [::Boolean] - # Optional. When `exclude_txn_from_change_streams` is set to `true`: - # * Mutations from all transactions in this batch write operation will not - # be recorded in change streams with DDL option `allow_txn_exclusion=true` - # that are tracking columns modified by these transactions. - # * Mutations from all transactions in this batch write operation will be - # recorded in change streams with DDL option `allow_txn_exclusion=false or - # not set` that are tracking columns modified by these transactions. - # - # When `exclude_txn_from_change_streams` is set to `false` or not set, - # mutations from all transactions in this batch write operation will be - # recorded in all change streams that are tracking columns modified by these - # transactions. + # Optional. If you don't set the `exclude_txn_from_change_streams` option or + # if it's set to `false`, then any change streams monitoring columns modified + # by transactions will capture the updates made within that transaction. class BatchWriteRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods diff --git a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/transaction.rb b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/transaction.rb index 8a12a6a7ca38..1b37ccc649b2 100644 --- a/google-cloud-spanner-v1/proto_docs/google/spanner/v1/transaction.rb +++ b/google-cloud-spanner-v1/proto_docs/google/spanner/v1/transaction.rb @@ -227,8 +227,9 @@ module IsolationLevel # actually occurred in parallel. Spanner assigns commit timestamps that # reflect the order of committed transactions to implement this property. # Spanner offers a stronger guarantee than serializability called external - # consistency. For further details, please refer to - # https://cloud.google.com/spanner/docs/true-time-external-consistency#serializability. + # consistency. For more information, see + # [TrueTime and external + # consistency](https://cloud.google.com/spanner/docs/true-time-external-consistency#serializability). SERIALIZABLE = 1 # All reads performed during the transaction observe a consistent snapshot diff --git a/google-cloud-spanner-v1/snippets/snippet_metadata_google.spanner.v1.json b/google-cloud-spanner-v1/snippets/snippet_metadata_google.spanner.v1.json index 19ceae5221c2..0d2b0e3e4502 100644 --- a/google-cloud-spanner-v1/snippets/snippet_metadata_google.spanner.v1.json +++ b/google-cloud-spanner-v1/snippets/snippet_metadata_google.spanner.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-spanner-v1", - "version": "1.10.0", + "version": "1.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-speech-v1/CHANGELOG.md b/google-cloud-speech-v1/CHANGELOG.md index 238d0be90693..abf1f35a1c69 100644 --- a/google-cloud-speech-v1/CHANGELOG.md +++ b/google-cloud-speech-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-speech-v1/google-cloud-speech-v1.gemspec b/google-cloud-speech-v1/google-cloud-speech-v1.gemspec index f7c666d85c14..c1aa290b9667 100644 --- a/google-cloud-speech-v1/google-cloud-speech-v1.gemspec +++ b/google-cloud-speech-v1/google-cloud-speech-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-speech-v1/lib/google/cloud/speech/v1/version.rb b/google-cloud-speech-v1/lib/google/cloud/speech/v1/version.rb index ec0a3fa33826..3bac8d0071fd 100644 --- a/google-cloud-speech-v1/lib/google/cloud/speech/v1/version.rb +++ b/google-cloud-speech-v1/lib/google/cloud/speech/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Speech module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-speech-v1/snippets/snippet_metadata_google.cloud.speech.v1.json b/google-cloud-speech-v1/snippets/snippet_metadata_google.cloud.speech.v1.json index d762936c88cb..3e24d9207648 100644 --- a/google-cloud-speech-v1/snippets/snippet_metadata_google.cloud.speech.v1.json +++ b/google-cloud-speech-v1/snippets/snippet_metadata_google.cloud.speech.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-speech-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-speech-v1p1beta1/CHANGELOG.md b/google-cloud-speech-v1p1beta1/CHANGELOG.md index 1bf72dde39ca..1d500f0806fe 100644 --- a/google-cloud-speech-v1p1beta1/CHANGELOG.md +++ b/google-cloud-speech-v1p1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.26.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.25.0 (2025-05-12) #### Features diff --git a/google-cloud-speech-v1p1beta1/google-cloud-speech-v1p1beta1.gemspec b/google-cloud-speech-v1p1beta1/google-cloud-speech-v1p1beta1.gemspec index c39ba028b52c..1b54feb70962 100644 --- a/google-cloud-speech-v1p1beta1/google-cloud-speech-v1p1beta1.gemspec +++ b/google-cloud-speech-v1p1beta1/google-cloud-speech-v1p1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-speech-v1p1beta1/lib/google/cloud/speech/v1p1beta1/version.rb b/google-cloud-speech-v1p1beta1/lib/google/cloud/speech/v1p1beta1/version.rb index 0ab74df1dfb3..ce28439081c3 100644 --- a/google-cloud-speech-v1p1beta1/lib/google/cloud/speech/v1p1beta1/version.rb +++ b/google-cloud-speech-v1p1beta1/lib/google/cloud/speech/v1p1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Speech module V1p1beta1 - VERSION = "0.25.0" + VERSION = "0.26.0" end end end diff --git a/google-cloud-speech-v1p1beta1/snippets/snippet_metadata_google.cloud.speech.v1p1beta1.json b/google-cloud-speech-v1p1beta1/snippets/snippet_metadata_google.cloud.speech.v1p1beta1.json index d0077d6daf41..cc0a89d8f5bf 100644 --- a/google-cloud-speech-v1p1beta1/snippets/snippet_metadata_google.cloud.speech.v1p1beta1.json +++ b/google-cloud-speech-v1p1beta1/snippets/snippet_metadata_google.cloud.speech.v1p1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-speech-v1p1beta1", - "version": "0.25.0", + "version": "0.26.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-speech-v2/CHANGELOG.md b/google-cloud-speech-v2/CHANGELOG.md index 1e2f9a58db1b..39f5e7c4076c 100644 --- a/google-cloud-speech-v2/CHANGELOG.md +++ b/google-cloud-speech-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.2.1 (2025-07-15) #### Documentation diff --git a/google-cloud-speech-v2/google-cloud-speech-v2.gemspec b/google-cloud-speech-v2/google-cloud-speech-v2.gemspec index bb5e9e6fa2b9..352e0bb5d42e 100644 --- a/google-cloud-speech-v2/google-cloud-speech-v2.gemspec +++ b/google-cloud-speech-v2/google-cloud-speech-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-speech-v2/lib/google/cloud/speech/v2/version.rb b/google-cloud-speech-v2/lib/google/cloud/speech/v2/version.rb index 57c1e2307e9b..690248ba2ac5 100644 --- a/google-cloud-speech-v2/lib/google/cloud/speech/v2/version.rb +++ b/google-cloud-speech-v2/lib/google/cloud/speech/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Speech module V2 - VERSION = "1.2.1" + VERSION = "1.3.0" end end end diff --git a/google-cloud-speech-v2/snippets/snippet_metadata_google.cloud.speech.v2.json b/google-cloud-speech-v2/snippets/snippet_metadata_google.cloud.speech.v2.json index dda014f75d61..eb0cdde39f63 100644 --- a/google-cloud-speech-v2/snippets/snippet_metadata_google.cloud.speech.v2.json +++ b/google-cloud-speech-v2/snippets/snippet_metadata_google.cloud.speech.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-speech-v2", - "version": "1.2.1", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-speech/CHANGELOG.md b/google-cloud-speech/CHANGELOG.md index b7e9ee4cdd92..10d2e10724b4 100644 --- a/google-cloud-speech/CHANGELOG.md +++ b/google-cloud-speech/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.4 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.3 (2025-08-29) #### Bug Fixes diff --git a/google-cloud-speech/README.md b/google-cloud-speech/README.md index 389805823711..fca2d9707cf0 100644 --- a/google-cloud-speech/README.md +++ b/google-cloud-speech/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/speech.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/speech" + +client = Google::Cloud::Speech.speech +request = ::Google::Cloud::Speech::V2::CreateRecognizerRequest.new # (request fields as keyword arguments...) +response = client.create_recognizer request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-speech/lib/google/cloud/speech/version.rb b/google-cloud-speech/lib/google/cloud/speech/version.rb index 32c80f4020a9..20bcb2c3c65f 100644 --- a/google-cloud-speech/lib/google/cloud/speech/version.rb +++ b/google-cloud-speech/lib/google/cloud/speech/version.rb @@ -16,7 +16,7 @@ module Google module Cloud module Speech - VERSION = "2.0.3".freeze + VERSION = "2.0.4".freeze end end end diff --git a/google-cloud-storage-control-v2/.owlbot-manifest.json b/google-cloud-storage-control-v2/.owlbot-manifest.json index bdd81b36dd22..91ebde47f320 100644 --- a/google-cloud-storage-control-v2/.owlbot-manifest.json +++ b/google-cloud-storage-control-v2/.owlbot-manifest.json @@ -25,6 +25,14 @@ "lib/google/cloud/storage/control/v2/storage_control/rest/client.rb", "lib/google/cloud/storage/control/v2/storage_control/rest/service_stub.rb", "lib/google/cloud/storage/control/v2/version.rb", + "lib/google/iam/v1.rb", + "lib/google/iam/v1/iam_policy.rb", + "lib/google/iam/v1/iam_policy/client.rb", + "lib/google/iam/v1/iam_policy/credentials.rb", + "lib/google/iam/v1/iam_policy/rest.rb", + "lib/google/iam/v1/iam_policy/rest/client.rb", + "lib/google/iam/v1/iam_policy/rest/service_stub.rb", + "lib/google/iam/v1/rest.rb", "lib/google/storage/control/v2/storage_control_pb.rb", "lib/google/storage/control/v2/storage_control_services_pb.rb", "proto_docs/README.md", @@ -34,6 +42,9 @@ "proto_docs/google/api/launch_stage.rb", "proto_docs/google/api/resource.rb", "proto_docs/google/api/routing.rb", + "proto_docs/google/iam/v1/iam_policy.rb", + "proto_docs/google/iam/v1/options.rb", + "proto_docs/google/iam/v1/policy.rb", "proto_docs/google/longrunning/operations.rb", "proto_docs/google/protobuf/any.rb", "proto_docs/google/protobuf/duration.rb", @@ -42,7 +53,12 @@ "proto_docs/google/protobuf/timestamp.rb", "proto_docs/google/rpc/status.rb", "proto_docs/google/storage/control/v2/storage_control.rb", + "proto_docs/google/type/expr.rb", "snippets/Gemfile", + "snippets/iam_policy/get_iam_policy.rb", + "snippets/iam_policy/set_iam_policy.rb", + "snippets/iam_policy/test_iam_permissions.rb", + "snippets/snippet_metadata_google.iam.v1.json", "snippets/snippet_metadata_google.storage.control.v2.json", "snippets/storage_control/create_anywhere_cache.rb", "snippets/storage_control/create_folder.rb", @@ -53,6 +69,7 @@ "snippets/storage_control/get_anywhere_cache.rb", "snippets/storage_control/get_folder.rb", "snippets/storage_control/get_folder_intelligence_config.rb", + "snippets/storage_control/get_iam_policy.rb", "snippets/storage_control/get_managed_folder.rb", "snippets/storage_control/get_organization_intelligence_config.rb", "snippets/storage_control/get_project_intelligence_config.rb", @@ -63,6 +80,8 @@ "snippets/storage_control/pause_anywhere_cache.rb", "snippets/storage_control/rename_folder.rb", "snippets/storage_control/resume_anywhere_cache.rb", + "snippets/storage_control/set_iam_policy.rb", + "snippets/storage_control/test_iam_permissions.rb", "snippets/storage_control/update_anywhere_cache.rb", "snippets/storage_control/update_folder_intelligence_config.rb", "snippets/storage_control/update_organization_intelligence_config.rb", @@ -71,6 +90,8 @@ "test/google/cloud/storage/control/v2/storage_control_paths_test.rb", "test/google/cloud/storage/control/v2/storage_control_rest_test.rb", "test/google/cloud/storage/control/v2/storage_control_test.rb", + "test/google/iam/v1/iam_policy_rest_test.rb", + "test/google/iam/v1/iam_policy_test.rb", "test/helper.rb" ], "static": [ diff --git a/google-cloud-storage-control-v2/AUTHENTICATION.md b/google-cloud-storage-control-v2/AUTHENTICATION.md index 9672b7b75ce0..679983eaa3d2 100644 --- a/google-cloud-storage-control-v2/AUTHENTICATION.md +++ b/google-cloud-storage-control-v2/AUTHENTICATION.md @@ -54,9 +54,9 @@ whenever possible. To configure a credentials file for an individual client initialization: ```ruby -require "google/cloud/storage/control/v2" +require "google/iam/v1" -client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| +client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| config.credentials = "path/to/credentialfile.json" end ``` @@ -64,13 +64,13 @@ end To configure a credentials file globally for all clients: ```ruby -require "google/cloud/storage/control/v2" +require "google/iam/v1" -::Google::Cloud::Storage::Control::V2::StorageControl::Client.configure do |config| +::Google::Iam::V1::IAMPolicy::Client.configure do |config| config.credentials = "path/to/credentialfile.json" end -client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new +client = ::Google::Iam::V1::IAMPolicy::Client.new ``` ### Environment Variables @@ -96,11 +96,11 @@ checks for credentials are: * `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file ```ruby -require "google/cloud/storage/control/v2" +require "google/iam/v1" ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" -client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new +client = ::Google::Iam::V1::IAMPolicy::Client.new ``` ### Local ADC file diff --git a/google-cloud-storage-control-v2/CHANGELOG.md b/google-cloud-storage-control-v2/CHANGELOG.md index 3b0796524e09..bc54f29e4caa 100644 --- a/google-cloud-storage-control-v2/CHANGELOG.md +++ b/google-cloud-storage-control-v2/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 1.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 1.6.0 (2025-09-10) + +#### Features + +* Add new GetIamPolicy, SetIamPolicy, and TestIamPermissions RPCs ([#30959](https://github.com/googleapis/google-cloud-ruby/issues/30959)) + ### 1.5.0 (2025-07-15) #### Features diff --git a/google-cloud-storage-control-v2/README.md b/google-cloud-storage-control-v2/README.md index ba465335ff4a..36af3873d21f 100644 --- a/google-cloud-storage-control-v2/README.md +++ b/google-cloud-storage-control-v2/README.md @@ -30,11 +30,11 @@ In order to use this library, you first need to go through the following steps: ## Quick Start ```ruby -require "google/cloud/storage/control/v2" +require "google/iam/v1" -client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new -request = ::Google::Cloud::Storage::Control::V2::CreateFolderRequest.new # (request fields as keyword arguments...) -response = client.create_folder request +client = ::Google::Iam::V1::IAMPolicy::Client.new +request = ::Google::Iam::V1::SetIamPolicyRequest.new # (request fields as keyword arguments...) +response = client.set_iam_policy request ``` View the [Client Library Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-storage-control-v2/latest) @@ -72,10 +72,10 @@ You can customize logging by modifying the `logger` configuration when constructing a client object. For example: ```ruby -require "google/cloud/storage/control/v2" +require "google/iam/v1" require "logger" -client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| +client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| config.logger = Logger.new "my-app.log" end ``` diff --git a/google-cloud-storage-control-v2/Rakefile b/google-cloud-storage-control-v2/Rakefile index a1cd914a8e7f..0dba71361fbc 100644 --- a/google-cloud-storage-control-v2/Rakefile +++ b/google-cloud-storage-control-v2/Rakefile @@ -57,8 +57,8 @@ task :acceptance, :project, :keyfile do |t, args| if project.nil? || keyfile.nil? fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or GOOGLE_CLOUD_TEST_PROJECT=test123 GOOGLE_CLOUD_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" end - require "google/cloud/storage/control/v2/storage_control/credentials" - ::Google::Cloud::Storage::Control::V2::StorageControl::Credentials.env_vars.each do |path| + require "google/iam/v1/iam_policy/credentials" + ::Google::Iam::V1::IAMPolicy::Credentials.env_vars.each do |path| ENV[path] = nil end ENV["GOOGLE_CLOUD_PROJECT"] = project diff --git a/google-cloud-storage-control-v2/gapic_metadata.json b/google-cloud-storage-control-v2/gapic_metadata.json index d7169831e6d9..460f0e3504a4 100644 --- a/google-cloud-storage-control-v2/gapic_metadata.json +++ b/google-cloud-storage-control-v2/gapic_metadata.json @@ -2,127 +2,27 @@ "schema": "1.0", "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", "language": "ruby", - "protoPackage": "google.storage.control.v2", - "libraryPackage": "::Google::Cloud::Storage::Control::V2", + "protoPackage": "google.iam.v1", + "libraryPackage": "::Google::Iam::V1", "services": { - "StorageControl": { + "IAMPolicy": { "clients": { "grpc": { - "libraryClient": "::Google::Cloud::Storage::Control::V2::StorageControl::Client", + "libraryClient": "::Google::Iam::V1::IAMPolicy::Client", "rpcs": { - "CreateFolder": { + "SetIamPolicy": { "methods": [ - "create_folder" + "set_iam_policy" ] }, - "DeleteFolder": { + "GetIamPolicy": { "methods": [ - "delete_folder" + "get_iam_policy" ] }, - "GetFolder": { + "TestIamPermissions": { "methods": [ - "get_folder" - ] - }, - "ListFolders": { - "methods": [ - "list_folders" - ] - }, - "RenameFolder": { - "methods": [ - "rename_folder" - ] - }, - "GetStorageLayout": { - "methods": [ - "get_storage_layout" - ] - }, - "CreateManagedFolder": { - "methods": [ - "create_managed_folder" - ] - }, - "DeleteManagedFolder": { - "methods": [ - "delete_managed_folder" - ] - }, - "GetManagedFolder": { - "methods": [ - "get_managed_folder" - ] - }, - "ListManagedFolders": { - "methods": [ - "list_managed_folders" - ] - }, - "CreateAnywhereCache": { - "methods": [ - "create_anywhere_cache" - ] - }, - "UpdateAnywhereCache": { - "methods": [ - "update_anywhere_cache" - ] - }, - "DisableAnywhereCache": { - "methods": [ - "disable_anywhere_cache" - ] - }, - "PauseAnywhereCache": { - "methods": [ - "pause_anywhere_cache" - ] - }, - "ResumeAnywhereCache": { - "methods": [ - "resume_anywhere_cache" - ] - }, - "GetAnywhereCache": { - "methods": [ - "get_anywhere_cache" - ] - }, - "ListAnywhereCaches": { - "methods": [ - "list_anywhere_caches" - ] - }, - "GetProjectIntelligenceConfig": { - "methods": [ - "get_project_intelligence_config" - ] - }, - "UpdateProjectIntelligenceConfig": { - "methods": [ - "update_project_intelligence_config" - ] - }, - "GetFolderIntelligenceConfig": { - "methods": [ - "get_folder_intelligence_config" - ] - }, - "UpdateFolderIntelligenceConfig": { - "methods": [ - "update_folder_intelligence_config" - ] - }, - "GetOrganizationIntelligenceConfig": { - "methods": [ - "get_organization_intelligence_config" - ] - }, - "UpdateOrganizationIntelligenceConfig": { - "methods": [ - "update_organization_intelligence_config" + "test_iam_permissions" ] } } diff --git a/google-cloud-storage-control-v2/google-cloud-storage-control-v2.gemspec b/google-cloud-storage-control-v2/google-cloud-storage-control-v2.gemspec index 022c88b5d5eb..70edb0b14eed 100644 --- a/google-cloud-storage-control-v2/google-cloud-storage-control-v2.gemspec +++ b/google-cloud-storage-control-v2/google-cloud-storage-control-v2.gemspec @@ -23,6 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" + gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-storage-control-v2/lib/google-cloud-storage-control-v2.rb b/google-cloud-storage-control-v2/lib/google-cloud-storage-control-v2.rb index 6b73cce6ccbf..25efa78bcd22 100644 --- a/google-cloud-storage-control-v2/lib/google-cloud-storage-control-v2.rb +++ b/google-cloud-storage-control-v2/lib/google-cloud-storage-control-v2.rb @@ -18,4 +18,5 @@ # This gem does not autoload during Bundler.require. To load this gem, # issue explicit require statements for the packages desired, e.g.: +# require "google/iam/v1" # require "google/cloud/storage/control/v2" diff --git a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb index 49742b574579..772b98028aab 100644 --- a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb +++ b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb @@ -2561,6 +2561,321 @@ def update_organization_intelligence_config request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Gets the IAM policy for a specified bucket. + # The `resource` field in the request should be + # `projects/_/buckets/{bucket}` for a bucket, or + # `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + # for a managed folder. + # + # @overload get_iam_policy(request, options = nil) + # Pass arguments to `get_iam_policy` via a request object, either of type + # {::Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::GetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_iam_policy(resource: nil, options: nil) + # Pass arguments to `get_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param options [::Google::Iam::V1::GetPolicyOptions, ::Hash] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::Policy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/storage/control/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::GetIamPolicyRequest.new + # + # # Call the get_iam_policy method. + # result = client.get_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def get_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::GetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource && !request.resource.empty? + header_params["bucket"] = request.resource + end + if request.resource + regex_match = %r{^(?projects/[^/]+/buckets/[^/]+)(?:/.*)?$}.match request.resource + if regex_match + header_params["bucket"] = regex_match["bucket".to_s] + end + end + + request_params_header = URI.encode_www_form header_params + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @storage_control_stub.call_rpc :get_iam_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates an IAM policy for the specified bucket. + # The `resource` field in the request should be + # `projects/_/buckets/{bucket}` for a bucket, or + # `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + # for a managed folder. + # + # @overload set_iam_policy(request, options = nil) + # Pass arguments to `set_iam_policy` via a request object, either of type + # {::Google::Iam::V1::SetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::SetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload set_iam_policy(resource: nil, policy: nil, update_mask: nil) + # Pass arguments to `set_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param policy [::Google::Iam::V1::Policy, ::Hash] + # REQUIRED: The complete policy to be applied to the `resource`. The size of + # the policy is limited to a few 10s of KB. An empty policy is a + # valid policy but certain Cloud Platform services (such as Projects) + # might reject them. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # + # `paths: "bindings, etag"` + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::Policy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/storage/control/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::SetIamPolicyRequest.new + # + # # Call the set_iam_policy method. + # result = client.set_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def set_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::SetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.set_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource && !request.resource.empty? + header_params["bucket"] = request.resource + end + if request.resource + regex_match = %r{^(?projects/[^/]+/buckets/[^/]+)(?:/.*)?$}.match request.resource + if regex_match + header_params["bucket"] = regex_match["bucket".to_s] + end + end + + request_params_header = URI.encode_www_form header_params + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.set_iam_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.set_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @storage_control_stub.call_rpc :set_iam_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Tests a set of permissions on the given bucket, object, or managed folder + # to see which, if any, are held by the caller. + # The `resource` field in the request should be + # `projects/_/buckets/{bucket}` for a bucket, + # `projects/_/buckets/{bucket}/objects/{object}` for an object, or + # `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + # for a managed folder. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::TestIamPermissionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload test_iam_permissions(resource: nil, permissions: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param permissions [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/storage/control/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::TestIamPermissionsRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::TestIamPermissionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource && !request.resource.empty? + header_params["bucket"] = request.resource + end + if request.resource + regex_match = %r{^(?projects/[^/]+/buckets/[^/]+)/objects(?:/.*)?$}.match request.resource + if regex_match + header_params["bucket"] = regex_match["bucket".to_s] + end + end + if request.resource + regex_match = %r{^(?projects/[^/]+/buckets/[^/]+)/managedFolders(?:/.*)?$}.match request.resource + if regex_match + header_params["bucket"] = regex_match["bucket".to_s] + end + end + + request_params_header = URI.encode_www_form header_params + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @storage_control_stub.call_rpc :test_iam_permissions, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the StorageControl API. # @@ -2842,6 +3157,21 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :update_organization_intelligence_config + ## + # RPC-specific configuration for `get_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_iam_policy + ## + # RPC-specific configuration for `set_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :set_iam_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions # @private def initialize parent_rpcs = nil @@ -2891,6 +3221,12 @@ def initialize parent_rpcs = nil @get_organization_intelligence_config = ::Gapic::Config::Method.new get_organization_intelligence_config_config update_organization_intelligence_config_config = parent_rpcs.update_organization_intelligence_config if parent_rpcs.respond_to? :update_organization_intelligence_config @update_organization_intelligence_config = ::Gapic::Config::Method.new update_organization_intelligence_config_config + get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy + @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config + set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy + @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config yield self if block_given? end diff --git a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/version.rb b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/version.rb index 0c9fa0acae1b..9c1f39e42c89 100644 --- a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/version.rb +++ b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/version.rb @@ -22,7 +22,7 @@ module Cloud module Storage module Control module V2 - VERSION = "1.5.0" + VERSION = "1.7.0" end end end diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1.rb b/google-cloud-storage-control-v2/lib/google/iam/v1.rb new file mode 100644 index 000000000000..79112374d084 --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/iam/v1/iam_policy" +require "google/cloud/storage/control/v2/version" + +module Google + module Iam + ## + # API client module. + # + # @example Load this package, including all its services, and instantiate a gRPC client + # + # require "google/iam/v1" + # client = ::Google::Iam::V1::IAMPolicy::Client.new + # + # @example Load this package, including all its services, and instantiate a REST client + # + # require "google/iam/v1" + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + module V1 + end + end +end + +helper_path = ::File.join __dir__, "v1", "_helpers.rb" +require "google/iam/v1/_helpers" if ::File.file? helper_path diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy.rb new file mode 100644 index 000000000000..17451c8db9d4 --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy.rb @@ -0,0 +1,76 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/storage/control/v2/version" + +require "google/iam/v1/iam_policy/credentials" +require "google/iam/v1/iam_policy/client" +require "google/iam/v1/iam_policy/rest" + +module Google + module Iam + module V1 + ## + # API Overview + # + # Manages Identity and Access Management (IAM) policies. + # + # Any implementation of an API that offers access control features + # implements the google.iam.v1.IAMPolicy interface. + # + # ## Data model + # + # Access control is applied when a principal (user or service account), takes + # some action on a resource exposed by a service. Resources, identified by + # URI-like names, are the unit of access control specification. Service + # implementations can choose the granularity of access control and the + # supported permissions for their resources. + # For example one database service may allow access control to be + # specified only at the Table level, whereas another might allow access control + # to also be specified at the Column level. + # + # ## Policy Structure + # + # See google.iam.v1.Policy + # + # This is intentionally not a CRUD style API because access control policies + # are created and deleted implicitly with the resources to which they are + # attached. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/iam/v1/iam_policy" + # client = ::Google::Iam::V1::IAMPolicy::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/iam/v1/iam_policy/rest" + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + module IAMPolicy + end + end + end +end + +helper_path = ::File.join __dir__, "iam_policy", "helpers.rb" +require "google/iam/v1/iam_policy/helpers" if ::File.file? helper_path diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/client.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/client.rb new file mode 100644 index 000000000000..7ae081dbb77f --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/client.rb @@ -0,0 +1,694 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/iam/v1/iam_policy_pb" + +module Google + module Iam + module V1 + module IAMPolicy + ## + # Client for the IAMPolicy service. + # + # API Overview + # + # Manages Identity and Access Management (IAM) policies. + # + # Any implementation of an API that offers access control features + # implements the google.iam.v1.IAMPolicy interface. + # + # ## Data model + # + # Access control is applied when a principal (user or service account), takes + # some action on a resource exposed by a service. Resources, identified by + # URI-like names, are the unit of access control specification. Service + # implementations can choose the granularity of access control and the + # supported permissions for their resources. + # For example one database service may allow access control to be + # specified only at the Table level, whereas another might allow access control + # to also be specified at the Column level. + # + # ## Policy Structure + # + # See google.iam.v1.Policy + # + # This is intentionally not a CRUD style API because access control policies + # are created and deleted implicitly with the resources to which they are + # attached. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "iam-meta-api.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :iam_policy_stub + + ## + # Configure the IAMPolicy Client class. + # + # See {::Google::Iam::V1::IAMPolicy::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all IAMPolicy clients + # ::Google::Iam::V1::IAMPolicy::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Iam", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the IAMPolicy Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Iam::V1::IAMPolicy::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @iam_policy_stub.universe_domain + end + + ## + # Create a new IAMPolicy client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Iam::V1::IAMPolicy::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the IAMPolicy client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/iam/v1/iam_policy_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @iam_policy_stub = ::Gapic::ServiceStub.new( + ::Google::Iam::V1::IAMPolicy::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @iam_policy_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @iam_policy_stub.logger + end + + # Service calls + + ## + # Sets the access control policy on the specified resource. Replaces any + # existing policy. + # + # Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. + # + # @overload set_iam_policy(request, options = nil) + # Pass arguments to `set_iam_policy` via a request object, either of type + # {::Google::Iam::V1::SetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::SetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload set_iam_policy(resource: nil, policy: nil, update_mask: nil) + # Pass arguments to `set_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param policy [::Google::Iam::V1::Policy, ::Hash] + # REQUIRED: The complete policy to be applied to the `resource`. The size of + # the policy is limited to a few 10s of KB. An empty policy is a + # valid policy but certain Cloud Platform services (such as Projects) + # might reject them. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # + # `paths: "bindings, etag"` + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::Policy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::SetIamPolicyRequest.new + # + # # Call the set_iam_policy method. + # result = client.set_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def set_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::SetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.set_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource + header_params["resource"] = request.resource + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.set_iam_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.set_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.call_rpc :set_iam_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the access control policy for a resource. + # Returns an empty policy if the resource exists and does not have a policy + # set. + # + # @overload get_iam_policy(request, options = nil) + # Pass arguments to `get_iam_policy` via a request object, either of type + # {::Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::GetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_iam_policy(resource: nil, options: nil) + # Pass arguments to `get_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param options [::Google::Iam::V1::GetPolicyOptions, ::Hash] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::Policy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::GetIamPolicyRequest.new + # + # # Call the get_iam_policy method. + # result = client.get_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def get_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::GetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource + header_params["resource"] = request.resource + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.call_rpc :get_iam_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # 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. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::TestIamPermissionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload test_iam_permissions(resource: nil, permissions: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param permissions [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::TestIamPermissionsRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::TestIamPermissionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource + header_params["resource"] = request.resource + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.call_rpc :test_iam_permissions, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the IAMPolicy API. + # + # This class represents the configuration for IAMPolicy, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Iam::V1::IAMPolicy::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # set_iam_policy to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Iam::V1::IAMPolicy::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "iam-meta-api.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the IAMPolicy API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `set_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :set_iam_policy + ## + # RPC-specific configuration for `get_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_iam_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions + + # @private + def initialize parent_rpcs = nil + set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy + @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config + get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy + @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config + + yield self if block_given? + end + end + end + end + end + end + end +end diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/credentials.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/credentials.rb new file mode 100644 index 000000000000..58c18d8376c1 --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/credentials.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Iam + module V1 + module IAMPolicy + # Credentials for the IAMPolicy API. + class Credentials < ::Google::Auth::Credentials + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end +end diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest.rb new file mode 100644 index 000000000000..4f0d40e0777d --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/storage/control/v2/version" + +require "google/iam/v1/iam_policy/credentials" +require "google/iam/v1/iam_policy/rest/client" + +module Google + module Iam + module V1 + ## + # API Overview + # + # Manages Identity and Access Management (IAM) policies. + # + # Any implementation of an API that offers access control features + # implements the google.iam.v1.IAMPolicy interface. + # + # ## Data model + # + # Access control is applied when a principal (user or service account), takes + # some action on a resource exposed by a service. Resources, identified by + # URI-like names, are the unit of access control specification. Service + # implementations can choose the granularity of access control and the + # supported permissions for their resources. + # For example one database service may allow access control to be + # specified only at the Table level, whereas another might allow access control + # to also be specified at the Column level. + # + # ## Policy Structure + # + # See google.iam.v1.Policy + # + # This is intentionally not a CRUD style API because access control policies + # are created and deleted implicitly with the resources to which they are + # attached. + # + # To load this service and instantiate a REST client: + # + # require "google/iam/v1/iam_policy/rest" + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + module IAMPolicy + # Client for the REST transport + module Rest + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/iam/v1/iam_policy/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest/client.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest/client.rb new file mode 100644 index 000000000000..f88b5269f95e --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest/client.rb @@ -0,0 +1,647 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/iam/v1/iam_policy_pb" +require "google/iam/v1/iam_policy/rest/service_stub" + +module Google + module Iam + module V1 + module IAMPolicy + module Rest + ## + # REST client for the IAMPolicy service. + # + # API Overview + # + # Manages Identity and Access Management (IAM) policies. + # + # Any implementation of an API that offers access control features + # implements the google.iam.v1.IAMPolicy interface. + # + # ## Data model + # + # Access control is applied when a principal (user or service account), takes + # some action on a resource exposed by a service. Resources, identified by + # URI-like names, are the unit of access control specification. Service + # implementations can choose the granularity of access control and the + # supported permissions for their resources. + # For example one database service may allow access control to be + # specified only at the Table level, whereas another might allow access control + # to also be specified at the Column level. + # + # ## Policy Structure + # + # See google.iam.v1.Policy + # + # This is intentionally not a CRUD style API because access control policies + # are created and deleted implicitly with the resources to which they are + # attached. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "iam-meta-api.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :iam_policy_stub + + ## + # Configure the IAMPolicy Client class. + # + # See {::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all IAMPolicy clients + # ::Google::Iam::V1::IAMPolicy::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Iam", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the IAMPolicy Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @iam_policy_stub.universe_domain + end + + ## + # Create a new IAMPolicy REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the IAMPolicy client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @iam_policy_stub = ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @iam_policy_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @iam_policy_stub.logger + end + + # Service calls + + ## + # Sets the access control policy on the specified resource. Replaces any + # existing policy. + # + # Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. + # + # @overload set_iam_policy(request, options = nil) + # Pass arguments to `set_iam_policy` via a request object, either of type + # {::Google::Iam::V1::SetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::SetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload set_iam_policy(resource: nil, policy: nil, update_mask: nil) + # Pass arguments to `set_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param policy [::Google::Iam::V1::Policy, ::Hash] + # REQUIRED: The complete policy to be applied to the `resource`. The size of + # the policy is limited to a few 10s of KB. An empty policy is a + # valid policy but certain Cloud Platform services (such as Projects) + # might reject them. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # + # `paths: "bindings, etag"` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::SetIamPolicyRequest.new + # + # # Call the set_iam_policy method. + # result = client.set_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def set_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::SetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.set_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.set_iam_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.set_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.set_iam_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the access control policy for a resource. + # Returns an empty policy if the resource exists and does not have a policy + # set. + # + # @overload get_iam_policy(request, options = nil) + # Pass arguments to `get_iam_policy` via a request object, either of type + # {::Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::GetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_iam_policy(resource: nil, options: nil) + # Pass arguments to `get_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param options [::Google::Iam::V1::GetPolicyOptions, ::Hash] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::GetIamPolicyRequest.new + # + # # Call the get_iam_policy method. + # result = client.get_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def get_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::GetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.get_iam_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # 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. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::TestIamPermissionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(resource: nil, permissions: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param permissions [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::TestIamPermissionsRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::TestIamPermissionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Storage::Control::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the IAMPolicy REST API. + # + # This class represents the configuration for IAMPolicy REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # set_iam_policy to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Iam::V1::IAMPolicy::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "iam-meta-api.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the IAMPolicy API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `set_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :set_iam_policy + ## + # RPC-specific configuration for `get_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_iam_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions + + # @private + def initialize parent_rpcs = nil + set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy + @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config + get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy + @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest/service_stub.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest/service_stub.rb new file mode 100644 index 000000000000..94e9f4648bb0 --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/iam_policy/rest/service_stub.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/iam/v1/iam_policy_pb" + +module Google + module Iam + module V1 + module IAMPolicy + module Rest + ## + # REST service stub for the IAMPolicy service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the set_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::SetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # A result object deserialized from the server's reply + def set_iam_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_set_iam_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "set_iam_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Iam::V1::Policy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::GetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # A result object deserialized from the server's reply + def get_iam_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_iam_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_iam_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Iam::V1::Policy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Iam::V1::TestIamPermissionsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Iam::V1::TestIamPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the set_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::SetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_set_iam_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{resource}:setIamPolicy", + body: "*", + matches: [ + ["resource", %r{^.*$}, true] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::GetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_iam_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{resource}:getIamPolicy", + body: "*", + matches: [ + ["resource", %r{^.*$}, true] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Iam::V1::TestIamPermissionsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{resource}:testIamPermissions", + body: "*", + matches: [ + ["resource", %r{^.*$}, true] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end +end diff --git a/google-cloud-storage-control-v2/lib/google/iam/v1/rest.rb b/google-cloud-storage-control-v2/lib/google/iam/v1/rest.rb new file mode 100644 index 000000000000..2d136ea8c5a2 --- /dev/null +++ b/google-cloud-storage-control-v2/lib/google/iam/v1/rest.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/iam/v1/iam_policy/rest" +require "google/cloud/storage/control/v2/version" + +module Google + module Iam + ## + # To load just the REST part of this package, including all its services, and instantiate a REST client: + # + # @example + # + # require "google/iam/v1/rest" + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + module V1 + end + end +end diff --git a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb index cb08568896d2..640c4ab7f2b8 100644 --- a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb +++ b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb @@ -10,6 +10,8 @@ require 'google/api/field_info_pb' require 'google/api/resource_pb' require 'google/api/routing_pb' +require 'google/iam/v1/iam_policy_pb' +require 'google/iam/v1/policy_pb' require 'google/longrunning/operations_pb' require 'google/protobuf/duration_pb' require 'google/protobuf/empty_pb' @@ -17,7 +19,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n/google/storage/control/v2/storage_control.proto\x12\x19google.storage.control.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x18google/api/routing.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"+\n\x11PendingRenameInfo\x12\x16\n\toperation\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\xe2\x02\n\x06\x46older\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12N\n\x13pending_rename_info\x18\x07 \x01(\x0b\x32,.google.storage.control.v2.PendingRenameInfoB\x03\xe0\x41\x03:l\xea\x41i\n\x1dstorage.googleapis.com/Folder\x12\x37projects/{project}/buckets/{bucket}/folders/{folder=**}*\x07\x66olders2\x06\x66older\"\xf4\x01\n\x10GetFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xd5\x01\n\x13\x43reateFolderRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x36\n\x06\x66older\x18\x02 \x01(\x0b\x32!.google.storage.control.v2.FolderB\x03\xe0\x41\x02\x12\x16\n\tfolder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\trecursive\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xf7\x01\n\x13\x44\x65leteFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x8c\x02\n\x12ListFoldersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tdelimiter\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13lexicographic_start\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11lexicographic_end\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\t \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"b\n\x13ListFoldersResponse\x12\x32\n\x07\x66olders\x18\x01 \x03(\x0b\x32!.google.storage.control.v2.Folder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9b\x02\n\x13RenameFolderRequest\x12\x33\n\x04name\x18\x07 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12\"\n\x15\x64\x65stination_folder_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12$\n\x17if_metageneration_match\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x9a\x02\n\"CommonLongRunningOperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1d\n\x10progress_percent\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\"\xa7\x01\n\x14RenameFolderMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x18\n\x10source_folder_id\x18\x02 \x01(\t\x12\x1d\n\x15\x64\x65stination_folder_id\x18\x03 \x01(\t\"\xf8\x03\n\rStorageLayout\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rlocation_type\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x64\n\x17\x63ustom_placement_config\x18\x04 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.CustomPlacementConfigB\x03\xe0\x41\x03\x12\x63\n\x16hierarchical_namespace\x18\x05 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.HierarchicalNamespaceB\x03\xe0\x41\x03\x1a/\n\x15\x43ustomPlacementConfig\x12\x16\n\x0e\x64\x61ta_locations\x18\x01 \x03(\t\x1a(\n\x15HierarchicalNamespace\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08:{\xea\x41x\n$storage.googleapis.com/StorageLayout\x12\x31projects/{project}/buckets/{bucket}/storageLayout*\x0estorageLayouts2\rstorageLayout\"\x86\x01\n\x17GetStorageLayoutRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/StorageLayout\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xbf\x02\n\rManagedFolder\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:\x91\x01\xea\x41\x8d\x01\n$storage.googleapis.com/ManagedFolder\x12\x46projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}*\x0emanagedFolders2\rmanagedFolder\"\x82\x02\n\x17GetManagedFolderRequest\x12:\n\x04name\x18\x06 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xe2\x01\n\x1a\x43reateManagedFolderRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x45\n\x0emanaged_folder\x18\x02 \x01(\x0b\x32(.google.storage.control.v2.ManagedFolderB\x03\xe0\x41\x02\x12\x1e\n\x11managed_folder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9e\x02\n\x1a\x44\x65leteManagedFolderRequest\x12:\n\x04name\x18\x07 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x17\n\x0f\x61llow_non_empty\x18\x05 \x01(\x08\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xc0\x01\n\x19ListManagedFoldersRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListManagedFoldersResponse\x12\x41\n\x0fmanaged_folders\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.ManagedFolder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xb0\x02\n\x1b\x43reateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x06 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policy\"\xb0\x02\n\x1bUpdateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x05 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policy\"\xa5\x03\n\rAnywhereCache\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x11\n\x04zone\x18\n \x01(\tB\x03\xe0\x41\x05\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10\x61\x64mission_policy\x18\t \x01(\t\x12\x12\n\x05state\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0epending_update\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03:\x8e\x01\xea\x41\x8a\x01\n$storage.googleapis.com/AnywhereCache\x12\x43projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}*\x0e\x61nywhereCaches2\ranywhereCache\"\xc2\x01\n\x1a\x43reateAnywhereCacheRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x45\n\x0e\x61nywhere_cache\x18\x03 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xba\x01\n\x1aUpdateAnywhereCacheRequest\x12\x45\n\x0e\x61nywhere_cache\x18\x01 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"z\n\x1b\x44isableAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x19PauseAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"y\n\x1aResumeAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"v\n\x17GetAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xa1\x01\n\x19ListAnywhereCachesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListAnywhereCachesResponse\x12\x41\n\x0f\x61nywhere_caches\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.AnywhereCache\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x8e\x0e\n\x12IntelligenceConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12X\n\x0e\x65\x64ition_config\x18\x02 \x01(\x0e\x32;.google.storage.control.v2.IntelligenceConfig.EditionConfigB\x03\xe0\x41\x01\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12I\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x34.google.storage.control.v2.IntelligenceConfig.FilterB\x03\xe0\x41\x01\x12u\n\x1d\x65\x66\x66\x65\x63tive_intelligence_config\x18\x05 \x01(\x0b\x32I.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfigB\x03\xe0\x41\x03\x12O\n\x0ctrial_config\x18\x07 \x01(\x0b\x32\x39.google.storage.control.v2.IntelligenceConfig.TrialConfig\x1a\xfc\x04\n\x06\x46ilter\x12v\n included_cloud_storage_locations\x18\x01 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12v\n excluded_cloud_storage_locations\x18\x02 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12r\n\x1eincluded_cloud_storage_buckets\x18\x03 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x12r\n\x1e\x65xcluded_cloud_storage_buckets\x18\x04 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x1a/\n\x15\x43loudStorageLocations\x12\x16\n\tlocations\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a\x35\n\x13\x43loudStorageBuckets\x12\x1e\n\x11\x62ucket_id_regexes\x18\x01 \x03(\tB\x03\xe0\x41\x01\x42\x19\n\x17\x63loud_storage_locationsB\x17\n\x15\x63loud_storage_buckets\x1a\x8a\x02\n\x1b\x45\x66\x66\x65\x63tiveIntelligenceConfig\x12z\n\x11\x65\x66\x66\x65\x63tive_edition\x18\x01 \x01(\x0e\x32Z.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfig.EffectiveEditionB\x03\xe0\x41\x03\x12 \n\x13intelligence_config\x18\x02 \x01(\tB\x03\xe0\x41\x03\"M\n\x10\x45\x66\x66\x65\x63tiveEdition\x12!\n\x1d\x45\x46\x46\x45\x43TIVE_EDITION_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x1a\x43\n\x0bTrialConfig\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"c\n\rEditionConfig\x12\x1e\n\x1a\x45\x44ITION_CONFIG_UNSPECIFIED\x10\x00\x12\x0b\n\x07INHERIT\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\t\n\x05TRIAL\x10\x05:\x8b\x02\xea\x41\x87\x02\n)storage.googleapis.com/IntelligenceConfig\x12\x38\x66olders/{folder}/locations/{location}/intelligenceConfig\x12;organizations/{org}/locations/{location}/intelligenceConfig\x12:projects/{project}/locations/{location}/intelligenceConfig*\x13intelligenceConfigs2\x12intelligenceConfig\"\xd5\x01\n+UpdateOrganizationIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xcf\x01\n%UpdateFolderIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xd0\x01\n&UpdateProjectIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"k\n(GetOrganizationIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"e\n\"GetFolderIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"f\n#GetProjectIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig2\x82&\n\x0eStorageControl\x12\x9a\x01\n\x0c\x43reateFolder\x12..google.storage.control.v2.CreateFolderRequest\x1a!.google.storage.control.v2.Folder\"7\xda\x41\x17parent,folder,folder_id\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x8f\x01\n\x0c\x44\x65leteFolder\x12..google.storage.control.v2.DeleteFolderRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\n\tGetFolder\x12+.google.storage.control.v2.GetFolderRequest\x1a!.google.storage.control.v2.Folder\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\n\x0bListFolders\x12-.google.storage.control.v2.ListFoldersRequest\x1a..google.storage.control.v2.ListFoldersResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xcd\x01\n\x0cRenameFolder\x12..google.storage.control.v2.RenameFolderRequest\x1a\x1d.google.longrunning.Operation\"n\xca\x41\x1e\n\x06\x46older\x12\x14RenameFolderMetadata\xda\x41\x1aname,destination_folder_id\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetStorageLayout\x12\x32.google.storage.control.v2.GetStorageLayoutRequest\x1a(.google.storage.control.v2.StorageLayout\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xbf\x01\n\x13\x43reateManagedFolder\x12\x35.google.storage.control.v2.CreateManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"G\xda\x41\'parent,managed_folder,managed_folder_id\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x9d\x01\n\x13\x44\x65leteManagedFolder\x12\x35.google.storage.control.v2.DeleteManagedFolderRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetManagedFolder\x12\x32.google.storage.control.v2.GetManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListManagedFolders\x12\x34.google.storage.control.v2.ListManagedFoldersRequest\x1a\x35.google.storage.control.v2.ListManagedFoldersResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd1\x01\n\x13\x43reateAnywhereCache\x12\x35.google.storage.control.v2.CreateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"d\xca\x41,\n\rAnywhereCache\x12\x1b\x43reateAnywhereCacheMetadata\xda\x41\x15parent,anywhere_cache\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xf9\x01\n\x13UpdateAnywhereCache\x12\x35.google.storage.control.v2.UpdateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"\x8b\x01\xca\x41,\n\rAnywhereCache\x12\x1bUpdateAnywhereCacheMetadata\xda\x41\x1a\x61nywhere_cache,update_mask\x8a\xd3\xe4\x93\x02\x39\x12\x37\n\x13\x61nywhere_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xb1\x01\n\x14\x44isableAnywhereCache\x12\x36.google.storage.control.v2.DisableAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xad\x01\n\x12PauseAnywhereCache\x12\x34.google.storage.control.v2.PauseAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xaf\x01\n\x13ResumeAnywhereCache\x12\x35.google.storage.control.v2.ResumeAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetAnywhereCache\x12\x32.google.storage.control.v2.GetAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListAnywhereCaches\x12\x34.google.storage.control.v2.ListAnywhereCachesRequest\x1a\x35.google.storage.control.v2.ListAnywhereCachesResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd2\x01\n\x1cGetProjectIntelligenceConfig\x12>.google.storage.control.v2.GetProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v2/{name=projects/*/locations/*/intelligenceConfig}\x12\x9d\x02\n\x1fUpdateProjectIntelligenceConfig\x12\x41.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x87\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02_2H/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xcf\x01\n\x1bGetFolderIntelligenceConfig\x12=.google.storage.control.v2.GetFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v2/{name=folders/*/locations/*/intelligenceConfig}\x12\x9a\x02\n\x1eUpdateFolderIntelligenceConfig\x12@.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x86\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02^2G/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xe1\x01\n!GetOrganizationIntelligenceConfig\x12\x43.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v2/{name=organizations/*/locations/*/intelligenceConfig}\x12\xac\x02\n$UpdateOrganizationIntelligenceConfig\x12\x46.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x8c\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02\x64\x32M/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}:\x13intelligence_config\x1a\xa7\x02\xca\x41\x16storage.googleapis.com\xd2\x41\x8a\x02https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/devstorage.read_writeB\xa6\x02\n\x1d\x63om.google.storage.control.v2B\x13StorageControlProtoP\x01Z=cloud.google.com/go/storage/control/apiv2/controlpb;controlpb\xaa\x02\x1fGoogle.Cloud.Storage.Control.V2\xca\x02\x1fGoogle\\Cloud\\Storage\\Control\\V2\xea\x02#Google::Cloud::Storage::Control::V2\xea\x41\x44\n\x1dstorage.googleapis.com/Bucket\x12#projects/{project}/buckets/{bucket}b\x06proto3" +descriptor_data = "\n/google/storage/control/v2/storage_control.proto\x12\x19google.storage.control.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x18google/api/routing.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"+\n\x11PendingRenameInfo\x12\x16\n\toperation\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\xe2\x02\n\x06\x46older\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12N\n\x13pending_rename_info\x18\x07 \x01(\x0b\x32,.google.storage.control.v2.PendingRenameInfoB\x03\xe0\x41\x03:l\xea\x41i\n\x1dstorage.googleapis.com/Folder\x12\x37projects/{project}/buckets/{bucket}/folders/{folder=**}*\x07\x66olders2\x06\x66older\"\xf4\x01\n\x10GetFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xd5\x01\n\x13\x43reateFolderRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x36\n\x06\x66older\x18\x02 \x01(\x0b\x32!.google.storage.control.v2.FolderB\x03\xe0\x41\x02\x12\x16\n\tfolder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\trecursive\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xf7\x01\n\x13\x44\x65leteFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x8c\x02\n\x12ListFoldersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tdelimiter\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13lexicographic_start\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11lexicographic_end\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\t \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"b\n\x13ListFoldersResponse\x12\x32\n\x07\x66olders\x18\x01 \x03(\x0b\x32!.google.storage.control.v2.Folder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9b\x02\n\x13RenameFolderRequest\x12\x33\n\x04name\x18\x07 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12\"\n\x15\x64\x65stination_folder_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12$\n\x17if_metageneration_match\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x9a\x02\n\"CommonLongRunningOperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1d\n\x10progress_percent\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\"\xa7\x01\n\x14RenameFolderMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x18\n\x10source_folder_id\x18\x02 \x01(\t\x12\x1d\n\x15\x64\x65stination_folder_id\x18\x03 \x01(\t\"\xf8\x03\n\rStorageLayout\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rlocation_type\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x64\n\x17\x63ustom_placement_config\x18\x04 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.CustomPlacementConfigB\x03\xe0\x41\x03\x12\x63\n\x16hierarchical_namespace\x18\x05 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.HierarchicalNamespaceB\x03\xe0\x41\x03\x1a/\n\x15\x43ustomPlacementConfig\x12\x16\n\x0e\x64\x61ta_locations\x18\x01 \x03(\t\x1a(\n\x15HierarchicalNamespace\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08:{\xea\x41x\n$storage.googleapis.com/StorageLayout\x12\x31projects/{project}/buckets/{bucket}/storageLayout*\x0estorageLayouts2\rstorageLayout\"\x86\x01\n\x17GetStorageLayoutRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/StorageLayout\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xbf\x02\n\rManagedFolder\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:\x91\x01\xea\x41\x8d\x01\n$storage.googleapis.com/ManagedFolder\x12\x46projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}*\x0emanagedFolders2\rmanagedFolder\"\x82\x02\n\x17GetManagedFolderRequest\x12:\n\x04name\x18\x06 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xe2\x01\n\x1a\x43reateManagedFolderRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x45\n\x0emanaged_folder\x18\x02 \x01(\x0b\x32(.google.storage.control.v2.ManagedFolderB\x03\xe0\x41\x02\x12\x1e\n\x11managed_folder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9e\x02\n\x1a\x44\x65leteManagedFolderRequest\x12:\n\x04name\x18\x07 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x17\n\x0f\x61llow_non_empty\x18\x05 \x01(\x08\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xc0\x01\n\x19ListManagedFoldersRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListManagedFoldersResponse\x12\x41\n\x0fmanaged_folders\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.ManagedFolder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xb0\x02\n\x1b\x43reateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x06 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policy\"\xb0\x02\n\x1bUpdateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x05 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policy\"\xa5\x03\n\rAnywhereCache\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x11\n\x04zone\x18\n \x01(\tB\x03\xe0\x41\x05\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10\x61\x64mission_policy\x18\t \x01(\t\x12\x12\n\x05state\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0epending_update\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03:\x8e\x01\xea\x41\x8a\x01\n$storage.googleapis.com/AnywhereCache\x12\x43projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}*\x0e\x61nywhereCaches2\ranywhereCache\"\xc2\x01\n\x1a\x43reateAnywhereCacheRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x45\n\x0e\x61nywhere_cache\x18\x03 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xba\x01\n\x1aUpdateAnywhereCacheRequest\x12\x45\n\x0e\x61nywhere_cache\x18\x01 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"z\n\x1b\x44isableAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x19PauseAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"y\n\x1aResumeAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"v\n\x17GetAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xa1\x01\n\x19ListAnywhereCachesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListAnywhereCachesResponse\x12\x41\n\x0f\x61nywhere_caches\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.AnywhereCache\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x8e\x0e\n\x12IntelligenceConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12X\n\x0e\x65\x64ition_config\x18\x02 \x01(\x0e\x32;.google.storage.control.v2.IntelligenceConfig.EditionConfigB\x03\xe0\x41\x01\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12I\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x34.google.storage.control.v2.IntelligenceConfig.FilterB\x03\xe0\x41\x01\x12u\n\x1d\x65\x66\x66\x65\x63tive_intelligence_config\x18\x05 \x01(\x0b\x32I.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfigB\x03\xe0\x41\x03\x12O\n\x0ctrial_config\x18\x07 \x01(\x0b\x32\x39.google.storage.control.v2.IntelligenceConfig.TrialConfig\x1a\xfc\x04\n\x06\x46ilter\x12v\n included_cloud_storage_locations\x18\x01 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12v\n excluded_cloud_storage_locations\x18\x02 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12r\n\x1eincluded_cloud_storage_buckets\x18\x03 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x12r\n\x1e\x65xcluded_cloud_storage_buckets\x18\x04 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x1a/\n\x15\x43loudStorageLocations\x12\x16\n\tlocations\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a\x35\n\x13\x43loudStorageBuckets\x12\x1e\n\x11\x62ucket_id_regexes\x18\x01 \x03(\tB\x03\xe0\x41\x01\x42\x19\n\x17\x63loud_storage_locationsB\x17\n\x15\x63loud_storage_buckets\x1a\x8a\x02\n\x1b\x45\x66\x66\x65\x63tiveIntelligenceConfig\x12z\n\x11\x65\x66\x66\x65\x63tive_edition\x18\x01 \x01(\x0e\x32Z.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfig.EffectiveEditionB\x03\xe0\x41\x03\x12 \n\x13intelligence_config\x18\x02 \x01(\tB\x03\xe0\x41\x03\"M\n\x10\x45\x66\x66\x65\x63tiveEdition\x12!\n\x1d\x45\x46\x46\x45\x43TIVE_EDITION_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x1a\x43\n\x0bTrialConfig\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"c\n\rEditionConfig\x12\x1e\n\x1a\x45\x44ITION_CONFIG_UNSPECIFIED\x10\x00\x12\x0b\n\x07INHERIT\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\t\n\x05TRIAL\x10\x05:\x8b\x02\xea\x41\x87\x02\n)storage.googleapis.com/IntelligenceConfig\x12\x38\x66olders/{folder}/locations/{location}/intelligenceConfig\x12;organizations/{org}/locations/{location}/intelligenceConfig\x12:projects/{project}/locations/{location}/intelligenceConfig*\x13intelligenceConfigs2\x12intelligenceConfig\"\xd5\x01\n+UpdateOrganizationIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xcf\x01\n%UpdateFolderIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xd0\x01\n&UpdateProjectIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"k\n(GetOrganizationIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"e\n\"GetFolderIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"f\n#GetProjectIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig2\xee*\n\x0eStorageControl\x12\x9a\x01\n\x0c\x43reateFolder\x12..google.storage.control.v2.CreateFolderRequest\x1a!.google.storage.control.v2.Folder\"7\xda\x41\x17parent,folder,folder_id\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x8f\x01\n\x0c\x44\x65leteFolder\x12..google.storage.control.v2.DeleteFolderRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\n\tGetFolder\x12+.google.storage.control.v2.GetFolderRequest\x1a!.google.storage.control.v2.Folder\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\x94\x01\n\x0bListFolders\x12-.google.storage.control.v2.ListFoldersRequest\x1a..google.storage.control.v2.ListFoldersResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xcd\x01\n\x0cRenameFolder\x12..google.storage.control.v2.RenameFolderRequest\x1a\x1d.google.longrunning.Operation\"n\xca\x41\x1e\n\x06\x46older\x12\x14RenameFolderMetadata\xda\x41\x1aname,destination_folder_id\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetStorageLayout\x12\x32.google.storage.control.v2.GetStorageLayoutRequest\x1a(.google.storage.control.v2.StorageLayout\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xbf\x01\n\x13\x43reateManagedFolder\x12\x35.google.storage.control.v2.CreateManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"G\xda\x41\'parent,managed_folder,managed_folder_id\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x9d\x01\n\x13\x44\x65leteManagedFolder\x12\x35.google.storage.control.v2.DeleteManagedFolderRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetManagedFolder\x12\x32.google.storage.control.v2.GetManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListManagedFolders\x12\x34.google.storage.control.v2.ListManagedFoldersRequest\x1a\x35.google.storage.control.v2.ListManagedFoldersResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd1\x01\n\x13\x43reateAnywhereCache\x12\x35.google.storage.control.v2.CreateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"d\xca\x41,\n\rAnywhereCache\x12\x1b\x43reateAnywhereCacheMetadata\xda\x41\x15parent,anywhere_cache\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xf9\x01\n\x13UpdateAnywhereCache\x12\x35.google.storage.control.v2.UpdateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"\x8b\x01\xca\x41,\n\rAnywhereCache\x12\x1bUpdateAnywhereCacheMetadata\xda\x41\x1a\x61nywhere_cache,update_mask\x8a\xd3\xe4\x93\x02\x39\x12\x37\n\x13\x61nywhere_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xb1\x01\n\x14\x44isableAnywhereCache\x12\x36.google.storage.control.v2.DisableAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xad\x01\n\x12PauseAnywhereCache\x12\x34.google.storage.control.v2.PauseAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xaf\x01\n\x13ResumeAnywhereCache\x12\x35.google.storage.control.v2.ResumeAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetAnywhereCache\x12\x32.google.storage.control.v2.GetAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListAnywhereCaches\x12\x34.google.storage.control.v2.ListAnywhereCachesRequest\x1a\x35.google.storage.control.v2.ListAnywhereCachesResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd2\x01\n\x1cGetProjectIntelligenceConfig\x12>.google.storage.control.v2.GetProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v2/{name=projects/*/locations/*/intelligenceConfig}\x12\x9d\x02\n\x1fUpdateProjectIntelligenceConfig\x12\x41.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x87\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02_2H/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xcf\x01\n\x1bGetFolderIntelligenceConfig\x12=.google.storage.control.v2.GetFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v2/{name=folders/*/locations/*/intelligenceConfig}\x12\x9a\x02\n\x1eUpdateFolderIntelligenceConfig\x12@.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x86\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02^2G/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xe1\x01\n!GetOrganizationIntelligenceConfig\x12\x43.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v2/{name=organizations/*/locations/*/intelligenceConfig}\x12\xac\x02\n$UpdateOrganizationIntelligenceConfig\x12\x46.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x8c\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02\x64\x32M/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xa3\x01\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"X\xda\x41\x08resource\x8a\xd3\xe4\x93\x02G\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12,\n\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\xaa\x01\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"_\xda\x41\x0fresource,policy\x8a\xd3\xe4\x93\x02G\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12,\n\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\x96\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"\xaa\x01\xda\x41\x14resource,permissions\x8a\xd3\xe4\x93\x02\x8c\x01\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12\x34\n\x08resource\x12({bucket=projects/*/buckets/*}/objects/**\x12;\n\x08resource\x12/{bucket=projects/*/buckets/*}/managedFolders/**\x1a\xa7\x02\xca\x41\x16storage.googleapis.com\xd2\x41\x8a\x02https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/devstorage.read_writeB\xa6\x02\n\x1d\x63om.google.storage.control.v2B\x13StorageControlProtoP\x01Z=cloud.google.com/go/storage/control/apiv2/controlpb;controlpb\xaa\x02\x1fGoogle.Cloud.Storage.Control.V2\xca\x02\x1fGoogle\\Cloud\\Storage\\Control\\V2\xea\x02#Google::Cloud::Storage::Control::V2\xea\x41\x44\n\x1dstorage.googleapis.com/Bucket\x12#projects/{project}/buckets/{bucket}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb index 07f26e72d327..429fbf49cb60 100644 --- a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb +++ b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb @@ -91,6 +91,26 @@ class Service rpc :GetOrganizationIntelligenceConfig, ::Google::Cloud::Storage::Control::V2::GetOrganizationIntelligenceConfigRequest, ::Google::Cloud::Storage::Control::V2::IntelligenceConfig # Updates the Organization scoped singleton IntelligenceConfig resource. rpc :UpdateOrganizationIntelligenceConfig, ::Google::Cloud::Storage::Control::V2::UpdateOrganizationIntelligenceConfigRequest, ::Google::Cloud::Storage::Control::V2::IntelligenceConfig + # Gets the IAM policy for a specified bucket. + # The `resource` field in the request should be + # `projects/_/buckets/{bucket}` for a bucket, or + # `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + # for a managed folder. + rpc :GetIamPolicy, ::Google::Iam::V1::GetIamPolicyRequest, ::Google::Iam::V1::Policy + # Updates an IAM policy for the specified bucket. + # The `resource` field in the request should be + # `projects/_/buckets/{bucket}` for a bucket, or + # `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + # for a managed folder. + rpc :SetIamPolicy, ::Google::Iam::V1::SetIamPolicyRequest, ::Google::Iam::V1::Policy + # Tests a set of permissions on the given bucket, object, or managed folder + # to see which, if any, are held by the caller. + # The `resource` field in the request should be + # `projects/_/buckets/{bucket}` for a bucket, + # `projects/_/buckets/{bucket}/objects/{object}` for an object, or + # `projects/_/buckets/{bucket}/managedFolders/{managedFolder}` + # for a managed folder. + rpc :TestIamPermissions, ::Google::Iam::V1::TestIamPermissionsRequest, ::Google::Iam::V1::TestIamPermissionsResponse end Stub = Service.rpc_stub_class diff --git a/google-cloud-storage-control-v2/proto_docs/google/iam/v1/iam_policy.rb b/google-cloud-storage-control-v2/proto_docs/google/iam/v1/iam_policy.rb new file mode 100644 index 000000000000..fbee4c39d435 --- /dev/null +++ b/google-cloud-storage-control-v2/proto_docs/google/iam/v1/iam_policy.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Iam + module V1 + # Request message for `SetIamPolicy` method. + # @!attribute [rw] resource + # @return [::String] + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @!attribute [rw] policy + # @return [::Google::Iam::V1::Policy] + # REQUIRED: The complete policy to be applied to the `resource`. The size of + # the policy is limited to a few 10s of KB. An empty policy is a + # valid policy but certain Cloud Platform services (such as Projects) + # might reject them. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # + # `paths: "bindings, etag"` + class SetIamPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for `GetIamPolicy` method. + # @!attribute [rw] resource + # @return [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @!attribute [rw] options + # @return [::Google::Iam::V1::GetPolicyOptions] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + class GetIamPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for `TestIamPermissions` method. + # @!attribute [rw] resource + # @return [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @!attribute [rw] permissions + # @return [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + class TestIamPermissionsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for `TestIamPermissions` method. + # @!attribute [rw] permissions + # @return [::Array<::String>] + # A subset of `TestPermissionsRequest.permissions` that the caller is + # allowed. + class TestIamPermissionsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end +end diff --git a/google-cloud-storage-control-v2/proto_docs/google/iam/v1/options.rb b/google-cloud-storage-control-v2/proto_docs/google/iam/v1/options.rb new file mode 100644 index 000000000000..848f8c2f7895 --- /dev/null +++ b/google-cloud-storage-control-v2/proto_docs/google/iam/v1/options.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Iam + module V1 + # Encapsulates settings provided to GetIamPolicy. + # @!attribute [rw] requested_policy_version + # @return [::Integer] + # Optional. The maximum policy version that will be used to format the + # policy. + # + # Valid values are 0, 1, and 3. Requests specifying an invalid value will be + # rejected. + # + # Requests for policies with any conditional role bindings must specify + # version 3. Policies with no conditional role bindings may specify any valid + # value or leave the field unset. + # + # The policy in the response might use the policy version that you specified, + # or it might use a lower policy version. For example, if you specify version + # 3, but the policy has no conditional role bindings, the response uses + # version 1. + # + # To learn which resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + class GetPolicyOptions + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end +end diff --git a/google-cloud-storage-control-v2/proto_docs/google/iam/v1/policy.rb b/google-cloud-storage-control-v2/proto_docs/google/iam/v1/policy.rb new file mode 100644 index 000000000000..79fdbd1e2eff --- /dev/null +++ b/google-cloud-storage-control-v2/proto_docs/google/iam/v1/policy.rb @@ -0,0 +1,426 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Iam + module V1 + # An Identity and Access Management (IAM) policy, which specifies access + # controls for Google Cloud resources. + # + # + # A `Policy` is a collection of `bindings`. A `binding` binds one or more + # `members`, or principals, to a single `role`. Principals can be user + # accounts, service accounts, Google groups, and domains (such as G Suite). A + # `role` is a named list of permissions; each `role` can be an IAM predefined + # role or a user-created custom role. + # + # For some types of Google Cloud resources, a `binding` can also specify a + # `condition`, which is a logical expression that allows access to a resource + # only if the expression evaluates to `true`. A condition can add constraints + # based on attributes of the request, the resource, or both. To learn which + # resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + # + # **JSON example:** + # + # ``` + # { + # "bindings": [ + # { + # "role": "roles/resourcemanager.organizationAdmin", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-project-id@appspot.gserviceaccount.com" + # ] + # }, + # { + # "role": "roles/resourcemanager.organizationViewer", + # "members": [ + # "user:eve@example.com" + # ], + # "condition": { + # "title": "expirable access", + # "description": "Does not grant access after Sep 2020", + # "expression": "request.time < + # timestamp('2020-10-01T00:00:00.000Z')", + # } + # } + # ], + # "etag": "BwWWja0YfJA=", + # "version": 3 + # } + # ``` + # + # **YAML example:** + # + # ``` + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-project-id@appspot.gserviceaccount.com + # role: roles/resourcemanager.organizationAdmin + # - members: + # - user:eve@example.com + # role: roles/resourcemanager.organizationViewer + # condition: + # title: expirable access + # description: Does not grant access after Sep 2020 + # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + # etag: BwWWja0YfJA= + # version: 3 + # ``` + # + # For a description of IAM and its features, see the + # [IAM documentation](https://cloud.google.com/iam/docs/). + # @!attribute [rw] version + # @return [::Integer] + # Specifies the format of the policy. + # + # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + # are rejected. + # + # Any operation that affects conditional role bindings must specify version + # `3`. This requirement applies to the following operations: + # + # * Getting a policy that includes a conditional role binding + # * Adding a conditional role binding to a policy + # * Changing a conditional role binding in a policy + # * Removing any role binding, with or without a condition, from a policy + # that includes conditions + # + # **Important:** If you use IAM Conditions, you must include the `etag` field + # whenever you call `setIamPolicy`. If you omit this field, then IAM allows + # you to overwrite a version `3` policy with a version `1` policy, and all of + # the conditions in the version `3` policy are lost. + # + # If a policy does not include any conditions, operations on that policy may + # specify any valid version or leave the field unset. + # + # To learn which resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + # @!attribute [rw] bindings + # @return [::Array<::Google::Iam::V1::Binding>] + # Associates a list of `members`, or principals, with a `role`. Optionally, + # may specify a `condition` that determines how and when the `bindings` are + # applied. Each of the `bindings` must contain at least one principal. + # + # The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + # of these principals can be Google groups. Each occurrence of a principal + # counts towards these limits. For example, if the `bindings` grant 50 + # different roles to `user:alice@example.com`, and not to any other + # principal, then you can add another 1,450 principals to the `bindings` in + # the `Policy`. + # @!attribute [rw] audit_configs + # @return [::Array<::Google::Iam::V1::AuditConfig>] + # Specifies cloud audit logging configuration for this policy. + # @!attribute [rw] etag + # @return [::String] + # `etag` is used for optimistic concurrency control as a way to help + # prevent simultaneous updates of a policy from overwriting each other. + # It is strongly suggested that systems make use of the `etag` in the + # read-modify-write cycle to perform policy updates in order to avoid race + # conditions: An `etag` is returned in the response to `getIamPolicy`, and + # systems are expected to put that etag in the request to `setIamPolicy` to + # ensure that their change will be applied to the same version of the policy. + # + # **Important:** If you use IAM Conditions, you must include the `etag` field + # whenever you call `setIamPolicy`. If you omit this field, then IAM allows + # you to overwrite a version `3` policy with a version `1` policy, and all of + # the conditions in the version `3` policy are lost. + class Policy + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Associates `members`, or principals, with a `role`. + # @!attribute [rw] role + # @return [::String] + # Role that is assigned to the list of `members`, or principals. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # @!attribute [rw] members + # @return [::Array<::String>] + # Specifies the principals requesting access for a Google Cloud resource. + # `members` can have the following values: + # + # * `allUsers`: A special identifier that represents anyone who is + # on the internet; with or without a Google account. + # + # * `allAuthenticatedUsers`: A special identifier that represents anyone + # who is authenticated with a Google account or a service account. + # + # * `user:{emailid}`: An email address that represents a specific Google + # account. For example, `alice@example.com` . + # + # + # * `serviceAccount:{emailid}`: An email address that represents a service + # account. For example, `my-other-app@appspot.gserviceaccount.com`. + # + # * `group:{emailid}`: An email address that represents a Google group. + # For example, `admins@example.com`. + # + # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + # identifier) representing a user that has been recently deleted. For + # example, `alice@example.com?uid=123456789012345678901`. If the user is + # recovered, this value reverts to `user:{emailid}` and the recovered user + # retains the role in the binding. + # + # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + # unique identifier) representing a service account that has been recently + # deleted. For example, + # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + # If the service account is undeleted, this value reverts to + # `serviceAccount:{emailid}` and the undeleted service account retains the + # role in the binding. + # + # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + # identifier) representing a Google group that has been recently + # deleted. For example, `admins@example.com?uid=123456789012345678901`. If + # the group is recovered, this value reverts to `group:{emailid}` and the + # recovered group retains the role in the binding. + # + # + # * `domain:{domain}`: The G Suite domain (primary) that represents all the + # users of that domain. For example, `google.com` or `example.com`. + # @!attribute [rw] condition + # @return [::Google::Type::Expr] + # The condition that is associated with this binding. + # + # If the condition evaluates to `true`, then this binding applies to the + # current request. + # + # If the condition evaluates to `false`, then this binding does not apply to + # the current request. However, a different role binding might grant the same + # role to one or more of the principals in this binding. + # + # To learn which resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + class Binding + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Specifies the audit configuration for a service. + # The configuration determines which permission types are logged, and what + # identities, if any, are exempted from logging. + # An AuditConfig must have one or more AuditLogConfigs. + # + # If there are AuditConfigs for both `allServices` and a specific service, + # the union of the two AuditConfigs is used for that service: the log_types + # specified in each AuditConfig are enabled, and the exempted_members in each + # AuditLogConfig are exempted. + # + # Example Policy with multiple AuditConfigs: + # + # { + # "audit_configs": [ + # { + # "service": "allServices", + # "audit_log_configs": [ + # { + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:jose@example.com" + # ] + # }, + # { + # "log_type": "DATA_WRITE" + # }, + # { + # "log_type": "ADMIN_READ" + # } + # ] + # }, + # { + # "service": "sampleservice.googleapis.com", + # "audit_log_configs": [ + # { + # "log_type": "DATA_READ" + # }, + # { + # "log_type": "DATA_WRITE", + # "exempted_members": [ + # "user:aliya@example.com" + # ] + # } + # ] + # } + # ] + # } + # + # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ + # logging. It also exempts `jose@example.com` from DATA_READ logging, and + # `aliya@example.com` from DATA_WRITE logging. + # @!attribute [rw] service + # @return [::String] + # Specifies a service that will be enabled for audit logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # @!attribute [rw] audit_log_configs + # @return [::Array<::Google::Iam::V1::AuditLogConfig>] + # The configuration for logging of each type of permission. + class AuditConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Provides the configuration for logging a type of permissions. + # Example: + # + # { + # "audit_log_configs": [ + # { + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:jose@example.com" + # ] + # }, + # { + # "log_type": "DATA_WRITE" + # } + # ] + # } + # + # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting + # jose@example.com from DATA_READ logging. + # @!attribute [rw] log_type + # @return [::Google::Iam::V1::AuditLogConfig::LogType] + # The log type that this config enables. + # @!attribute [rw] exempted_members + # @return [::Array<::String>] + # Specifies the identities that do not cause logging for this type of + # permission. + # Follows the same format of + # [Binding.members][google.iam.v1.Binding.members]. + class AuditLogConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The list of valid permission types for which logging can be configured. + # Admin writes are always logged, and are not configurable. + module LogType + # Default case. Should never be this. + LOG_TYPE_UNSPECIFIED = 0 + + # Admin reads. Example: CloudIAM getIamPolicy + ADMIN_READ = 1 + + # Data writes. Example: CloudSQL Users create + DATA_WRITE = 2 + + # Data reads. Example: CloudSQL Users list + DATA_READ = 3 + end + end + + # The difference delta between two policies. + # @!attribute [rw] binding_deltas + # @return [::Array<::Google::Iam::V1::BindingDelta>] + # The delta for Bindings between two policies. + # @!attribute [rw] audit_config_deltas + # @return [::Array<::Google::Iam::V1::AuditConfigDelta>] + # The delta for AuditConfigs between two policies. + class PolicyDelta + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # One delta entry for Binding. Each individual change (only one member in each + # entry) to a binding will be a separate entry. + # @!attribute [rw] action + # @return [::Google::Iam::V1::BindingDelta::Action] + # The action that was performed on a Binding. + # Required + # @!attribute [rw] role + # @return [::String] + # Role that is assigned to `members`. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # Required + # @!attribute [rw] member + # @return [::String] + # A single identity requesting access for a Google Cloud resource. + # Follows the same format of Binding.members. + # Required + # @!attribute [rw] condition + # @return [::Google::Type::Expr] + # The condition that is associated with this binding. + class BindingDelta + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The type of action performed on a Binding in a policy. + module Action + # Unspecified. + ACTION_UNSPECIFIED = 0 + + # Addition of a Binding. + ADD = 1 + + # Removal of a Binding. + REMOVE = 2 + end + end + + # One delta entry for AuditConfig. Each individual change (only one + # exempted_member in each entry) to a AuditConfig will be a separate entry. + # @!attribute [rw] action + # @return [::Google::Iam::V1::AuditConfigDelta::Action] + # The action that was performed on an audit configuration in a policy. + # Required + # @!attribute [rw] service + # @return [::String] + # Specifies a service that was configured for Cloud Audit Logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # Required + # @!attribute [rw] exempted_member + # @return [::String] + # A single identity that is exempted from "data access" audit + # logging for the `service` specified above. + # Follows the same format of Binding.members. + # @!attribute [rw] log_type + # @return [::String] + # Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + # enabled, and cannot be configured. + # Required + class AuditConfigDelta + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The type of action performed on an audit configuration in a policy. + module Action + # Unspecified. + ACTION_UNSPECIFIED = 0 + + # Addition of an audit configuration. + ADD = 1 + + # Removal of an audit configuration. + REMOVE = 2 + end + end + end + end +end diff --git a/google-cloud-storage-control-v2/proto_docs/google/type/expr.rb b/google-cloud-storage-control-v2/proto_docs/google/type/expr.rb new file mode 100644 index 000000000000..9505eeb8657e --- /dev/null +++ b/google-cloud-storage-control-v2/proto_docs/google/type/expr.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Type + # Represents a textual expression in the Common Expression Language (CEL) + # syntax. CEL is a C-like expression language. The syntax and semantics of CEL + # are documented at https://github.com/google/cel-spec. + # + # Example (Comparison): + # + # title: "Summary size limit" + # description: "Determines if a summary is less than 100 chars" + # expression: "document.summary.size() < 100" + # + # Example (Equality): + # + # title: "Requestor is owner" + # description: "Determines if requestor is the document owner" + # expression: "document.owner == request.auth.claims.email" + # + # Example (Logic): + # + # title: "Public documents" + # description: "Determine whether the document should be publicly visible" + # expression: "document.type != 'private' && document.type != 'internal'" + # + # Example (Data Manipulation): + # + # title: "Notification string" + # description: "Create a notification string with a timestamp." + # expression: "'New message received at ' + string(document.create_time)" + # + # The exact variables and functions that may be referenced within an expression + # are determined by the service that evaluates it. See the service + # documentation for additional information. + # @!attribute [rw] expression + # @return [::String] + # Textual representation of an expression in Common Expression Language + # syntax. + # @!attribute [rw] title + # @return [::String] + # Optional. Title for the expression, i.e. a short string describing + # its purpose. This can be used e.g. in UIs which allow to enter the + # expression. + # @!attribute [rw] description + # @return [::String] + # Optional. Description of the expression. This is a longer text which + # describes the expression, e.g. when hovered over it in a UI. + # @!attribute [rw] location + # @return [::String] + # Optional. String indicating the location of the expression for error + # reporting, e.g. a file name and a position in the file. + class Expr + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end +end diff --git a/google-cloud-storage-control-v2/snippets/iam_policy/get_iam_policy.rb b/google-cloud-storage-control-v2/snippets/iam_policy/get_iam_policy.rb new file mode 100644 index 000000000000..7b3d0eedd448 --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/iam_policy/get_iam_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_IAMPolicy_GetIamPolicy_sync] +require "google/iam/v1" + +## +# Snippet for the get_iam_policy call in the IAMPolicy service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Iam::V1::IAMPolicy::Client#get_iam_policy. +# +def get_iam_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Iam::V1::IAMPolicy::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::GetIamPolicyRequest.new + + # Call the get_iam_policy method. + result = client.get_iam_policy request + + # The returned object is of type Google::Iam::V1::Policy. + p result +end +# [END storage_v2_generated_IAMPolicy_GetIamPolicy_sync] diff --git a/google-cloud-storage-control-v2/snippets/iam_policy/set_iam_policy.rb b/google-cloud-storage-control-v2/snippets/iam_policy/set_iam_policy.rb new file mode 100644 index 000000000000..9ae5f62c9b4e --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/iam_policy/set_iam_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_IAMPolicy_SetIamPolicy_sync] +require "google/iam/v1" + +## +# Snippet for the set_iam_policy call in the IAMPolicy service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Iam::V1::IAMPolicy::Client#set_iam_policy. +# +def set_iam_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Iam::V1::IAMPolicy::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::SetIamPolicyRequest.new + + # Call the set_iam_policy method. + result = client.set_iam_policy request + + # The returned object is of type Google::Iam::V1::Policy. + p result +end +# [END storage_v2_generated_IAMPolicy_SetIamPolicy_sync] diff --git a/google-cloud-storage-control-v2/snippets/iam_policy/test_iam_permissions.rb b/google-cloud-storage-control-v2/snippets/iam_policy/test_iam_permissions.rb new file mode 100644 index 000000000000..0f34682aba32 --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/iam_policy/test_iam_permissions.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_IAMPolicy_TestIamPermissions_sync] +require "google/iam/v1" + +## +# Snippet for the test_iam_permissions call in the IAMPolicy service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Iam::V1::IAMPolicy::Client#test_iam_permissions. +# +def test_iam_permissions + # Create a client object. The client can be reused for multiple calls. + client = Google::Iam::V1::IAMPolicy::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::TestIamPermissionsRequest.new + + # Call the test_iam_permissions method. + result = client.test_iam_permissions request + + # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + p result +end +# [END storage_v2_generated_IAMPolicy_TestIamPermissions_sync] diff --git a/google-cloud-storage-control-v2/snippets/snippet_metadata_google.iam.v1.json b/google-cloud-storage-control-v2/snippets/snippet_metadata_google.iam.v1.json new file mode 100644 index 000000000000..0b15d58ab8d4 --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/snippet_metadata_google.iam.v1.json @@ -0,0 +1,135 @@ +{ + "client_library": { + "name": "google-cloud-storage-control-v2", + "version": "1.7.0", + "language": "RUBY", + "apis": [ + { + "id": "google.iam.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "region_tag": "storage_v2_generated_IAMPolicy_SetIamPolicy_sync", + "title": "Snippet for the set_iam_policy call in the IAMPolicy service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Iam::V1::IAMPolicy::Client#set_iam_policy.", + "file": "iam_policy/set_iam_policy.rb", + "language": "RUBY", + "client_method": { + "short_name": "set_iam_policy", + "full_name": "::Google::Iam::V1::IAMPolicy::Client#set_iam_policy", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::SetIamPolicyRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::Policy", + "client": { + "short_name": "IAMPolicy::Client", + "full_name": "::Google::Iam::V1::IAMPolicy::Client" + }, + "method": { + "short_name": "SetIamPolicy", + "full_name": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "short_name": "IAMPolicy", + "full_name": "google.iam.v1.IAMPolicy" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "storage_v2_generated_IAMPolicy_GetIamPolicy_sync", + "title": "Snippet for the get_iam_policy call in the IAMPolicy service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Iam::V1::IAMPolicy::Client#get_iam_policy.", + "file": "iam_policy/get_iam_policy.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_iam_policy", + "full_name": "::Google::Iam::V1::IAMPolicy::Client#get_iam_policy", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::GetIamPolicyRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::Policy", + "client": { + "short_name": "IAMPolicy::Client", + "full_name": "::Google::Iam::V1::IAMPolicy::Client" + }, + "method": { + "short_name": "GetIamPolicy", + "full_name": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "short_name": "IAMPolicy", + "full_name": "google.iam.v1.IAMPolicy" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "storage_v2_generated_IAMPolicy_TestIamPermissions_sync", + "title": "Snippet for the test_iam_permissions call in the IAMPolicy service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Iam::V1::IAMPolicy::Client#test_iam_permissions.", + "file": "iam_policy/test_iam_permissions.rb", + "language": "RUBY", + "client_method": { + "short_name": "test_iam_permissions", + "full_name": "::Google::Iam::V1::IAMPolicy::Client#test_iam_permissions", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::TestIamPermissionsRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::TestIamPermissionsResponse", + "client": { + "short_name": "IAMPolicy::Client", + "full_name": "::Google::Iam::V1::IAMPolicy::Client" + }, + "method": { + "short_name": "TestIamPermissions", + "full_name": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "short_name": "IAMPolicy", + "full_name": "google.iam.v1.IAMPolicy" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json b/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json index 45bc6ffca466..5ea7ef80f716 100644 --- a/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json +++ b/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-storage-control-v2", - "version": "1.5.0", + "version": "1.7.0", "language": "RUBY", "apis": [ { @@ -930,6 +930,126 @@ "type": "FULL" } ] + }, + { + "region_tag": "storage_v2_generated_StorageControl_GetIamPolicy_sync", + "title": "Snippet for the get_iam_policy call in the StorageControl service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Storage::Control::V2::StorageControl::Client#get_iam_policy.", + "file": "storage_control/get_iam_policy.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_iam_policy", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client#get_iam_policy", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::GetIamPolicyRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::Policy", + "client": { + "short_name": "StorageControl::Client", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client" + }, + "method": { + "short_name": "GetIamPolicy", + "full_name": "google.storage.control.v2.StorageControl.GetIamPolicy", + "service": { + "short_name": "StorageControl", + "full_name": "google.storage.control.v2.StorageControl" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "storage_v2_generated_StorageControl_SetIamPolicy_sync", + "title": "Snippet for the set_iam_policy call in the StorageControl service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Storage::Control::V2::StorageControl::Client#set_iam_policy.", + "file": "storage_control/set_iam_policy.rb", + "language": "RUBY", + "client_method": { + "short_name": "set_iam_policy", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client#set_iam_policy", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::SetIamPolicyRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::Policy", + "client": { + "short_name": "StorageControl::Client", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client" + }, + "method": { + "short_name": "SetIamPolicy", + "full_name": "google.storage.control.v2.StorageControl.SetIamPolicy", + "service": { + "short_name": "StorageControl", + "full_name": "google.storage.control.v2.StorageControl" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "storage_v2_generated_StorageControl_TestIamPermissions_sync", + "title": "Snippet for the test_iam_permissions call in the StorageControl service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Storage::Control::V2::StorageControl::Client#test_iam_permissions.", + "file": "storage_control/test_iam_permissions.rb", + "language": "RUBY", + "client_method": { + "short_name": "test_iam_permissions", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client#test_iam_permissions", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::TestIamPermissionsRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::TestIamPermissionsResponse", + "client": { + "short_name": "StorageControl::Client", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client" + }, + "method": { + "short_name": "TestIamPermissions", + "full_name": "google.storage.control.v2.StorageControl.TestIamPermissions", + "service": { + "short_name": "StorageControl", + "full_name": "google.storage.control.v2.StorageControl" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-cloud-storage-control-v2/snippets/storage_control/get_iam_policy.rb b/google-cloud-storage-control-v2/snippets/storage_control/get_iam_policy.rb new file mode 100644 index 000000000000..329a85a7189d --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/storage_control/get_iam_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_StorageControl_GetIamPolicy_sync] +require "google/cloud/storage/control/v2" + +## +# Snippet for the get_iam_policy call in the StorageControl service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Storage::Control::V2::StorageControl::Client#get_iam_policy. +# +def get_iam_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::GetIamPolicyRequest.new + + # Call the get_iam_policy method. + result = client.get_iam_policy request + + # The returned object is of type Google::Iam::V1::Policy. + p result +end +# [END storage_v2_generated_StorageControl_GetIamPolicy_sync] diff --git a/google-cloud-storage-control-v2/snippets/storage_control/set_iam_policy.rb b/google-cloud-storage-control-v2/snippets/storage_control/set_iam_policy.rb new file mode 100644 index 000000000000..823a304b558a --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/storage_control/set_iam_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_StorageControl_SetIamPolicy_sync] +require "google/cloud/storage/control/v2" + +## +# Snippet for the set_iam_policy call in the StorageControl service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Storage::Control::V2::StorageControl::Client#set_iam_policy. +# +def set_iam_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::SetIamPolicyRequest.new + + # Call the set_iam_policy method. + result = client.set_iam_policy request + + # The returned object is of type Google::Iam::V1::Policy. + p result +end +# [END storage_v2_generated_StorageControl_SetIamPolicy_sync] diff --git a/google-cloud-storage-control-v2/snippets/storage_control/test_iam_permissions.rb b/google-cloud-storage-control-v2/snippets/storage_control/test_iam_permissions.rb new file mode 100644 index 000000000000..18b9a6197785 --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/storage_control/test_iam_permissions.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_StorageControl_TestIamPermissions_sync] +require "google/cloud/storage/control/v2" + +## +# Snippet for the test_iam_permissions call in the StorageControl service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Storage::Control::V2::StorageControl::Client#test_iam_permissions. +# +def test_iam_permissions + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::TestIamPermissionsRequest.new + + # Call the test_iam_permissions method. + result = client.test_iam_permissions request + + # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + p result +end +# [END storage_v2_generated_StorageControl_TestIamPermissions_sync] diff --git a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb index 122492eabd47..2a63f2e7f7eb 100644 --- a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb +++ b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb @@ -1545,6 +1545,188 @@ def test_update_organization_intelligence_config end end + def test_get_iam_policy + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::Policy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + options = {} + + get_iam_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_iam_policy, name + assert_kind_of ::Google::Iam::V1::GetIamPolicyRequest, request + assert_equal "hello world", request["resource"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Iam::V1::GetPolicyOptions), request["options"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_iam_policy_client_stub do + # Create client + client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_iam_policy({ resource: resource, options: options }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_iam_policy resource: resource, options: options do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_iam_policy ::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_iam_policy({ resource: resource, options: options }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_iam_policy(::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_iam_policy_client_stub.call_rpc_count + end + end + + def test_set_iam_policy + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::Policy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + policy = {} + update_mask = {} + + set_iam_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :set_iam_policy, name + assert_kind_of ::Google::Iam::V1::SetIamPolicyRequest, request + assert_equal "hello world", request["resource"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Iam::V1::Policy), request["policy"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, set_iam_policy_client_stub do + # Create client + client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.set_iam_policy resource: resource, policy: policy, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.set_iam_policy ::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.set_iam_policy(::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, set_iam_policy_client_stub.call_rpc_count + end + end + + def test_test_iam_permissions + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::TestIamPermissionsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + permissions = ["hello world"] + + test_iam_permissions_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :test_iam_permissions, name + assert_kind_of ::Google::Iam::V1::TestIamPermissionsRequest, request + assert_equal "hello world", request["resource"] + assert_equal ["hello world"], request["permissions"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.test_iam_permissions({ resource: resource, permissions: permissions }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.test_iam_permissions resource: resource, permissions: permissions do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.test_iam_permissions ::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.test_iam_permissions({ resource: resource, permissions: permissions }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure diff --git a/google-cloud-storage-control-v2/test/google/iam/v1/iam_policy_rest_test.rb b/google-cloud-storage-control-v2/test/google/iam/v1/iam_policy_rest_test.rb new file mode 100644 index 000000000000..5e313396bf44 --- /dev/null +++ b/google-cloud-storage-control-v2/test/google/iam/v1/iam_policy_rest_test.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/iam/v1/iam_policy_pb" +require "google/iam/v1/iam_policy/rest" + + +class ::Google::Iam::V1::IAMPolicy::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_set_iam_policy + # Create test objects. + client_result = ::Google::Iam::V1::Policy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + policy = {} + update_mask = {} + + set_iam_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.stub :transcode_set_iam_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, set_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.set_iam_policy resource: resource, policy: policy, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.set_iam_policy ::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.set_iam_policy(::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, set_iam_policy_client_stub.call_count + end + end + end + + def test_get_iam_policy + # Create test objects. + client_result = ::Google::Iam::V1::Policy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + options = {} + + get_iam_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.stub :transcode_get_iam_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_iam_policy({ resource: resource, options: options }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_iam_policy resource: resource, options: options do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_iam_policy ::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_iam_policy({ resource: resource, options: options }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_iam_policy(::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_iam_policy_client_stub.call_count + end + end + end + + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Iam::V1::TestIamPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + permissions = ["hello world"] + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ resource: resource, permissions: permissions }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions resource: resource, permissions: permissions do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ resource: resource, permissions: permissions }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-storage-control-v2/test/google/iam/v1/iam_policy_test.rb b/google-cloud-storage-control-v2/test/google/iam/v1/iam_policy_test.rb new file mode 100644 index 000000000000..e72910e04b88 --- /dev/null +++ b/google-cloud-storage-control-v2/test/google/iam/v1/iam_policy_test.rb @@ -0,0 +1,266 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/iam/v1/iam_policy_pb" +require "google/iam/v1/iam_policy" + +class ::Google::Iam::V1::IAMPolicy::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_set_iam_policy + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::Policy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + policy = {} + update_mask = {} + + set_iam_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :set_iam_policy, name + assert_kind_of ::Google::Iam::V1::SetIamPolicyRequest, request + assert_equal "hello world", request["resource"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Iam::V1::Policy), request["policy"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, set_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.set_iam_policy resource: resource, policy: policy, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.set_iam_policy ::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.set_iam_policy(::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, set_iam_policy_client_stub.call_rpc_count + end + end + + def test_get_iam_policy + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::Policy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + options = {} + + get_iam_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_iam_policy, name + assert_kind_of ::Google::Iam::V1::GetIamPolicyRequest, request + assert_equal "hello world", request["resource"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Iam::V1::GetPolicyOptions), request["options"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_iam_policy({ resource: resource, options: options }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_iam_policy resource: resource, options: options do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_iam_policy ::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_iam_policy({ resource: resource, options: options }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_iam_policy(::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_iam_policy_client_stub.call_rpc_count + end + end + + def test_test_iam_permissions + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::TestIamPermissionsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + permissions = ["hello world"] + + test_iam_permissions_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :test_iam_permissions, name + assert_kind_of ::Google::Iam::V1::TestIamPermissionsRequest, request + assert_equal "hello world", request["resource"] + assert_equal ["hello world"], request["permissions"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.test_iam_permissions({ resource: resource, permissions: permissions }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.test_iam_permissions resource: resource, permissions: permissions do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.test_iam_permissions ::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.test_iam_permissions({ resource: resource, permissions: permissions }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Iam::V1::IAMPolicy::Client::Configuration, config + end +end diff --git a/google-cloud-storage-control/CHANGELOG.md b/google-cloud-storage-control/CHANGELOG.md index 7dc052b0dd16..dc6c5aa90940 100644 --- a/google-cloud-storage-control/CHANGELOG.md +++ b/google-cloud-storage-control/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-storage-control/README.md b/google-cloud-storage-control/README.md index d93efd496b40..88feeb7b2a53 100644 --- a/google-cloud-storage-control/README.md +++ b/google-cloud-storage-control/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/storage.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/storage/control" + +client = Google::Cloud::Storage::Control.storage_control +request = ::Google::Cloud::Storage::Control::V2::CreateFolderRequest.new # (request fields as keyword arguments...) +response = client.create_folder request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-storage-control/lib/google/cloud/storage/control/version.rb b/google-cloud-storage-control/lib/google/cloud/storage/control/version.rb index 88fa244e87d1..ec8b0bcc7140 100644 --- a/google-cloud-storage-control/lib/google/cloud/storage/control/version.rb +++ b/google-cloud-storage-control/lib/google/cloud/storage/control/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Storage module Control - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-cloud-storage-control/samples/acceptance/helper.rb b/google-cloud-storage-control/samples/acceptance/helper.rb index 8bdba8fefaeb..5214e53dd6b2 100644 --- a/google-cloud-storage-control/samples/acceptance/helper.rb +++ b/google-cloud-storage-control/samples/acceptance/helper.rb @@ -16,6 +16,7 @@ require "minitest/autorun" require "minitest/focus" require "minitest/hooks/default" +require "google/cloud/storage/control" def random_bucket_name t = Time.now.utc.iso8601.gsub ":", "-" @@ -27,8 +28,11 @@ def random_folder_name prefix: "ruby-storage-control-folder-samples-test-" "#{prefix}-#{t}-#{SecureRandom.hex 4}".downcase end +def storage_client + @storage_client ||= Google::Cloud::Storage.new +end + def create_bucket_helper bucket_name, uniform_bucket_level_access: nil, hierarchical_namespace: nil - storage_client = Google::Cloud::Storage.new retry_resource_exhaustion do storage_client.create_bucket bucket_name do |b| b.uniform_bucket_level_access = uniform_bucket_level_access @@ -38,7 +42,6 @@ def create_bucket_helper bucket_name, uniform_bucket_level_access: nil, hierarch end def delete_bucket_helper bucket_name - storage_client = Google::Cloud::Storage.new retry_resource_exhaustion do bucket = storage_client.bucket bucket_name return unless bucket @@ -60,3 +63,33 @@ def retry_resource_exhaustion end raise Google::Cloud::ResourceExhaustedError, "Maybe take a break from creating and deleting buckets for a bit" end + +# Waits until all Anywhere Caches for a given bucket are deleted. +# +# This method polls the Storage Control API, listing the Anywhere Caches +# associated with the specified bucket. If caches are found, it waits and +# retries with an exponential backoff strategy until no caches remain. +# +# @param bucket_name [String] The name of the Google Cloud Storage bucket. +# @return [Integer] The final count of Anywhere Caches, which will be 0 +# the method completes successfully after all caches are deleted. +def count_anywhere_caches bucket_name + storage_control_client = Google::Cloud::Storage::Control.storage_control + + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + request = Google::Cloud::Storage::Control::V2::ListAnywhereCachesRequest.new( + parent: parent + ) + result = storage_control_client.list_anywhere_caches request + min_delay = 180 # 3 minutes + max_delay = 900 # 15 minutes + while result.response.anywhere_caches.count != 0 + puts "Cache not deleted yet, Retrying in #{min_delay} seconds." + sleep min_delay + min_delay = [min_delay * 2, max_delay].min # Exponential backoff with a max delay + result = storage_control_client.list_anywhere_caches request + end + + result.response.anywhere_caches.count +end diff --git a/google-cloud-storage-control/samples/acceptance/storage_control_anywhere_cache_test.rb b/google-cloud-storage-control/samples/acceptance/storage_control_anywhere_cache_test.rb new file mode 100644 index 000000000000..0e42b17feee1 --- /dev/null +++ b/google-cloud-storage-control/samples/acceptance/storage_control_anywhere_cache_test.rb @@ -0,0 +1,75 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +require_relative "helper" +require_relative "../storage_control_create_anywhere_cache" +require_relative "../storage_control_list_anywhere_caches" +require_relative "../storage_control_get_anywhere_cache" +require_relative "../storage_control_update_anywhere_cache" +require_relative "../storage_control_pause_anywhere_cache" +require_relative "../storage_control_resume_anywhere_cache" +require_relative "../storage_control_disable_anywhere_cache" + +describe "Storage Control Anywhere Cache" do + let(:bucket_name) { random_bucket_name } + let(:zone) { "us-east1-b" } + # Set project to "_" to signify global bucket + let(:anywhere_cache_name) { "projects/_/buckets/#{bucket_name}/anywhereCaches/#{zone}" } + + before :all do + create_bucket_helper bucket_name + end + + after :all do + count_anywhere_caches bucket_name # Ensure all caches are deleted before deleting bucket + delete_bucket_helper bucket_name + end + + it "handles Anywhere cache lifecycle in sequence" do + out_create, _err = capture_io do + create_anywhere_cache bucket_name: bucket_name, zone: zone + end + assert_includes out_create, "AnywhereCache created - #{anywhere_cache_name}" + + out_list, _err = capture_io do + list_anywhere_caches bucket_name: bucket_name + end + assert_includes out_list, "AnywhereCache #{anywhere_cache_name} found in list" + + out_get, _err = capture_io do + get_anywhere_cache bucket_name: bucket_name, anywhere_cache_id: zone + end + assert_includes out_get, "AnywhereCache #{anywhere_cache_name} fetched" + + out_update, _err = capture_io do + update_anywhere_cache bucket_name: bucket_name, anywhere_cache_id: zone + end + assert_includes out_update, "AnywhereCache #{anywhere_cache_name} updated" + + out_pause, _err = capture_io do + pause_anywhere_cache bucket_name: bucket_name, anywhere_cache_id: zone + end + assert_includes out_pause, "AnywhereCache #{anywhere_cache_name} paused" + + out_resume, _err = capture_io do + resume_anywhere_cache bucket_name: bucket_name, anywhere_cache_id: zone + end + assert_includes out_resume, "AnywhereCache #{anywhere_cache_name} running" + + out_disable, _err = capture_io do + disable_anywhere_cache bucket_name: bucket_name, anywhere_cache_id: zone + end + assert_includes out_disable, "AnywhereCache #{anywhere_cache_name} disabled" + end +end diff --git a/google-cloud-storage-control/samples/storage_control_create_anywhere_cache.rb b/google-cloud-storage-control/samples/storage_control_create_anywhere_cache.rb new file mode 100644 index 000000000000..8bf99bc0af61 --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_create_anywhere_cache.rb @@ -0,0 +1,63 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_create_anywhere_cache] +require "google/cloud/storage/control" + +def create_anywhere_cache bucket_name:, zone: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + + # Zone where you want to create cache + # zone = "your-zone-name" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + name = "#{parent}/anywhereCaches/#{zone}" + + anywhere_cache = Google::Cloud::Storage::Control::V2::AnywhereCache.new( + name: name, + zone: zone + ) + # Create a request. + request = Google::Cloud::Storage::Control::V2::CreateAnywhereCacheRequest.new( + parent: parent, + anywhere_cache: anywhere_cache + ) + # The request creates a new cache in the specified zone. + # The cache is created in the specified bucket. + begin + operation = storage_control_client.create_anywhere_cache request + puts "AnywhereCache operation created - #{operation.name}" + get_request = Google::Cloud::Storage::Control::V2::GetAnywhereCacheRequest.new( + name: name + ) + result = storage_control_client.get_anywhere_cache get_request + min_delay = 180 # 3 minutes + max_delay = 900 # 15 minutes + while result.state != "running" + puts "Cache not running yet, current state is #{result.state}. Retrying in #{min_delay} seconds." + sleep min_delay + min_delay = [min_delay * 2, max_delay].min # Exponential backoff with a max delay + result = storage_control_client.get_anywhere_cache get_request + end + puts "AnywhereCache created - #{result.name}" + rescue Google::Cloud::Error => e + puts "Error creating AnywhereCache: #{e.message}" + end +end +# [END storage_control_create_anywhere_cache] +create_anywhere_cache bucket_name: ARGV.shift, zone: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage-control/samples/storage_control_disable_anywhere_cache.rb b/google-cloud-storage-control/samples/storage_control_disable_anywhere_cache.rb new file mode 100644 index 000000000000..03d6b7c09cf5 --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_disable_anywhere_cache.rb @@ -0,0 +1,45 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_disable_anywhere_cache] +require "google/cloud/storage/control" + +def disable_anywhere_cache bucket_name:, anywhere_cache_id: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + + # A value that, along with the bucket's name, uniquely identifies the cache + # anywhere_cache_id = "us-east1-b" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + name = "#{parent}/anywhereCaches/#{anywhere_cache_id}" + + # Create a request. + request = Google::Cloud::Storage::Control::V2::DisableAnywhereCacheRequest.new( + name: name + ) + # The request disables the cache, but does not delete it. + # The cache can be re-enabled later. + begin + result = storage_control_client.disable_anywhere_cache request + puts "AnywhereCache #{result.name} #{result.state}" + rescue Google::Cloud::Error => e + puts "Error disabling AnywhereCache: #{e.message}" + end +end +# [END storage_control_disable_anywhere_cache] +disable_anywhere_cache bucket_name: ARGV.shift, anywhere_cache_id: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage-control/samples/storage_control_get_anywhere_cache.rb b/google-cloud-storage-control/samples/storage_control_get_anywhere_cache.rb new file mode 100644 index 000000000000..65b321fc0ccf --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_get_anywhere_cache.rb @@ -0,0 +1,47 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_get_anywhere_cache] +require "google/cloud/storage/control" + +def get_anywhere_cache bucket_name:, anywhere_cache_id: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + + # A value that, along with the bucket's name, uniquely identifies the cache + # anywhere_cache_id = "us-east1-b" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + name = "#{parent}/anywhereCaches/#{anywhere_cache_id}" + + # Create a request. + request = Google::Cloud::Storage::Control::V2::GetAnywhereCacheRequest.new( + name: name + ) + # The request retrieves the cache in the specified bucket. + # The cache is identified by the specified ID. + # The cache is in the specified bucket. + + begin + result = storage_control_client.get_anywhere_cache request + puts "AnywhereCache #{result.name} fetched" + rescue Google::Cloud::Error => e + puts "Error fetching AnywhereCache: #{e.message}" + end +end +# [END storage_control_get_anywhere_cache] +get_anywhere_cache bucket_name: ARGV.shift, anywhere_cache_id: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage-control/samples/storage_control_list_anywhere_caches.rb b/google-cloud-storage-control/samples/storage_control_list_anywhere_caches.rb new file mode 100644 index 000000000000..397401531118 --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_list_anywhere_caches.rb @@ -0,0 +1,43 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_list_anywhere_caches] +require "google/cloud/storage/control" + +def list_anywhere_caches bucket_name: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + + # Create a request. + request = Google::Cloud::Storage::Control::V2::ListAnywhereCachesRequest.new( + parent: parent + ) + # The request lists all caches in the specified bucket. + # The caches are identified by the specified bucket name. + begin + result = storage_control_client.list_anywhere_caches request + result.response.anywhere_caches.each do |item| + puts "AnywhereCache #{item.name} found in list" + end + rescue Google::Cloud::Error => e + puts "Error listing AnywhereCaches: #{e.message}" + end +end +# [END storage_control_list_anywhere_caches] +list_anywhere_caches bucket_name: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage-control/samples/storage_control_pause_anywhere_cache.rb b/google-cloud-storage-control/samples/storage_control_pause_anywhere_cache.rb new file mode 100644 index 000000000000..6c48d53e62a9 --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_pause_anywhere_cache.rb @@ -0,0 +1,46 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_pause_anywhere_cache] +require "google/cloud/storage/control" + +def pause_anywhere_cache bucket_name:, anywhere_cache_id: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + + # A value that, along with the bucket's name, uniquely identifies the cache + # anywhere_cache_id = "us-east1-b" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + name = "#{parent}/anywhereCaches/#{anywhere_cache_id}" + + # Create a request. + request = Google::Cloud::Storage::Control::V2::PauseAnywhereCacheRequest.new( + name: name + ) + # The request pauses the cache, but does not delete it. + # The cache can be resumed later. + # The cache is paused in the specified bucket. + begin + result = storage_control_client.pause_anywhere_cache request + puts "AnywhereCache #{result.name} #{result.state}" + rescue Google::Cloud::Error => e + puts "Error pausing AnywhereCache: #{e.message}" + end +end +# [END storage_control_pause_anywhere_cache] +pause_anywhere_cache bucket_name: ARGV.shift, anywhere_cache_id: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage-control/samples/storage_control_resume_anywhere_cache.rb b/google-cloud-storage-control/samples/storage_control_resume_anywhere_cache.rb new file mode 100644 index 000000000000..43dce8488410 --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_resume_anywhere_cache.rb @@ -0,0 +1,46 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_resume_anywhere_cache] +require "google/cloud/storage/control" + +def resume_anywhere_cache bucket_name:, anywhere_cache_id: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + + # A value that, along with the bucket's name, uniquely identifies the cache + # anywhere_cache_id = "us-east1-b" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + name = "#{parent}/anywhereCaches/#{anywhere_cache_id}" + + # Create a request. + request = Google::Cloud::Storage::Control::V2::ResumeAnywhereCacheRequest.new( + name: name + ) + # The request resumes the cache, which was previously paused. + # The cache is resumed in the specified bucket. + # The cache is identified by the specified ID. + begin + result = storage_control_client.resume_anywhere_cache request + puts "AnywhereCache #{result.name} #{result.state}" + rescue Google::Cloud::Error => e + puts "Error resuming AnywhereCache: #{e.message}" + end +end +# [END storage_control_resume_anywhere_cache] +resume_anywhere_cache bucket_name: ARGV.shift, anywhere_cache_id: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage-control/samples/storage_control_update_anywhere_cache.rb b/google-cloud-storage-control/samples/storage_control_update_anywhere_cache.rb new file mode 100644 index 000000000000..8dd3c5a43cac --- /dev/null +++ b/google-cloud-storage-control/samples/storage_control_update_anywhere_cache.rb @@ -0,0 +1,64 @@ +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# [START storage_control_update_anywhere_cache] +require "google/cloud/storage/control" + +def update_anywhere_cache bucket_name:, anywhere_cache_id: + # The Name of your GCS bucket + # bucket_name = "your-unique-bucket-name" + # A value that, along with the bucket's name, uniquely identifies the cache + # anywhere_cache_id = "us-east1-b" + + # Create a client object. The client can be reused for multiple calls. + storage_control_client = Google::Cloud::Storage::Control.storage_control + # Set project to "_" to signify global bucket + parent = "projects/_/buckets/#{bucket_name}" + name = "#{parent}/anywhereCaches/#{anywhere_cache_id}" + ttl_in_seconds = 7200 + + anywhere_cache = Google::Cloud::Storage::Control::V2::AnywhereCache.new( + name: name, + ttl: ttl_in_seconds + ) + mask = Google::Protobuf::FieldMask.new paths: ["ttl"] + # Create a request. + request = Google::Cloud::Storage::Control::V2::UpdateAnywhereCacheRequest.new( + anywhere_cache: anywhere_cache, + update_mask: mask + ) + # The request updates the cache in the specified bucket. + # The cache is identified by the specified ID. + begin + operation = storage_control_client.update_anywhere_cache request + puts "AnywhereCache operation created - #{operation.name}" + get_request = Google::Cloud::Storage::Control::V2::GetAnywhereCacheRequest.new( + name: name + ) + result = storage_control_client.get_anywhere_cache get_request + min_delay = 120 # 2 minutes + max_delay = 600 # 10 minutes + while result.state != "running" + puts "Cache not running yet, current state is #{result.state}. Retrying in #{min_delay} seconds." + sleep min_delay + min_delay = [min_delay * 2, max_delay].min # Exponential backoff with a max delay + result = storage_control_client.get_anywhere_cache get_request + end + puts "AnywhereCache #{result.name} updated" + rescue Google::Cloud::Error => e + puts "Error updating AnywhereCache: #{e.message}" + end +end +# [END storage_control_update_anywhere_cache] +update_anywhere_cache bucket_name: ARGV.shift, anywhere_cache_id: ARGV.shift if $PROGRAM_NAME == __FILE__ diff --git a/google-cloud-storage_batch_operations-v1/CHANGELOG.md b/google-cloud-storage_batch_operations-v1/CHANGELOG.md index f0f84196ec77..30753e8e02aa 100644 --- a/google-cloud-storage_batch_operations-v1/CHANGELOG.md +++ b/google-cloud-storage_batch_operations-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.2.0 (2025-05-12) #### Features diff --git a/google-cloud-storage_batch_operations-v1/google-cloud-storage_batch_operations-v1.gemspec b/google-cloud-storage_batch_operations-v1/google-cloud-storage_batch_operations-v1.gemspec index 9c5838f38271..6f7d9332ef9f 100644 --- a/google-cloud-storage_batch_operations-v1/google-cloud-storage_batch_operations-v1.gemspec +++ b/google-cloud-storage_batch_operations-v1/google-cloud-storage_batch_operations-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-storage_batch_operations-v1/lib/google/cloud/storage_batch_operations/v1/version.rb b/google-cloud-storage_batch_operations-v1/lib/google/cloud/storage_batch_operations/v1/version.rb index d23549c4db81..f2f5d7340b51 100644 --- a/google-cloud-storage_batch_operations-v1/lib/google/cloud/storage_batch_operations/v1/version.rb +++ b/google-cloud-storage_batch_operations-v1/lib/google/cloud/storage_batch_operations/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module StorageBatchOperations module V1 - VERSION = "0.2.0" + VERSION = "0.3.0" end end end diff --git a/google-cloud-storage_batch_operations-v1/snippets/snippet_metadata_google.cloud.storagebatchoperations.v1.json b/google-cloud-storage_batch_operations-v1/snippets/snippet_metadata_google.cloud.storagebatchoperations.v1.json index 269a22153b0c..7f9ba05cd50e 100644 --- a/google-cloud-storage_batch_operations-v1/snippets/snippet_metadata_google.cloud.storagebatchoperations.v1.json +++ b/google-cloud-storage_batch_operations-v1/snippets/snippet_metadata_google.cloud.storagebatchoperations.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-storage_batch_operations-v1", - "version": "0.2.0", + "version": "0.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-storage_batch_operations/CHANGELOG.md b/google-cloud-storage_batch_operations/CHANGELOG.md index 08609dd526e7..c5fc8add3d64 100644 --- a/google-cloud-storage_batch_operations/CHANGELOG.md +++ b/google-cloud-storage_batch_operations/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-storage_batch_operations/README.md b/google-cloud-storage_batch_operations/README.md index ea15e9f8121e..1be679258ee8 100644 --- a/google-cloud-storage_batch_operations/README.md +++ b/google-cloud-storage_batch_operations/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/storagebatchoperations.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/storage_batch_operations" + +client = Google::Cloud::StorageBatchOperations.storage_batch_operations +request = ::Google::Cloud::StorageBatchOperations::V1::ListJobsRequest.new # (request fields as keyword arguments...) +response = client.list_jobs request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-storage_batch_operations/lib/google/cloud/storage_batch_operations/version.rb b/google-cloud-storage_batch_operations/lib/google/cloud/storage_batch_operations/version.rb index 36feb29a28c5..4c09590091fd 100644 --- a/google-cloud-storage_batch_operations/lib/google/cloud/storage_batch_operations/version.rb +++ b/google-cloud-storage_batch_operations/lib/google/cloud/storage_batch_operations/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module StorageBatchOperations - VERSION = "0.1.1" + VERSION = "0.1.2" end end end diff --git a/google-cloud-storage_insights-v1/CHANGELOG.md b/google-cloud-storage_insights-v1/CHANGELOG.md index 8572a8bec08d..f1e4c0b19c7c 100644 --- a/google-cloud-storage_insights-v1/CHANGELOG.md +++ b/google-cloud-storage_insights-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.2.0 (2025-05-16) #### Features diff --git a/google-cloud-storage_insights-v1/google-cloud-storage_insights-v1.gemspec b/google-cloud-storage_insights-v1/google-cloud-storage_insights-v1.gemspec index 44d0f4fb9131..3f7f80a1b3cc 100644 --- a/google-cloud-storage_insights-v1/google-cloud-storage_insights-v1.gemspec +++ b/google-cloud-storage_insights-v1/google-cloud-storage_insights-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-storage_insights-v1/lib/google/cloud/storage_insights/v1/version.rb b/google-cloud-storage_insights-v1/lib/google/cloud/storage_insights/v1/version.rb index 06496b28b749..ae446a8dac5c 100644 --- a/google-cloud-storage_insights-v1/lib/google/cloud/storage_insights/v1/version.rb +++ b/google-cloud-storage_insights-v1/lib/google/cloud/storage_insights/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module StorageInsights module V1 - VERSION = "1.2.0" + VERSION = "1.3.0" end end end diff --git a/google-cloud-storage_insights-v1/snippets/snippet_metadata_google.cloud.storageinsights.v1.json b/google-cloud-storage_insights-v1/snippets/snippet_metadata_google.cloud.storageinsights.v1.json index eafd05ebaa5d..3890ae72fd02 100644 --- a/google-cloud-storage_insights-v1/snippets/snippet_metadata_google.cloud.storageinsights.v1.json +++ b/google-cloud-storage_insights-v1/snippets/snippet_metadata_google.cloud.storageinsights.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-storage_insights-v1", - "version": "1.2.0", + "version": "1.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-storage_insights/CHANGELOG.md b/google-cloud-storage_insights/CHANGELOG.md index 1ceba2644916..deee31acbaa6 100644 --- a/google-cloud-storage_insights/CHANGELOG.md +++ b/google-cloud-storage_insights/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-storage_insights/README.md b/google-cloud-storage_insights/README.md index 9ddd149dd4b4..f2c0d15d6c18 100644 --- a/google-cloud-storage_insights/README.md +++ b/google-cloud-storage_insights/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/storageinsights.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/storage_insights" + +client = Google::Cloud::StorageInsights.storage_insights +request = ::Google::Cloud::StorageInsights::V1::ListReportConfigsRequest.new # (request fields as keyword arguments...) +response = client.list_report_configs request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-storage_insights/lib/google/cloud/storage_insights/version.rb b/google-cloud-storage_insights/lib/google/cloud/storage_insights/version.rb index eade277120ff..3dadfc9db5b6 100644 --- a/google-cloud-storage_insights/lib/google/cloud/storage_insights/version.rb +++ b/google-cloud-storage_insights/lib/google/cloud/storage_insights/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module StorageInsights - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-storage_transfer-v1/CHANGELOG.md b/google-cloud-storage_transfer-v1/CHANGELOG.md index 2fa69e1f6130..9a22682829d5 100644 --- a/google-cloud-storage_transfer-v1/CHANGELOG.md +++ b/google-cloud-storage_transfer-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.6.0 (2025-06-24) #### Features diff --git a/google-cloud-storage_transfer-v1/google-cloud-storage_transfer-v1.gemspec b/google-cloud-storage_transfer-v1/google-cloud-storage_transfer-v1.gemspec index 89e75ed227a3..264d6f2631c2 100644 --- a/google-cloud-storage_transfer-v1/google-cloud-storage_transfer-v1.gemspec +++ b/google-cloud-storage_transfer-v1/google-cloud-storage_transfer-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-storage_transfer-v1/lib/google/cloud/storage_transfer/v1/version.rb b/google-cloud-storage_transfer-v1/lib/google/cloud/storage_transfer/v1/version.rb index f9f585d32b89..ab12c4b1357c 100644 --- a/google-cloud-storage_transfer-v1/lib/google/cloud/storage_transfer/v1/version.rb +++ b/google-cloud-storage_transfer-v1/lib/google/cloud/storage_transfer/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module StorageTransfer module V1 - VERSION = "1.6.0" + VERSION = "1.7.0" end end end diff --git a/google-cloud-storage_transfer-v1/snippets/snippet_metadata_google.storagetransfer.v1.json b/google-cloud-storage_transfer-v1/snippets/snippet_metadata_google.storagetransfer.v1.json index 2169a412dfe9..59ec355e52ec 100644 --- a/google-cloud-storage_transfer-v1/snippets/snippet_metadata_google.storagetransfer.v1.json +++ b/google-cloud-storage_transfer-v1/snippets/snippet_metadata_google.storagetransfer.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-storage_transfer-v1", - "version": "1.6.0", + "version": "1.7.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-storage_transfer/CHANGELOG.md b/google-cloud-storage_transfer/CHANGELOG.md index 0016b3dced8c..77534fe5466d 100644 --- a/google-cloud-storage_transfer/CHANGELOG.md +++ b/google-cloud-storage_transfer/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-storage_transfer/README.md b/google-cloud-storage_transfer/README.md index fbd3dec94dca..2fb23973b903 100644 --- a/google-cloud-storage_transfer/README.md +++ b/google-cloud-storage_transfer/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/storagetransfer.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/storage_transfer" + +client = Google::Cloud::StorageTransfer.storage_transfer_service +request = ::Google::Cloud::StorageTransfer::V1::GetGoogleServiceAccountRequest.new # (request fields as keyword arguments...) +response = client.get_google_service_account request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-storage_transfer/lib/google/cloud/storage_transfer/version.rb b/google-cloud-storage_transfer/lib/google/cloud/storage_transfer/version.rb index 5c5935591e42..fdad76448069 100644 --- a/google-cloud-storage_transfer/lib/google/cloud/storage_transfer/version.rb +++ b/google-cloud-storage_transfer/lib/google/cloud/storage_transfer/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module StorageTransfer - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-support-v2/CHANGELOG.md b/google-cloud-support-v2/CHANGELOG.md index 9167f8fe141c..456a560cc2d1 100644 --- a/google-cloud-support-v2/CHANGELOG.md +++ b/google-cloud-support-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.1 (2025-05-27) #### Documentation diff --git a/google-cloud-support-v2/google-cloud-support-v2.gemspec b/google-cloud-support-v2/google-cloud-support-v2.gemspec index 8787cf1d350b..cbc225d88ce1 100644 --- a/google-cloud-support-v2/google-cloud-support-v2.gemspec +++ b/google-cloud-support-v2/google-cloud-support-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-support-v2/lib/google/cloud/support/v2/version.rb b/google-cloud-support-v2/lib/google/cloud/support/v2/version.rb index 467893b85ba3..b02a632dbe6c 100644 --- a/google-cloud-support-v2/lib/google/cloud/support/v2/version.rb +++ b/google-cloud-support-v2/lib/google/cloud/support/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Support module V2 - VERSION = "1.4.1" + VERSION = "1.5.0" end end end diff --git a/google-cloud-support-v2/snippets/snippet_metadata_google.cloud.support.v2.json b/google-cloud-support-v2/snippets/snippet_metadata_google.cloud.support.v2.json index 88e0a53d7744..3674a510224e 100644 --- a/google-cloud-support-v2/snippets/snippet_metadata_google.cloud.support.v2.json +++ b/google-cloud-support-v2/snippets/snippet_metadata_google.cloud.support.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-support-v2", - "version": "1.4.1", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-support-v2beta/CHANGELOG.md b/google-cloud-support-v2beta/CHANGELOG.md index eddde2d17ef9..1700222a41be 100644 --- a/google-cloud-support-v2beta/CHANGELOG.md +++ b/google-cloud-support-v2beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.2.0 (2025-08-12) #### Features diff --git a/google-cloud-support-v2beta/google-cloud-support-v2beta.gemspec b/google-cloud-support-v2beta/google-cloud-support-v2beta.gemspec index 86e9fa872a01..7c87d09dee7d 100644 --- a/google-cloud-support-v2beta/google-cloud-support-v2beta.gemspec +++ b/google-cloud-support-v2beta/google-cloud-support-v2beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-support-v2beta/lib/google/cloud/support/v2beta/version.rb b/google-cloud-support-v2beta/lib/google/cloud/support/v2beta/version.rb index a0fbc57e33d8..ca7245187b23 100644 --- a/google-cloud-support-v2beta/lib/google/cloud/support/v2beta/version.rb +++ b/google-cloud-support-v2beta/lib/google/cloud/support/v2beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Support module V2beta - VERSION = "0.2.0" + VERSION = "0.3.0" end end end diff --git a/google-cloud-support-v2beta/snippets/snippet_metadata_google.cloud.support.v2beta.json b/google-cloud-support-v2beta/snippets/snippet_metadata_google.cloud.support.v2beta.json index 7fb4c63b6ae6..989cfbb50f41 100644 --- a/google-cloud-support-v2beta/snippets/snippet_metadata_google.cloud.support.v2beta.json +++ b/google-cloud-support-v2beta/snippets/snippet_metadata_google.cloud.support.v2beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-support-v2beta", - "version": "0.2.0", + "version": "0.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-support/CHANGELOG.md b/google-cloud-support/CHANGELOG.md index d82609b714cc..d81481422106 100644 --- a/google-cloud-support/CHANGELOG.md +++ b/google-cloud-support/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.2 (2025-05-16) #### Documentation diff --git a/google-cloud-support/README.md b/google-cloud-support/README.md index 56c550e29e21..7db6a09bc115 100644 --- a/google-cloud-support/README.md +++ b/google-cloud-support/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudsupport.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/support" + +client = Google::Cloud::Support.case_attachment_service +request = ::Google::Cloud::Support::V2::ListAttachmentsRequest.new # (request fields as keyword arguments...) +response = client.list_attachments request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-support/lib/google/cloud/support/version.rb b/google-cloud-support/lib/google/cloud/support/version.rb index cdb5cfb498b3..05cdd77c3a09 100644 --- a/google-cloud-support/lib/google/cloud/support/version.rb +++ b/google-cloud-support/lib/google/cloud/support/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Support - VERSION = "1.1.2" + VERSION = "1.1.3" end end end diff --git a/google-cloud-talent-v4/CHANGELOG.md b/google-cloud-talent-v4/CHANGELOG.md index af00cdd7e728..20ef73bd5d71 100644 --- a/google-cloud-talent-v4/CHANGELOG.md +++ b/google-cloud-talent-v4/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-talent-v4/google-cloud-talent-v4.gemspec b/google-cloud-talent-v4/google-cloud-talent-v4.gemspec index 1c87d6d6c5ea..64071099173c 100644 --- a/google-cloud-talent-v4/google-cloud-talent-v4.gemspec +++ b/google-cloud-talent-v4/google-cloud-talent-v4.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-talent-v4/lib/google/cloud/talent/v4/version.rb b/google-cloud-talent-v4/lib/google/cloud/talent/v4/version.rb index abde286ba976..fb56a1fa242e 100644 --- a/google-cloud-talent-v4/lib/google/cloud/talent/v4/version.rb +++ b/google-cloud-talent-v4/lib/google/cloud/talent/v4/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Talent module V4 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-talent-v4/snippets/snippet_metadata_google.cloud.talent.v4.json b/google-cloud-talent-v4/snippets/snippet_metadata_google.cloud.talent.v4.json index 132633658e13..955767da1a38 100644 --- a/google-cloud-talent-v4/snippets/snippet_metadata_google.cloud.talent.v4.json +++ b/google-cloud-talent-v4/snippets/snippet_metadata_google.cloud.talent.v4.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-talent-v4", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-talent-v4beta1/CHANGELOG.md b/google-cloud-talent-v4beta1/CHANGELOG.md index 73ae1ed25225..9f06b551b20f 100644 --- a/google-cloud-talent-v4beta1/CHANGELOG.md +++ b/google-cloud-talent-v4beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.15.0 (2025-05-12) #### Features diff --git a/google-cloud-talent-v4beta1/google-cloud-talent-v4beta1.gemspec b/google-cloud-talent-v4beta1/google-cloud-talent-v4beta1.gemspec index ed7dd81ce29e..377804f34680 100644 --- a/google-cloud-talent-v4beta1/google-cloud-talent-v4beta1.gemspec +++ b/google-cloud-talent-v4beta1/google-cloud-talent-v4beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-talent-v4beta1/lib/google/cloud/talent/v4beta1/version.rb b/google-cloud-talent-v4beta1/lib/google/cloud/talent/v4beta1/version.rb index 885862855c25..1543213ffbe7 100644 --- a/google-cloud-talent-v4beta1/lib/google/cloud/talent/v4beta1/version.rb +++ b/google-cloud-talent-v4beta1/lib/google/cloud/talent/v4beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Talent module V4beta1 - VERSION = "0.15.0" + VERSION = "0.16.0" end end end diff --git a/google-cloud-talent-v4beta1/snippets/snippet_metadata_google.cloud.talent.v4beta1.json b/google-cloud-talent-v4beta1/snippets/snippet_metadata_google.cloud.talent.v4beta1.json index 4ed7aa549fb0..7d020858d2fb 100644 --- a/google-cloud-talent-v4beta1/snippets/snippet_metadata_google.cloud.talent.v4beta1.json +++ b/google-cloud-talent-v4beta1/snippets/snippet_metadata_google.cloud.talent.v4beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-talent-v4beta1", - "version": "0.15.0", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-talent/CHANGELOG.md b/google-cloud-talent/CHANGELOG.md index 415b3b4551b7..2948d91f69a8 100644 --- a/google-cloud-talent/CHANGELOG.md +++ b/google-cloud-talent/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-talent/README.md b/google-cloud-talent/README.md index 0046098a83ab..03dca74b6700 100644 --- a/google-cloud-talent/README.md +++ b/google-cloud-talent/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/jobs.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/talent" + +client = Google::Cloud::Talent.company_service +request = ::Google::Cloud::Talent::V4::CreateCompanyRequest.new # (request fields as keyword arguments...) +response = client.create_company request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-talent/lib/google/cloud/talent/version.rb b/google-cloud-talent/lib/google/cloud/talent/version.rb index 676ca89f3462..bdec3d957ace 100644 --- a/google-cloud-talent/lib/google/cloud/talent/version.rb +++ b/google-cloud-talent/lib/google/cloud/talent/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Talent - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-tasks-v2/CHANGELOG.md b/google-cloud-tasks-v2/CHANGELOG.md index f5a475369bbe..aee8b3bbdf55 100644 --- a/google-cloud-tasks-v2/CHANGELOG.md +++ b/google-cloud-tasks-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-tasks-v2/google-cloud-tasks-v2.gemspec b/google-cloud-tasks-v2/google-cloud-tasks-v2.gemspec index 38fe097dede1..63333163fa53 100644 --- a/google-cloud-tasks-v2/google-cloud-tasks-v2.gemspec +++ b/google-cloud-tasks-v2/google-cloud-tasks-v2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-tasks-v2/lib/google/cloud/tasks/v2/version.rb b/google-cloud-tasks-v2/lib/google/cloud/tasks/v2/version.rb index 969077ce3836..9b4362ffec57 100644 --- a/google-cloud-tasks-v2/lib/google/cloud/tasks/v2/version.rb +++ b/google-cloud-tasks-v2/lib/google/cloud/tasks/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Tasks module V2 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-tasks-v2/snippets/snippet_metadata_google.cloud.tasks.v2.json b/google-cloud-tasks-v2/snippets/snippet_metadata_google.cloud.tasks.v2.json index ba490f47a634..cb63a223acdb 100644 --- a/google-cloud-tasks-v2/snippets/snippet_metadata_google.cloud.tasks.v2.json +++ b/google-cloud-tasks-v2/snippets/snippet_metadata_google.cloud.tasks.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-tasks-v2", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-tasks-v2beta2/CHANGELOG.md b/google-cloud-tasks-v2beta2/CHANGELOG.md index c086853fe1fb..7f1d26caf40a 100644 --- a/google-cloud-tasks-v2beta2/CHANGELOG.md +++ b/google-cloud-tasks-v2beta2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.16.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.15.0 (2025-05-12) #### Features diff --git a/google-cloud-tasks-v2beta2/google-cloud-tasks-v2beta2.gemspec b/google-cloud-tasks-v2beta2/google-cloud-tasks-v2beta2.gemspec index 66a554454e11..2cebbab90a64 100644 --- a/google-cloud-tasks-v2beta2/google-cloud-tasks-v2beta2.gemspec +++ b/google-cloud-tasks-v2beta2/google-cloud-tasks-v2beta2.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-tasks-v2beta2/lib/google/cloud/tasks/v2beta2/version.rb b/google-cloud-tasks-v2beta2/lib/google/cloud/tasks/v2beta2/version.rb index 52acefe29ced..0a1be59fd6c9 100644 --- a/google-cloud-tasks-v2beta2/lib/google/cloud/tasks/v2beta2/version.rb +++ b/google-cloud-tasks-v2beta2/lib/google/cloud/tasks/v2beta2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Tasks module V2beta2 - VERSION = "0.15.0" + VERSION = "0.16.0" end end end diff --git a/google-cloud-tasks-v2beta2/snippets/snippet_metadata_google.cloud.tasks.v2beta2.json b/google-cloud-tasks-v2beta2/snippets/snippet_metadata_google.cloud.tasks.v2beta2.json index 22ac369c28d5..7216bbecf92e 100644 --- a/google-cloud-tasks-v2beta2/snippets/snippet_metadata_google.cloud.tasks.v2beta2.json +++ b/google-cloud-tasks-v2beta2/snippets/snippet_metadata_google.cloud.tasks.v2beta2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-tasks-v2beta2", - "version": "0.15.0", + "version": "0.16.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-tasks-v2beta3/CHANGELOG.md b/google-cloud-tasks-v2beta3/CHANGELOG.md index 89859589b9c7..a1bcd186671d 100644 --- a/google-cloud-tasks-v2beta3/CHANGELOG.md +++ b/google-cloud-tasks-v2beta3/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.17.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.16.0 (2025-05-12) #### Features diff --git a/google-cloud-tasks-v2beta3/google-cloud-tasks-v2beta3.gemspec b/google-cloud-tasks-v2beta3/google-cloud-tasks-v2beta3.gemspec index 0de284b3b037..b069a59eb484 100644 --- a/google-cloud-tasks-v2beta3/google-cloud-tasks-v2beta3.gemspec +++ b/google-cloud-tasks-v2beta3/google-cloud-tasks-v2beta3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" diff --git a/google-cloud-tasks-v2beta3/lib/google/cloud/tasks/v2beta3/version.rb b/google-cloud-tasks-v2beta3/lib/google/cloud/tasks/v2beta3/version.rb index 74a35f226d17..d78437f4d6d8 100644 --- a/google-cloud-tasks-v2beta3/lib/google/cloud/tasks/v2beta3/version.rb +++ b/google-cloud-tasks-v2beta3/lib/google/cloud/tasks/v2beta3/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Tasks module V2beta3 - VERSION = "0.16.0" + VERSION = "0.17.0" end end end diff --git a/google-cloud-tasks-v2beta3/snippets/snippet_metadata_google.cloud.tasks.v2beta3.json b/google-cloud-tasks-v2beta3/snippets/snippet_metadata_google.cloud.tasks.v2beta3.json index 78ab0a656f29..16e319b9a22f 100644 --- a/google-cloud-tasks-v2beta3/snippets/snippet_metadata_google.cloud.tasks.v2beta3.json +++ b/google-cloud-tasks-v2beta3/snippets/snippet_metadata_google.cloud.tasks.v2beta3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-tasks-v2beta3", - "version": "0.16.0", + "version": "0.17.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-tasks/CHANGELOG.md b/google-cloud-tasks/CHANGELOG.md index 726e311c34e1..ae0177a6c597 100644 --- a/google-cloud-tasks/CHANGELOG.md +++ b/google-cloud-tasks/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 3.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 3.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-tasks/README.md b/google-cloud-tasks/README.md index 81fd70540cdd..8934af5f1638 100644 --- a/google-cloud-tasks/README.md +++ b/google-cloud-tasks/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudtasks.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/tasks" + +client = Google::Cloud::Tasks.cloud_tasks +request = ::Google::Cloud::Tasks::V2::ListQueuesRequest.new # (request fields as keyword arguments...) +response = client.list_queues request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-tasks/lib/google/cloud/tasks/version.rb b/google-cloud-tasks/lib/google/cloud/tasks/version.rb index a7c4e0581ec9..d68db04fead2 100644 --- a/google-cloud-tasks/lib/google/cloud/tasks/version.rb +++ b/google-cloud-tasks/lib/google/cloud/tasks/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Tasks - VERSION = "3.0.2" + VERSION = "3.0.3" end end end diff --git a/google-cloud-telco_automation-v1/CHANGELOG.md b/google-cloud-telco_automation-v1/CHANGELOG.md index 810d62bbeeb8..2583b13f9fec 100644 --- a/google-cloud-telco_automation-v1/CHANGELOG.md +++ b/google-cloud-telco_automation-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.1.0 (2025-05-12) #### Features diff --git a/google-cloud-telco_automation-v1/google-cloud-telco_automation-v1.gemspec b/google-cloud-telco_automation-v1/google-cloud-telco_automation-v1.gemspec index dd260cac6351..430444fcf8a1 100644 --- a/google-cloud-telco_automation-v1/google-cloud-telco_automation-v1.gemspec +++ b/google-cloud-telco_automation-v1/google-cloud-telco_automation-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-telco_automation-v1/lib/google/cloud/telco_automation/v1/version.rb b/google-cloud-telco_automation-v1/lib/google/cloud/telco_automation/v1/version.rb index 7281ce225bcf..fad62392ff24 100644 --- a/google-cloud-telco_automation-v1/lib/google/cloud/telco_automation/v1/version.rb +++ b/google-cloud-telco_automation-v1/lib/google/cloud/telco_automation/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module TelcoAutomation module V1 - VERSION = "2.1.0" + VERSION = "2.2.0" end end end diff --git a/google-cloud-telco_automation-v1/snippets/snippet_metadata_google.cloud.telcoautomation.v1.json b/google-cloud-telco_automation-v1/snippets/snippet_metadata_google.cloud.telcoautomation.v1.json index 7f404ae33e6c..5c007bf42175 100644 --- a/google-cloud-telco_automation-v1/snippets/snippet_metadata_google.cloud.telcoautomation.v1.json +++ b/google-cloud-telco_automation-v1/snippets/snippet_metadata_google.cloud.telcoautomation.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-telco_automation-v1", - "version": "2.1.0", + "version": "2.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-telco_automation/CHANGELOG.md b/google-cloud-telco_automation/CHANGELOG.md index 51c3217f3599..a7869c3e0153 100644 --- a/google-cloud-telco_automation/CHANGELOG.md +++ b/google-cloud-telco_automation/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-telco_automation/README.md b/google-cloud-telco_automation/README.md index 68a47c0438ca..0626b489ac95 100644 --- a/google-cloud-telco_automation/README.md +++ b/google-cloud-telco_automation/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/telcoautomation.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/telco_automation" + +client = Google::Cloud::TelcoAutomation.telco_automation +request = ::Google::Cloud::TelcoAutomation::V1::ListOrchestrationClustersRequest.new # (request fields as keyword arguments...) +response = client.list_orchestration_clusters request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-telco_automation/lib/google/cloud/telco_automation/version.rb b/google-cloud-telco_automation/lib/google/cloud/telco_automation/version.rb index 3be437b2ae2e..9574878e3d4c 100644 --- a/google-cloud-telco_automation/lib/google/cloud/telco_automation/version.rb +++ b/google-cloud-telco_automation/lib/google/cloud/telco_automation/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module TelcoAutomation - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-text_to_speech-v1/CHANGELOG.md b/google-cloud-text_to_speech-v1/CHANGELOG.md index 0299ede771e8..4cdd398be256 100644 --- a/google-cloud-text_to_speech-v1/CHANGELOG.md +++ b/google-cloud-text_to_speech-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 1.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 1.11.0 (2025-09-04) + +#### Features + +* Add prompt to SynthesisInput ([#30943](https://github.com/googleapis/google-cloud-ruby/issues/30943)) + ### 1.10.0 (2025-08-27) #### Features diff --git a/google-cloud-text_to_speech-v1/google-cloud-text_to_speech-v1.gemspec b/google-cloud-text_to_speech-v1/google-cloud-text_to_speech-v1.gemspec index 3801371793e0..a031828cd206 100644 --- a/google-cloud-text_to_speech-v1/google-cloud-text_to_speech-v1.gemspec +++ b/google-cloud-text_to_speech-v1/google-cloud-text_to_speech-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-text_to_speech-v1/lib/google/cloud/text_to_speech/v1/version.rb b/google-cloud-text_to_speech-v1/lib/google/cloud/text_to_speech/v1/version.rb index 2a2f21cbd36a..1ad1936b9cac 100644 --- a/google-cloud-text_to_speech-v1/lib/google/cloud/text_to_speech/v1/version.rb +++ b/google-cloud-text_to_speech-v1/lib/google/cloud/text_to_speech/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module TextToSpeech module V1 - VERSION = "1.10.0" + VERSION = "1.12.0" end end end diff --git a/google-cloud-text_to_speech-v1/lib/google/cloud/texttospeech/v1/cloud_tts_pb.rb b/google-cloud-text_to_speech-v1/lib/google/cloud/texttospeech/v1/cloud_tts_pb.rb index 22e51f5949f2..6ca415908cae 100644 --- a/google-cloud-text_to_speech-v1/lib/google/cloud/texttospeech/v1/cloud_tts_pb.rb +++ b/google-cloud-text_to_speech-v1/lib/google/cloud/texttospeech/v1/cloud_tts_pb.rb @@ -10,7 +10,7 @@ require 'google/api/resource_pb' -descriptor_data = "\n,google/cloud/texttospeech/v1/cloud_tts.proto\x12\x1cgoogle.cloud.texttospeech.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"/\n\x11ListVoicesRequest\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x01\"I\n\x12ListVoicesResponse\x12\x33\n\x06voices\x18\x01 \x03(\x0b\x32#.google.cloud.texttospeech.v1.Voice\"\x94\x01\n\x05Voice\x12\x16\n\x0elanguage_codes\x18\x01 \x03(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x42\n\x0bssml_gender\x18\x03 \x01(\x0e\x32-.google.cloud.texttospeech.v1.SsmlVoiceGender\x12!\n\x19natural_sample_rate_hertz\x18\x04 \x01(\x05\"d\n\x14\x41\x64vancedVoiceOptions\x12*\n\x1dlow_latency_journey_synthesis\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42 \n\x1e_low_latency_journey_synthesis\"\xdd\x02\n\x17SynthesizeSpeechRequest\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.google.cloud.texttospeech.v1.SynthesisInputB\x03\xe0\x41\x02\x12\x46\n\x05voice\x18\x02 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12\x44\n\x0c\x61udio_config\x18\x03 \x01(\x0b\x32).google.cloud.texttospeech.v1.AudioConfigB\x03\xe0\x41\x02\x12W\n\x16\x61\x64vanced_voice_options\x18\x08 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.AdvancedVoiceOptionsH\x00\x88\x01\x01\x42\x19\n\x17_advanced_voice_options\"\xa2\x03\n\x19\x43ustomPronunciationParams\x12\x13\n\x06phrase\x18\x01 \x01(\tH\x00\x88\x01\x01\x12h\n\x11phonetic_encoding\x18\x02 \x01(\x0e\x32H.google.cloud.texttospeech.v1.CustomPronunciationParams.PhoneticEncodingH\x01\x88\x01\x01\x12\x1a\n\rpronunciation\x18\x03 \x01(\tH\x02\x88\x01\x01\"\xb6\x01\n\x10PhoneticEncoding\x12!\n\x1dPHONETIC_ENCODING_UNSPECIFIED\x10\x00\x12\x19\n\x15PHONETIC_ENCODING_IPA\x10\x01\x12\x1d\n\x19PHONETIC_ENCODING_X_SAMPA\x10\x02\x12\'\n#PHONETIC_ENCODING_JAPANESE_YOMIGANA\x10\x03\x12\x1c\n\x18PHONETIC_ENCODING_PINYIN\x10\x04\x42\t\n\x07_phraseB\x14\n\x12_phonetic_encodingB\x10\n\x0e_pronunciation\"g\n\x14\x43ustomPronunciations\x12O\n\x0epronunciations\x18\x01 \x03(\x0b\x32\x37.google.cloud.texttospeech.v1.CustomPronunciationParams\"\x90\x01\n\x12MultiSpeakerMarkup\x12I\n\x05turns\x18\x01 \x03(\x0b\x32\x35.google.cloud.texttospeech.v1.MultiSpeakerMarkup.TurnB\x03\xe0\x41\x02\x1a/\n\x04Turn\x12\x14\n\x07speaker\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04text\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xfc\x01\n\x0eSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x0e\n\x04ssml\x18\x02 \x01(\tH\x00\x12P\n\x14multi_speaker_markup\x18\x04 \x01(\x0b\x32\x30.google.cloud.texttospeech.v1.MultiSpeakerMarkupH\x00\x12V\n\x15\x63ustom_pronunciations\x18\x03 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.CustomPronunciationsB\x03\xe0\x41\x01\x42\x0e\n\x0cinput_source\"\xae\x02\n\x14VoiceSelectionParams\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x42\n\x0bssml_gender\x18\x03 \x01(\x0e\x32-.google.cloud.texttospeech.v1.SsmlVoiceGender\x12\x45\n\x0c\x63ustom_voice\x18\x04 \x01(\x0b\x32/.google.cloud.texttospeech.v1.CustomVoiceParams\x12H\n\x0bvoice_clone\x18\x05 \x01(\x0b\x32..google.cloud.texttospeech.v1.VoiceCloneParamsB\x03\xe0\x41\x01\x12\x17\n\nmodel_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xf1\x01\n\x0b\x41udioConfig\x12H\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32+.google.cloud.texttospeech.v1.AudioEncodingB\x03\xe0\x41\x02\x12\x1d\n\rspeaking_rate\x18\x02 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x15\n\x05pitch\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x0evolume_gain_db\x18\x04 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x11sample_rate_hertz\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01\x12\"\n\x12\x65\x66\x66\x65\x63ts_profile_id\x18\x06 \x03(\tB\x06\xe0\x41\x04\xe0\x41\x01\"\xf1\x01\n\x11\x43ustomVoiceParams\x12\x32\n\x05model\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1b\x61utoml.googleapis.com/Model\x12\\\n\x0ereported_usage\x18\x03 \x01(\x0e\x32=.google.cloud.texttospeech.v1.CustomVoiceParams.ReportedUsageB\x05\x18\x01\xe0\x41\x01\"J\n\rReportedUsage\x12\x1e\n\x1aREPORTED_USAGE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REALTIME\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02\"2\n\x10VoiceCloneParams\x12\x1e\n\x11voice_cloning_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\"1\n\x18SynthesizeSpeechResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c\"\x9f\x01\n\x14StreamingAudioConfig\x12H\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32+.google.cloud.texttospeech.v1.AudioEncodingB\x03\xe0\x41\x02\x12\x1e\n\x11sample_rate_hertz\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1d\n\rspeaking_rate\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\"\x94\x02\n\x19StreamingSynthesizeConfig\x12\x46\n\x05voice\x18\x01 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12W\n\x16streaming_audio_config\x18\x04 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.StreamingAudioConfigB\x03\xe0\x41\x01\x12V\n\x15\x63ustom_pronunciations\x18\x05 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.CustomPronunciationsB\x03\xe0\x41\x01\"k\n\x17StreamingSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x13\n\x06prompt\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0cinput_sourceB\t\n\x07_prompt\"\xce\x01\n\x1aStreamingSynthesizeRequest\x12S\n\x10streaming_config\x18\x01 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1.StreamingSynthesizeConfigH\x00\x12\x46\n\x05input\x18\x02 \x01(\x0b\x32\x35.google.cloud.texttospeech.v1.StreamingSynthesisInputH\x00\x42\x13\n\x11streaming_request\"4\n\x1bStreamingSynthesizeResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c*W\n\x0fSsmlVoiceGender\x12!\n\x1dSSML_VOICE_GENDER_UNSPECIFIED\x10\x00\x12\x08\n\x04MALE\x10\x01\x12\n\n\x06\x46\x45MALE\x10\x02\x12\x0b\n\x07NEUTRAL\x10\x03*{\n\rAudioEncoding\x12\x1e\n\x1a\x41UDIO_ENCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x07\n\x03MP3\x10\x02\x12\x0c\n\x08OGG_OPUS\x10\x03\x12\t\n\x05MULAW\x10\x05\x12\x08\n\x04\x41LAW\x10\x06\x12\x07\n\x03PCM\x10\x07\x12\x07\n\x03M4A\x10\x08\x32\xc7\x04\n\x0cTextToSpeech\x12\x93\x01\n\nListVoices\x12/.google.cloud.texttospeech.v1.ListVoicesRequest\x1a\x30.google.cloud.texttospeech.v1.ListVoicesResponse\"\"\xda\x41\rlanguage_code\x82\xd3\xe4\x93\x02\x0c\x12\n/v1/voices\x12\xbc\x01\n\x10SynthesizeSpeech\x12\x35.google.cloud.texttospeech.v1.SynthesizeSpeechRequest\x1a\x36.google.cloud.texttospeech.v1.SynthesizeSpeechResponse\"9\xda\x41\x18input,voice,audio_config\x82\xd3\xe4\x93\x02\x18\"\x13/v1/text:synthesize:\x01*\x12\x90\x01\n\x13StreamingSynthesize\x12\x38.google.cloud.texttospeech.v1.StreamingSynthesizeRequest\x1a\x39.google.cloud.texttospeech.v1.StreamingSynthesizeResponse\"\x00(\x01\x30\x01\x1aO\xca\x41\x1btexttospeech.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xbc\x02\n com.google.cloud.texttospeech.v1B\x11TextToSpeechProtoP\x01ZDcloud.google.com/go/texttospeech/apiv1/texttospeechpb;texttospeechpb\xa2\x02\x04\x43TTS\xaa\x02\x1cGoogle.Cloud.TextToSpeech.V1\xca\x02\x1cGoogle\\Cloud\\TextToSpeech\\V1\xea\x02\x1fGoogle::Cloud::TextToSpeech::V1\xea\x41U\n\x1b\x61utoml.googleapis.com/Model\x12\x36projects/{project}/locations/{location}/models/{model}b\x06proto3" +descriptor_data = "\n,google/cloud/texttospeech/v1/cloud_tts.proto\x12\x1cgoogle.cloud.texttospeech.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"/\n\x11ListVoicesRequest\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x01\"I\n\x12ListVoicesResponse\x12\x33\n\x06voices\x18\x01 \x03(\x0b\x32#.google.cloud.texttospeech.v1.Voice\"\x94\x01\n\x05Voice\x12\x16\n\x0elanguage_codes\x18\x01 \x03(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x42\n\x0bssml_gender\x18\x03 \x01(\x0e\x32-.google.cloud.texttospeech.v1.SsmlVoiceGender\x12!\n\x19natural_sample_rate_hertz\x18\x04 \x01(\x05\"d\n\x14\x41\x64vancedVoiceOptions\x12*\n\x1dlow_latency_journey_synthesis\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42 \n\x1e_low_latency_journey_synthesis\"\xdd\x02\n\x17SynthesizeSpeechRequest\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.google.cloud.texttospeech.v1.SynthesisInputB\x03\xe0\x41\x02\x12\x46\n\x05voice\x18\x02 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12\x44\n\x0c\x61udio_config\x18\x03 \x01(\x0b\x32).google.cloud.texttospeech.v1.AudioConfigB\x03\xe0\x41\x02\x12W\n\x16\x61\x64vanced_voice_options\x18\x08 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.AdvancedVoiceOptionsH\x00\x88\x01\x01\x42\x19\n\x17_advanced_voice_options\"\xa2\x03\n\x19\x43ustomPronunciationParams\x12\x13\n\x06phrase\x18\x01 \x01(\tH\x00\x88\x01\x01\x12h\n\x11phonetic_encoding\x18\x02 \x01(\x0e\x32H.google.cloud.texttospeech.v1.CustomPronunciationParams.PhoneticEncodingH\x01\x88\x01\x01\x12\x1a\n\rpronunciation\x18\x03 \x01(\tH\x02\x88\x01\x01\"\xb6\x01\n\x10PhoneticEncoding\x12!\n\x1dPHONETIC_ENCODING_UNSPECIFIED\x10\x00\x12\x19\n\x15PHONETIC_ENCODING_IPA\x10\x01\x12\x1d\n\x19PHONETIC_ENCODING_X_SAMPA\x10\x02\x12\'\n#PHONETIC_ENCODING_JAPANESE_YOMIGANA\x10\x03\x12\x1c\n\x18PHONETIC_ENCODING_PINYIN\x10\x04\x42\t\n\x07_phraseB\x14\n\x12_phonetic_encodingB\x10\n\x0e_pronunciation\"g\n\x14\x43ustomPronunciations\x12O\n\x0epronunciations\x18\x01 \x03(\x0b\x32\x37.google.cloud.texttospeech.v1.CustomPronunciationParams\"\x90\x01\n\x12MultiSpeakerMarkup\x12I\n\x05turns\x18\x01 \x03(\x0b\x32\x35.google.cloud.texttospeech.v1.MultiSpeakerMarkup.TurnB\x03\xe0\x41\x02\x1a/\n\x04Turn\x12\x14\n\x07speaker\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04text\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x9c\x02\n\x0eSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x0e\n\x04ssml\x18\x02 \x01(\tH\x00\x12P\n\x14multi_speaker_markup\x18\x04 \x01(\x0b\x32\x30.google.cloud.texttospeech.v1.MultiSpeakerMarkupH\x00\x12\x13\n\x06prompt\x18\x06 \x01(\tH\x01\x88\x01\x01\x12V\n\x15\x63ustom_pronunciations\x18\x03 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.CustomPronunciationsB\x03\xe0\x41\x01\x42\x0e\n\x0cinput_sourceB\t\n\x07_prompt\"\xae\x02\n\x14VoiceSelectionParams\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x42\n\x0bssml_gender\x18\x03 \x01(\x0e\x32-.google.cloud.texttospeech.v1.SsmlVoiceGender\x12\x45\n\x0c\x63ustom_voice\x18\x04 \x01(\x0b\x32/.google.cloud.texttospeech.v1.CustomVoiceParams\x12H\n\x0bvoice_clone\x18\x05 \x01(\x0b\x32..google.cloud.texttospeech.v1.VoiceCloneParamsB\x03\xe0\x41\x01\x12\x17\n\nmodel_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xf1\x01\n\x0b\x41udioConfig\x12H\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32+.google.cloud.texttospeech.v1.AudioEncodingB\x03\xe0\x41\x02\x12\x1d\n\rspeaking_rate\x18\x02 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x15\n\x05pitch\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x0evolume_gain_db\x18\x04 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x11sample_rate_hertz\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01\x12\"\n\x12\x65\x66\x66\x65\x63ts_profile_id\x18\x06 \x03(\tB\x06\xe0\x41\x04\xe0\x41\x01\"\xf1\x01\n\x11\x43ustomVoiceParams\x12\x32\n\x05model\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1b\x61utoml.googleapis.com/Model\x12\\\n\x0ereported_usage\x18\x03 \x01(\x0e\x32=.google.cloud.texttospeech.v1.CustomVoiceParams.ReportedUsageB\x05\x18\x01\xe0\x41\x01\"J\n\rReportedUsage\x12\x1e\n\x1aREPORTED_USAGE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REALTIME\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02\"2\n\x10VoiceCloneParams\x12\x1e\n\x11voice_cloning_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\"1\n\x18SynthesizeSpeechResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c\"\x9f\x01\n\x14StreamingAudioConfig\x12H\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32+.google.cloud.texttospeech.v1.AudioEncodingB\x03\xe0\x41\x02\x12\x1e\n\x11sample_rate_hertz\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1d\n\rspeaking_rate\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\"\x94\x02\n\x19StreamingSynthesizeConfig\x12\x46\n\x05voice\x18\x01 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12W\n\x16streaming_audio_config\x18\x04 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.StreamingAudioConfigB\x03\xe0\x41\x01\x12V\n\x15\x63ustom_pronunciations\x18\x05 \x01(\x0b\x32\x32.google.cloud.texttospeech.v1.CustomPronunciationsB\x03\xe0\x41\x01\"k\n\x17StreamingSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x13\n\x06prompt\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0cinput_sourceB\t\n\x07_prompt\"\xce\x01\n\x1aStreamingSynthesizeRequest\x12S\n\x10streaming_config\x18\x01 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1.StreamingSynthesizeConfigH\x00\x12\x46\n\x05input\x18\x02 \x01(\x0b\x32\x35.google.cloud.texttospeech.v1.StreamingSynthesisInputH\x00\x42\x13\n\x11streaming_request\"4\n\x1bStreamingSynthesizeResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c*W\n\x0fSsmlVoiceGender\x12!\n\x1dSSML_VOICE_GENDER_UNSPECIFIED\x10\x00\x12\x08\n\x04MALE\x10\x01\x12\n\n\x06\x46\x45MALE\x10\x02\x12\x0b\n\x07NEUTRAL\x10\x03*{\n\rAudioEncoding\x12\x1e\n\x1a\x41UDIO_ENCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x07\n\x03MP3\x10\x02\x12\x0c\n\x08OGG_OPUS\x10\x03\x12\t\n\x05MULAW\x10\x05\x12\x08\n\x04\x41LAW\x10\x06\x12\x07\n\x03PCM\x10\x07\x12\x07\n\x03M4A\x10\x08\x32\xc7\x04\n\x0cTextToSpeech\x12\x93\x01\n\nListVoices\x12/.google.cloud.texttospeech.v1.ListVoicesRequest\x1a\x30.google.cloud.texttospeech.v1.ListVoicesResponse\"\"\xda\x41\rlanguage_code\x82\xd3\xe4\x93\x02\x0c\x12\n/v1/voices\x12\xbc\x01\n\x10SynthesizeSpeech\x12\x35.google.cloud.texttospeech.v1.SynthesizeSpeechRequest\x1a\x36.google.cloud.texttospeech.v1.SynthesizeSpeechResponse\"9\xda\x41\x18input,voice,audio_config\x82\xd3\xe4\x93\x02\x18\"\x13/v1/text:synthesize:\x01*\x12\x90\x01\n\x13StreamingSynthesize\x12\x38.google.cloud.texttospeech.v1.StreamingSynthesizeRequest\x1a\x39.google.cloud.texttospeech.v1.StreamingSynthesizeResponse\"\x00(\x01\x30\x01\x1aO\xca\x41\x1btexttospeech.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xbc\x02\n com.google.cloud.texttospeech.v1B\x11TextToSpeechProtoP\x01ZDcloud.google.com/go/texttospeech/apiv1/texttospeechpb;texttospeechpb\xa2\x02\x04\x43TTS\xaa\x02\x1cGoogle.Cloud.TextToSpeech.V1\xca\x02\x1cGoogle\\Cloud\\TextToSpeech\\V1\xea\x02\x1fGoogle::Cloud::TextToSpeech::V1\xea\x41U\n\x1b\x61utoml.googleapis.com/Model\x12\x36projects/{project}/locations/{location}/models/{model}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-text_to_speech-v1/proto_docs/google/cloud/texttospeech/v1/cloud_tts.rb b/google-cloud-text_to_speech-v1/proto_docs/google/cloud/texttospeech/v1/cloud_tts.rb index a01eb5d6853b..8b09eb63abf0 100644 --- a/google-cloud-text_to_speech-v1/proto_docs/google/cloud/texttospeech/v1/cloud_tts.rb +++ b/google-cloud-text_to_speech-v1/proto_docs/google/cloud/texttospeech/v1/cloud_tts.rb @@ -210,6 +210,12 @@ class Turn # multi-speaker synthesis. # # Note: The following fields are mutually exclusive: `multi_speaker_markup`, `text`, `markup`, `ssml`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] prompt + # @return [::String] + # This system instruction is supported only for controllable/promptable voice + # models. If this system instruction is used, we pass the unedited text to + # Gemini-TTS. Otherwise, a default system instruction is used. AI Studio + # calls this system instruction, Style Instructions. # @!attribute [rw] custom_pronunciations # @return [::Google::Cloud::TextToSpeech::V1::CustomPronunciations] # Optional. The pronunciation customizations are applied to the input. If diff --git a/google-cloud-text_to_speech-v1/snippets/snippet_metadata_google.cloud.texttospeech.v1.json b/google-cloud-text_to_speech-v1/snippets/snippet_metadata_google.cloud.texttospeech.v1.json index 3b93c825ab47..c08d992da4be 100644 --- a/google-cloud-text_to_speech-v1/snippets/snippet_metadata_google.cloud.texttospeech.v1.json +++ b/google-cloud-text_to_speech-v1/snippets/snippet_metadata_google.cloud.texttospeech.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-text_to_speech-v1", - "version": "1.10.0", + "version": "1.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-text_to_speech-v1beta1/CHANGELOG.md b/google-cloud-text_to_speech-v1beta1/CHANGELOG.md index b1c324fa3846..3c38e6b3f33c 100644 --- a/google-cloud-text_to_speech-v1beta1/CHANGELOG.md +++ b/google-cloud-text_to_speech-v1beta1/CHANGELOG.md @@ -1,5 +1,17 @@ # Release History +### 0.24.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 0.23.0 (2025-09-04) + +#### Features + +* Add string value prompt to SynthesisInput ([#30942](https://github.com/googleapis/google-cloud-ruby/issues/30942)) + ### 0.22.0 (2025-08-27) #### Features diff --git a/google-cloud-text_to_speech-v1beta1/google-cloud-text_to_speech-v1beta1.gemspec b/google-cloud-text_to_speech-v1beta1/google-cloud-text_to_speech-v1beta1.gemspec index 1ed570c9f1b6..7e1ef7e87ddf 100644 --- a/google-cloud-text_to_speech-v1beta1/google-cloud-text_to_speech-v1beta1.gemspec +++ b/google-cloud-text_to_speech-v1beta1/google-cloud-text_to_speech-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-text_to_speech-v1beta1/lib/google/cloud/text_to_speech/v1beta1/version.rb b/google-cloud-text_to_speech-v1beta1/lib/google/cloud/text_to_speech/v1beta1/version.rb index f4746ac95a35..af47405fcff3 100644 --- a/google-cloud-text_to_speech-v1beta1/lib/google/cloud/text_to_speech/v1beta1/version.rb +++ b/google-cloud-text_to_speech-v1beta1/lib/google/cloud/text_to_speech/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module TextToSpeech module V1beta1 - VERSION = "0.22.0" + VERSION = "0.24.0" end end end diff --git a/google-cloud-text_to_speech-v1beta1/lib/google/cloud/texttospeech/v1beta1/cloud_tts_pb.rb b/google-cloud-text_to_speech-v1beta1/lib/google/cloud/texttospeech/v1beta1/cloud_tts_pb.rb index 266532d8ee76..4ed51a248b5c 100644 --- a/google-cloud-text_to_speech-v1beta1/lib/google/cloud/texttospeech/v1beta1/cloud_tts_pb.rb +++ b/google-cloud-text_to_speech-v1beta1/lib/google/cloud/texttospeech/v1beta1/cloud_tts_pb.rb @@ -10,7 +10,7 @@ require 'google/api/resource_pb' -descriptor_data = "\n1google/cloud/texttospeech/v1beta1/cloud_tts.proto\x12!google.cloud.texttospeech.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"/\n\x11ListVoicesRequest\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x01\"N\n\x12ListVoicesResponse\x12\x38\n\x06voices\x18\x01 \x03(\x0b\x32(.google.cloud.texttospeech.v1beta1.Voice\"\x99\x01\n\x05Voice\x12\x16\n\x0elanguage_codes\x18\x01 \x03(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12G\n\x0bssml_gender\x18\x03 \x01(\x0e\x32\x32.google.cloud.texttospeech.v1beta1.SsmlVoiceGender\x12!\n\x19natural_sample_rate_hertz\x18\x04 \x01(\x05\"d\n\x14\x41\x64vancedVoiceOptions\x12*\n\x1dlow_latency_journey_synthesis\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42 \n\x1e_low_latency_journey_synthesis\"\x99\x04\n\x17SynthesizeSpeechRequest\x12\x45\n\x05input\x18\x01 \x01(\x0b\x32\x31.google.cloud.texttospeech.v1beta1.SynthesisInputB\x03\xe0\x41\x02\x12K\n\x05voice\x18\x02 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12I\n\x0c\x61udio_config\x18\x03 \x01(\x0b\x32..google.cloud.texttospeech.v1beta1.AudioConfigB\x03\xe0\x41\x02\x12\x66\n\x14\x65nable_time_pointing\x18\x04 \x03(\x0e\x32H.google.cloud.texttospeech.v1beta1.SynthesizeSpeechRequest.TimepointType\x12\\\n\x16\x61\x64vanced_voice_options\x18\x08 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.AdvancedVoiceOptionsH\x00\x88\x01\x01\">\n\rTimepointType\x12\x1e\n\x1aTIMEPOINT_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tSSML_MARK\x10\x01\x42\x19\n\x17_advanced_voice_options\"\xa7\x03\n\x19\x43ustomPronunciationParams\x12\x13\n\x06phrase\x18\x01 \x01(\tH\x00\x88\x01\x01\x12m\n\x11phonetic_encoding\x18\x02 \x01(\x0e\x32M.google.cloud.texttospeech.v1beta1.CustomPronunciationParams.PhoneticEncodingH\x01\x88\x01\x01\x12\x1a\n\rpronunciation\x18\x03 \x01(\tH\x02\x88\x01\x01\"\xb6\x01\n\x10PhoneticEncoding\x12!\n\x1dPHONETIC_ENCODING_UNSPECIFIED\x10\x00\x12\x19\n\x15PHONETIC_ENCODING_IPA\x10\x01\x12\x1d\n\x19PHONETIC_ENCODING_X_SAMPA\x10\x02\x12\'\n#PHONETIC_ENCODING_JAPANESE_YOMIGANA\x10\x03\x12\x1c\n\x18PHONETIC_ENCODING_PINYIN\x10\x04\x42\t\n\x07_phraseB\x14\n\x12_phonetic_encodingB\x10\n\x0e_pronunciation\"l\n\x14\x43ustomPronunciations\x12T\n\x0epronunciations\x18\x01 \x03(\x0b\x32<.google.cloud.texttospeech.v1beta1.CustomPronunciationParams\"\x95\x01\n\x12MultiSpeakerMarkup\x12N\n\x05turns\x18\x01 \x03(\x0b\x32:.google.cloud.texttospeech.v1beta1.MultiSpeakerMarkup.TurnB\x03\xe0\x41\x02\x1a/\n\x04Turn\x12\x14\n\x07speaker\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04text\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\x86\x02\n\x0eSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x0e\n\x04ssml\x18\x02 \x01(\tH\x00\x12U\n\x14multi_speaker_markup\x18\x04 \x01(\x0b\x32\x35.google.cloud.texttospeech.v1beta1.MultiSpeakerMarkupH\x00\x12[\n\x15\x63ustom_pronunciations\x18\x03 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.CustomPronunciationsB\x03\xe0\x41\x01\x42\x0e\n\x0cinput_source\"\xbd\x02\n\x14VoiceSelectionParams\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0c\n\x04name\x18\x02 \x01(\t\x12G\n\x0bssml_gender\x18\x03 \x01(\x0e\x32\x32.google.cloud.texttospeech.v1beta1.SsmlVoiceGender\x12J\n\x0c\x63ustom_voice\x18\x04 \x01(\x0b\x32\x34.google.cloud.texttospeech.v1beta1.CustomVoiceParams\x12M\n\x0bvoice_clone\x18\x05 \x01(\x0b\x32\x33.google.cloud.texttospeech.v1beta1.VoiceCloneParamsB\x03\xe0\x41\x01\x12\x17\n\nmodel_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xf6\x01\n\x0b\x41udioConfig\x12M\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32\x30.google.cloud.texttospeech.v1beta1.AudioEncodingB\x03\xe0\x41\x02\x12\x1d\n\rspeaking_rate\x18\x02 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x15\n\x05pitch\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x0evolume_gain_db\x18\x04 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x11sample_rate_hertz\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01\x12\"\n\x12\x65\x66\x66\x65\x63ts_profile_id\x18\x06 \x03(\tB\x06\xe0\x41\x04\xe0\x41\x01\"\xf6\x01\n\x11\x43ustomVoiceParams\x12\x32\n\x05model\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1b\x61utoml.googleapis.com/Model\x12\x61\n\x0ereported_usage\x18\x03 \x01(\x0e\x32\x42.google.cloud.texttospeech.v1beta1.CustomVoiceParams.ReportedUsageB\x05\x18\x01\xe0\x41\x01\"J\n\rReportedUsage\x12\x1e\n\x1aREPORTED_USAGE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REALTIME\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02\"2\n\x10VoiceCloneParams\x12\x1e\n\x11voice_cloning_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xb9\x01\n\x18SynthesizeSpeechResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c\x12@\n\ntimepoints\x18\x02 \x03(\x0b\x32,.google.cloud.texttospeech.v1beta1.Timepoint\x12\x44\n\x0c\x61udio_config\x18\x04 \x01(\x0b\x32..google.cloud.texttospeech.v1beta1.AudioConfig\"4\n\tTimepoint\x12\x11\n\tmark_name\x18\x04 \x01(\t\x12\x14\n\x0ctime_seconds\x18\x03 \x01(\x01\"\xa4\x01\n\x14StreamingAudioConfig\x12M\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32\x30.google.cloud.texttospeech.v1beta1.AudioEncodingB\x03\xe0\x41\x02\x12\x1e\n\x11sample_rate_hertz\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1d\n\rspeaking_rate\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\"\xa3\x02\n\x19StreamingSynthesizeConfig\x12K\n\x05voice\x18\x01 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12\\\n\x16streaming_audio_config\x18\x04 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.StreamingAudioConfigB\x03\xe0\x41\x01\x12[\n\x15\x63ustom_pronunciations\x18\x05 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.CustomPronunciationsB\x03\xe0\x41\x01\"k\n\x17StreamingSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x13\n\x06prompt\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0cinput_sourceB\t\n\x07_prompt\"\xd8\x01\n\x1aStreamingSynthesizeRequest\x12X\n\x10streaming_config\x18\x01 \x01(\x0b\x32<.google.cloud.texttospeech.v1beta1.StreamingSynthesizeConfigH\x00\x12K\n\x05input\x18\x02 \x01(\x0b\x32:.google.cloud.texttospeech.v1beta1.StreamingSynthesisInputH\x00\x42\x13\n\x11streaming_request\"4\n\x1bStreamingSynthesizeResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c*W\n\x0fSsmlVoiceGender\x12!\n\x1dSSML_VOICE_GENDER_UNSPECIFIED\x10\x00\x12\x08\n\x04MALE\x10\x01\x12\n\n\x06\x46\x45MALE\x10\x02\x12\x0b\n\x07NEUTRAL\x10\x03*\x8c\x01\n\rAudioEncoding\x12\x1e\n\x1a\x41UDIO_ENCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x07\n\x03MP3\x10\x02\x12\x0f\n\x0bMP3_64_KBPS\x10\x04\x12\x0c\n\x08OGG_OPUS\x10\x03\x12\t\n\x05MULAW\x10\x05\x12\x08\n\x04\x41LAW\x10\x06\x12\x07\n\x03PCM\x10\x07\x12\x07\n\x03M4A\x10\x08\x32\xef\x04\n\x0cTextToSpeech\x12\xa2\x01\n\nListVoices\x12\x34.google.cloud.texttospeech.v1beta1.ListVoicesRequest\x1a\x35.google.cloud.texttospeech.v1beta1.ListVoicesResponse\"\'\xda\x41\rlanguage_code\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1beta1/voices\x12\xcb\x01\n\x10SynthesizeSpeech\x12:.google.cloud.texttospeech.v1beta1.SynthesizeSpeechRequest\x1a;.google.cloud.texttospeech.v1beta1.SynthesizeSpeechResponse\">\xda\x41\x18input,voice,audio_config\x82\xd3\xe4\x93\x02\x1d\"\x18/v1beta1/text:synthesize:\x01*\x12\x9a\x01\n\x13StreamingSynthesize\x12=.google.cloud.texttospeech.v1beta1.StreamingSynthesizeRequest\x1a>.google.cloud.texttospeech.v1beta1.StreamingSynthesizeResponse\"\x00(\x01\x30\x01\x1aO\xca\x41\x1btexttospeech.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xd5\x02\n%com.google.cloud.texttospeech.v1beta1B\x11TextToSpeechProtoP\x01ZIcloud.google.com/go/texttospeech/apiv1beta1/texttospeechpb;texttospeechpb\xa2\x02\x04\x43TTS\xaa\x02!Google.Cloud.TextToSpeech.V1Beta1\xca\x02!Google\\Cloud\\TextToSpeech\\V1beta1\xea\x02$Google::Cloud::TextToSpeech::V1beta1\xea\x41U\n\x1b\x61utoml.googleapis.com/Model\x12\x36projects/{project}/locations/{location}/models/{model}b\x06proto3" +descriptor_data = "\n1google/cloud/texttospeech/v1beta1/cloud_tts.proto\x12!google.cloud.texttospeech.v1beta1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"/\n\x11ListVoicesRequest\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x01\"N\n\x12ListVoicesResponse\x12\x38\n\x06voices\x18\x01 \x03(\x0b\x32(.google.cloud.texttospeech.v1beta1.Voice\"\x99\x01\n\x05Voice\x12\x16\n\x0elanguage_codes\x18\x01 \x03(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12G\n\x0bssml_gender\x18\x03 \x01(\x0e\x32\x32.google.cloud.texttospeech.v1beta1.SsmlVoiceGender\x12!\n\x19natural_sample_rate_hertz\x18\x04 \x01(\x05\"d\n\x14\x41\x64vancedVoiceOptions\x12*\n\x1dlow_latency_journey_synthesis\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42 \n\x1e_low_latency_journey_synthesis\"\x99\x04\n\x17SynthesizeSpeechRequest\x12\x45\n\x05input\x18\x01 \x01(\x0b\x32\x31.google.cloud.texttospeech.v1beta1.SynthesisInputB\x03\xe0\x41\x02\x12K\n\x05voice\x18\x02 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12I\n\x0c\x61udio_config\x18\x03 \x01(\x0b\x32..google.cloud.texttospeech.v1beta1.AudioConfigB\x03\xe0\x41\x02\x12\x66\n\x14\x65nable_time_pointing\x18\x04 \x03(\x0e\x32H.google.cloud.texttospeech.v1beta1.SynthesizeSpeechRequest.TimepointType\x12\\\n\x16\x61\x64vanced_voice_options\x18\x08 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.AdvancedVoiceOptionsH\x00\x88\x01\x01\">\n\rTimepointType\x12\x1e\n\x1aTIMEPOINT_TYPE_UNSPECIFIED\x10\x00\x12\r\n\tSSML_MARK\x10\x01\x42\x19\n\x17_advanced_voice_options\"\xa7\x03\n\x19\x43ustomPronunciationParams\x12\x13\n\x06phrase\x18\x01 \x01(\tH\x00\x88\x01\x01\x12m\n\x11phonetic_encoding\x18\x02 \x01(\x0e\x32M.google.cloud.texttospeech.v1beta1.CustomPronunciationParams.PhoneticEncodingH\x01\x88\x01\x01\x12\x1a\n\rpronunciation\x18\x03 \x01(\tH\x02\x88\x01\x01\"\xb6\x01\n\x10PhoneticEncoding\x12!\n\x1dPHONETIC_ENCODING_UNSPECIFIED\x10\x00\x12\x19\n\x15PHONETIC_ENCODING_IPA\x10\x01\x12\x1d\n\x19PHONETIC_ENCODING_X_SAMPA\x10\x02\x12\'\n#PHONETIC_ENCODING_JAPANESE_YOMIGANA\x10\x03\x12\x1c\n\x18PHONETIC_ENCODING_PINYIN\x10\x04\x42\t\n\x07_phraseB\x14\n\x12_phonetic_encodingB\x10\n\x0e_pronunciation\"l\n\x14\x43ustomPronunciations\x12T\n\x0epronunciations\x18\x01 \x03(\x0b\x32<.google.cloud.texttospeech.v1beta1.CustomPronunciationParams\"\x95\x01\n\x12MultiSpeakerMarkup\x12N\n\x05turns\x18\x01 \x03(\x0b\x32:.google.cloud.texttospeech.v1beta1.MultiSpeakerMarkup.TurnB\x03\xe0\x41\x02\x1a/\n\x04Turn\x12\x14\n\x07speaker\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x11\n\x04text\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xa6\x02\n\x0eSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x0e\n\x04ssml\x18\x02 \x01(\tH\x00\x12U\n\x14multi_speaker_markup\x18\x04 \x01(\x0b\x32\x35.google.cloud.texttospeech.v1beta1.MultiSpeakerMarkupH\x00\x12\x13\n\x06prompt\x18\x06 \x01(\tH\x01\x88\x01\x01\x12[\n\x15\x63ustom_pronunciations\x18\x03 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.CustomPronunciationsB\x03\xe0\x41\x01\x42\x0e\n\x0cinput_sourceB\t\n\x07_prompt\"\xbd\x02\n\x14VoiceSelectionParams\x12\x1a\n\rlanguage_code\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x0c\n\x04name\x18\x02 \x01(\t\x12G\n\x0bssml_gender\x18\x03 \x01(\x0e\x32\x32.google.cloud.texttospeech.v1beta1.SsmlVoiceGender\x12J\n\x0c\x63ustom_voice\x18\x04 \x01(\x0b\x32\x34.google.cloud.texttospeech.v1beta1.CustomVoiceParams\x12M\n\x0bvoice_clone\x18\x05 \x01(\x0b\x32\x33.google.cloud.texttospeech.v1beta1.VoiceCloneParamsB\x03\xe0\x41\x01\x12\x17\n\nmodel_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xf6\x01\n\x0b\x41udioConfig\x12M\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32\x30.google.cloud.texttospeech.v1beta1.AudioEncodingB\x03\xe0\x41\x02\x12\x1d\n\rspeaking_rate\x18\x02 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x15\n\x05pitch\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x0evolume_gain_db\x18\x04 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\x12\x1e\n\x11sample_rate_hertz\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01\x12\"\n\x12\x65\x66\x66\x65\x63ts_profile_id\x18\x06 \x03(\tB\x06\xe0\x41\x04\xe0\x41\x01\"\xf6\x01\n\x11\x43ustomVoiceParams\x12\x32\n\x05model\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1b\x61utoml.googleapis.com/Model\x12\x61\n\x0ereported_usage\x18\x03 \x01(\x0e\x32\x42.google.cloud.texttospeech.v1beta1.CustomVoiceParams.ReportedUsageB\x05\x18\x01\xe0\x41\x01\"J\n\rReportedUsage\x12\x1e\n\x1aREPORTED_USAGE_UNSPECIFIED\x10\x00\x12\x0c\n\x08REALTIME\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02\"2\n\x10VoiceCloneParams\x12\x1e\n\x11voice_cloning_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\xb9\x01\n\x18SynthesizeSpeechResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c\x12@\n\ntimepoints\x18\x02 \x03(\x0b\x32,.google.cloud.texttospeech.v1beta1.Timepoint\x12\x44\n\x0c\x61udio_config\x18\x04 \x01(\x0b\x32..google.cloud.texttospeech.v1beta1.AudioConfig\"4\n\tTimepoint\x12\x11\n\tmark_name\x18\x04 \x01(\t\x12\x14\n\x0ctime_seconds\x18\x03 \x01(\x01\"\xa4\x01\n\x14StreamingAudioConfig\x12M\n\x0e\x61udio_encoding\x18\x01 \x01(\x0e\x32\x30.google.cloud.texttospeech.v1beta1.AudioEncodingB\x03\xe0\x41\x02\x12\x1e\n\x11sample_rate_hertz\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1d\n\rspeaking_rate\x18\x03 \x01(\x01\x42\x06\xe0\x41\x04\xe0\x41\x01\"\xa3\x02\n\x19StreamingSynthesizeConfig\x12K\n\x05voice\x18\x01 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.VoiceSelectionParamsB\x03\xe0\x41\x02\x12\\\n\x16streaming_audio_config\x18\x04 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.StreamingAudioConfigB\x03\xe0\x41\x01\x12[\n\x15\x63ustom_pronunciations\x18\x05 \x01(\x0b\x32\x37.google.cloud.texttospeech.v1beta1.CustomPronunciationsB\x03\xe0\x41\x01\"k\n\x17StreamingSynthesisInput\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\x10\n\x06markup\x18\x05 \x01(\tH\x00\x12\x13\n\x06prompt\x18\x06 \x01(\tH\x01\x88\x01\x01\x42\x0e\n\x0cinput_sourceB\t\n\x07_prompt\"\xd8\x01\n\x1aStreamingSynthesizeRequest\x12X\n\x10streaming_config\x18\x01 \x01(\x0b\x32<.google.cloud.texttospeech.v1beta1.StreamingSynthesizeConfigH\x00\x12K\n\x05input\x18\x02 \x01(\x0b\x32:.google.cloud.texttospeech.v1beta1.StreamingSynthesisInputH\x00\x42\x13\n\x11streaming_request\"4\n\x1bStreamingSynthesizeResponse\x12\x15\n\raudio_content\x18\x01 \x01(\x0c*W\n\x0fSsmlVoiceGender\x12!\n\x1dSSML_VOICE_GENDER_UNSPECIFIED\x10\x00\x12\x08\n\x04MALE\x10\x01\x12\n\n\x06\x46\x45MALE\x10\x02\x12\x0b\n\x07NEUTRAL\x10\x03*\x8c\x01\n\rAudioEncoding\x12\x1e\n\x1a\x41UDIO_ENCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x07\n\x03MP3\x10\x02\x12\x0f\n\x0bMP3_64_KBPS\x10\x04\x12\x0c\n\x08OGG_OPUS\x10\x03\x12\t\n\x05MULAW\x10\x05\x12\x08\n\x04\x41LAW\x10\x06\x12\x07\n\x03PCM\x10\x07\x12\x07\n\x03M4A\x10\x08\x32\xef\x04\n\x0cTextToSpeech\x12\xa2\x01\n\nListVoices\x12\x34.google.cloud.texttospeech.v1beta1.ListVoicesRequest\x1a\x35.google.cloud.texttospeech.v1beta1.ListVoicesResponse\"\'\xda\x41\rlanguage_code\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1beta1/voices\x12\xcb\x01\n\x10SynthesizeSpeech\x12:.google.cloud.texttospeech.v1beta1.SynthesizeSpeechRequest\x1a;.google.cloud.texttospeech.v1beta1.SynthesizeSpeechResponse\">\xda\x41\x18input,voice,audio_config\x82\xd3\xe4\x93\x02\x1d\"\x18/v1beta1/text:synthesize:\x01*\x12\x9a\x01\n\x13StreamingSynthesize\x12=.google.cloud.texttospeech.v1beta1.StreamingSynthesizeRequest\x1a>.google.cloud.texttospeech.v1beta1.StreamingSynthesizeResponse\"\x00(\x01\x30\x01\x1aO\xca\x41\x1btexttospeech.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xd5\x02\n%com.google.cloud.texttospeech.v1beta1B\x11TextToSpeechProtoP\x01ZIcloud.google.com/go/texttospeech/apiv1beta1/texttospeechpb;texttospeechpb\xa2\x02\x04\x43TTS\xaa\x02!Google.Cloud.TextToSpeech.V1Beta1\xca\x02!Google\\Cloud\\TextToSpeech\\V1beta1\xea\x02$Google::Cloud::TextToSpeech::V1beta1\xea\x41U\n\x1b\x61utoml.googleapis.com/Model\x12\x36projects/{project}/locations/{location}/models/{model}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-cloud-text_to_speech-v1beta1/proto_docs/google/cloud/texttospeech/v1beta1/cloud_tts.rb b/google-cloud-text_to_speech-v1beta1/proto_docs/google/cloud/texttospeech/v1beta1/cloud_tts.rb index 79756da947a4..acb8b0d4d205 100644 --- a/google-cloud-text_to_speech-v1beta1/proto_docs/google/cloud/texttospeech/v1beta1/cloud_tts.rb +++ b/google-cloud-text_to_speech-v1beta1/proto_docs/google/cloud/texttospeech/v1beta1/cloud_tts.rb @@ -222,6 +222,12 @@ class Turn # multi-speaker synthesis. # # Note: The following fields are mutually exclusive: `multi_speaker_markup`, `text`, `markup`, `ssml`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] prompt + # @return [::String] + # This system instruction is supported only for controllable/promptable voice + # models. If this system instruction is used, we pass the unedited text to + # Gemini-TTS. Otherwise, a default system instruction is used. AI Studio + # calls this system instruction, Style Instructions. # @!attribute [rw] custom_pronunciations # @return [::Google::Cloud::TextToSpeech::V1beta1::CustomPronunciations] # Optional. The pronunciation customizations are applied to the input. If diff --git a/google-cloud-text_to_speech-v1beta1/snippets/snippet_metadata_google.cloud.texttospeech.v1beta1.json b/google-cloud-text_to_speech-v1beta1/snippets/snippet_metadata_google.cloud.texttospeech.v1beta1.json index c706c528f1b7..86bb4ccc5fea 100644 --- a/google-cloud-text_to_speech-v1beta1/snippets/snippet_metadata_google.cloud.texttospeech.v1beta1.json +++ b/google-cloud-text_to_speech-v1beta1/snippets/snippet_metadata_google.cloud.texttospeech.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-text_to_speech-v1beta1", - "version": "0.22.0", + "version": "0.24.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-text_to_speech/CHANGELOG.md b/google-cloud-text_to_speech/CHANGELOG.md index 6a7a30b925d2..a4c39dce7adf 100644 --- a/google-cloud-text_to_speech/CHANGELOG.md +++ b/google-cloud-text_to_speech/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-text_to_speech/README.md b/google-cloud-text_to_speech/README.md index 8a420bf9bda7..0ccf0430d37c 100644 --- a/google-cloud-text_to_speech/README.md +++ b/google-cloud-text_to_speech/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/texttospeech.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/text_to_speech" + +client = Google::Cloud::TextToSpeech.text_to_speech +request = ::Google::Cloud::TextToSpeech::V1::ListVoicesRequest.new # (request fields as keyword arguments...) +response = client.list_voices request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-text_to_speech/lib/google/cloud/text_to_speech/version.rb b/google-cloud-text_to_speech/lib/google/cloud/text_to_speech/version.rb index 1c015ca22d0c..74c29a0d4b06 100644 --- a/google-cloud-text_to_speech/lib/google/cloud/text_to_speech/version.rb +++ b/google-cloud-text_to_speech/lib/google/cloud/text_to_speech/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module TextToSpeech - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-tpu-v1/CHANGELOG.md b/google-cloud-tpu-v1/CHANGELOG.md index 36a3edb217f2..ab67211b0262 100644 --- a/google-cloud-tpu-v1/CHANGELOG.md +++ b/google-cloud-tpu-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-tpu-v1/google-cloud-tpu-v1.gemspec b/google-cloud-tpu-v1/google-cloud-tpu-v1.gemspec index f7a5bf32ef5d..0e02f2aa9292 100644 --- a/google-cloud-tpu-v1/google-cloud-tpu-v1.gemspec +++ b/google-cloud-tpu-v1/google-cloud-tpu-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-tpu-v1/lib/google/cloud/tpu/v1/version.rb b/google-cloud-tpu-v1/lib/google/cloud/tpu/v1/version.rb index 17fe42dc8844..b7bb1912cf12 100644 --- a/google-cloud-tpu-v1/lib/google/cloud/tpu/v1/version.rb +++ b/google-cloud-tpu-v1/lib/google/cloud/tpu/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Tpu module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-tpu-v1/snippets/snippet_metadata_google.cloud.tpu.v1.json b/google-cloud-tpu-v1/snippets/snippet_metadata_google.cloud.tpu.v1.json index 929729a24208..bc802ffbe9d8 100644 --- a/google-cloud-tpu-v1/snippets/snippet_metadata_google.cloud.tpu.v1.json +++ b/google-cloud-tpu-v1/snippets/snippet_metadata_google.cloud.tpu.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-tpu-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-tpu/CHANGELOG.md b/google-cloud-tpu/CHANGELOG.md index d67a244c1d91..bd16ce37c9e3 100644 --- a/google-cloud-tpu/CHANGELOG.md +++ b/google-cloud-tpu/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-tpu/README.md b/google-cloud-tpu/README.md index b8761c80e285..d3f1b3ca10fd 100644 --- a/google-cloud-tpu/README.md +++ b/google-cloud-tpu/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/tpu.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/tpu" + +client = Google::Cloud::Tpu.tpu +request = ::Google::Cloud::Tpu::V1::ListNodesRequest.new # (request fields as keyword arguments...) +response = client.list_nodes request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-tpu/lib/google/cloud/tpu/version.rb b/google-cloud-tpu/lib/google/cloud/tpu/version.rb index faaa7be242e6..1f95bf210dfa 100644 --- a/google-cloud-tpu/lib/google/cloud/tpu/version.rb +++ b/google-cloud-tpu/lib/google/cloud/tpu/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Tpu - VERSION = "1.4.1" + VERSION = "1.4.2" end end end diff --git a/google-cloud-trace-v1/CHANGELOG.md b/google-cloud-trace-v1/CHANGELOG.md index 4dba77ae36b9..4833c0105682 100644 --- a/google-cloud-trace-v1/CHANGELOG.md +++ b/google-cloud-trace-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-trace-v1/google-cloud-trace-v1.gemspec b/google-cloud-trace-v1/google-cloud-trace-v1.gemspec index cea4e63fad4d..c9e4cd057fe9 100644 --- a/google-cloud-trace-v1/google-cloud-trace-v1.gemspec +++ b/google-cloud-trace-v1/google-cloud-trace-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-trace-v1/lib/google/cloud/trace/v1/version.rb b/google-cloud-trace-v1/lib/google/cloud/trace/v1/version.rb index 9833015f6e9d..f15bfbbb6e89 100644 --- a/google-cloud-trace-v1/lib/google/cloud/trace/v1/version.rb +++ b/google-cloud-trace-v1/lib/google/cloud/trace/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Trace module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-trace-v1/snippets/snippet_metadata_google.devtools.cloudtrace.v1.json b/google-cloud-trace-v1/snippets/snippet_metadata_google.devtools.cloudtrace.v1.json index 5e3dee5ccf6b..98f821fa9569 100644 --- a/google-cloud-trace-v1/snippets/snippet_metadata_google.devtools.cloudtrace.v1.json +++ b/google-cloud-trace-v1/snippets/snippet_metadata_google.devtools.cloudtrace.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-trace-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-trace-v2/CHANGELOG.md b/google-cloud-trace-v2/CHANGELOG.md index 29da314d99fc..4be351d2cc85 100644 --- a/google-cloud-trace-v2/CHANGELOG.md +++ b/google-cloud-trace-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-trace-v2/google-cloud-trace-v2.gemspec b/google-cloud-trace-v2/google-cloud-trace-v2.gemspec index b57f27e9f233..d057b30781c6 100644 --- a/google-cloud-trace-v2/google-cloud-trace-v2.gemspec +++ b/google-cloud-trace-v2/google-cloud-trace-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-trace-v2/lib/google/cloud/trace/v2/version.rb b/google-cloud-trace-v2/lib/google/cloud/trace/v2/version.rb index 81ec90688c58..a0313955d128 100644 --- a/google-cloud-trace-v2/lib/google/cloud/trace/v2/version.rb +++ b/google-cloud-trace-v2/lib/google/cloud/trace/v2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Trace module V2 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-trace-v2/snippets/snippet_metadata_google.devtools.cloudtrace.v2.json b/google-cloud-trace-v2/snippets/snippet_metadata_google.devtools.cloudtrace.v2.json index 68ce92db404d..4c36d918a76d 100644 --- a/google-cloud-trace-v2/snippets/snippet_metadata_google.devtools.cloudtrace.v2.json +++ b/google-cloud-trace-v2/snippets/snippet_metadata_google.devtools.cloudtrace.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-trace-v2", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-translate-v3/CHANGELOG.md b/google-cloud-translate-v3/CHANGELOG.md index c34ff09f43d8..695fadb1003a 100644 --- a/google-cloud-translate-v3/CHANGELOG.md +++ b/google-cloud-translate-v3/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.5.2 (2025-07-15) #### Documentation diff --git a/google-cloud-translate-v3/google-cloud-translate-v3.gemspec b/google-cloud-translate-v3/google-cloud-translate-v3.gemspec index b08ea7c3a954..d0c7184e0d02 100644 --- a/google-cloud-translate-v3/google-cloud-translate-v3.gemspec +++ b/google-cloud-translate-v3/google-cloud-translate-v3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-translate-v3/lib/google/cloud/translate/v3/version.rb b/google-cloud-translate-v3/lib/google/cloud/translate/v3/version.rb index bb5e686c3f2e..c4ca0f288b52 100644 --- a/google-cloud-translate-v3/lib/google/cloud/translate/v3/version.rb +++ b/google-cloud-translate-v3/lib/google/cloud/translate/v3/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Translate module V3 - VERSION = "1.5.2" + VERSION = "1.6.0" end end end diff --git a/google-cloud-translate-v3/snippets/snippet_metadata_google.cloud.translation.v3.json b/google-cloud-translate-v3/snippets/snippet_metadata_google.cloud.translation.v3.json index d068407ebd3b..1dacad0b0f95 100644 --- a/google-cloud-translate-v3/snippets/snippet_metadata_google.cloud.translation.v3.json +++ b/google-cloud-translate-v3/snippets/snippet_metadata_google.cloud.translation.v3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-translate-v3", - "version": "1.5.2", + "version": "1.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-translate/CHANGELOG.md b/google-cloud-translate/CHANGELOG.md index 456aef0228cf..e81f3d0e7416 100644 --- a/google-cloud-translate/CHANGELOG.md +++ b/google-cloud-translate/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 3.7.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 3.7.2 (2025-05-27) #### Documentation diff --git a/google-cloud-translate/README.md b/google-cloud-translate/README.md index dd6e7f11aecc..04a095eab92e 100644 --- a/google-cloud-translate/README.md +++ b/google-cloud-translate/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/translate.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/translate" + +client = Google::Cloud::Translate.translation_service +request = ::Google::Cloud::Translate::V3::TranslateTextRequest.new # (request fields as keyword arguments...) +response = client.translate_text request +``` + ## Migrating from 2.x versions The 3.0 release of the google-cloud-translate client is a significant upgrade diff --git a/google-cloud-translate/lib/google/cloud/translate/version.rb b/google-cloud-translate/lib/google/cloud/translate/version.rb index 403e7b312e8d..bc9d2453a42a 100644 --- a/google-cloud-translate/lib/google/cloud/translate/version.rb +++ b/google-cloud-translate/lib/google/cloud/translate/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Translate - VERSION = "3.7.2" + VERSION = "3.7.3" end end end diff --git a/google-cloud-video-live_stream-v1/.owlbot-manifest.json b/google-cloud-video-live_stream-v1/.owlbot-manifest.json index eafb416303a0..cddcb0f81bb2 100644 --- a/google-cloud-video-live_stream-v1/.owlbot-manifest.json +++ b/google-cloud-video-live_stream-v1/.owlbot-manifest.json @@ -74,8 +74,11 @@ "snippets/livestream_service/list_dvr_sessions.rb", "snippets/livestream_service/list_events.rb", "snippets/livestream_service/list_inputs.rb", + "snippets/livestream_service/preview_input.rb", "snippets/livestream_service/start_channel.rb", + "snippets/livestream_service/start_distribution.rb", "snippets/livestream_service/stop_channel.rb", + "snippets/livestream_service/stop_distribution.rb", "snippets/livestream_service/update_channel.rb", "snippets/livestream_service/update_dvr_session.rb", "snippets/livestream_service/update_input.rb", diff --git a/google-cloud-video-live_stream-v1/CHANGELOG.md b/google-cloud-video-live_stream-v1/CHANGELOG.md index 3a462193fd91..196512e7f879 100644 --- a/google-cloud-video-live_stream-v1/CHANGELOG.md +++ b/google-cloud-video-live_stream-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.2.0 (2025-05-16) #### Features diff --git a/google-cloud-video-live_stream-v1/gapic_metadata.json b/google-cloud-video-live_stream-v1/gapic_metadata.json index 6d77d48e6437..3b108930e5f2 100644 --- a/google-cloud-video-live_stream-v1/gapic_metadata.json +++ b/google-cloud-video-live_stream-v1/gapic_metadata.json @@ -45,6 +45,16 @@ "stop_channel" ] }, + "StartDistribution": { + "methods": [ + "start_distribution" + ] + }, + "StopDistribution": { + "methods": [ + "stop_distribution" + ] + }, "CreateInput": { "methods": [ "create_input" @@ -70,6 +80,11 @@ "update_input" ] }, + "PreviewInput": { + "methods": [ + "preview_input" + ] + }, "CreateEvent": { "methods": [ "create_event" diff --git a/google-cloud-video-live_stream-v1/google-cloud-video-live_stream-v1.gemspec b/google-cloud-video-live_stream-v1/google-cloud-video-live_stream-v1.gemspec index 6a81561ac6e1..3822779303f7 100644 --- a/google-cloud-video-live_stream-v1/google-cloud-video-live_stream-v1.gemspec +++ b/google-cloud-video-live_stream-v1/google-cloud-video-live_stream-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/client.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/client.rb index 05c763b375bb..1bd2c09e97ec 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/client.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/client.rb @@ -96,6 +96,10 @@ def self.configure default_config.rpcs.stop_channel.timeout = 60.0 + default_config.rpcs.start_distribution.timeout = 60.0 + + default_config.rpcs.stop_distribution.timeout = 60.0 + default_config.rpcs.create_input.timeout = 60.0 default_config.rpcs.list_inputs.timeout = 60.0 @@ -112,6 +116,8 @@ def self.configure default_config.rpcs.update_input.timeout = 60.0 + default_config.rpcs.preview_input.timeout = 60.0 + default_config.rpcs.create_event.timeout = 60.0 default_config.rpcs.list_events.timeout = 60.0 @@ -136,6 +142,30 @@ def self.configure initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } + default_config.rpcs.create_clip.timeout = 60.0 + + default_config.rpcs.delete_clip.timeout = 60.0 + + default_config.rpcs.create_dvr_session.timeout = 60.0 + + default_config.rpcs.list_dvr_sessions.timeout = 60.0 + default_config.rpcs.list_dvr_sessions.retry_policy = { + initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.get_dvr_session.timeout = 60.0 + default_config.rpcs.get_dvr_session.retry_policy = { + initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.delete_dvr_session.timeout = 60.0 + + default_config.rpcs.update_dvr_session.timeout = 60.0 + + default_config.rpcs.create_asset.timeout = 60.0 + + default_config.rpcs.delete_asset.timeout = 60.0 + default_config.rpcs.get_asset.timeout = 60.0 default_config.rpcs.get_asset.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] @@ -151,6 +181,8 @@ def self.configure initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } + default_config.rpcs.update_pool.timeout = 60.0 + default_config end yield @configure if block_given? @@ -319,8 +351,11 @@ def logger # Required. The channel resource to be created. # @param channel_id [::String] # Required. The ID of the channel resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -1063,6 +1098,233 @@ def stop_channel request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Starts distribution which delivers outputs to the destination indicated by + # the Distribution configuration. + # + # @overload start_distribution(request, options = nil) + # Pass arguments to `start_distribution` via a request object, either of type + # {::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload start_distribution(name: nil, distribution_keys: nil, request_id: nil) + # Pass arguments to `start_distribution` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the channel resource, in the form of: + # `projects/{project}/locations/{location}/channels/{channelId}`. + # @param distribution_keys [::Array<::String>] + # Optional. A list of keys to identify the distribution configuration in the + # channel resource. If left empty, all the distributions in the channel + # specification will be started. + # @param request_id [::String] + # Optional. A 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)`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/video/live_stream/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new + # + # # Call the start_distribution method. + # result = client.start_distribution request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def start_distribution request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.start_distribution.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Video::LiveStream::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.start_distribution.timeout, + metadata: metadata, + retry_policy: @config.rpcs.start_distribution.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @livestream_service_stub.call_rpc :start_distribution, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Stops the specified distribution. + # + # @overload stop_distribution(request, options = nil) + # Pass arguments to `stop_distribution` via a request object, either of type + # {::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload stop_distribution(name: nil, distribution_keys: nil, request_id: nil) + # Pass arguments to `stop_distribution` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the channel resource, in the form of: + # `projects/{project}/locations/{location}/channels/{channelId}`. + # @param distribution_keys [::Array<::String>] + # Optional. A list of key to identify the distribution configuration in the + # channel resource. If left empty, all the distributions in the channel + # specification will be stopped. + # @param request_id [::String] + # Optional. A 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)`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/video/live_stream/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new + # + # # Call the stop_distribution method. + # result = client.stop_distribution request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def stop_distribution request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.stop_distribution.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Video::LiveStream::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.stop_distribution.timeout, + metadata: metadata, + retry_policy: @config.rpcs.stop_distribution.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @livestream_service_stub.call_rpc :stop_distribution, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Creates an input with the provided unique ID in the specified region. # @@ -1088,8 +1350,11 @@ def stop_channel request, options = nil # Required. The input resource to be created. # @param input_id [::String] # Required. The ID of the input resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -1600,6 +1865,92 @@ def update_input request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Preview the streaming content of the specified input. + # + # @overload preview_input(request, options = nil) + # Pass arguments to `preview_input` via a request object, either of type + # {::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload preview_input(name: nil) + # Pass arguments to `preview_input` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the input resource, in the form of: + # `projects/{project}/locations/{location}/inputs/{inputId}`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/video/live_stream/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new + # + # # Call the preview_input method. + # result = client.preview_input request + # + # # The returned object is of type Google::Cloud::Video::LiveStream::V1::PreviewInputResponse. + # p result + # + def preview_input request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.preview_input.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Video::LiveStream::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.preview_input.timeout, + metadata: metadata, + retry_policy: @config.rpcs.preview_input.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @livestream_service_stub.call_rpc :preview_input, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Creates an event with the provided unique ID in the specified channel. # @@ -1625,8 +1976,11 @@ def update_input request, options = nil # Required. The event resource to be created. # @param event_id [::String] # Required. The ID of the event resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -2205,10 +2559,12 @@ def get_clip request, options = nil # Required. The parent resource name, in the following form: # `projects/{project}/locations/{location}/channels/{channel}`. # @param clip_id [::String] - # Required. Id of the requesting object in the following form: + # Required. The ID of the clip resource to be created. # - # 1. 1 character minimum, 63 characters maximum - # 2. Only contains letters, digits, underscores, and hyphens + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param clip [::Google::Cloud::Video::LiveStream::V1::Clip, ::Hash] # Required. The resource being created # @param request_id [::String] @@ -2431,10 +2787,12 @@ def delete_clip request, options = nil # Required. The parent resource name, in the following form: # `projects/{project}/locations/{location}/channels/{channelId}`. # @param dvr_session_id [::String] - # Required. Id of the requesting object in the following form: + # Required. The ID of the DVR session resource to be created. # - # 1. 1 character minimum, 63 characters maximum - # 2. Only contains letters, digits, underscores, and hyphens + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param dvr_session [::Google::Cloud::Video::LiveStream::V1::DvrSession, ::Hash] # Required. The resource being created # @param request_id [::String] @@ -2963,8 +3321,11 @@ def update_dvr_session request, options = nil # Required. The asset resource to be created. # @param asset_id [::String] # Required. The ID of the asset resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -3753,6 +4114,16 @@ class Rpcs # attr_reader :stop_channel ## + # RPC-specific configuration for `start_distribution` + # @return [::Gapic::Config::Method] + # + attr_reader :start_distribution + ## + # RPC-specific configuration for `stop_distribution` + # @return [::Gapic::Config::Method] + # + attr_reader :stop_distribution + ## # RPC-specific configuration for `create_input` # @return [::Gapic::Config::Method] # @@ -3778,6 +4149,11 @@ class Rpcs # attr_reader :update_input ## + # RPC-specific configuration for `preview_input` + # @return [::Gapic::Config::Method] + # + attr_reader :preview_input + ## # RPC-specific configuration for `create_event` # @return [::Gapic::Config::Method] # @@ -3889,6 +4265,10 @@ def initialize parent_rpcs = nil @start_channel = ::Gapic::Config::Method.new start_channel_config stop_channel_config = parent_rpcs.stop_channel if parent_rpcs.respond_to? :stop_channel @stop_channel = ::Gapic::Config::Method.new stop_channel_config + start_distribution_config = parent_rpcs.start_distribution if parent_rpcs.respond_to? :start_distribution + @start_distribution = ::Gapic::Config::Method.new start_distribution_config + stop_distribution_config = parent_rpcs.stop_distribution if parent_rpcs.respond_to? :stop_distribution + @stop_distribution = ::Gapic::Config::Method.new stop_distribution_config create_input_config = parent_rpcs.create_input if parent_rpcs.respond_to? :create_input @create_input = ::Gapic::Config::Method.new create_input_config list_inputs_config = parent_rpcs.list_inputs if parent_rpcs.respond_to? :list_inputs @@ -3899,6 +4279,8 @@ def initialize parent_rpcs = nil @delete_input = ::Gapic::Config::Method.new delete_input_config update_input_config = parent_rpcs.update_input if parent_rpcs.respond_to? :update_input @update_input = ::Gapic::Config::Method.new update_input_config + preview_input_config = parent_rpcs.preview_input if parent_rpcs.respond_to? :preview_input + @preview_input = ::Gapic::Config::Method.new preview_input_config create_event_config = parent_rpcs.create_event if parent_rpcs.respond_to? :create_event @create_event = ::Gapic::Config::Method.new create_event_config list_events_config = parent_rpcs.list_events if parent_rpcs.respond_to? :list_events diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/client.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/client.rb index 792018f19c2a..036aa9f20dfe 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/client.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/client.rb @@ -98,6 +98,10 @@ def self.configure default_config.rpcs.stop_channel.timeout = 60.0 + default_config.rpcs.start_distribution.timeout = 60.0 + + default_config.rpcs.stop_distribution.timeout = 60.0 + default_config.rpcs.create_input.timeout = 60.0 default_config.rpcs.list_inputs.timeout = 60.0 @@ -114,6 +118,8 @@ def self.configure default_config.rpcs.update_input.timeout = 60.0 + default_config.rpcs.preview_input.timeout = 60.0 + default_config.rpcs.create_event.timeout = 60.0 default_config.rpcs.list_events.timeout = 60.0 @@ -138,6 +144,30 @@ def self.configure initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } + default_config.rpcs.create_clip.timeout = 60.0 + + default_config.rpcs.delete_clip.timeout = 60.0 + + default_config.rpcs.create_dvr_session.timeout = 60.0 + + default_config.rpcs.list_dvr_sessions.timeout = 60.0 + default_config.rpcs.list_dvr_sessions.retry_policy = { + initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.get_dvr_session.timeout = 60.0 + default_config.rpcs.get_dvr_session.retry_policy = { + initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] + } + + default_config.rpcs.delete_dvr_session.timeout = 60.0 + + default_config.rpcs.update_dvr_session.timeout = 60.0 + + default_config.rpcs.create_asset.timeout = 60.0 + + default_config.rpcs.delete_asset.timeout = 60.0 + default_config.rpcs.get_asset.timeout = 60.0 default_config.rpcs.get_asset.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] @@ -153,6 +183,8 @@ def self.configure initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } + default_config.rpcs.update_pool.timeout = 60.0 + default_config end yield @configure if block_given? @@ -313,8 +345,11 @@ def logger # Required. The channel resource to be created. # @param channel_id [::String] # Required. The ID of the channel resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -1008,6 +1043,219 @@ def stop_channel request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Starts distribution which delivers outputs to the destination indicated by + # the Distribution configuration. + # + # @overload start_distribution(request, options = nil) + # Pass arguments to `start_distribution` via a request object, either of type + # {::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload start_distribution(name: nil, distribution_keys: nil, request_id: nil) + # Pass arguments to `start_distribution` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the channel resource, in the form of: + # `projects/{project}/locations/{location}/channels/{channelId}`. + # @param distribution_keys [::Array<::String>] + # Optional. A list of keys to identify the distribution configuration in the + # channel resource. If left empty, all the distributions in the channel + # specification will be started. + # @param request_id [::String] + # Optional. A 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)`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/video/live_stream/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new + # + # # Call the start_distribution method. + # result = client.start_distribution request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def start_distribution request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.start_distribution.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Video::LiveStream::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.start_distribution.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.start_distribution.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @livestream_service_stub.start_distribution request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Stops the specified distribution. + # + # @overload stop_distribution(request, options = nil) + # Pass arguments to `stop_distribution` via a request object, either of type + # {::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload stop_distribution(name: nil, distribution_keys: nil, request_id: nil) + # Pass arguments to `stop_distribution` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the channel resource, in the form of: + # `projects/{project}/locations/{location}/channels/{channelId}`. + # @param distribution_keys [::Array<::String>] + # Optional. A list of key to identify the distribution configuration in the + # channel resource. If left empty, all the distributions in the channel + # specification will be stopped. + # @param request_id [::String] + # Optional. A 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)`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/video/live_stream/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new + # + # # Call the stop_distribution method. + # result = client.stop_distribution request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def stop_distribution request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.stop_distribution.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Video::LiveStream::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.stop_distribution.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.stop_distribution.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @livestream_service_stub.stop_distribution request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Creates an input with the provided unique ID in the specified region. # @@ -1033,8 +1281,11 @@ def stop_channel request, options = nil # Required. The input resource to be created. # @param input_id [::String] # Required. The ID of the input resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -1510,6 +1761,85 @@ def update_input request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Preview the streaming content of the specified input. + # + # @overload preview_input(request, options = nil) + # Pass arguments to `preview_input` via a request object, either of type + # {::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload preview_input(name: nil) + # Pass arguments to `preview_input` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the input resource, in the form of: + # `projects/{project}/locations/{location}/inputs/{inputId}`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/video/live_stream/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new + # + # # Call the preview_input method. + # result = client.preview_input request + # + # # The returned object is of type Google::Cloud::Video::LiveStream::V1::PreviewInputResponse. + # p result + # + def preview_input request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.preview_input.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::Video::LiveStream::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.preview_input.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.preview_input.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @livestream_service_stub.preview_input request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Creates an event with the provided unique ID in the specified channel. # @@ -1535,8 +1865,11 @@ def update_input request, options = nil # Required. The event resource to be created. # @param event_id [::String] # Required. The ID of the event resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -2073,10 +2406,12 @@ def get_clip request, options = nil # Required. The parent resource name, in the following form: # `projects/{project}/locations/{location}/channels/{channel}`. # @param clip_id [::String] - # Required. Id of the requesting object in the following form: + # Required. The ID of the clip resource to be created. # - # 1. 1 character minimum, 63 characters maximum - # 2. Only contains letters, digits, underscores, and hyphens + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param clip [::Google::Cloud::Video::LiveStream::V1::Clip, ::Hash] # Required. The resource being created # @param request_id [::String] @@ -2285,10 +2620,12 @@ def delete_clip request, options = nil # Required. The parent resource name, in the following form: # `projects/{project}/locations/{location}/channels/{channelId}`. # @param dvr_session_id [::String] - # Required. Id of the requesting object in the following form: + # Required. The ID of the DVR session resource to be created. # - # 1. 1 character minimum, 63 characters maximum - # 2. Only contains letters, digits, underscores, and hyphens + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param dvr_session [::Google::Cloud::Video::LiveStream::V1::DvrSession, ::Hash] # Required. The resource being created # @param request_id [::String] @@ -2782,8 +3119,11 @@ def update_dvr_session request, options = nil # Required. The asset resource to be created. # @param asset_id [::String] # Required. The ID of the asset resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @param request_id [::String] # A request ID to identify requests. Specify a unique request ID # so that if you must retry your request, the server will know to ignore @@ -3517,6 +3857,16 @@ class Rpcs # attr_reader :stop_channel ## + # RPC-specific configuration for `start_distribution` + # @return [::Gapic::Config::Method] + # + attr_reader :start_distribution + ## + # RPC-specific configuration for `stop_distribution` + # @return [::Gapic::Config::Method] + # + attr_reader :stop_distribution + ## # RPC-specific configuration for `create_input` # @return [::Gapic::Config::Method] # @@ -3542,6 +3892,11 @@ class Rpcs # attr_reader :update_input ## + # RPC-specific configuration for `preview_input` + # @return [::Gapic::Config::Method] + # + attr_reader :preview_input + ## # RPC-specific configuration for `create_event` # @return [::Gapic::Config::Method] # @@ -3653,6 +4008,10 @@ def initialize parent_rpcs = nil @start_channel = ::Gapic::Config::Method.new start_channel_config stop_channel_config = parent_rpcs.stop_channel if parent_rpcs.respond_to? :stop_channel @stop_channel = ::Gapic::Config::Method.new stop_channel_config + start_distribution_config = parent_rpcs.start_distribution if parent_rpcs.respond_to? :start_distribution + @start_distribution = ::Gapic::Config::Method.new start_distribution_config + stop_distribution_config = parent_rpcs.stop_distribution if parent_rpcs.respond_to? :stop_distribution + @stop_distribution = ::Gapic::Config::Method.new stop_distribution_config create_input_config = parent_rpcs.create_input if parent_rpcs.respond_to? :create_input @create_input = ::Gapic::Config::Method.new create_input_config list_inputs_config = parent_rpcs.list_inputs if parent_rpcs.respond_to? :list_inputs @@ -3663,6 +4022,8 @@ def initialize parent_rpcs = nil @delete_input = ::Gapic::Config::Method.new delete_input_config update_input_config = parent_rpcs.update_input if parent_rpcs.respond_to? :update_input @update_input = ::Gapic::Config::Method.new update_input_config + preview_input_config = parent_rpcs.preview_input if parent_rpcs.respond_to? :preview_input + @preview_input = ::Gapic::Config::Method.new preview_input_config create_event_config = parent_rpcs.create_event if parent_rpcs.respond_to? :create_event @create_event = ::Gapic::Config::Method.new create_event_config list_events_config = parent_rpcs.list_events if parent_rpcs.respond_to? :list_events diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/service_stub.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/service_stub.rb index 74824951606b..7f0f3c56c758 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/service_stub.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/livestream_service/rest/service_stub.rb @@ -354,6 +354,86 @@ def stop_channel request_pb, options = nil end end + ## + # Baseline implementation for the start_distribution REST call + # + # @param request_pb [::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def start_distribution request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_start_distribution_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "start_distribution", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the stop_distribution REST call + # + # @param request_pb [::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def stop_distribution request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_stop_distribution_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "stop_distribution", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the create_input REST call # @@ -554,6 +634,46 @@ def update_input request_pb, options = nil end end + ## + # Baseline implementation for the preview_input REST call + # + # @param request_pb [::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse] + # A result object deserialized from the server's reply + def preview_input request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_preview_input_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "preview_input", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the create_event REST call # @@ -1465,6 +1585,50 @@ def self.transcode_stop_channel_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the start_distribution REST call + # + # @param request_pb [::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_start_distribution_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:startdistribution", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/channels/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the stop_distribution REST call + # + # @param request_pb [::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_stop_distribution_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:stopdistribution", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/channels/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # @@ -1572,6 +1736,28 @@ def self.transcode_update_input_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the preview_input REST call + # + # @param request_pb [::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_preview_input_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:preview", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/inputs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/version.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/version.rb index 0f6e5ad13d0a..321c734df02c 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/version.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/live_stream/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Video module LiveStream module V1 - VERSION = "2.2.0" + VERSION = "2.3.0" end end end diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/outputs_pb.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/outputs_pb.rb index 785ffb45ca9d..32a936f375d8 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/outputs_pb.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/outputs_pb.rb @@ -7,10 +7,11 @@ require 'google/api/field_behavior_pb' require 'google/api/resource_pb' require 'google/protobuf/duration_pb' +require 'google/rpc/status_pb' require 'google/type/datetime_pb' -descriptor_data = "\n.google/cloud/video/livestream/v1/outputs.proto\x12 google.cloud.video.livestream.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1agoogle/type/datetime.proto\"\x87\x02\n\x10\x45lementaryStream\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x45\n\x0cvideo_stream\x18\x01 \x01(\x0b\x32-.google.cloud.video.livestream.v1.VideoStreamH\x00\x12\x45\n\x0c\x61udio_stream\x18\x02 \x01(\x0b\x32-.google.cloud.video.livestream.v1.AudioStreamH\x00\x12\x43\n\x0btext_stream\x18\x03 \x01(\x0b\x32,.google.cloud.video.livestream.v1.TextStreamH\x00\x42\x13\n\x11\x65lementary_stream\"\xab\x01\n\tMuxStream\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\tcontainer\x18\x03 \x01(\t\x12\x1a\n\x12\x65lementary_streams\x18\x04 \x03(\t\x12K\n\x10segment_settings\x18\x05 \x01(\x0b\x32\x31.google.cloud.video.livestream.v1.SegmentSettings\x12\x15\n\rencryption_id\x18\x06 \x01(\t\"\xce\x02\n\x08Manifest\x12\x11\n\tfile_name\x18\x01 \x01(\t\x12J\n\x04type\x18\x02 \x01(\x0e\x32\x37.google.cloud.video.livestream.v1.Manifest.ManifestTypeB\x03\xe0\x41\x02\x12\x18\n\x0bmux_streams\x18\x03 \x03(\tB\x03\xe0\x41\x02\x12\x19\n\x11max_segment_count\x18\x04 \x01(\x05\x12\x38\n\x15segment_keep_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12 \n\x18use_timecode_as_timeline\x18\x06 \x01(\x08\x12\x10\n\x03key\x18\x07 \x01(\tB\x03\xe0\x41\x01\"@\n\x0cManifestType\x12\x1d\n\x19MANIFEST_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03HLS\x10\x01\x12\x08\n\x04\x44\x41SH\x10\x02\"\xe3\x01\n\x0bSpriteSheet\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x18\n\x0b\x66ile_prefix\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12 \n\x13sprite_width_pixels\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\x12!\n\x14sprite_height_pixels\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x14\n\x0c\x63olumn_count\x18\x05 \x01(\x05\x12\x11\n\trow_count\x18\x06 \x01(\x05\x12+\n\x08interval\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07quality\x18\x08 \x01(\x05\"\xc5\x03\n\x13PreprocessingConfig\x12J\n\x05\x61udio\x18\x01 \x01(\x0b\x32;.google.cloud.video.livestream.v1.PreprocessingConfig.Audio\x12H\n\x04\x63rop\x18\x02 \x01(\x0b\x32:.google.cloud.video.livestream.v1.PreprocessingConfig.Crop\x12\x46\n\x03pad\x18\x03 \x01(\x0b\x32\x39.google.cloud.video.livestream.v1.PreprocessingConfig.Pad\x1a\x15\n\x05\x41udio\x12\x0c\n\x04lufs\x18\x01 \x01(\x01\x1a\\\n\x04\x43rop\x12\x12\n\ntop_pixels\x18\x01 \x01(\x05\x12\x15\n\rbottom_pixels\x18\x02 \x01(\x05\x12\x13\n\x0bleft_pixels\x18\x03 \x01(\x05\x12\x14\n\x0cright_pixels\x18\x04 \x01(\x05\x1a[\n\x03Pad\x12\x12\n\ntop_pixels\x18\x01 \x01(\x05\x12\x15\n\rbottom_pixels\x18\x02 \x01(\x05\x12\x13\n\x0bleft_pixels\x18\x03 \x01(\x05\x12\x14\n\x0cright_pixels\x18\x04 \x01(\x05\"\xff\x03\n\x0bVideoStream\x12O\n\x04h264\x18\x14 \x01(\x0b\x32?.google.cloud.video.livestream.v1.VideoStream.H264CodecSettingsH\x00\x1a\x8c\x03\n\x11H264CodecSettings\x12\x14\n\x0cwidth_pixels\x18\x01 \x01(\x05\x12\x15\n\rheight_pixels\x18\x02 \x01(\x05\x12\x17\n\nframe_rate\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\x12\x18\n\x0b\x62itrate_bps\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x16\n\x0e\x61llow_open_gop\x18\x06 \x01(\x08\x12\x19\n\x0fgop_frame_count\x18\x07 \x01(\x05H\x00\x12\x31\n\x0cgop_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x15\n\rvbv_size_bits\x18\t \x01(\x05\x12\x19\n\x11vbv_fullness_bits\x18\n \x01(\x05\x12\x15\n\rentropy_coder\x18\x0b \x01(\t\x12\x11\n\tb_pyramid\x18\x0c \x01(\x08\x12\x15\n\rb_frame_count\x18\r \x01(\x05\x12\x13\n\x0b\x61q_strength\x18\x0e \x01(\x01\x12\x0f\n\x07profile\x18\x0f \x01(\t\x12\x0c\n\x04tune\x18\x10 \x01(\tB\n\n\x08gop_modeB\x10\n\x0e\x63odec_settings\"\xec\x02\n\x0b\x41udioStream\x12\x10\n\x08transmux\x18\x08 \x01(\x08\x12\r\n\x05\x63odec\x18\x01 \x01(\t\x12\x18\n\x0b\x62itrate_bps\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\x12\x15\n\rchannel_count\x18\x03 \x01(\x05\x12\x16\n\x0e\x63hannel_layout\x18\x04 \x03(\t\x12K\n\x07mapping\x18\x05 \x03(\x0b\x32:.google.cloud.video.livestream.v1.AudioStream.AudioMapping\x12\x19\n\x11sample_rate_hertz\x18\x06 \x01(\x05\x1a\x8a\x01\n\x0c\x41udioMapping\x12\x16\n\tinput_key\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binput_track\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1a\n\rinput_channel\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1b\n\x0eoutput_channel\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x0f\n\x07gain_db\x18\x05 \x01(\x01\" \n\nTextStream\x12\x12\n\x05\x63odec\x18\x01 \x01(\tB\x03\xe0\x41\x02\"F\n\x0fSegmentSettings\x12\x33\n\x10segment_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xac\x02\n\x0eTimecodeConfig\x12O\n\x06source\x18\x01 \x01(\x0e\x32?.google.cloud.video.livestream.v1.TimecodeConfig.TimecodeSource\x12/\n\nutc_offset\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12*\n\ttime_zone\x18\x03 \x01(\x0b\x32\x15.google.type.TimeZoneH\x00\"]\n\x0eTimecodeSource\x12\x1f\n\x1bTIMECODE_SOURCE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMEDIA_TIMESTAMP\x10\x01\x12\x15\n\x11\x45MBEDDED_TIMECODE\x10\x02\x42\r\n\x0btime_offsetB\xe9\x01\n$com.google.cloud.video.livestream.v1B\x0cOutputsProtoP\x01ZDcloud.google.com/go/video/livestream/apiv1/livestreampb;livestreampb\xaa\x02 Google.Cloud.Video.LiveStream.V1\xca\x02 Google\\Cloud\\Video\\LiveStream\\V1\xea\x02$Google::Cloud::Video::LiveStream::V1b\x06proto3" +descriptor_data = "\n.google/cloud/video/livestream/v1/outputs.proto\x12 google.cloud.video.livestream.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\x1a\x1agoogle/type/datetime.proto\"\x87\x02\n\x10\x45lementaryStream\x12\x0b\n\x03key\x18\x04 \x01(\t\x12\x45\n\x0cvideo_stream\x18\x01 \x01(\x0b\x32-.google.cloud.video.livestream.v1.VideoStreamH\x00\x12\x45\n\x0c\x61udio_stream\x18\x02 \x01(\x0b\x32-.google.cloud.video.livestream.v1.AudioStreamH\x00\x12\x43\n\x0btext_stream\x18\x03 \x01(\x0b\x32,.google.cloud.video.livestream.v1.TextStreamH\x00\x42\x13\n\x11\x65lementary_stream\"\xab\x01\n\tMuxStream\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x11\n\tcontainer\x18\x03 \x01(\t\x12\x1a\n\x12\x65lementary_streams\x18\x04 \x03(\t\x12K\n\x10segment_settings\x18\x05 \x01(\x0b\x32\x31.google.cloud.video.livestream.v1.SegmentSettings\x12\x15\n\rencryption_id\x18\x06 \x01(\t\"\xce\x02\n\x08Manifest\x12\x11\n\tfile_name\x18\x01 \x01(\t\x12J\n\x04type\x18\x02 \x01(\x0e\x32\x37.google.cloud.video.livestream.v1.Manifest.ManifestTypeB\x03\xe0\x41\x02\x12\x18\n\x0bmux_streams\x18\x03 \x03(\tB\x03\xe0\x41\x02\x12\x19\n\x11max_segment_count\x18\x04 \x01(\x05\x12\x38\n\x15segment_keep_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12 \n\x18use_timecode_as_timeline\x18\x06 \x01(\x08\x12\x10\n\x03key\x18\x07 \x01(\tB\x03\xe0\x41\x01\"@\n\x0cManifestType\x12\x1d\n\x19MANIFEST_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03HLS\x10\x01\x12\x08\n\x04\x44\x41SH\x10\x02\"_\n\x12\x44istributionStream\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\tcontainer\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\x12\x65lementary_streams\x18\x03 \x03(\tB\x03\xe0\x41\x02\"\xc7\x03\n\x0c\x44istribution\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12 \n\x13\x64istribution_stream\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12H\n\x05state\x18\x03 \x01(\x0e\x32\x34.google.cloud.video.livestream.v1.Distribution.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12K\n\x08srt_push\x18\x05 \x01(\x0b\x32\x37.google.cloud.video.livestream.v1.SrtPushOutputEndpointH\x00\x12M\n\trtmp_push\x18\x06 \x01(\x0b\x32\x38.google.cloud.video.livestream.v1.RtmpPushOutputEndpointH\x00\"i\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05\x45RROR\x10\x05\x12\r\n\tNOT_READY\x10\x06\x12\t\n\x05READY\x10\x07\x12\x12\n\x0e\x41WAITING_INPUT\x10\x08\x12\x10\n\x0c\x44ISTRIBUTING\x10\tB\n\n\x08\x65ndpoint\"\x94\x01\n\x15SrtPushOutputEndpoint\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12T\n\x19passphrase_secret_version\x18\x02 \x01(\tB/\xfa\x41,\n*secretmanager.googleapis.com/SecretVersionH\x00\x42\x13\n\x11passphrase_source\"C\n\x16RtmpPushOutputEndpoint\x12\x10\n\x03uri\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nstream_key\x18\x02 \x01(\tB\x03\xe0\x41\x02\"\xe3\x01\n\x0bSpriteSheet\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x18\n\x0b\x66ile_prefix\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12 \n\x13sprite_width_pixels\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\x12!\n\x14sprite_height_pixels\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x14\n\x0c\x63olumn_count\x18\x05 \x01(\x05\x12\x11\n\trow_count\x18\x06 \x01(\x05\x12+\n\x08interval\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07quality\x18\x08 \x01(\x05\"\xc5\x03\n\x13PreprocessingConfig\x12J\n\x05\x61udio\x18\x01 \x01(\x0b\x32;.google.cloud.video.livestream.v1.PreprocessingConfig.Audio\x12H\n\x04\x63rop\x18\x02 \x01(\x0b\x32:.google.cloud.video.livestream.v1.PreprocessingConfig.Crop\x12\x46\n\x03pad\x18\x03 \x01(\x0b\x32\x39.google.cloud.video.livestream.v1.PreprocessingConfig.Pad\x1a\x15\n\x05\x41udio\x12\x0c\n\x04lufs\x18\x01 \x01(\x01\x1a\\\n\x04\x43rop\x12\x12\n\ntop_pixels\x18\x01 \x01(\x05\x12\x15\n\rbottom_pixels\x18\x02 \x01(\x05\x12\x13\n\x0bleft_pixels\x18\x03 \x01(\x05\x12\x14\n\x0cright_pixels\x18\x04 \x01(\x05\x1a[\n\x03Pad\x12\x12\n\ntop_pixels\x18\x01 \x01(\x05\x12\x15\n\rbottom_pixels\x18\x02 \x01(\x05\x12\x13\n\x0bleft_pixels\x18\x03 \x01(\x05\x12\x14\n\x0cright_pixels\x18\x04 \x01(\x05\"\xbe\x07\n\x0bVideoStream\x12O\n\x04h264\x18\x14 \x01(\x0b\x32?.google.cloud.video.livestream.v1.VideoStream.H264CodecSettingsH\x00\x12O\n\x04h265\x18\x15 \x01(\x0b\x32?.google.cloud.video.livestream.v1.VideoStream.H265CodecSettingsH\x00\x1a\x8c\x03\n\x11H264CodecSettings\x12\x14\n\x0cwidth_pixels\x18\x01 \x01(\x05\x12\x15\n\rheight_pixels\x18\x02 \x01(\x05\x12\x17\n\nframe_rate\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\x12\x18\n\x0b\x62itrate_bps\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x16\n\x0e\x61llow_open_gop\x18\x06 \x01(\x08\x12\x19\n\x0fgop_frame_count\x18\x07 \x01(\x05H\x00\x12\x31\n\x0cgop_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12\x15\n\rvbv_size_bits\x18\t \x01(\x05\x12\x19\n\x11vbv_fullness_bits\x18\n \x01(\x05\x12\x15\n\rentropy_coder\x18\x0b \x01(\t\x12\x11\n\tb_pyramid\x18\x0c \x01(\x08\x12\x15\n\rb_frame_count\x18\r \x01(\x05\x12\x13\n\x0b\x61q_strength\x18\x0e \x01(\x01\x12\x0f\n\x07profile\x18\x0f \x01(\t\x12\x0c\n\x04tune\x18\x10 \x01(\tB\n\n\x08gop_mode\x1a\xeb\x02\n\x11H265CodecSettings\x12\x19\n\x0cwidth_pixels\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1a\n\rheight_pixels\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\nframe_rate\x18\x03 \x01(\x01\x42\x03\xe0\x41\x02\x12\x18\n\x0b\x62itrate_bps\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1e\n\x0fgop_frame_count\x18\x07 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x12\x36\n\x0cgop_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.DurationB\x03\xe0\x41\x01H\x00\x12\x1a\n\rvbv_size_bits\x18\t \x01(\x05\x42\x03\xe0\x41\x01\x12\x1e\n\x11vbv_fullness_bits\x18\n \x01(\x05\x42\x03\xe0\x41\x01\x12\x16\n\tb_pyramid\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01\x12\x1a\n\rb_frame_count\x18\x0c \x01(\x05\x42\x03\xe0\x41\x01\x12\x18\n\x0b\x61q_strength\x18\r \x01(\x01\x42\x03\xe0\x41\x01\x42\n\n\x08gop_modeB\x10\n\x0e\x63odec_settings\"\xec\x02\n\x0b\x41udioStream\x12\x10\n\x08transmux\x18\x08 \x01(\x08\x12\r\n\x05\x63odec\x18\x01 \x01(\t\x12\x18\n\x0b\x62itrate_bps\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\x12\x15\n\rchannel_count\x18\x03 \x01(\x05\x12\x16\n\x0e\x63hannel_layout\x18\x04 \x03(\t\x12K\n\x07mapping\x18\x05 \x03(\x0b\x32:.google.cloud.video.livestream.v1.AudioStream.AudioMapping\x12\x19\n\x11sample_rate_hertz\x18\x06 \x01(\x05\x1a\x8a\x01\n\x0c\x41udioMapping\x12\x16\n\tinput_key\x18\x06 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0binput_track\x18\x02 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1a\n\rinput_channel\x18\x03 \x01(\x05\x42\x03\xe0\x41\x02\x12\x1b\n\x0eoutput_channel\x18\x04 \x01(\x05\x42\x03\xe0\x41\x02\x12\x0f\n\x07gain_db\x18\x05 \x01(\x01\"\xcb\x02\n\nTextStream\x12\x12\n\x05\x63odec\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rlanguage_code\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0c\x64isplay_name\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12output_cea_channel\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12N\n\x07mapping\x18\x03 \x03(\x0b\x32\x38.google.cloud.video.livestream.v1.TextStream.TextMappingB\x03\xe0\x41\x01\x1a\x80\x01\n\x0bTextMapping\x12\x16\n\tinput_key\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0binput_track\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1e\n\x11input_cea_channel\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\x12\x66rom_language_code\x18\x06 \x01(\tB\x03\xe0\x41\x01\"F\n\x0fSegmentSettings\x12\x33\n\x10segment_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xac\x02\n\x0eTimecodeConfig\x12O\n\x06source\x18\x01 \x01(\x0e\x32?.google.cloud.video.livestream.v1.TimecodeConfig.TimecodeSource\x12/\n\nutc_offset\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationH\x00\x12*\n\ttime_zone\x18\x03 \x01(\x0b\x32\x15.google.type.TimeZoneH\x00\"]\n\x0eTimecodeSource\x12\x1f\n\x1bTIMECODE_SOURCE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMEDIA_TIMESTAMP\x10\x01\x12\x15\n\x11\x45MBEDDED_TIMECODE\x10\x02\x42\r\n\x0btime_offsetB\xe9\x01\n$com.google.cloud.video.livestream.v1B\x0cOutputsProtoP\x01ZDcloud.google.com/go/video/livestream/apiv1/livestreampb;livestreampb\xaa\x02 Google.Cloud.Video.LiveStream.V1\xca\x02 Google\\Cloud\\Video\\LiveStream\\V1\xea\x02$Google::Cloud::Video::LiveStream::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -26,6 +27,7 @@ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" imports = [ ["google.protobuf.Duration", "google/protobuf/duration.proto"], + ["google.rpc.Status", "google/rpc/status.proto"], ["google.type.TimeZone", "google/type/datetime.proto"], ] imports.each do |type_name, expected_filename| @@ -47,6 +49,11 @@ module V1 MuxStream = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.MuxStream").msgclass Manifest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Manifest").msgclass Manifest::ManifestType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Manifest.ManifestType").enummodule + DistributionStream = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.DistributionStream").msgclass + Distribution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Distribution").msgclass + Distribution::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Distribution.State").enummodule + SrtPushOutputEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.SrtPushOutputEndpoint").msgclass + RtmpPushOutputEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.RtmpPushOutputEndpoint").msgclass SpriteSheet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.SpriteSheet").msgclass PreprocessingConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.PreprocessingConfig").msgclass PreprocessingConfig::Audio = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.PreprocessingConfig.Audio").msgclass @@ -54,9 +61,11 @@ module V1 PreprocessingConfig::Pad = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.PreprocessingConfig.Pad").msgclass VideoStream = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.VideoStream").msgclass VideoStream::H264CodecSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.VideoStream.H264CodecSettings").msgclass + VideoStream::H265CodecSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.VideoStream.H265CodecSettings").msgclass AudioStream = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.AudioStream").msgclass AudioStream::AudioMapping = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.AudioStream.AudioMapping").msgclass TextStream = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.TextStream").msgclass + TextStream::TextMapping = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.TextStream.TextMapping").msgclass SegmentSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.SegmentSettings").msgclass TimecodeConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.TimecodeConfig").msgclass TimecodeConfig::TimecodeSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.TimecodeConfig.TimecodeSource").enummodule diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/resources_pb.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/resources_pb.rb index 245a55c829a5..eb89852aecb9 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/resources_pb.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/resources_pb.rb @@ -12,7 +12,7 @@ require 'google/rpc/status_pb' -descriptor_data = "\n0google/cloud/video/livestream/v1/resources.proto\x12 google.cloud.video.livestream.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a.google/cloud/video/livestream/v1/outputs.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\xf0\x06\n\x05Input\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Input.LabelsEntry\x12:\n\x04type\x18\x05 \x01(\x0e\x32,.google.cloud.video.livestream.v1.Input.Type\x12:\n\x04tier\x18\x0e \x01(\x0e\x32,.google.cloud.video.livestream.v1.Input.Tier\x12\x10\n\x03uri\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12S\n\x14preprocessing_config\x18\t \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.PreprocessingConfig\x12L\n\x0esecurity_rules\x18\x0c \x01(\x0b\x32\x34.google.cloud.video.livestream.v1.Input.SecurityRule\x12Y\n\x15input_stream_property\x18\x0f \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.InputStreamPropertyB\x03\xe0\x41\x03\x1a!\n\x0cSecurityRule\x12\x11\n\tip_ranges\x18\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"9\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\r\n\tRTMP_PUSH\x10\x01\x12\x0c\n\x08SRT_PUSH\x10\x02\"5\n\x04Tier\x12\x14\n\x10TIER_UNSPECIFIED\x10\x00\x12\x06\n\x02SD\x10\x01\x12\x06\n\x02HD\x10\x02\x12\x07\n\x03UHD\x10\x03:\\\xea\x41Y\n\x1flivestream.googleapis.com/Input\x12\x36projects/{project}/locations/{location}/inputs/{input}\"\xa7\x0c\n\x07\x43hannel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x45\n\x06labels\x18\x04 \x03(\x0b\x32\x35.google.cloud.video.livestream.v1.Channel.LabelsEntry\x12L\n\x11input_attachments\x18\x10 \x03(\x0b\x32\x31.google.cloud.video.livestream.v1.InputAttachment\x12\x19\n\x0c\x61\x63tive_input\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x45\n\x06output\x18\t \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.Channel.OutputB\x03\xe0\x41\x02\x12N\n\x12\x65lementary_streams\x18\n \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.ElementaryStream\x12@\n\x0bmux_streams\x18\x0b \x03(\x0b\x32+.google.cloud.video.livestream.v1.MuxStream\x12=\n\tmanifests\x18\x0c \x03(\x0b\x32*.google.cloud.video.livestream.v1.Manifest\x12\x44\n\rsprite_sheets\x18\r \x03(\x0b\x32-.google.cloud.video.livestream.v1.SpriteSheet\x12V\n\x0fstreaming_state\x18\x0e \x01(\x0e\x32\x38.google.cloud.video.livestream.v1.Channel.StreamingStateB\x03\xe0\x41\x03\x12\x30\n\x0fstreaming_error\x18\x12 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12?\n\nlog_config\x18\x13 \x01(\x0b\x32+.google.cloud.video.livestream.v1.LogConfig\x12I\n\x0ftimecode_config\x18\x15 \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.TimecodeConfig\x12\x41\n\x0b\x65ncryptions\x18\x18 \x03(\x0b\x32,.google.cloud.video.livestream.v1.Encryption\x12\x43\n\x0cinput_config\x18\x19 \x01(\x0b\x32-.google.cloud.video.livestream.v1.InputConfig\x12P\n\x10retention_config\x18\x1a \x01(\x0b\x32\x31.google.cloud.video.livestream.v1.RetentionConfigB\x03\xe0\x41\x01\x12M\n\x0fstatic_overlays\x18\x1b \x03(\x0b\x32/.google.cloud.video.livestream.v1.StaticOverlayB\x03\xe0\x41\x01\x1a\x15\n\x06Output\x12\x0b\n\x03uri\x18\x01 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xaa\x01\n\x0eStreamingState\x12\x1f\n\x1bSTREAMING_STATE_UNSPECIFIED\x10\x00\x12\r\n\tSTREAMING\x10\x01\x12\x12\n\x0e\x41WAITING_INPUT\x10\x02\x12\x13\n\x0fSTREAMING_ERROR\x10\x04\x12\x16\n\x12STREAMING_NO_INPUT\x10\x05\x12\x0b\n\x07STOPPED\x10\x06\x12\x0c\n\x08STARTING\x10\x07\x12\x0c\n\x08STOPPING\x10\x08:b\xea\x41_\n!livestream.googleapis.com/Channel\x12:projects/{project}/locations/{location}/channels/{channel}\"6\n\x14NormalizedCoordinate\x12\x0e\n\x01x\x18\x01 \x01(\x01\x42\x03\xe0\x41\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01\x42\x03\xe0\x41\x01\"6\n\x14NormalizedResolution\x12\x0e\n\x01w\x18\x01 \x01(\x01\x42\x03\xe0\x41\x01\x12\x0e\n\x01h\x18\x02 \x01(\x01\x42\x03\xe0\x41\x01\"\xfd\x01\n\rStaticOverlay\x12\x36\n\x05\x61sset\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Asset\x12O\n\nresolution\x18\x02 \x01(\x0b\x32\x36.google.cloud.video.livestream.v1.NormalizedResolutionB\x03\xe0\x41\x01\x12M\n\x08position\x18\x03 \x01(\x0b\x32\x36.google.cloud.video.livestream.v1.NormalizedCoordinateB\x03\xe0\x41\x01\x12\x14\n\x07opacity\x18\x04 \x01(\x01\x42\x03\xe0\x41\x01\"\xc6\x01\n\x0bInputConfig\x12X\n\x11input_switch_mode\x18\x01 \x01(\x0e\x32=.google.cloud.video.livestream.v1.InputConfig.InputSwitchMode\"]\n\x0fInputSwitchMode\x12!\n\x1dINPUT_SWITCH_MODE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46\x41ILOVER_PREFER_PRIMARY\x10\x01\x12\n\n\x06MANUAL\x10\x03\"\xc0\x01\n\tLogConfig\x12M\n\x0clog_severity\x18\x01 \x01(\x0e\x32\x37.google.cloud.video.livestream.v1.LogConfig.LogSeverity\"d\n\x0bLogSeverity\x12\x1c\n\x18LOG_SEVERITY_UNSPECIFIED\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x64\x12\t\n\x04INFO\x10\xc8\x01\x12\x0c\n\x07WARNING\x10\x90\x03\x12\n\n\x05\x45RROR\x10\xf4\x03\"O\n\x0fRetentionConfig\x12<\n\x19retention_window_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xea\x01\n\x13InputStreamProperty\x12\x37\n\x13last_establish_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12L\n\rvideo_streams\x18\x02 \x03(\x0b\x32\x35.google.cloud.video.livestream.v1.VideoStreamProperty\x12L\n\raudio_streams\x18\x03 \x03(\x0b\x32\x35.google.cloud.video.livestream.v1.AudioStreamProperty\"i\n\x13VideoStreamProperty\x12\r\n\x05index\x18\x01 \x01(\x05\x12\x43\n\x0cvideo_format\x18\x02 \x01(\x0b\x32-.google.cloud.video.livestream.v1.VideoFormat\"]\n\x0bVideoFormat\x12\r\n\x05\x63odec\x18\x01 \x01(\t\x12\x14\n\x0cwidth_pixels\x18\x02 \x01(\x05\x12\x15\n\rheight_pixels\x18\x03 \x01(\x05\x12\x12\n\nframe_rate\x18\x04 \x01(\x01\"i\n\x13\x41udioStreamProperty\x12\r\n\x05index\x18\x01 \x01(\x05\x12\x43\n\x0c\x61udio_format\x18\x02 \x01(\x0b\x32-.google.cloud.video.livestream.v1.AudioFormat\"K\n\x0b\x41udioFormat\x12\r\n\x05\x63odec\x18\x01 \x01(\t\x12\x15\n\rchannel_count\x18\x02 \x01(\x05\x12\x16\n\x0e\x63hannel_layout\x18\x03 \x03(\t\"\xdd\x01\n\x0fInputAttachment\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05input\x18\x02 \x01(\tB$\xfa\x41!\n\x1flivestream.googleapis.com/Input\x12_\n\x12\x61utomatic_failover\x18\x03 \x01(\x0b\x32\x43.google.cloud.video.livestream.v1.InputAttachment.AutomaticFailover\x1a\'\n\x11\x41utomaticFailover\x12\x12\n\ninput_keys\x18\x01 \x03(\t\"\x82\x0b\n\x05\x45vent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Event.LabelsEntry\x12O\n\x0cinput_switch\x18\x05 \x01(\x0b\x32\x37.google.cloud.video.livestream.v1.Event.InputSwitchTaskH\x00\x12G\n\x08\x61\x64_break\x18\x06 \x01(\x0b\x32\x33.google.cloud.video.livestream.v1.Event.AdBreakTaskH\x00\x12X\n\x11return_to_program\x18\r \x01(\x0b\x32;.google.cloud.video.livestream.v1.Event.ReturnToProgramTaskH\x00\x12\x42\n\x05slate\x18\x0e \x01(\x0b\x32\x31.google.cloud.video.livestream.v1.Event.SlateTaskH\x00\x12@\n\x04mute\x18\x0f \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.Event.MuteTaskH\x00\x12\x44\n\x06unmute\x18\x10 \x01(\x0b\x32\x32.google.cloud.video.livestream.v1.Event.UnmuteTaskH\x00\x12\x13\n\x0b\x65xecute_now\x18\t \x01(\x08\x12\x32\n\x0e\x65xecution_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x41\n\x05state\x18\x0b \x01(\x0e\x32-.google.cloud.video.livestream.v1.Event.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x0c \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x1a$\n\x0fInputSwitchTask\x12\x11\n\tinput_key\x18\x01 \x01(\t\x1a:\n\x0b\x41\x64\x42reakTask\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x1am\n\tSlateTask\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x33\n\x05\x61sset\x18\x02 \x01(\tB$\xfa\x41!\n\x1flivestream.googleapis.com/Asset\x1a\x15\n\x13ReturnToProgramTask\x1a\x37\n\x08MuteTask\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x0c\n\nUnmuteTask\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"o\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0b\n\x07PENDING\x10\x05\x12\x0b\n\x07STOPPED\x10\x06:o\xea\x41l\n\x1flivestream.googleapis.com/Event\x12Iprojects/{project}/locations/{location}/channels/{channel}/events/{event}B\x06\n\x04task\"\x96\t\n\x04\x43lip\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x33\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06labels\x18\x05 \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.Clip.LabelsEntry\x12@\n\x05state\x18\x06 \x01(\x0e\x32,.google.cloud.video.livestream.v1.Clip.StateB\x03\xe0\x41\x03\x12\x12\n\noutput_uri\x18\x07 \x01(\t\x12&\n\x05\x65rror\x18\t \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12<\n\x06slices\x18\n \x03(\x0b\x32,.google.cloud.video.livestream.v1.Clip.Slice\x12P\n\x0e\x63lip_manifests\x18\x0c \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Clip.ClipManifestB\x03\xe0\x41\x02\x12K\n\x0boutput_type\x18\r \x01(\x0e\x32\x31.google.cloud.video.livestream.v1.Clip.OutputTypeB\x03\xe0\x41\x01\x1an\n\tTimeSlice\x12/\n\x0bmarkin_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cmarkout_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1aW\n\x05Slice\x12\x46\n\ntime_slice\x18\x01 \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.Clip.TimeSliceH\x00\x42\x06\n\x04kind\x1a\x42\n\x0c\x43lipManifest\x12\x19\n\x0cmanifest_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\noutput_uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"T\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\"@\n\nOutputType\x12\x1b\n\x17OUTPUT_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08MANIFEST\x10\x01\x12\x07\n\x03MP4\x10\x02:l\xea\x41i\n\x1elivestream.googleapis.com/Clip\x12Gprojects/{project}/locations/{location}/channels/{channel}/clips/{clip}\"v\n\x0cTimeInterval\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"\x8c\x08\n\nDvrSession\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12M\n\x06labels\x18\x04 \x03(\x0b\x32\x38.google.cloud.video.livestream.v1.DvrSession.LabelsEntryB\x03\xe0\x41\x01\x12\x46\n\x05state\x18\x05 \x01(\x0e\x32\x32.google.cloud.video.livestream.v1.DvrSession.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12T\n\rdvr_manifests\x18\x07 \x03(\x0b\x32\x38.google.cloud.video.livestream.v1.DvrSession.DvrManifestB\x03\xe0\x41\x02\x12P\n\x0b\x64vr_windows\x18\x08 \x03(\x0b\x32\x36.google.cloud.video.livestream.v1.DvrSession.DvrWindowB\x03\xe0\x41\x02\x1a\x41\n\x0b\x44vrManifest\x12\x19\n\x0cmanifest_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\noutput_uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\\\n\tDvrWindow\x12G\n\rtime_interval\x18\x01 \x01(\x0b\x32..google.cloud.video.livestream.v1.TimeIntervalH\x00\x42\x06\n\x04kind\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xab\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0c\n\x08UPDATING\x10\x02\x12\r\n\tSCHEDULED\x10\x03\x12\x08\n\x04LIVE\x10\x04\x12\x0c\n\x08\x46INISHED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0c\n\x08\x44\x45LETING\x10\x07\x12\x13\n\x0fPOST_PROCESSING\x10\x08\x12\x0c\n\x08\x43OOLDOWN\x10\t\x12\x0c\n\x08STOPPING\x10\n:\x99\x01\xea\x41\x95\x01\n$livestream.googleapis.com/DvrSession\x12Tprojects/{project}/locations/{location}/channels/{channel}/dvrSessions/{dvr_session}*\x0b\x64vrSessions2\ndvrSession\"\xed\x05\n\x05\x41sset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Asset.LabelsEntry\x12\x43\n\x05video\x18\x05 \x01(\x0b\x32\x32.google.cloud.video.livestream.v1.Asset.VideoAssetH\x00\x12\x43\n\x05image\x18\x06 \x01(\x0b\x32\x32.google.cloud.video.livestream.v1.Asset.ImageAssetH\x00\x12\x0e\n\x06\x63rc32c\x18\x07 \x01(\t\x12\x41\n\x05state\x18\x08 \x01(\x0e\x32-.google.cloud.video.livestream.v1.Asset.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\t \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x1a\x19\n\nVideoAsset\x12\x0b\n\x03uri\x18\x01 \x01(\t\x1a\x19\n\nImageAsset\x12\x0b\n\x03uri\x18\x01 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\t\n\x05\x45RROR\x10\x04:\\\xea\x41Y\n\x1flivestream.googleapis.com/Asset\x12\x36projects/{project}/locations/{location}/assets/{asset}B\n\n\x08resource\"\x9d\x08\n\nEncryption\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x65\n\x19secret_manager_key_source\x18\x07 \x01(\x0b\x32@.google.cloud.video.livestream.v1.Encryption.SecretManagerSourceH\x00\x12Q\n\x0b\x64rm_systems\x18\x03 \x01(\x0b\x32\x37.google.cloud.video.livestream.v1.Encryption.DrmSystemsB\x03\xe0\x41\x02\x12O\n\x06\x61\x65s128\x18\x04 \x01(\x0b\x32=.google.cloud.video.livestream.v1.Encryption.Aes128EncryptionH\x01\x12V\n\nsample_aes\x18\x05 \x01(\x0b\x32@.google.cloud.video.livestream.v1.Encryption.SampleAesEncryptionH\x01\x12V\n\tmpeg_cenc\x18\x06 \x01(\x0b\x32\x41.google.cloud.video.livestream.v1.Encryption.MpegCommonEncryptionH\x01\x1a\x61\n\x13SecretManagerSource\x12J\n\x0esecret_version\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*secretmanager.googleapis.com/SecretVersion\x1a\n\n\x08Widevine\x1a\n\n\x08\x46\x61irplay\x1a\x0b\n\tPlayready\x1a\n\n\x08\x43learkey\x1a\xb2\x02\n\nDrmSystems\x12G\n\x08widevine\x18\x01 \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.Encryption.Widevine\x12G\n\x08\x66\x61irplay\x18\x02 \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.Encryption.Fairplay\x12I\n\tplayready\x18\x03 \x01(\x0b\x32\x36.google.cloud.video.livestream.v1.Encryption.Playready\x12G\n\x08\x63learkey\x18\x04 \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.Encryption.Clearkey\x1a\x12\n\x10\x41\x65s128Encryption\x1a\x15\n\x13SampleAesEncryption\x1a+\n\x14MpegCommonEncryption\x12\x13\n\x06scheme\x18\x01 \x01(\tB\x03\xe0\x41\x02\x42\x0f\n\rsecret_sourceB\x11\n\x0f\x65ncryption_mode\"\xea\x03\n\x04Pool\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06labels\x18\x04 \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.Pool.LabelsEntry\x12L\n\x0enetwork_config\x18\x05 \x01(\x0b\x32\x34.google.cloud.video.livestream.v1.Pool.NetworkConfig\x1aL\n\rNetworkConfig\x12;\n\x0epeered_network\x18\x01 \x01(\tB#\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:Y\xea\x41V\n\x1elivestream.googleapis.com/Pool\x12\x34projects/{project}/locations/{location}/pools/{pool}B\xeb\x01\n$com.google.cloud.video.livestream.v1B\x0eResourcesProtoP\x01ZDcloud.google.com/go/video/livestream/apiv1/livestreampb;livestreampb\xaa\x02 Google.Cloud.Video.LiveStream.V1\xca\x02 Google\\Cloud\\Video\\LiveStream\\V1\xea\x02$Google::Cloud::Video::LiveStream::V1b\x06proto3" +descriptor_data = "\n0google/cloud/video/livestream/v1/resources.proto\x12 google.cloud.video.livestream.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a.google/cloud/video/livestream/v1/outputs.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x98\x07\n\x05Input\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Input.LabelsEntry\x12:\n\x04type\x18\x05 \x01(\x0e\x32,.google.cloud.video.livestream.v1.Input.Type\x12:\n\x04tier\x18\x0e \x01(\x0e\x32,.google.cloud.video.livestream.v1.Input.Tier\x12\x10\n\x03uri\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12S\n\x14preprocessing_config\x18\t \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.PreprocessingConfig\x12L\n\x0esecurity_rules\x18\x0c \x01(\x0b\x32\x34.google.cloud.video.livestream.v1.Input.SecurityRule\x12Y\n\x15input_stream_property\x18\x0f \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.InputStreamPropertyB\x03\xe0\x41\x03\x1a!\n\x0cSecurityRule\x12\x11\n\tip_ranges\x18\x01 \x03(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"9\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\r\n\tRTMP_PUSH\x10\x01\x12\x0c\n\x08SRT_PUSH\x10\x02\"]\n\x04Tier\x12\x14\n\x10TIER_UNSPECIFIED\x10\x00\x12\x06\n\x02SD\x10\x01\x12\x06\n\x02HD\x10\x02\x12\x07\n\x03UHD\x10\x03\x12\x0b\n\x07SD_H265\x10\x04\x12\x0b\n\x07HD_H265\x10\x05\x12\x0c\n\x08UHD_H265\x10\x06:\\\xea\x41Y\n\x1flivestream.googleapis.com/Input\x12\x36projects/{project}/locations/{location}/inputs/{input}\"\xb4\x0e\n\x07\x43hannel\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x45\n\x06labels\x18\x04 \x03(\x0b\x32\x35.google.cloud.video.livestream.v1.Channel.LabelsEntry\x12L\n\x11input_attachments\x18\x10 \x03(\x0b\x32\x31.google.cloud.video.livestream.v1.InputAttachment\x12\x19\n\x0c\x61\x63tive_input\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x45\n\x06output\x18\t \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.Channel.OutputB\x03\xe0\x41\x02\x12N\n\x12\x65lementary_streams\x18\n \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.ElementaryStream\x12@\n\x0bmux_streams\x18\x0b \x03(\x0b\x32+.google.cloud.video.livestream.v1.MuxStream\x12=\n\tmanifests\x18\x0c \x03(\x0b\x32*.google.cloud.video.livestream.v1.Manifest\x12W\n\x14\x64istribution_streams\x18\x1c \x03(\x0b\x32\x34.google.cloud.video.livestream.v1.DistributionStreamB\x03\xe0\x41\x01\x12J\n\rdistributions\x18\x1d \x03(\x0b\x32..google.cloud.video.livestream.v1.DistributionB\x03\xe0\x41\x01\x12\x44\n\rsprite_sheets\x18\r \x03(\x0b\x32-.google.cloud.video.livestream.v1.SpriteSheet\x12V\n\x0fstreaming_state\x18\x0e \x01(\x0e\x32\x38.google.cloud.video.livestream.v1.Channel.StreamingStateB\x03\xe0\x41\x03\x12\x30\n\x0fstreaming_error\x18\x12 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12?\n\nlog_config\x18\x13 \x01(\x0b\x32+.google.cloud.video.livestream.v1.LogConfig\x12I\n\x0ftimecode_config\x18\x15 \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.TimecodeConfig\x12\x46\n\x0b\x65ncryptions\x18\x18 \x03(\x0b\x32,.google.cloud.video.livestream.v1.EncryptionB\x03\xe0\x41\x01\x12\x43\n\x0cinput_config\x18\x19 \x01(\x0b\x32-.google.cloud.video.livestream.v1.InputConfig\x12P\n\x10retention_config\x18\x1a \x01(\x0b\x32\x31.google.cloud.video.livestream.v1.RetentionConfigB\x03\xe0\x41\x01\x12M\n\x0fstatic_overlays\x18\x1b \x03(\x0b\x32/.google.cloud.video.livestream.v1.StaticOverlayB\x03\xe0\x41\x01\x12\x61\n\x19\x61uto_transcription_config\x18\x1e \x01(\x0b\x32\x39.google.cloud.video.livestream.v1.AutoTranscriptionConfigB\x03\xe0\x41\x01\x1a\x15\n\x06Output\x12\x0b\n\x03uri\x18\x01 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xaa\x01\n\x0eStreamingState\x12\x1f\n\x1bSTREAMING_STATE_UNSPECIFIED\x10\x00\x12\r\n\tSTREAMING\x10\x01\x12\x12\n\x0e\x41WAITING_INPUT\x10\x02\x12\x13\n\x0fSTREAMING_ERROR\x10\x04\x12\x16\n\x12STREAMING_NO_INPUT\x10\x05\x12\x0b\n\x07STOPPED\x10\x06\x12\x0c\n\x08STARTING\x10\x07\x12\x0c\n\x08STOPPING\x10\x08:b\xea\x41_\n!livestream.googleapis.com/Channel\x12:projects/{project}/locations/{location}/channels/{channel}\"6\n\x14NormalizedCoordinate\x12\x0e\n\x01x\x18\x01 \x01(\x01\x42\x03\xe0\x41\x01\x12\x0e\n\x01y\x18\x02 \x01(\x01\x42\x03\xe0\x41\x01\"6\n\x14NormalizedResolution\x12\x0e\n\x01w\x18\x01 \x01(\x01\x42\x03\xe0\x41\x01\x12\x0e\n\x01h\x18\x02 \x01(\x01\x42\x03\xe0\x41\x01\"\xfd\x01\n\rStaticOverlay\x12\x36\n\x05\x61sset\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Asset\x12O\n\nresolution\x18\x02 \x01(\x0b\x32\x36.google.cloud.video.livestream.v1.NormalizedResolutionB\x03\xe0\x41\x01\x12M\n\x08position\x18\x03 \x01(\x0b\x32\x36.google.cloud.video.livestream.v1.NormalizedCoordinateB\x03\xe0\x41\x01\x12\x14\n\x07opacity\x18\x04 \x01(\x01\x42\x03\xe0\x41\x01\"\xc6\x01\n\x0bInputConfig\x12X\n\x11input_switch_mode\x18\x01 \x01(\x0e\x32=.google.cloud.video.livestream.v1.InputConfig.InputSwitchMode\"]\n\x0fInputSwitchMode\x12!\n\x1dINPUT_SWITCH_MODE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46\x41ILOVER_PREFER_PRIMARY\x10\x01\x12\n\n\x06MANUAL\x10\x03\"\xc0\x01\n\tLogConfig\x12M\n\x0clog_severity\x18\x01 \x01(\x0e\x32\x37.google.cloud.video.livestream.v1.LogConfig.LogSeverity\"d\n\x0bLogSeverity\x12\x1c\n\x18LOG_SEVERITY_UNSPECIFIED\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\t\n\x05\x44\x45\x42UG\x10\x64\x12\t\n\x04INFO\x10\xc8\x01\x12\x0c\n\x07WARNING\x10\x90\x03\x12\n\n\x05\x45RROR\x10\xf4\x03\"O\n\x0fRetentionConfig\x12<\n\x19retention_window_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xea\x01\n\x13InputStreamProperty\x12\x37\n\x13last_establish_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12L\n\rvideo_streams\x18\x02 \x03(\x0b\x32\x35.google.cloud.video.livestream.v1.VideoStreamProperty\x12L\n\raudio_streams\x18\x03 \x03(\x0b\x32\x35.google.cloud.video.livestream.v1.AudioStreamProperty\"i\n\x13VideoStreamProperty\x12\r\n\x05index\x18\x01 \x01(\x05\x12\x43\n\x0cvideo_format\x18\x02 \x01(\x0b\x32-.google.cloud.video.livestream.v1.VideoFormat\"]\n\x0bVideoFormat\x12\r\n\x05\x63odec\x18\x01 \x01(\t\x12\x14\n\x0cwidth_pixels\x18\x02 \x01(\x05\x12\x15\n\rheight_pixels\x18\x03 \x01(\x05\x12\x12\n\nframe_rate\x18\x04 \x01(\x01\"i\n\x13\x41udioStreamProperty\x12\r\n\x05index\x18\x01 \x01(\x05\x12\x43\n\x0c\x61udio_format\x18\x02 \x01(\x0b\x32-.google.cloud.video.livestream.v1.AudioFormat\"K\n\x0b\x41udioFormat\x12\r\n\x05\x63odec\x18\x01 \x01(\t\x12\x15\n\rchannel_count\x18\x02 \x01(\x05\x12\x16\n\x0e\x63hannel_layout\x18\x03 \x03(\t\"\xdd\x01\n\x0fInputAttachment\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05input\x18\x02 \x01(\tB$\xfa\x41!\n\x1flivestream.googleapis.com/Input\x12_\n\x12\x61utomatic_failover\x18\x03 \x01(\x0b\x32\x43.google.cloud.video.livestream.v1.InputAttachment.AutomaticFailover\x1a\'\n\x11\x41utomaticFailover\x12\x12\n\ninput_keys\x18\x01 \x03(\t\"\x99\x03\n\x17\x41utoTranscriptionConfig\x12\x64\n\x0e\x64isplay_timing\x18\x01 \x01(\x0e\x32G.google.cloud.video.livestream.v1.AutoTranscriptionConfig.DisplayTimingB\x03\xe0\x41\x01\x12\x64\n\x0equality_preset\x18\x02 \x01(\x0e\x32G.google.cloud.video.livestream.v1.AutoTranscriptionConfig.QualityPresetB\x03\xe0\x41\x01\"D\n\rDisplayTiming\x12\x1e\n\x1a\x44ISPLAY_TIMING_UNSPECIFIED\x10\x00\x12\t\n\x05\x41SYNC\x10\x01\x12\x08\n\x04SYNC\x10\x02\"l\n\rQualityPreset\x12\x1e\n\x1aQUALITY_PRESET_UNSPECIFIED\x10\x00\x12\x0f\n\x0bLOW_LATENCY\x10\x01\x12\x14\n\x10\x42\x41LANCED_QUALITY\x10\x02\x12\x14\n\x10IMPROVED_QUALITY\x10\x03\"\xc6\x0c\n\x05\x45vent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Event.LabelsEntry\x12O\n\x0cinput_switch\x18\x05 \x01(\x0b\x32\x37.google.cloud.video.livestream.v1.Event.InputSwitchTaskH\x00\x12G\n\x08\x61\x64_break\x18\x06 \x01(\x0b\x32\x33.google.cloud.video.livestream.v1.Event.AdBreakTaskH\x00\x12X\n\x11return_to_program\x18\r \x01(\x0b\x32;.google.cloud.video.livestream.v1.Event.ReturnToProgramTaskH\x00\x12\x42\n\x05slate\x18\x0e \x01(\x0b\x32\x31.google.cloud.video.livestream.v1.Event.SlateTaskH\x00\x12@\n\x04mute\x18\x0f \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.Event.MuteTaskH\x00\x12\x44\n\x06unmute\x18\x10 \x01(\x0b\x32\x32.google.cloud.video.livestream.v1.Event.UnmuteTaskH\x00\x12[\n\x12update_encryptions\x18\x11 \x01(\x0b\x32=.google.cloud.video.livestream.v1.Event.UpdateEncryptionsTaskH\x00\x12\x13\n\x0b\x65xecute_now\x18\t \x01(\x08\x12\x32\n\x0e\x65xecution_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x41\n\x05state\x18\x0b \x01(\x0e\x32-.google.cloud.video.livestream.v1.Event.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x0c \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x1a$\n\x0fInputSwitchTask\x12\x11\n\tinput_key\x18\x01 \x01(\t\x1a:\n\x0b\x41\x64\x42reakTask\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x1am\n\tSlateTask\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x33\n\x05\x61sset\x18\x02 \x01(\tB$\xfa\x41!\n\x1flivestream.googleapis.com/Asset\x1a\x15\n\x13ReturnToProgramTask\x1a\x37\n\x08MuteTask\x12+\n\x08\x64uration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x0c\n\nUnmuteTask\x1a\x65\n\x15UpdateEncryptionsTask\x12L\n\x0b\x65ncryptions\x18\x01 \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.EncryptionUpdateB\x03\xe0\x41\x02\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"o\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\r\n\tSCHEDULED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0b\n\x07PENDING\x10\x05\x12\x0b\n\x07STOPPED\x10\x06:o\xea\x41l\n\x1flivestream.googleapis.com/Event\x12Iprojects/{project}/locations/{location}/channels/{channel}/events/{event}B\x06\n\x04task\"\x96\t\n\x04\x43lip\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x33\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06labels\x18\x05 \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.Clip.LabelsEntry\x12@\n\x05state\x18\x06 \x01(\x0e\x32,.google.cloud.video.livestream.v1.Clip.StateB\x03\xe0\x41\x03\x12\x12\n\noutput_uri\x18\x07 \x01(\t\x12&\n\x05\x65rror\x18\t \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12<\n\x06slices\x18\n \x03(\x0b\x32,.google.cloud.video.livestream.v1.Clip.Slice\x12P\n\x0e\x63lip_manifests\x18\x0c \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Clip.ClipManifestB\x03\xe0\x41\x02\x12K\n\x0boutput_type\x18\r \x01(\x0e\x32\x31.google.cloud.video.livestream.v1.Clip.OutputTypeB\x03\xe0\x41\x01\x1an\n\tTimeSlice\x12/\n\x0bmarkin_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cmarkout_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1aW\n\x05Slice\x12\x46\n\ntime_slice\x18\x01 \x01(\x0b\x32\x30.google.cloud.video.livestream.v1.Clip.TimeSliceH\x00\x42\x06\n\x04kind\x1a\x42\n\x0c\x43lipManifest\x12\x19\n\x0cmanifest_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\noutput_uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"T\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0c\n\x08\x43REATING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\"@\n\nOutputType\x12\x1b\n\x17OUTPUT_TYPE_UNSPECIFIED\x10\x00\x12\x0c\n\x08MANIFEST\x10\x01\x12\x07\n\x03MP4\x10\x02:l\xea\x41i\n\x1elivestream.googleapis.com/Clip\x12Gprojects/{project}/locations/{location}/channels/{channel}/clips/{clip}\"v\n\x0cTimeInterval\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\"\x8c\x08\n\nDvrSession\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12M\n\x06labels\x18\x04 \x03(\x0b\x32\x38.google.cloud.video.livestream.v1.DvrSession.LabelsEntryB\x03\xe0\x41\x01\x12\x46\n\x05state\x18\x05 \x01(\x0e\x32\x32.google.cloud.video.livestream.v1.DvrSession.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12T\n\rdvr_manifests\x18\x07 \x03(\x0b\x32\x38.google.cloud.video.livestream.v1.DvrSession.DvrManifestB\x03\xe0\x41\x02\x12P\n\x0b\x64vr_windows\x18\x08 \x03(\x0b\x32\x36.google.cloud.video.livestream.v1.DvrSession.DvrWindowB\x03\xe0\x41\x02\x1a\x41\n\x0b\x44vrManifest\x12\x19\n\x0cmanifest_key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\noutput_uri\x18\x02 \x01(\tB\x03\xe0\x41\x03\x1a\\\n\tDvrWindow\x12G\n\rtime_interval\x18\x01 \x01(\x0b\x32..google.cloud.video.livestream.v1.TimeIntervalH\x00\x42\x06\n\x04kind\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xab\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0c\n\x08UPDATING\x10\x02\x12\r\n\tSCHEDULED\x10\x03\x12\x08\n\x04LIVE\x10\x04\x12\x0c\n\x08\x46INISHED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\x0c\n\x08\x44\x45LETING\x10\x07\x12\x13\n\x0fPOST_PROCESSING\x10\x08\x12\x0c\n\x08\x43OOLDOWN\x10\t\x12\x0c\n\x08STOPPING\x10\n:\x99\x01\xea\x41\x95\x01\n$livestream.googleapis.com/DvrSession\x12Tprojects/{project}/locations/{location}/channels/{channel}/dvrSessions/{dvr_session}*\x0b\x64vrSessions2\ndvrSession\"\xed\x05\n\x05\x41sset\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x43\n\x06labels\x18\x04 \x03(\x0b\x32\x33.google.cloud.video.livestream.v1.Asset.LabelsEntry\x12\x43\n\x05video\x18\x05 \x01(\x0b\x32\x32.google.cloud.video.livestream.v1.Asset.VideoAssetH\x00\x12\x43\n\x05image\x18\x06 \x01(\x0b\x32\x32.google.cloud.video.livestream.v1.Asset.ImageAssetH\x00\x12\x0e\n\x06\x63rc32c\x18\x07 \x01(\t\x12\x41\n\x05state\x18\x08 \x01(\x0e\x32-.google.cloud.video.livestream.v1.Asset.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\t \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x1a\x19\n\nVideoAsset\x12\x0b\n\x03uri\x18\x01 \x01(\t\x1a\x19\n\nImageAsset\x12\x0b\n\x03uri\x18\x01 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Q\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\x0c\n\x08\x44\x45LETING\x10\x03\x12\t\n\x05\x45RROR\x10\x04:\\\xea\x41Y\n\x1flivestream.googleapis.com/Asset\x12\x36projects/{project}/locations/{location}/assets/{asset}B\n\n\x08resource\"\xb1\x08\n\nEncryption\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x65\n\x19secret_manager_key_source\x18\x07 \x01(\x0b\x32@.google.cloud.video.livestream.v1.Encryption.SecretManagerSourceH\x00\x12Q\n\x0b\x64rm_systems\x18\x03 \x01(\x0b\x32\x37.google.cloud.video.livestream.v1.Encryption.DrmSystemsB\x03\xe0\x41\x02\x12O\n\x06\x61\x65s128\x18\x04 \x01(\x0b\x32=.google.cloud.video.livestream.v1.Encryption.Aes128EncryptionH\x01\x12V\n\nsample_aes\x18\x05 \x01(\x0b\x32@.google.cloud.video.livestream.v1.Encryption.SampleAesEncryptionH\x01\x12V\n\tmpeg_cenc\x18\x06 \x01(\x0b\x32\x41.google.cloud.video.livestream.v1.Encryption.MpegCommonEncryptionH\x01\x1a\x61\n\x13SecretManagerSource\x12J\n\x0esecret_version\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*secretmanager.googleapis.com/SecretVersion\x1a\n\n\x08Widevine\x1a\n\n\x08\x46\x61irplay\x1a\x0b\n\tPlayready\x1a\n\n\x08\x43learkey\x1a\xc6\x02\n\nDrmSystems\x12L\n\x08widevine\x18\x01 \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.Encryption.WidevineB\x03\xe0\x41\x01\x12L\n\x08\x66\x61irplay\x18\x02 \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.Encryption.FairplayB\x03\xe0\x41\x01\x12N\n\tplayready\x18\x03 \x01(\x0b\x32\x36.google.cloud.video.livestream.v1.Encryption.PlayreadyB\x03\xe0\x41\x01\x12L\n\x08\x63learkey\x18\x04 \x01(\x0b\x32\x35.google.cloud.video.livestream.v1.Encryption.ClearkeyB\x03\xe0\x41\x01\x1a\x12\n\x10\x41\x65s128Encryption\x1a\x15\n\x13SampleAesEncryption\x1a+\n\x14MpegCommonEncryption\x12\x13\n\x06scheme\x18\x01 \x01(\tB\x03\xe0\x41\x02\x42\x0f\n\rsecret_sourceB\x11\n\x0f\x65ncryption_mode\"\x9b\x01\n\x10\x45ncryptionUpdate\x12\x0f\n\x02id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x65\n\x19secret_manager_key_source\x18\x02 \x01(\x0b\x32@.google.cloud.video.livestream.v1.Encryption.SecretManagerSourceH\x00\x42\x0f\n\rsecret_source\"\xea\x03\n\x04Pool\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x42\n\x06labels\x18\x04 \x03(\x0b\x32\x32.google.cloud.video.livestream.v1.Pool.LabelsEntry\x12L\n\x0enetwork_config\x18\x05 \x01(\x0b\x32\x34.google.cloud.video.livestream.v1.Pool.NetworkConfig\x1aL\n\rNetworkConfig\x12;\n\x0epeered_network\x18\x01 \x01(\tB#\xfa\x41 \n\x1e\x63ompute.googleapis.com/Network\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:Y\xea\x41V\n\x1elivestream.googleapis.com/Pool\x12\x34projects/{project}/locations/{location}/pools/{pool}B\xeb\x01\n$com.google.cloud.video.livestream.v1B\x0eResourcesProtoP\x01ZDcloud.google.com/go/video/livestream/apiv1/livestreampb;livestreampb\xaa\x02 Google.Cloud.Video.LiveStream.V1\xca\x02 Google\\Cloud\\Video\\LiveStream\\V1\xea\x02$Google::Cloud::Video::LiveStream::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -69,6 +69,9 @@ module V1 AudioFormat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.AudioFormat").msgclass InputAttachment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.InputAttachment").msgclass InputAttachment::AutomaticFailover = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.InputAttachment.AutomaticFailover").msgclass + AutoTranscriptionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.AutoTranscriptionConfig").msgclass + AutoTranscriptionConfig::DisplayTiming = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.AutoTranscriptionConfig.DisplayTiming").enummodule + AutoTranscriptionConfig::QualityPreset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.AutoTranscriptionConfig.QualityPreset").enummodule Event = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event").msgclass Event::InputSwitchTask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.InputSwitchTask").msgclass Event::AdBreakTask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.AdBreakTask").msgclass @@ -76,6 +79,7 @@ module V1 Event::ReturnToProgramTask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.ReturnToProgramTask").msgclass Event::MuteTask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.MuteTask").msgclass Event::UnmuteTask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.UnmuteTask").msgclass + Event::UpdateEncryptionsTask = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.UpdateEncryptionsTask").msgclass Event::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Event.State").enummodule Clip = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Clip").msgclass Clip::TimeSlice = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Clip.TimeSlice").msgclass @@ -102,6 +106,7 @@ module V1 Encryption::Aes128Encryption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Encryption.Aes128Encryption").msgclass Encryption::SampleAesEncryption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Encryption.SampleAesEncryption").msgclass Encryption::MpegCommonEncryption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Encryption.MpegCommonEncryption").msgclass + EncryptionUpdate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.EncryptionUpdate").msgclass Pool = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Pool").msgclass Pool::NetworkConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.Pool.NetworkConfig").msgclass end diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_pb.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_pb.rb index b56018d778f0..c2580d3154ce 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_pb.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_pb.rb @@ -16,7 +16,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n.google/cloud/video/livestream/v1/service.proto\x12 google.cloud.video.livestream.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x30google/cloud/video/livestream/v1/resources.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb5\x01\n\x12\x43reateAssetRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Asset\x12;\n\x05\x61sset\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.AssetB\x03\xe0\x41\x02\x12\x15\n\x08\x61sset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"_\n\x12\x44\x65leteAssetRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Asset\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x95\x01\n\x11ListAssetsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Asset\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"{\n\x12ListAssetsResponse\x12\x37\n\x06\x61ssets\x18\x01 \x03(\x0b\x32\'.google.cloud.video.livestream.v1.Asset\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"H\n\x0fGetAssetRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Asset\"\xbf\x01\n\x14\x43reateChannelRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!livestream.googleapis.com/Channel\x12?\n\x07\x63hannel\x18\x02 \x01(\x0b\x32).google.cloud.video.livestream.v1.ChannelB\x03\xe0\x41\x02\x12\x17\n\nchannel_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x99\x01\n\x13ListChannelsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!livestream.googleapis.com/Channel\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"\x81\x01\n\x14ListChannelsResponse\x12;\n\x08\x63hannels\x18\x01 \x03(\x0b\x32).google.cloud.video.livestream.v1.Channel\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"L\n\x11GetChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\"r\n\x14\x44\x65leteChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\"\x9c\x01\n\x14UpdateChannelRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12?\n\x07\x63hannel\x18\x02 \x01(\x0b\x32).google.cloud.video.livestream.v1.ChannelB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"b\n\x13StartChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"a\n\x12StopChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\xb5\x01\n\x12\x43reateInputRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Input\x12;\n\x05input\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.InputB\x03\xe0\x41\x02\x12\x15\n\x08input_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x95\x01\n\x11ListInputsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Input\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"{\n\x12ListInputsResponse\x12\x37\n\x06inputs\x18\x01 \x03(\x0b\x32\'.google.cloud.video.livestream.v1.Input\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"H\n\x0fGetInputRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Input\"_\n\x12\x44\x65leteInputRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Input\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x96\x01\n\x12UpdateInputRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12;\n\x05input\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.InputB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"\xb5\x01\n\x12\x43reateEventRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Event\x12;\n\x05\x65vent\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.EventB\x03\xe0\x41\x02\x12\x15\n\x08\x65vent_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x95\x01\n\x11ListEventsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Event\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"{\n\x12ListEventsResponse\x12\x37\n\x06\x65vents\x18\x01 \x03(\x0b\x32\'.google.cloud.video.livestream.v1.Event\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"H\n\x0fGetEventRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Event\"_\n\x12\x44\x65leteEventRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Event\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x1a\n\x18\x43hannelOperationResponse\"\x93\x01\n\x10ListClipsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1elivestream.googleapis.com/Clip\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"x\n\x11ListClipsResponse\x12\x35\n\x05\x63lips\x18\x01 \x03(\x0b\x32&.google.cloud.video.livestream.v1.Clip\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"F\n\x0eGetClipRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1elivestream.googleapis.com/Clip\"\xb5\x01\n\x11\x43reateClipRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1elivestream.googleapis.com/Clip\x12\x14\n\x07\x63lip_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x39\n\x04\x63lip\x18\x03 \x01(\x0b\x32&.google.cloud.video.livestream.v1.ClipB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"j\n\x11\x44\x65leteClipRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1elivestream.googleapis.com/Clip\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb3\x01\n\x16ListDvrSessionsRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$livestream.googleapis.com/DvrSession\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8b\x01\n\x17ListDvrSessionsResponse\x12\x42\n\x0c\x64vr_sessions\x18\x01 \x03(\x0b\x32,.google.cloud.video.livestream.v1.DvrSession\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"R\n\x14GetDvrSessionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$livestream.googleapis.com/DvrSession\"\xdd\x01\n\x17\x43reateDvrSessionRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$livestream.googleapis.com/DvrSession\x12\x1b\n\x0e\x64vr_session_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x46\n\x0b\x64vr_session\x18\x03 \x01(\x0b\x32,.google.cloud.video.livestream.v1.DvrSessionB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"v\n\x17\x44\x65leteDvrSessionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$livestream.googleapis.com/DvrSession\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb8\x01\n\x17UpdateDvrSessionRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x46\n\x0b\x64vr_session\x18\x02 \x01(\x0b\x32,.google.cloud.video.livestream.v1.DvrSessionB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xe3\x01\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x06 \x01(\tB\x03\xe0\x41\x03\"F\n\x0eGetPoolRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1elivestream.googleapis.com/Pool\"\x93\x01\n\x11UpdatePoolRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x39\n\x04pool\x18\x02 \x01(\x0b\x32&.google.cloud.video.livestream.v1.PoolB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t2\xe9\x31\n\x11LivestreamService\x12\xe0\x01\n\rCreateChannel\x12\x36.google.cloud.video.livestream.v1.CreateChannelRequest\x1a\x1d.google.longrunning.Operation\"x\xca\x41\x1c\n\x07\x43hannel\x12\x11OperationMetadata\xda\x41\x19parent,channel,channel_id\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/channels:\x07\x63hannel\x12\xbc\x01\n\x0cListChannels\x12\x35.google.cloud.video.livestream.v1.ListChannelsRequest\x1a\x36.google.cloud.video.livestream.v1.ListChannelsResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/channels\x12\xa9\x01\n\nGetChannel\x12\x33.google.cloud.video.livestream.v1.GetChannelRequest\x1a).google.cloud.video.livestream.v1.Channel\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/channels/*}\x12\xd0\x01\n\rDeleteChannel\x12\x36.google.cloud.video.livestream.v1.DeleteChannelRequest\x1a\x1d.google.longrunning.Operation\"h\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/channels/*}\x12\xe2\x01\n\rUpdateChannel\x12\x36.google.cloud.video.livestream.v1.UpdateChannelRequest\x1a\x1d.google.longrunning.Operation\"z\xca\x41\x1c\n\x07\x43hannel\x12\x11OperationMetadata\xda\x41\x13\x63hannel,update_mask\x82\xd3\xe4\x93\x02?24/v1/{channel.name=projects/*/locations/*/channels/*}:\x07\x63hannel\x12\xda\x01\n\x0cStartChannel\x12\x35.google.cloud.video.livestream.v1.StartChannelRequest\x1a\x1d.google.longrunning.Operation\"t\xca\x41-\n\x18\x43hannelOperationResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\"2/v1/{name=projects/*/locations/*/channels/*}:start:\x01*\x12\xd7\x01\n\x0bStopChannel\x12\x34.google.cloud.video.livestream.v1.StopChannelRequest\x1a\x1d.google.longrunning.Operation\"s\xca\x41-\n\x18\x43hannelOperationResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\"1/v1/{name=projects/*/locations/*/channels/*}:stop:\x01*\x12\xd2\x01\n\x0b\x43reateInput\x12\x34.google.cloud.video.livestream.v1.CreateInputRequest\x1a\x1d.google.longrunning.Operation\"n\xca\x41\x1a\n\x05Input\x12\x11OperationMetadata\xda\x41\x15parent,input,input_id\x82\xd3\xe4\x93\x02\x33\"*/v1/{parent=projects/*/locations/*}/inputs:\x05input\x12\xb4\x01\n\nListInputs\x12\x33.google.cloud.video.livestream.v1.ListInputsRequest\x1a\x34.google.cloud.video.livestream.v1.ListInputsResponse\";\xda\x41\x06parent\x82\xd3\xe4\x93\x02,\x12*/v1/{parent=projects/*/locations/*}/inputs\x12\xa1\x01\n\x08GetInput\x12\x31.google.cloud.video.livestream.v1.GetInputRequest\x1a\'.google.cloud.video.livestream.v1.Input\"9\xda\x41\x04name\x82\xd3\xe4\x93\x02,\x12*/v1/{name=projects/*/locations/*/inputs/*}\x12\xca\x01\n\x0b\x44\x65leteInput\x12\x34.google.cloud.video.livestream.v1.DeleteInputRequest\x1a\x1d.google.longrunning.Operation\"f\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02,**/v1/{name=projects/*/locations/*/inputs/*}\x12\xd4\x01\n\x0bUpdateInput\x12\x34.google.cloud.video.livestream.v1.UpdateInputRequest\x1a\x1d.google.longrunning.Operation\"p\xca\x41\x1a\n\x05Input\x12\x11OperationMetadata\xda\x41\x11input,update_mask\x82\xd3\xe4\x93\x02\x39\x32\x30/v1/{input.name=projects/*/locations/*/inputs/*}:\x05input\x12\xca\x01\n\x0b\x43reateEvent\x12\x34.google.cloud.video.livestream.v1.CreateEventRequest\x1a\'.google.cloud.video.livestream.v1.Event\"\\\xda\x41\x15parent,event,event_id\x82\xd3\xe4\x93\x02>\"5/v1/{parent=projects/*/locations/*/channels/*}/events:\x05\x65vent\x12\xbf\x01\n\nListEvents\x12\x33.google.cloud.video.livestream.v1.ListEventsRequest\x1a\x34.google.cloud.video.livestream.v1.ListEventsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*/channels/*}/events\x12\xac\x01\n\x08GetEvent\x12\x31.google.cloud.video.livestream.v1.GetEventRequest\x1a\'.google.cloud.video.livestream.v1.Event\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{name=projects/*/locations/*/channels/*/events/*}\x12\xa1\x01\n\x0b\x44\x65leteEvent\x12\x34.google.cloud.video.livestream.v1.DeleteEventRequest\x1a\x16.google.protobuf.Empty\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37*5/v1/{name=projects/*/locations/*/channels/*/events/*}\x12\xbb\x01\n\tListClips\x12\x32.google.cloud.video.livestream.v1.ListClipsRequest\x1a\x33.google.cloud.video.livestream.v1.ListClipsResponse\"E\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{parent=projects/*/locations/*/channels/*}/clips\x12\xa8\x01\n\x07GetClip\x12\x30.google.cloud.video.livestream.v1.GetClipRequest\x1a&.google.cloud.video.livestream.v1.Clip\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{name=projects/*/locations/*/channels/*/clips/*}\x12\xd6\x01\n\nCreateClip\x12\x33.google.cloud.video.livestream.v1.CreateClipRequest\x1a\x1d.google.longrunning.Operation\"t\xca\x41\x19\n\x04\x43lip\x12\x11OperationMetadata\xda\x41\x13parent,clip,clip_id\x82\xd3\xe4\x93\x02<\"4/v1/{parent=projects/*/locations/*/channels/*}/clips:\x04\x63lip\x12\xd2\x01\n\nDeleteClip\x12\x33.google.cloud.video.livestream.v1.DeleteClipRequest\x1a\x1d.google.longrunning.Operation\"p\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36*4/v1/{name=projects/*/locations/*/channels/*/clips/*}\x12\x84\x02\n\x10\x43reateDvrSession\x12\x39.google.cloud.video.livestream.v1.CreateDvrSessionRequest\x1a\x1d.google.longrunning.Operation\"\x95\x01\xca\x41\x1f\n\nDvrSession\x12\x11OperationMetadata\xda\x41!parent,dvr_session,dvr_session_id\x82\xd3\xe4\x93\x02I\":/v1/{parent=projects/*/locations/*/channels/*}/dvrSessions:\x0b\x64vr_session\x12\xd3\x01\n\x0fListDvrSessions\x12\x38.google.cloud.video.livestream.v1.ListDvrSessionsRequest\x1a\x39.google.cloud.video.livestream.v1.ListDvrSessionsResponse\"K\xda\x41\x06parent\x82\xd3\xe4\x93\x02<\x12:/v1/{parent=projects/*/locations/*/channels/*}/dvrSessions\x12\xc0\x01\n\rGetDvrSession\x12\x36.google.cloud.video.livestream.v1.GetDvrSessionRequest\x1a,.google.cloud.video.livestream.v1.DvrSession\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/*/channels/*/dvrSessions/*}\x12\xe4\x01\n\x10\x44\x65leteDvrSession\x12\x39.google.cloud.video.livestream.v1.DeleteDvrSessionRequest\x1a\x1d.google.longrunning.Operation\"v\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02<*:/v1/{name=projects/*/locations/*/channels/*/dvrSessions/*}\x12\x86\x02\n\x10UpdateDvrSession\x12\x39.google.cloud.video.livestream.v1.UpdateDvrSessionRequest\x1a\x1d.google.longrunning.Operation\"\x97\x01\xca\x41\x1f\n\nDvrSession\x12\x11OperationMetadata\xda\x41\x17\x64vr_session,update_mask\x82\xd3\xe4\x93\x02U2F/v1/{dvr_session.name=projects/*/locations/*/channels/*/dvrSessions/*}:\x0b\x64vr_session\x12\xd2\x01\n\x0b\x43reateAsset\x12\x34.google.cloud.video.livestream.v1.CreateAssetRequest\x1a\x1d.google.longrunning.Operation\"n\xca\x41\x1a\n\x05\x41sset\x12\x11OperationMetadata\xda\x41\x15parent,asset,asset_id\x82\xd3\xe4\x93\x02\x33\"*/v1/{parent=projects/*/locations/*}/assets:\x05\x61sset\x12\xca\x01\n\x0b\x44\x65leteAsset\x12\x34.google.cloud.video.livestream.v1.DeleteAssetRequest\x1a\x1d.google.longrunning.Operation\"f\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02,**/v1/{name=projects/*/locations/*/assets/*}\x12\xa1\x01\n\x08GetAsset\x12\x31.google.cloud.video.livestream.v1.GetAssetRequest\x1a\'.google.cloud.video.livestream.v1.Asset\"9\xda\x41\x04name\x82\xd3\xe4\x93\x02,\x12*/v1/{name=projects/*/locations/*/assets/*}\x12\xb4\x01\n\nListAssets\x12\x33.google.cloud.video.livestream.v1.ListAssetsRequest\x1a\x34.google.cloud.video.livestream.v1.ListAssetsResponse\";\xda\x41\x06parent\x82\xd3\xe4\x93\x02,\x12*/v1/{parent=projects/*/locations/*}/assets\x12\x9d\x01\n\x07GetPool\x12\x30.google.cloud.video.livestream.v1.GetPoolRequest\x1a&.google.cloud.video.livestream.v1.Pool\"8\xda\x41\x04name\x82\xd3\xe4\x93\x02+\x12)/v1/{name=projects/*/locations/*/pools/*}\x12\xcd\x01\n\nUpdatePool\x12\x33.google.cloud.video.livestream.v1.UpdatePoolRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41\x19\n\x04Pool\x12\x11OperationMetadata\xda\x41\x10pool,update_mask\x82\xd3\xe4\x93\x02\x36\x32./v1/{pool.name=projects/*/locations/*/pools/*}:\x04pool\x1aM\xca\x41\x19livestream.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xa1\x03\n$com.google.cloud.video.livestream.v1B\x0cServiceProtoP\x01ZDcloud.google.com/go/video/livestream/apiv1/livestreampb;livestreampb\xaa\x02 Google.Cloud.Video.LiveStream.V1\xca\x02 Google\\Cloud\\Video\\LiveStream\\V1\xea\x02$Google::Cloud::Video::LiveStream::V1\xea\x41\x64\n*secretmanager.googleapis.com/SecretVersion\x12\x36projects/{project}/secrets/{secret}/versions/{version}\xea\x41N\n\x1e\x63ompute.googleapis.com/Network\x12,projects/{project}/global/networks/{network}b\x06proto3" +descriptor_data = "\n.google/cloud/video/livestream/v1/service.proto\x12 google.cloud.video.livestream.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x30google/cloud/video/livestream/v1/resources.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb5\x01\n\x12\x43reateAssetRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Asset\x12;\n\x05\x61sset\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.AssetB\x03\xe0\x41\x02\x12\x15\n\x08\x61sset_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"_\n\x12\x44\x65leteAssetRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Asset\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x95\x01\n\x11ListAssetsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Asset\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"{\n\x12ListAssetsResponse\x12\x37\n\x06\x61ssets\x18\x01 \x03(\x0b\x32\'.google.cloud.video.livestream.v1.Asset\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"H\n\x0fGetAssetRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Asset\"\xbf\x01\n\x14\x43reateChannelRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!livestream.googleapis.com/Channel\x12?\n\x07\x63hannel\x18\x02 \x01(\x0b\x32).google.cloud.video.livestream.v1.ChannelB\x03\xe0\x41\x02\x12\x17\n\nchannel_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x99\x01\n\x13ListChannelsRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!livestream.googleapis.com/Channel\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"\x81\x01\n\x14ListChannelsResponse\x12;\n\x08\x63hannels\x18\x01 \x03(\x0b\x32).google.cloud.video.livestream.v1.Channel\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"L\n\x11GetChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\"r\n\x14\x44\x65leteChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x12\n\nrequest_id\x18\x02 \x01(\t\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\"\x9c\x01\n\x14UpdateChannelRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12?\n\x07\x63hannel\x18\x02 \x01(\x0b\x32).google.cloud.video.livestream.v1.ChannelB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"b\n\x13StartChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"a\n\x12StopChannelRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x94\x01\n\x18StartDistributionRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x1e\n\x11\x64istribution_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x93\x01\n\x17StopDistributionRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!livestream.googleapis.com/Channel\x12\x1e\n\x11\x64istribution_keys\x18\x02 \x03(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb5\x01\n\x12\x43reateInputRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Input\x12;\n\x05input\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.InputB\x03\xe0\x41\x02\x12\x15\n\x08input_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x95\x01\n\x11ListInputsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Input\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"{\n\x12ListInputsResponse\x12\x37\n\x06inputs\x18\x01 \x03(\x0b\x32\'.google.cloud.video.livestream.v1.Input\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"H\n\x0fGetInputRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Input\"_\n\x12\x44\x65leteInputRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Input\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x96\x01\n\x12UpdateInputRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12;\n\x05input\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.InputB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"\xb5\x01\n\x12\x43reateEventRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Event\x12;\n\x05\x65vent\x18\x02 \x01(\x0b\x32\'.google.cloud.video.livestream.v1.EventB\x03\xe0\x41\x02\x12\x15\n\x08\x65vent_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x95\x01\n\x11ListEventsRequest\x12\x37\n\x06parent\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\x12\x1flivestream.googleapis.com/Event\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"{\n\x12ListEventsResponse\x12\x37\n\x06\x65vents\x18\x01 \x03(\x0b\x32\'.google.cloud.video.livestream.v1.Event\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"H\n\x0fGetEventRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Event\"_\n\x12\x44\x65leteEventRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Event\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x1a\n\x18\x43hannelOperationResponse\"\x93\x01\n\x10ListClipsRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1elivestream.googleapis.com/Clip\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"x\n\x11ListClipsResponse\x12\x35\n\x05\x63lips\x18\x01 \x03(\x0b\x32&.google.cloud.video.livestream.v1.Clip\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"F\n\x0eGetClipRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1elivestream.googleapis.com/Clip\"\xb5\x01\n\x11\x43reateClipRequest\x12\x36\n\x06parent\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \x12\x1elivestream.googleapis.com/Clip\x12\x14\n\x07\x63lip_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x39\n\x04\x63lip\x18\x03 \x01(\x0b\x32&.google.cloud.video.livestream.v1.ClipB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"j\n\x11\x44\x65leteClipRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1elivestream.googleapis.com/Clip\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb3\x01\n\x16ListDvrSessionsRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$livestream.googleapis.com/DvrSession\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8b\x01\n\x17ListDvrSessionsResponse\x12\x42\n\x0c\x64vr_sessions\x18\x01 \x03(\x0b\x32,.google.cloud.video.livestream.v1.DvrSession\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x13\n\x0bunreachable\x18\x03 \x03(\t\"R\n\x14GetDvrSessionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$livestream.googleapis.com/DvrSession\"\xdd\x01\n\x17\x43reateDvrSessionRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$livestream.googleapis.com/DvrSession\x12\x1b\n\x0e\x64vr_session_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x46\n\x0b\x64vr_session\x18\x03 \x01(\x0b\x32,.google.cloud.video.livestream.v1.DvrSessionB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"v\n\x17\x44\x65leteDvrSessionRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$livestream.googleapis.com/DvrSession\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb8\x01\n\x17UpdateDvrSessionRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x46\n\x0b\x64vr_session\x18\x02 \x01(\x0b\x32,.google.cloud.video.livestream.v1.DvrSessionB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xe3\x01\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x06 \x01(\tB\x03\xe0\x41\x03\"F\n\x0eGetPoolRequest\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x02\xfa\x41 \n\x1elivestream.googleapis.com/Pool\"\x93\x01\n\x11UpdatePoolRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x39\n\x04pool\x18\x02 \x01(\x0b\x32&.google.cloud.video.livestream.v1.PoolB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"L\n\x13PreviewInputRequest\x12\x35\n\x04name\x18\x01 \x01(\tB\'\xe0\x41\x02\xfa\x41!\n\x1flivestream.googleapis.com/Input\"9\n\x14PreviewInputResponse\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x14\n\x0c\x62\x65\x61rer_token\x18\x02 \x01(\t2\xb8\x37\n\x11LivestreamService\x12\xe0\x01\n\rCreateChannel\x12\x36.google.cloud.video.livestream.v1.CreateChannelRequest\x1a\x1d.google.longrunning.Operation\"x\xca\x41\x1c\n\x07\x43hannel\x12\x11OperationMetadata\xda\x41\x19parent,channel,channel_id\x82\xd3\xe4\x93\x02\x37\",/v1/{parent=projects/*/locations/*}/channels:\x07\x63hannel\x12\xbc\x01\n\x0cListChannels\x12\x35.google.cloud.video.livestream.v1.ListChannelsRequest\x1a\x36.google.cloud.video.livestream.v1.ListChannelsResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/channels\x12\xa9\x01\n\nGetChannel\x12\x33.google.cloud.video.livestream.v1.GetChannelRequest\x1a).google.cloud.video.livestream.v1.Channel\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=projects/*/locations/*/channels/*}\x12\xd0\x01\n\rDeleteChannel\x12\x36.google.cloud.video.livestream.v1.DeleteChannelRequest\x1a\x1d.google.longrunning.Operation\"h\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=projects/*/locations/*/channels/*}\x12\xe2\x01\n\rUpdateChannel\x12\x36.google.cloud.video.livestream.v1.UpdateChannelRequest\x1a\x1d.google.longrunning.Operation\"z\xca\x41\x1c\n\x07\x43hannel\x12\x11OperationMetadata\xda\x41\x13\x63hannel,update_mask\x82\xd3\xe4\x93\x02?24/v1/{channel.name=projects/*/locations/*/channels/*}:\x07\x63hannel\x12\xda\x01\n\x0cStartChannel\x12\x35.google.cloud.video.livestream.v1.StartChannelRequest\x1a\x1d.google.longrunning.Operation\"t\xca\x41-\n\x18\x43hannelOperationResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\"2/v1/{name=projects/*/locations/*/channels/*}:start:\x01*\x12\xd7\x01\n\x0bStopChannel\x12\x34.google.cloud.video.livestream.v1.StopChannelRequest\x1a\x1d.google.longrunning.Operation\"s\xca\x41-\n\x18\x43hannelOperationResponse\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\"1/v1/{name=projects/*/locations/*/channels/*}:stop:\x01*\x12\x83\x02\n\x11StartDistribution\x12:.google.cloud.video.livestream.v1.StartDistributionRequest\x1a\x1d.google.longrunning.Operation\"\x92\x01\xca\x41-\n\x18\x43hannelOperationResponse\x12\x11OperationMetadata\xda\x41\x16name,distribution_keys\x82\xd3\xe4\x93\x02\x43\">/v1/{name=projects/*/locations/*/channels/*}:startdistribution:\x01*\x12\x80\x02\n\x10StopDistribution\x12\x39.google.cloud.video.livestream.v1.StopDistributionRequest\x1a\x1d.google.longrunning.Operation\"\x91\x01\xca\x41-\n\x18\x43hannelOperationResponse\x12\x11OperationMetadata\xda\x41\x16name,distribution_keys\x82\xd3\xe4\x93\x02\x42\"=/v1/{name=projects/*/locations/*/channels/*}:stopdistribution:\x01*\x12\xd2\x01\n\x0b\x43reateInput\x12\x34.google.cloud.video.livestream.v1.CreateInputRequest\x1a\x1d.google.longrunning.Operation\"n\xca\x41\x1a\n\x05Input\x12\x11OperationMetadata\xda\x41\x15parent,input,input_id\x82\xd3\xe4\x93\x02\x33\"*/v1/{parent=projects/*/locations/*}/inputs:\x05input\x12\xb4\x01\n\nListInputs\x12\x33.google.cloud.video.livestream.v1.ListInputsRequest\x1a\x34.google.cloud.video.livestream.v1.ListInputsResponse\";\xda\x41\x06parent\x82\xd3\xe4\x93\x02,\x12*/v1/{parent=projects/*/locations/*}/inputs\x12\xa1\x01\n\x08GetInput\x12\x31.google.cloud.video.livestream.v1.GetInputRequest\x1a\'.google.cloud.video.livestream.v1.Input\"9\xda\x41\x04name\x82\xd3\xe4\x93\x02,\x12*/v1/{name=projects/*/locations/*/inputs/*}\x12\xca\x01\n\x0b\x44\x65leteInput\x12\x34.google.cloud.video.livestream.v1.DeleteInputRequest\x1a\x1d.google.longrunning.Operation\"f\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02,**/v1/{name=projects/*/locations/*/inputs/*}\x12\xd4\x01\n\x0bUpdateInput\x12\x34.google.cloud.video.livestream.v1.UpdateInputRequest\x1a\x1d.google.longrunning.Operation\"p\xca\x41\x1a\n\x05Input\x12\x11OperationMetadata\xda\x41\x11input,update_mask\x82\xd3\xe4\x93\x02\x39\x32\x30/v1/{input.name=projects/*/locations/*/inputs/*}:\x05input\x12\xc3\x01\n\x0cPreviewInput\x12\x35.google.cloud.video.livestream.v1.PreviewInputRequest\x1a\x36.google.cloud.video.livestream.v1.PreviewInputResponse\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\"2/v1/{name=projects/*/locations/*/inputs/*}:preview:\x01*\x12\xca\x01\n\x0b\x43reateEvent\x12\x34.google.cloud.video.livestream.v1.CreateEventRequest\x1a\'.google.cloud.video.livestream.v1.Event\"\\\xda\x41\x15parent,event,event_id\x82\xd3\xe4\x93\x02>\"5/v1/{parent=projects/*/locations/*/channels/*}/events:\x05\x65vent\x12\xbf\x01\n\nListEvents\x12\x33.google.cloud.video.livestream.v1.ListEventsRequest\x1a\x34.google.cloud.video.livestream.v1.ListEventsResponse\"F\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{parent=projects/*/locations/*/channels/*}/events\x12\xac\x01\n\x08GetEvent\x12\x31.google.cloud.video.livestream.v1.GetEventRequest\x1a\'.google.cloud.video.livestream.v1.Event\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37\x12\x35/v1/{name=projects/*/locations/*/channels/*/events/*}\x12\xa1\x01\n\x0b\x44\x65leteEvent\x12\x34.google.cloud.video.livestream.v1.DeleteEventRequest\x1a\x16.google.protobuf.Empty\"D\xda\x41\x04name\x82\xd3\xe4\x93\x02\x37*5/v1/{name=projects/*/locations/*/channels/*/events/*}\x12\xbb\x01\n\tListClips\x12\x32.google.cloud.video.livestream.v1.ListClipsRequest\x1a\x33.google.cloud.video.livestream.v1.ListClipsResponse\"E\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{parent=projects/*/locations/*/channels/*}/clips\x12\xa8\x01\n\x07GetClip\x12\x30.google.cloud.video.livestream.v1.GetClipRequest\x1a&.google.cloud.video.livestream.v1.Clip\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{name=projects/*/locations/*/channels/*/clips/*}\x12\xd6\x01\n\nCreateClip\x12\x33.google.cloud.video.livestream.v1.CreateClipRequest\x1a\x1d.google.longrunning.Operation\"t\xca\x41\x19\n\x04\x43lip\x12\x11OperationMetadata\xda\x41\x13parent,clip,clip_id\x82\xd3\xe4\x93\x02<\"4/v1/{parent=projects/*/locations/*/channels/*}/clips:\x04\x63lip\x12\xd2\x01\n\nDeleteClip\x12\x33.google.cloud.video.livestream.v1.DeleteClipRequest\x1a\x1d.google.longrunning.Operation\"p\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36*4/v1/{name=projects/*/locations/*/channels/*/clips/*}\x12\x84\x02\n\x10\x43reateDvrSession\x12\x39.google.cloud.video.livestream.v1.CreateDvrSessionRequest\x1a\x1d.google.longrunning.Operation\"\x95\x01\xca\x41\x1f\n\nDvrSession\x12\x11OperationMetadata\xda\x41!parent,dvr_session,dvr_session_id\x82\xd3\xe4\x93\x02I\":/v1/{parent=projects/*/locations/*/channels/*}/dvrSessions:\x0b\x64vr_session\x12\xd3\x01\n\x0fListDvrSessions\x12\x38.google.cloud.video.livestream.v1.ListDvrSessionsRequest\x1a\x39.google.cloud.video.livestream.v1.ListDvrSessionsResponse\"K\xda\x41\x06parent\x82\xd3\xe4\x93\x02<\x12:/v1/{parent=projects/*/locations/*/channels/*}/dvrSessions\x12\xc0\x01\n\rGetDvrSession\x12\x36.google.cloud.video.livestream.v1.GetDvrSessionRequest\x1a,.google.cloud.video.livestream.v1.DvrSession\"I\xda\x41\x04name\x82\xd3\xe4\x93\x02<\x12:/v1/{name=projects/*/locations/*/channels/*/dvrSessions/*}\x12\xe4\x01\n\x10\x44\x65leteDvrSession\x12\x39.google.cloud.video.livestream.v1.DeleteDvrSessionRequest\x1a\x1d.google.longrunning.Operation\"v\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02<*:/v1/{name=projects/*/locations/*/channels/*/dvrSessions/*}\x12\x86\x02\n\x10UpdateDvrSession\x12\x39.google.cloud.video.livestream.v1.UpdateDvrSessionRequest\x1a\x1d.google.longrunning.Operation\"\x97\x01\xca\x41\x1f\n\nDvrSession\x12\x11OperationMetadata\xda\x41\x17\x64vr_session,update_mask\x82\xd3\xe4\x93\x02U2F/v1/{dvr_session.name=projects/*/locations/*/channels/*/dvrSessions/*}:\x0b\x64vr_session\x12\xd2\x01\n\x0b\x43reateAsset\x12\x34.google.cloud.video.livestream.v1.CreateAssetRequest\x1a\x1d.google.longrunning.Operation\"n\xca\x41\x1a\n\x05\x41sset\x12\x11OperationMetadata\xda\x41\x15parent,asset,asset_id\x82\xd3\xe4\x93\x02\x33\"*/v1/{parent=projects/*/locations/*}/assets:\x05\x61sset\x12\xca\x01\n\x0b\x44\x65leteAsset\x12\x34.google.cloud.video.livestream.v1.DeleteAssetRequest\x1a\x1d.google.longrunning.Operation\"f\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02,**/v1/{name=projects/*/locations/*/assets/*}\x12\xa1\x01\n\x08GetAsset\x12\x31.google.cloud.video.livestream.v1.GetAssetRequest\x1a\'.google.cloud.video.livestream.v1.Asset\"9\xda\x41\x04name\x82\xd3\xe4\x93\x02,\x12*/v1/{name=projects/*/locations/*/assets/*}\x12\xb4\x01\n\nListAssets\x12\x33.google.cloud.video.livestream.v1.ListAssetsRequest\x1a\x34.google.cloud.video.livestream.v1.ListAssetsResponse\";\xda\x41\x06parent\x82\xd3\xe4\x93\x02,\x12*/v1/{parent=projects/*/locations/*}/assets\x12\x9d\x01\n\x07GetPool\x12\x30.google.cloud.video.livestream.v1.GetPoolRequest\x1a&.google.cloud.video.livestream.v1.Pool\"8\xda\x41\x04name\x82\xd3\xe4\x93\x02+\x12)/v1/{name=projects/*/locations/*/pools/*}\x12\xcd\x01\n\nUpdatePool\x12\x33.google.cloud.video.livestream.v1.UpdatePoolRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41\x19\n\x04Pool\x12\x11OperationMetadata\xda\x41\x10pool,update_mask\x82\xd3\xe4\x93\x02\x36\x32./v1/{pool.name=projects/*/locations/*/pools/*}:\x04pool\x1aM\xca\x41\x19livestream.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xa1\x03\n$com.google.cloud.video.livestream.v1B\x0cServiceProtoP\x01ZDcloud.google.com/go/video/livestream/apiv1/livestreampb;livestreampb\xaa\x02 Google.Cloud.Video.LiveStream.V1\xca\x02 Google\\Cloud\\Video\\LiveStream\\V1\xea\x02$Google::Cloud::Video::LiveStream::V1\xea\x41\x64\n*secretmanager.googleapis.com/SecretVersion\x12\x36projects/{project}/secrets/{secret}/versions/{version}\xea\x41N\n\x1e\x63ompute.googleapis.com/Network\x12,projects/{project}/global/networks/{network}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -63,6 +63,8 @@ module V1 UpdateChannelRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.UpdateChannelRequest").msgclass StartChannelRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.StartChannelRequest").msgclass StopChannelRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.StopChannelRequest").msgclass + StartDistributionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.StartDistributionRequest").msgclass + StopDistributionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.StopDistributionRequest").msgclass CreateInputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.CreateInputRequest").msgclass ListInputsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.ListInputsRequest").msgclass ListInputsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.ListInputsResponse").msgclass @@ -89,6 +91,8 @@ module V1 OperationMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.OperationMetadata").msgclass GetPoolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.GetPoolRequest").msgclass UpdatePoolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.UpdatePoolRequest").msgclass + PreviewInputRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.PreviewInputRequest").msgclass + PreviewInputResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.video.livestream.v1.PreviewInputResponse").msgclass end end end diff --git a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_services_pb.rb b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_services_pb.rb index ce51cd4ed97d..fb09c167ceaf 100644 --- a/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_services_pb.rb +++ b/google-cloud-video-live_stream-v1/lib/google/cloud/video/livestream/v1/service_services_pb.rb @@ -55,6 +55,11 @@ class Service # Stops the specified channel. Part of the video pipeline will be released # when the StopChannel request is received by the server. rpc :StopChannel, ::Google::Cloud::Video::LiveStream::V1::StopChannelRequest, ::Google::Longrunning::Operation + # Starts distribution which delivers outputs to the destination indicated by + # the Distribution configuration. + rpc :StartDistribution, ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest, ::Google::Longrunning::Operation + # Stops the specified distribution. + rpc :StopDistribution, ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest, ::Google::Longrunning::Operation # Creates an input with the provided unique ID in the specified region. rpc :CreateInput, ::Google::Cloud::Video::LiveStream::V1::CreateInputRequest, ::Google::Longrunning::Operation # Returns a list of all inputs in the specified region. @@ -65,6 +70,8 @@ class Service rpc :DeleteInput, ::Google::Cloud::Video::LiveStream::V1::DeleteInputRequest, ::Google::Longrunning::Operation # Updates the specified input. rpc :UpdateInput, ::Google::Cloud::Video::LiveStream::V1::UpdateInputRequest, ::Google::Longrunning::Operation + # Preview the streaming content of the specified input. + rpc :PreviewInput, ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest, ::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse # Creates an event with the provided unique ID in the specified channel. rpc :CreateEvent, ::Google::Cloud::Video::LiveStream::V1::CreateEventRequest, ::Google::Cloud::Video::LiveStream::V1::Event # Returns a list of all events in the specified channel. diff --git a/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/outputs.rb b/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/outputs.rb index 8481cf18d1c8..bbb470478e52 100644 --- a/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/outputs.rb +++ b/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/outputs.rb @@ -153,6 +153,119 @@ module ManifestType end end + # Multiplexing settings for output streams used in + # {::Google::Cloud::Video::LiveStream::V1::Distribution Distribution}. + # @!attribute [rw] key + # @return [::String] + # Required. A unique key for this distribution stream. The key must be 1-63 + # characters in length. The key must begin and end with a letter (regardless + # of case) or a number, but can contain dashes or underscores in between. + # @!attribute [rw] container + # @return [::String] + # Required. The container format. + # + # Supported container formats: + # + # - `ts`, must contain exactly one audio stream and up to one video stream. + # - `flv`, must contain at most one audio stream and at most one video + # stream. + # @!attribute [rw] elementary_streams + # @return [::Array<::String>] + # Required. List of `ElementaryStream` + # {::Google::Cloud::Video::LiveStream::V1::ElementaryStream#key key}s multiplexed + # in this stream. Must contain at least one audio stream and up to one video + # stream. + class DistributionStream + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Distribution configuration. + # @!attribute [rw] key + # @return [::String] + # Required. A unique key for this distribution. The key must be 1-63 + # characters in length. The key must begin and end with a letter (regardless + # of case) or a number, but can contain dashes or underscores in between. + # @!attribute [rw] distribution_stream + # @return [::String] + # Required. `DistributionStream` + # {::Google::Cloud::Video::LiveStream::V1::DistributionStream#key key}s that should + # appear in this distribution output. + # + # - For SRT protocol, only `ts` distribution streams can be specified. + # - For RTMP protocol, only `flv` distribution streams can be specified. + # @!attribute [r] state + # @return [::Google::Cloud::Video::LiveStream::V1::Distribution::State] + # Output only. State of the distribution. + # @!attribute [r] error + # @return [::Google::Rpc::Status] + # Output only. Only present when the `state` is `ERROR`. The reason for the + # error state of the distribution. + # @!attribute [rw] srt_push + # @return [::Google::Cloud::Video::LiveStream::V1::SrtPushOutputEndpoint] + # Output endpoint using SRT_PUSH. + # + # Note: The following fields are mutually exclusive: `srt_push`, `rtmp_push`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] rtmp_push + # @return [::Google::Cloud::Video::LiveStream::V1::RtmpPushOutputEndpoint] + # Output endpoint using RTMP_PUSH. + # + # Note: The following fields are mutually exclusive: `rtmp_push`, `srt_push`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class Distribution + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # State of this distribution. + module State + # State is not specified. + STATE_UNSPECIFIED = 0 + + # Distribution has trouble to produce or deliver the output. + ERROR = 5 + + # Distribution is not ready to be started. + NOT_READY = 6 + + # Distribution is ready to be started. + READY = 7 + + # Distribution is already started and is waiting for input. + AWAITING_INPUT = 8 + + # Distribution is already started and is generating output. + DISTRIBUTING = 9 + end + end + + # Configurations for an output endpoint using SRT_PUSH as the streaming + # protocol. + # @!attribute [rw] uri + # @return [::String] + # Required. The full URI of the remote SRT server. + # @!attribute [rw] passphrase_secret_version + # @return [::String] + # The name of the Secret Version containing the SRT encryption passphrase, + # which is stored in Google Secret Manager. It should be in the format of + # `projects/{project}/secrets/{secret_id}/versions/{version_number}`. + class SrtPushOutputEndpoint + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Configurations for an output endpoint using RTMP_PUSH as the streaming + # protocol. + # @!attribute [rw] uri + # @return [::String] + # Required. The full URI of the remote RTMP server. For example: + # `rtmp://192.168.123.321/live/my-stream` or `rtmp://somedomain.com/someapp`. + # @!attribute [rw] stream_key + # @return [::String] + # Required. Stream key for RTMP protocol. + class RtmpPushOutputEndpoint + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Sprite sheet configuration. # @!attribute [rw] format # @return [::String] @@ -274,6 +387,13 @@ class Pad # @!attribute [rw] h264 # @return [::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings] # H264 codec settings. + # + # Note: The following fields are mutually exclusive: `h264`, `h265`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] h265 + # @return [::Google::Cloud::Video::LiveStream::V1::VideoStream::H265CodecSettings] + # H265 codec settings. + # + # Note: The following fields are mutually exclusive: `h265`, `h264`. If a field in that set is populated, all other fields in the set will automatically be cleared. class VideoStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -282,11 +402,11 @@ class VideoStream # @!attribute [rw] width_pixels # @return [::Integer] # Required. The width of the video in pixels. Must be an even integer. - # Valid range is [320, 1920]. + # Valid range is [320, 4096]. # @!attribute [rw] height_pixels # @return [::Integer] # Required. The height of the video in pixels. Must be an even integer. - # Valid range is [180, 1080]. + # Valid range is [180, 2160]. # @!attribute [rw] frame_rate # @return [::Float] # Required. The target video frame rate in frames per second (FPS). Must be @@ -302,6 +422,7 @@ class VideoStream # # - For SD resolution (< 720p), must be <= 3,000,000 (3 Mbps). # - For HD resolution (<= 1080p), must be <= 15,000,000 (15 Mbps). + # - For UHD resolution (<= 2160p), must be <= 25,000,000 (25 Mbps). # @!attribute [rw] allow_open_gop # @return [::Boolean] # Specifies whether an open Group of Pictures (GOP) structure should be @@ -388,6 +509,87 @@ class H264CodecSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # H265 codec settings. + # @!attribute [rw] width_pixels + # @return [::Integer] + # Optional. The width of the video in pixels. Must be an even integer. + # When not specified, the width is adjusted to match the specified height + # and input aspect ratio. If both are omitted, the input width is used. + # Valid range is [320, 4096]. + # @!attribute [rw] height_pixels + # @return [::Integer] + # Optional. The height of the video in pixels. Must be an even integer. + # When not specified, the height is adjusted to match the specified width + # and input aspect ratio. If both are omitted, the input height is used. + # Valid range is [180, 2160]. + # @!attribute [rw] frame_rate + # @return [::Float] + # Required. The target video frame rate in frames per second (FPS). Must be + # less than or equal to 120. Will default to the input frame rate if larger + # than the input frame rate. The API will generate an output FPS that is + # divisible by the input FPS, and smaller or equal to the target FPS. See + # [Calculating frame + # rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for + # more information. + # @!attribute [rw] bitrate_bps + # @return [::Integer] + # Required. The video bitrate in bits per second. Minimum value is 10,000. + # + # - For SD resolution (< 720p), must be <= 3,000,000 (3 Mbps). + # - For HD resolution (<= 1080p), must be <= 15,000,000 (15 Mbps). + # - For UHD resolution (<= 2160p), must be <= 25,000,000 (25 Mbps). + # @!attribute [rw] gop_frame_count + # @return [::Integer] + # Optional. Select the GOP size based on the specified frame count. + # If GOP frame count is set instead of GOP duration, GOP duration will be + # calculated by `gopFrameCount`/`frameRate`. The calculated GOP duration + # must satisfy the limitations on `gopDuration` as well. + # Valid range is [60, 600]. + # + # Note: The following fields are mutually exclusive: `gop_frame_count`, `gop_duration`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] gop_duration + # @return [::Google::Protobuf::Duration] + # Optional. Select the GOP size based on the specified duration. The + # default is `2s`. Note that `gopDuration` must be less than or equal to + # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration}, + # and + # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration} + # must be divisible by `gopDuration`. Valid range is [2s, 20s]. + # + # All video streams in the same channel must have the same GOP size. + # + # Note: The following fields are mutually exclusive: `gop_duration`, `gop_frame_count`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] vbv_size_bits + # @return [::Integer] + # Optional. Size of the Video Buffering Verifier (VBV) buffer in bits. Must + # be greater than zero. The default is equal to + # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H265CodecSettings#bitrate_bps bitrate_bps}. + # @!attribute [rw] vbv_fullness_bits + # @return [::Integer] + # Optional. Initial fullness of the Video Buffering Verifier (VBV) buffer + # in bits. Must be greater than zero. The default is equal to 90% of + # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H265CodecSettings#vbv_size_bits vbv_size_bits}. + # @!attribute [rw] b_pyramid + # @return [::Boolean] + # Optional. Allow B-pyramid for reference frame selection. This may not be + # supported on all decoders. The default is `false`. + # @!attribute [rw] b_frame_count + # @return [::Integer] + # Optional. The number of consecutive B-frames. Must be greater than or + # equal to zero. Must be less than + # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H265CodecSettings#gop_frame_count gop_frame_count} + # if set. The default is 0. + # @!attribute [rw] aq_strength + # @return [::Float] + # Optional. Specify the intensity of the adaptive quantizer (AQ). Must be + # between 0 and 1, where 0 disables the quantizer and 1 maximizes the + # quantizer. A higher value equals a lower bitrate but smoother image. The + # default is 0. + class H265CodecSettings + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end # Audio stream resource. @@ -475,9 +677,59 @@ class AudioMapping # # - `cea608` # - `cea708` + # - `webvtt` + # @!attribute [rw] language_code + # @return [::String] + # Optional. The BCP-47 language code, such as `en-US` or `sr-Latn`. For more + # information, see + # https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + # @!attribute [rw] display_name + # @return [::String] + # Optional. The name for this particular text stream that will be added to + # the HLS/DASH manifest. + # @!attribute [rw] output_cea_channel + # @return [::String] + # Optional. The channel of the closed caption in the output stream. + # This field should only be set when textstream is used for partner + # distribution. + # Must be one of `CC1`, `CC2`, `CC3`, and `CC4`, if the + # {::Google::Cloud::Video::LiveStream::V1::TextStream#codec codec} is `cea608`; + # Must be one between `SERVICE1` and `SERVICE63`, if the + # {::Google::Cloud::Video::LiveStream::V1::TextStream#codec codec} is `cea708`. + # @!attribute [rw] mapping + # @return [::Array<::Google::Cloud::Video::LiveStream::V1::TextStream::TextMapping>] + # Optional. The mapping for the input streams and text tracks. class TextStream include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # The mapping for the input streams and text tracks. + # @!attribute [rw] input_key + # @return [::String] + # Optional. The `Channel` + # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key} + # that identifies the input that this text mapping applies to. + # @!attribute [rw] input_track + # @return [::Integer] + # Optional. The zero-based index of the track in the input stream. + # @!attribute [rw] input_cea_channel + # @return [::String] + # Optional. The channel of the closed caption in the input stream. + # If this field is set, the output + # {::Google::Cloud::Video::LiveStream::V1::TextStream#codec codec} must be + # `webvtt`. Must be one of `CC1`, `CC2`, `CC3`, and `CC4`, if the codec of + # the input closed caption is `cea608`; Must be one between `SERVICE1` and + # `SERVICE64`, if the codec of the input closed caption is `cea708`. + # @!attribute [rw] from_language_code + # @return [::String] + # Optional. The BCP-47 source language code, such as `en-US` or `sr-Latn`. + # If differ from the textStream's language code, enable translation. For + # more information on BCP-47 language codes, see + # https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + class TextMapping + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end # Segment settings for `fmp4` and `ts`. diff --git a/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/resources.rb b/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/resources.rb index ee076d6e0ded..6cf52dd3d9d3 100644 --- a/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/resources.rb +++ b/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/resources.rb @@ -113,8 +113,17 @@ module Tier # Resolution <= 1920x1080. Bitrate <= 25 Mbps. FPS <= 60. HD = 2 - # Resolution <= 4096x2160. Not supported yet. + # Resolution <= 4096x2160. Bitrate <= 50 Mbps. FPS <= 60. UHD = 3 + + # Resolution <= 1280x720. Bitrate <= 6 Mbps. FPS <= 60. H265 codec. + SD_H265 = 4 + + # Resolution <= 1920x1080. Bitrate <= 25 Mbps. FPS <= 60. H265 codec. + HD_H265 = 5 + + # Resolution <= 4096x2160. Bitrate <= 50 Mbps. FPS <= 60. H265 codec. + UHD_H265 = 6 end end @@ -161,6 +170,12 @@ module Tier # @!attribute [rw] manifests # @return [::Array<::Google::Cloud::Video::LiveStream::V1::Manifest>] # List of output manifests. + # @!attribute [rw] distribution_streams + # @return [::Array<::Google::Cloud::Video::LiveStream::V1::DistributionStream>] + # Optional. List of multiplexing settings of streams for distributions. + # @!attribute [rw] distributions + # @return [::Array<::Google::Cloud::Video::LiveStream::V1::Distribution>] + # Optional. List of distributions. # @!attribute [rw] sprite_sheets # @return [::Array<::Google::Cloud::Video::LiveStream::V1::SpriteSheet>] # List of output sprite sheets. @@ -182,9 +197,9 @@ module Tier # Configuration of timecode for this channel. # @!attribute [rw] encryptions # @return [::Array<::Google::Cloud::Video::LiveStream::V1::Encryption>] - # Encryption configurations for this channel. Each configuration has an ID - # which is referred to by each MuxStream to indicate which configuration is - # used for that output. + # Optional. Encryption configurations for this channel. Each configuration + # has an ID which is referred to by each MuxStream to indicate which + # configuration is used for that output. # @!attribute [rw] input_config # @return [::Google::Cloud::Video::LiveStream::V1::InputConfig] # The configuration for input sources defined in @@ -196,6 +211,9 @@ module Tier # @return [::Array<::Google::Cloud::Video::LiveStream::V1::StaticOverlay>] # Optional. List of static overlay images. Those images display over the # output content for the whole duration of the live stream. + # @!attribute [rw] auto_transcription_config + # @return [::Google::Cloud::Video::LiveStream::V1::AutoTranscriptionConfig] + # Optional. Advanced configurations for auto-generated text streams. class Channel include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -501,6 +519,53 @@ class AutomaticFailover end end + # Advanced configurations for auto-generated text streams. + # @!attribute [rw] display_timing + # @return [::Google::Cloud::Video::LiveStream::V1::AutoTranscriptionConfig::DisplayTiming] + # Optional. Whether auto-generated text streams are displayed synchronously + # or asynchronously with the original audio. + # @!attribute [rw] quality_preset + # @return [::Google::Cloud::Video::LiveStream::V1::AutoTranscriptionConfig::QualityPreset] + # Optional. Tunes the latency and quality of auto-generated captions. + class AutoTranscriptionConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Whether auto-generated text streams are displayed synchronously or + # asynchronously with the original audio. + module DisplayTiming + # Display timing is not specified. Caption display will be asynchronous by + # default. + DISPLAY_TIMING_UNSPECIFIED = 0 + + # Caption will be displayed asynchronous with audio. + ASYNC = 1 + + # Caption will be displayed synchronous with audio. This option increases + # overall media output latency, and reduces viewing latency between audio + # and auto-generated captions. + SYNC = 2 + end + + # Presets to tune the latency and quality of auto-generated captions. + module QualityPreset + # Quality Preset is not specified. By default, BALANCED_QUALITY will be + # used. + QUALITY_PRESET_UNSPECIFIED = 0 + + # Reduce the latency of auto-generated captions. This may reduce the + # quality of the captions. + LOW_LATENCY = 1 + + # Default behavior when QualityPreset is not specified. + BALANCED_QUALITY = 2 + + # Increases the quality of the auto-generated captions at the cost of + # higher latency. + IMPROVED_QUALITY = 3 + end + end + # Event is a sub-resource of a channel, which can be scheduled by the user to # execute operations on a channel resource without having to stop the channel. # @!attribute [rw] name @@ -520,32 +585,37 @@ class AutomaticFailover # @return [::Google::Cloud::Video::LiveStream::V1::Event::InputSwitchTask] # Switches to another input stream. # - # Note: The following fields are mutually exclusive: `input_switch`, `ad_break`, `return_to_program`, `slate`, `mute`, `unmute`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `input_switch`, `ad_break`, `return_to_program`, `slate`, `mute`, `unmute`, `update_encryptions`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] ad_break # @return [::Google::Cloud::Video::LiveStream::V1::Event::AdBreakTask] # Inserts a new ad opportunity. # - # Note: The following fields are mutually exclusive: `ad_break`, `input_switch`, `return_to_program`, `slate`, `mute`, `unmute`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `ad_break`, `input_switch`, `return_to_program`, `slate`, `mute`, `unmute`, `update_encryptions`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] return_to_program # @return [::Google::Cloud::Video::LiveStream::V1::Event::ReturnToProgramTask] # Stops any running ad break. # - # Note: The following fields are mutually exclusive: `return_to_program`, `input_switch`, `ad_break`, `slate`, `mute`, `unmute`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `return_to_program`, `input_switch`, `ad_break`, `slate`, `mute`, `unmute`, `update_encryptions`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] slate # @return [::Google::Cloud::Video::LiveStream::V1::Event::SlateTask] # Inserts a slate. # - # Note: The following fields are mutually exclusive: `slate`, `input_switch`, `ad_break`, `return_to_program`, `mute`, `unmute`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `slate`, `input_switch`, `ad_break`, `return_to_program`, `mute`, `unmute`, `update_encryptions`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mute # @return [::Google::Cloud::Video::LiveStream::V1::Event::MuteTask] # Mutes the stream. # - # Note: The following fields are mutually exclusive: `mute`, `input_switch`, `ad_break`, `return_to_program`, `slate`, `unmute`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `mute`, `input_switch`, `ad_break`, `return_to_program`, `slate`, `unmute`, `update_encryptions`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] unmute # @return [::Google::Cloud::Video::LiveStream::V1::Event::UnmuteTask] # Unmutes the stream. # - # Note: The following fields are mutually exclusive: `unmute`, `input_switch`, `ad_break`, `return_to_program`, `slate`, `mute`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `unmute`, `input_switch`, `ad_break`, `return_to_program`, `slate`, `mute`, `update_encryptions`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] update_encryptions + # @return [::Google::Cloud::Video::LiveStream::V1::Event::UpdateEncryptionsTask] + # Updates encryption settings. + # + # Note: The following fields are mutually exclusive: `update_encryptions`, `input_switch`, `ad_break`, `return_to_program`, `slate`, `mute`, `unmute`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] execute_now # @return [::Boolean] # When this field is set to true, the event will be executed at the earliest @@ -632,6 +702,17 @@ class UnmuteTask extend ::Google::Protobuf::MessageExts::ClassMethods end + # Update encryption settings. + # @!attribute [rw] encryptions + # @return [::Array<::Google::Cloud::Video::LiveStream::V1::EncryptionUpdate>] + # Required. A list of + # {::Google::Cloud::Video::LiveStream::V1::EncryptionUpdate EncryptionUpdate}s + # that updates the existing encryption settings. + class UpdateEncryptionsTask + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # @!attribute [rw] key # @return [::String] # @!attribute [rw] value @@ -1107,16 +1188,16 @@ class Clearkey # that DRM system will be considered to be disabled. # @!attribute [rw] widevine # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Widevine] - # Widevine configuration. + # Optional. Widevine configuration. # @!attribute [rw] fairplay # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Fairplay] - # Fairplay configuration. + # Optional. Fairplay configuration. # @!attribute [rw] playready # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Playready] - # Playready configuration. + # Optional. Playready configuration. # @!attribute [rw] clearkey # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Clearkey] - # Clearkey configuration. + # Optional. Clearkey configuration. class DrmSystems include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1146,6 +1227,18 @@ class MpegCommonEncryption end end + # Encryption setting when updating encryption. + # @!attribute [rw] id + # @return [::String] + # Required. Identifier for the encryption option to be updated. + # @!attribute [rw] secret_manager_key_source + # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::SecretManagerSource] + # For keys stored in Google Secret Manager. + class EncryptionUpdate + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Pool resource defines the configuration of Live Stream pools for a specific # location. Currently we support only one pool resource per project per # location. After the creation of the first input, a default pool is created diff --git a/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/service.rb b/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/service.rb index 41c8cf0e4ea6..5fc529380abf 100644 --- a/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/service.rb +++ b/google-cloud-video-live_stream-v1/proto_docs/google/cloud/video/livestream/v1/service.rb @@ -33,8 +33,11 @@ module V1 # @!attribute [rw] asset_id # @return [::String] # Required. The ID of the asset resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] request_id # @return [::String] # A request ID to identify requests. Specify a unique request ID @@ -139,8 +142,11 @@ class GetAssetRequest # @!attribute [rw] channel_id # @return [::String] # Required. The ID of the channel resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] request_id # @return [::String] # A request ID to identify requests. Specify a unique request ID @@ -341,6 +347,66 @@ class StopChannelRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # Request message for "LivestreamService.StartDistribution". + # @!attribute [rw] name + # @return [::String] + # Required. The name of the channel resource, in the form of: + # `projects/{project}/locations/{location}/channels/{channelId}`. + # @!attribute [rw] distribution_keys + # @return [::Array<::String>] + # Optional. A list of keys to identify the distribution configuration in the + # channel resource. If left empty, all the distributions in the channel + # specification will be started. + # @!attribute [rw] request_id + # @return [::String] + # Optional. A 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)`. + class StartDistributionRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for "LivestreamService.StopDistribution". + # @!attribute [rw] name + # @return [::String] + # Required. The name of the channel resource, in the form of: + # `projects/{project}/locations/{location}/channels/{channelId}`. + # @!attribute [rw] distribution_keys + # @return [::Array<::String>] + # Optional. A list of key to identify the distribution configuration in the + # channel resource. If left empty, all the distributions in the channel + # specification will be stopped. + # @!attribute [rw] request_id + # @return [::String] + # Optional. A 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)`. + class StopDistributionRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Request message for "LivestreamService.CreateInput". # @!attribute [rw] parent # @return [::String] @@ -352,8 +418,11 @@ class StopChannelRequest # @!attribute [rw] input_id # @return [::String] # Required. The ID of the input resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] request_id # @return [::String] # A request ID to identify requests. Specify a unique request ID @@ -502,8 +571,11 @@ class UpdateInputRequest # @!attribute [rw] event_id # @return [::String] # Required. The ID of the event resource to be created. - # This value must be 1-63 characters, begin and end with `[a-z0-9]`, - # could contain dashes (-) in between. + # + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] request_id # @return [::String] # A request ID to identify requests. Specify a unique request ID @@ -662,10 +734,12 @@ class GetClipRequest # `projects/{project}/locations/{location}/channels/{channel}`. # @!attribute [rw] clip_id # @return [::String] - # Required. Id of the requesting object in the following form: + # Required. The ID of the clip resource to be created. # - # 1. 1 character minimum, 63 characters maximum - # 2. Only contains letters, digits, underscores, and hyphens + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] clip # @return [::Google::Cloud::Video::LiveStream::V1::Clip] # Required. The resource being created @@ -768,10 +842,12 @@ class GetDvrSessionRequest # `projects/{project}/locations/{location}/channels/{channelId}`. # @!attribute [rw] dvr_session_id # @return [::String] - # Required. Id of the requesting object in the following form: + # Required. The ID of the DVR session resource to be created. # - # 1. 1 character minimum, 63 characters maximum - # 2. Only contains letters, digits, underscores, and hyphens + # This value must be 1-63 characters, begin and end with a lower-case letter + # or a number, and consist of only lower-case letters, numbers, and hyphens. + # In other words, it must match the following regex: + # `^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$`. # @!attribute [rw] dvr_session # @return [::Google::Cloud::Video::LiveStream::V1::DvrSession] # Required. The resource being created @@ -925,6 +1001,30 @@ class UpdatePoolRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # Request message for "LivestreamService.PreviewInput" + # @!attribute [rw] name + # @return [::String] + # Required. The name of the input resource, in the form of: + # `projects/{project}/locations/{location}/inputs/{inputId}`. + class PreviewInputRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for "LivestreamService.PreviewInput" + # @!attribute [rw] uri + # @return [::String] + # URI to display the preview content. + # @!attribute [rw] bearer_token + # @return [::String] + # A bearer token used to authenticate connections that display the preview + # content. The token expires after one hour. For HTTP connections, this token + # should be included as a bearer token inside the Authorization header. + class PreviewInputResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end end end diff --git a/google-cloud-video-live_stream-v1/snippets/livestream_service/preview_input.rb b/google-cloud-video-live_stream-v1/snippets/livestream_service/preview_input.rb new file mode 100644 index 000000000000..c7f52f418dbd --- /dev/null +++ b/google-cloud-video-live_stream-v1/snippets/livestream_service/preview_input.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START livestream_v1_generated_LivestreamService_PreviewInput_sync] +require "google/cloud/video/live_stream/v1" + +## +# Snippet for the preview_input call in the LivestreamService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#preview_input. +# +def preview_input + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new + + # Call the preview_input method. + result = client.preview_input request + + # The returned object is of type Google::Cloud::Video::LiveStream::V1::PreviewInputResponse. + p result +end +# [END livestream_v1_generated_LivestreamService_PreviewInput_sync] diff --git a/google-cloud-video-live_stream-v1/snippets/livestream_service/start_distribution.rb b/google-cloud-video-live_stream-v1/snippets/livestream_service/start_distribution.rb new file mode 100644 index 000000000000..1990e0e82596 --- /dev/null +++ b/google-cloud-video-live_stream-v1/snippets/livestream_service/start_distribution.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START livestream_v1_generated_LivestreamService_StartDistribution_sync] +require "google/cloud/video/live_stream/v1" + +## +# Snippet for the start_distribution call in the LivestreamService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#start_distribution. +# +def start_distribution + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new + + # Call the start_distribution method. + result = client.start_distribution request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END livestream_v1_generated_LivestreamService_StartDistribution_sync] diff --git a/google-cloud-video-live_stream-v1/snippets/livestream_service/stop_distribution.rb b/google-cloud-video-live_stream-v1/snippets/livestream_service/stop_distribution.rb new file mode 100644 index 000000000000..c11d3f11cc01 --- /dev/null +++ b/google-cloud-video-live_stream-v1/snippets/livestream_service/stop_distribution.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START livestream_v1_generated_LivestreamService_StopDistribution_sync] +require "google/cloud/video/live_stream/v1" + +## +# Snippet for the stop_distribution call in the LivestreamService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#stop_distribution. +# +def stop_distribution + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new + + # Call the stop_distribution method. + result = client.stop_distribution request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END livestream_v1_generated_LivestreamService_StopDistribution_sync] diff --git a/google-cloud-video-live_stream-v1/snippets/snippet_metadata_google.cloud.video.livestream.v1.json b/google-cloud-video-live_stream-v1/snippets/snippet_metadata_google.cloud.video.livestream.v1.json index aed5da85341c..e744d6b171d6 100644 --- a/google-cloud-video-live_stream-v1/snippets/snippet_metadata_google.cloud.video.livestream.v1.json +++ b/google-cloud-video-live_stream-v1/snippets/snippet_metadata_google.cloud.video.livestream.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video-live_stream-v1", - "version": "2.2.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { @@ -291,6 +291,86 @@ } ] }, + { + "region_tag": "livestream_v1_generated_LivestreamService_StartDistribution_sync", + "title": "Snippet for the start_distribution call in the LivestreamService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#start_distribution.", + "file": "livestream_service/start_distribution.rb", + "language": "RUBY", + "client_method": { + "short_name": "start_distribution", + "full_name": "::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#start_distribution", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "LivestreamService::Client", + "full_name": "::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client" + }, + "method": { + "short_name": "StartDistribution", + "full_name": "google.cloud.video.livestream.v1.LivestreamService.StartDistribution", + "service": { + "short_name": "LivestreamService", + "full_name": "google.cloud.video.livestream.v1.LivestreamService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "livestream_v1_generated_LivestreamService_StopDistribution_sync", + "title": "Snippet for the stop_distribution call in the LivestreamService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#stop_distribution.", + "file": "livestream_service/stop_distribution.rb", + "language": "RUBY", + "client_method": { + "short_name": "stop_distribution", + "full_name": "::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#stop_distribution", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "LivestreamService::Client", + "full_name": "::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client" + }, + "method": { + "short_name": "StopDistribution", + "full_name": "google.cloud.video.livestream.v1.LivestreamService.StopDistribution", + "service": { + "short_name": "LivestreamService", + "full_name": "google.cloud.video.livestream.v1.LivestreamService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, { "region_tag": "livestream_v1_generated_LivestreamService_CreateInput_sync", "title": "Snippet for the create_input call in the LivestreamService service", @@ -491,6 +571,46 @@ } ] }, + { + "region_tag": "livestream_v1_generated_LivestreamService_PreviewInput_sync", + "title": "Snippet for the preview_input call in the LivestreamService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#preview_input.", + "file": "livestream_service/preview_input.rb", + "language": "RUBY", + "client_method": { + "short_name": "preview_input", + "full_name": "::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client#preview_input", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse", + "client": { + "short_name": "LivestreamService::Client", + "full_name": "::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client" + }, + "method": { + "short_name": "PreviewInput", + "full_name": "google.cloud.video.livestream.v1.LivestreamService.PreviewInput", + "service": { + "short_name": "LivestreamService", + "full_name": "google.cloud.video.livestream.v1.LivestreamService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, { "region_tag": "livestream_v1_generated_LivestreamService_CreateEvent_sync", "title": "Snippet for the create_event call in the LivestreamService service", diff --git a/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_rest_test.rb b/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_rest_test.rb index 877a896ed342..caf51f5ad817 100644 --- a/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_rest_test.rb +++ b/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_rest_test.rb @@ -469,6 +469,118 @@ def test_stop_channel end end + def test_start_distribution + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + distribution_keys = ["hello world"] + request_id = "hello world" + + start_distribution_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::ServiceStub.stub :transcode_start_distribution_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, start_distribution_client_stub do + # Create client + client = ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.start_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.start_distribution name: name, distribution_keys: distribution_keys, request_id: request_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.start_distribution ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.start_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.start_distribution(::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, start_distribution_client_stub.call_count + end + end + end + + def test_stop_distribution + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + distribution_keys = ["hello world"] + request_id = "hello world" + + stop_distribution_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::ServiceStub.stub :transcode_stop_distribution_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, stop_distribution_client_stub do + # Create client + client = ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.stop_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.stop_distribution name: name, distribution_keys: distribution_keys, request_id: request_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.stop_distribution ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.stop_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.stop_distribution(::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, stop_distribution_client_stub.call_count + end + end + end + def test_create_input # Create test objects. client_result = ::Google::Longrunning::Operation.new @@ -749,6 +861,60 @@ def test_update_input end end + def test_preview_input + # Create test objects. + client_result = ::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + preview_input_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::ServiceStub.stub :transcode_preview_input_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, preview_input_client_stub do + # Create client + client = ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.preview_input({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.preview_input name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.preview_input ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.preview_input({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.preview_input(::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, preview_input_client_stub.call_count + end + end + end + def test_create_event # Create test objects. client_result = ::Google::Cloud::Video::LiveStream::V1::Event.new diff --git a/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_test.rb b/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_test.rb index e9fea13677c6..193ba9471f1f 100644 --- a/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_test.rb +++ b/google-cloud-video-live_stream-v1/test/google/cloud/video/live_stream/v1/livestream_service_test.rb @@ -525,6 +525,140 @@ def test_stop_channel end end + def test_start_distribution + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + distribution_keys = ["hello world"] + request_id = "hello world" + + start_distribution_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :start_distribution, name + assert_kind_of ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest, request + assert_equal "hello world", request["name"] + assert_equal ["hello world"], request["distribution_keys"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, start_distribution_client_stub do + # Create client + client = ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.start_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.start_distribution name: name, distribution_keys: distribution_keys, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.start_distribution ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.start_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.start_distribution(::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, start_distribution_client_stub.call_rpc_count + end + end + + def test_stop_distribution + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + distribution_keys = ["hello world"] + request_id = "hello world" + + stop_distribution_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :stop_distribution, name + assert_kind_of ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest, request + assert_equal "hello world", request["name"] + assert_equal ["hello world"], request["distribution_keys"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, stop_distribution_client_stub do + # Create client + client = ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.stop_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.stop_distribution name: name, distribution_keys: distribution_keys, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.stop_distribution ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.stop_distribution({ name: name, distribution_keys: distribution_keys, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.stop_distribution(::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest.new(name: name, distribution_keys: distribution_keys, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, stop_distribution_client_stub.call_rpc_count + end + end + def test_create_input # Create GRPC objects. grpc_response = ::Google::Longrunning::Operation.new @@ -855,6 +989,64 @@ def test_update_input end end + def test_preview_input + # Create GRPC objects. + grpc_response = ::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + preview_input_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :preview_input, name + assert_kind_of ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, preview_input_client_stub do + # Create client + client = ::Google::Cloud::Video::LiveStream::V1::LivestreamService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.preview_input({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.preview_input name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.preview_input ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.preview_input({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.preview_input(::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, preview_input_client_stub.call_rpc_count + end + end + def test_create_event # Create GRPC objects. grpc_response = ::Google::Cloud::Video::LiveStream::V1::Event.new diff --git a/google-cloud-video-live_stream/CHANGELOG.md b/google-cloud-video-live_stream/CHANGELOG.md index f63d54920678..9bff02f3a681 100644 --- a/google-cloud-video-live_stream/CHANGELOG.md +++ b/google-cloud-video-live_stream/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-video-live_stream/README.md b/google-cloud-video-live_stream/README.md index a1f52c37972b..0f8e3066a2fd 100644 --- a/google-cloud-video-live_stream/README.md +++ b/google-cloud-video-live_stream/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/livestream.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/video/live_stream" + +client = Google::Cloud::Video::LiveStream.livestream_service +request = ::Google::Cloud::Video::LiveStream::V1::CreateChannelRequest.new # (request fields as keyword arguments...) +response = client.create_channel request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-video-live_stream/lib/google/cloud/video/live_stream/version.rb b/google-cloud-video-live_stream/lib/google/cloud/video/live_stream/version.rb index ce429f0d83b9..0d67fb1ce8fc 100644 --- a/google-cloud-video-live_stream/lib/google/cloud/video/live_stream/version.rb +++ b/google-cloud-video-live_stream/lib/google/cloud/video/live_stream/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Video module LiveStream - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-video-stitcher-v1/CHANGELOG.md b/google-cloud-video-stitcher-v1/CHANGELOG.md index 28c9449c071d..6aba6c4044b3 100644 --- a/google-cloud-video-stitcher-v1/CHANGELOG.md +++ b/google-cloud-video-stitcher-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-video-stitcher-v1/google-cloud-video-stitcher-v1.gemspec b/google-cloud-video-stitcher-v1/google-cloud-video-stitcher-v1.gemspec index ca9514bea0fd..9174beb0f185 100644 --- a/google-cloud-video-stitcher-v1/google-cloud-video-stitcher-v1.gemspec +++ b/google-cloud-video-stitcher-v1/google-cloud-video-stitcher-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video-stitcher-v1/lib/google/cloud/video/stitcher/v1/version.rb b/google-cloud-video-stitcher-v1/lib/google/cloud/video/stitcher/v1/version.rb index 026ac95351ef..a0a7076f2609 100644 --- a/google-cloud-video-stitcher-v1/lib/google/cloud/video/stitcher/v1/version.rb +++ b/google-cloud-video-stitcher-v1/lib/google/cloud/video/stitcher/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Video module Stitcher module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-video-stitcher-v1/snippets/snippet_metadata_google.cloud.video.stitcher.v1.json b/google-cloud-video-stitcher-v1/snippets/snippet_metadata_google.cloud.video.stitcher.v1.json index 2d109ad31c4a..87d6edf77fbf 100644 --- a/google-cloud-video-stitcher-v1/snippets/snippet_metadata_google.cloud.video.stitcher.v1.json +++ b/google-cloud-video-stitcher-v1/snippets/snippet_metadata_google.cloud.video.stitcher.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video-stitcher-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video-stitcher/CHANGELOG.md b/google-cloud-video-stitcher/CHANGELOG.md index c6ba04b98f27..c42ac5ada6dd 100644 --- a/google-cloud-video-stitcher/CHANGELOG.md +++ b/google-cloud-video-stitcher/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-video-stitcher/README.md b/google-cloud-video-stitcher/README.md index 15b130fac610..7110d2ad7727 100644 --- a/google-cloud-video-stitcher/README.md +++ b/google-cloud-video-stitcher/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/videostitcher.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/video/stitcher" + +client = Google::Cloud::Video::Stitcher.video_stitcher_service +request = ::Google::Cloud::Video::Stitcher::V1::CreateCdnKeyRequest.new # (request fields as keyword arguments...) +response = client.create_cdn_key request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-video-stitcher/lib/google/cloud/video/stitcher/version.rb b/google-cloud-video-stitcher/lib/google/cloud/video/stitcher/version.rb index 3fb473779f7f..71afc9167b2a 100644 --- a/google-cloud-video-stitcher/lib/google/cloud/video/stitcher/version.rb +++ b/google-cloud-video-stitcher/lib/google/cloud/video/stitcher/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Video module Stitcher - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-cloud-video-transcoder-v1/CHANGELOG.md b/google-cloud-video-transcoder-v1/CHANGELOG.md index 490f39c3e651..fd6ae6d47641 100644 --- a/google-cloud-video-transcoder-v1/CHANGELOG.md +++ b/google-cloud-video-transcoder-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 2.3.0 (2025-08-27) #### Features diff --git a/google-cloud-video-transcoder-v1/google-cloud-video-transcoder-v1.gemspec b/google-cloud-video-transcoder-v1/google-cloud-video-transcoder-v1.gemspec index c7eb96ba6aed..7972899a59f9 100644 --- a/google-cloud-video-transcoder-v1/google-cloud-video-transcoder-v1.gemspec +++ b/google-cloud-video-transcoder-v1/google-cloud-video-transcoder-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video-transcoder-v1/lib/google/cloud/video/transcoder/v1/version.rb b/google-cloud-video-transcoder-v1/lib/google/cloud/video/transcoder/v1/version.rb index eb36db4877a3..69b42387de41 100644 --- a/google-cloud-video-transcoder-v1/lib/google/cloud/video/transcoder/v1/version.rb +++ b/google-cloud-video-transcoder-v1/lib/google/cloud/video/transcoder/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Video module Transcoder module V1 - VERSION = "2.3.0" + VERSION = "2.4.0" end end end diff --git a/google-cloud-video-transcoder-v1/snippets/snippet_metadata_google.cloud.video.transcoder.v1.json b/google-cloud-video-transcoder-v1/snippets/snippet_metadata_google.cloud.video.transcoder.v1.json index 442735792fbd..649830f7e513 100644 --- a/google-cloud-video-transcoder-v1/snippets/snippet_metadata_google.cloud.video.transcoder.v1.json +++ b/google-cloud-video-transcoder-v1/snippets/snippet_metadata_google.cloud.video.transcoder.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video-transcoder-v1", - "version": "2.3.0", + "version": "2.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video-transcoder/CHANGELOG.md b/google-cloud-video-transcoder/CHANGELOG.md index 38e9bcdbe9f1..69b09118858c 100644 --- a/google-cloud-video-transcoder/CHANGELOG.md +++ b/google-cloud-video-transcoder/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-video-transcoder/README.md b/google-cloud-video-transcoder/README.md index 4561f1ffbd9c..db407a3bbefd 100644 --- a/google-cloud-video-transcoder/README.md +++ b/google-cloud-video-transcoder/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/transcoder.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/video/transcoder" + +client = Google::Cloud::Video::Transcoder.transcoder_service +request = ::Google::Cloud::Video::Transcoder::V1::CreateJobRequest.new # (request fields as keyword arguments...) +response = client.create_job request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-video-transcoder/lib/google/cloud/video/transcoder/version.rb b/google-cloud-video-transcoder/lib/google/cloud/video/transcoder/version.rb index 1cd3b47aebad..a4e1d10f8283 100644 --- a/google-cloud-video-transcoder/lib/google/cloud/video/transcoder/version.rb +++ b/google-cloud-video-transcoder/lib/google/cloud/video/transcoder/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Video module Transcoder - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-video_intelligence-v1/CHANGELOG.md b/google-cloud-video_intelligence-v1/CHANGELOG.md index 7d721ce87274..0f29c5c3a237 100644 --- a/google-cloud-video_intelligence-v1/CHANGELOG.md +++ b/google-cloud-video_intelligence-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-video_intelligence-v1/google-cloud-video_intelligence-v1.gemspec b/google-cloud-video_intelligence-v1/google-cloud-video_intelligence-v1.gemspec index 080e24d5eb8e..147a6db13a74 100644 --- a/google-cloud-video_intelligence-v1/google-cloud-video_intelligence-v1.gemspec +++ b/google-cloud-video_intelligence-v1/google-cloud-video_intelligence-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video_intelligence-v1/lib/google/cloud/video_intelligence/v1/version.rb b/google-cloud-video_intelligence-v1/lib/google/cloud/video_intelligence/v1/version.rb index 3f00a65a780e..50437e30c065 100644 --- a/google-cloud-video_intelligence-v1/lib/google/cloud/video_intelligence/v1/version.rb +++ b/google-cloud-video_intelligence-v1/lib/google/cloud/video_intelligence/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VideoIntelligence module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-video_intelligence-v1/snippets/snippet_metadata_google.cloud.videointelligence.v1.json b/google-cloud-video_intelligence-v1/snippets/snippet_metadata_google.cloud.videointelligence.v1.json index 1f479de22a62..9a70a5a1087e 100644 --- a/google-cloud-video_intelligence-v1/snippets/snippet_metadata_google.cloud.videointelligence.v1.json +++ b/google-cloud-video_intelligence-v1/snippets/snippet_metadata_google.cloud.videointelligence.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video_intelligence-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video_intelligence-v1beta2/CHANGELOG.md b/google-cloud-video_intelligence-v1beta2/CHANGELOG.md index b2a11211ffda..fefc96dc4c7c 100644 --- a/google-cloud-video_intelligence-v1beta2/CHANGELOG.md +++ b/google-cloud-video_intelligence-v1beta2/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-video_intelligence-v1beta2/google-cloud-video_intelligence-v1beta2.gemspec b/google-cloud-video_intelligence-v1beta2/google-cloud-video_intelligence-v1beta2.gemspec index 57444f21b96a..bed112f02860 100644 --- a/google-cloud-video_intelligence-v1beta2/google-cloud-video_intelligence-v1beta2.gemspec +++ b/google-cloud-video_intelligence-v1beta2/google-cloud-video_intelligence-v1beta2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video_intelligence-v1beta2/lib/google/cloud/video_intelligence/v1beta2/version.rb b/google-cloud-video_intelligence-v1beta2/lib/google/cloud/video_intelligence/v1beta2/version.rb index 7aea76eec793..0a148ce31e10 100644 --- a/google-cloud-video_intelligence-v1beta2/lib/google/cloud/video_intelligence/v1beta2/version.rb +++ b/google-cloud-video_intelligence-v1beta2/lib/google/cloud/video_intelligence/v1beta2/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VideoIntelligence module V1beta2 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-video_intelligence-v1beta2/snippets/snippet_metadata_google.cloud.videointelligence.v1beta2.json b/google-cloud-video_intelligence-v1beta2/snippets/snippet_metadata_google.cloud.videointelligence.v1beta2.json index 79d370e8a1d0..ec844db782f8 100644 --- a/google-cloud-video_intelligence-v1beta2/snippets/snippet_metadata_google.cloud.videointelligence.v1beta2.json +++ b/google-cloud-video_intelligence-v1beta2/snippets/snippet_metadata_google.cloud.videointelligence.v1beta2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video_intelligence-v1beta2", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video_intelligence-v1p1beta1/CHANGELOG.md b/google-cloud-video_intelligence-v1p1beta1/CHANGELOG.md index 27980c77c7f7..ac107a5d7f2d 100644 --- a/google-cloud-video_intelligence-v1p1beta1/CHANGELOG.md +++ b/google-cloud-video_intelligence-v1p1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-video_intelligence-v1p1beta1/google-cloud-video_intelligence-v1p1beta1.gemspec b/google-cloud-video_intelligence-v1p1beta1/google-cloud-video_intelligence-v1p1beta1.gemspec index e15b49a824dc..a71b6073361f 100644 --- a/google-cloud-video_intelligence-v1p1beta1/google-cloud-video_intelligence-v1p1beta1.gemspec +++ b/google-cloud-video_intelligence-v1p1beta1/google-cloud-video_intelligence-v1p1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video_intelligence-v1p1beta1/lib/google/cloud/video_intelligence/v1p1beta1/version.rb b/google-cloud-video_intelligence-v1p1beta1/lib/google/cloud/video_intelligence/v1p1beta1/version.rb index 438430b5e07c..a9b6f321fffe 100644 --- a/google-cloud-video_intelligence-v1p1beta1/lib/google/cloud/video_intelligence/v1p1beta1/version.rb +++ b/google-cloud-video_intelligence-v1p1beta1/lib/google/cloud/video_intelligence/v1p1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VideoIntelligence module V1p1beta1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-video_intelligence-v1p1beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p1beta1.json b/google-cloud-video_intelligence-v1p1beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p1beta1.json index 336612e881b2..2ac7ffe84737 100644 --- a/google-cloud-video_intelligence-v1p1beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p1beta1.json +++ b/google-cloud-video_intelligence-v1p1beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video_intelligence-v1p1beta1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video_intelligence-v1p2beta1/CHANGELOG.md b/google-cloud-video_intelligence-v1p2beta1/CHANGELOG.md index 67cc7fd6e57a..243563cc688b 100644 --- a/google-cloud-video_intelligence-v1p2beta1/CHANGELOG.md +++ b/google-cloud-video_intelligence-v1p2beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.15.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.14.0 (2025-05-12) #### Features diff --git a/google-cloud-video_intelligence-v1p2beta1/google-cloud-video_intelligence-v1p2beta1.gemspec b/google-cloud-video_intelligence-v1p2beta1/google-cloud-video_intelligence-v1p2beta1.gemspec index 7ff29d96be21..2ebbf742b195 100644 --- a/google-cloud-video_intelligence-v1p2beta1/google-cloud-video_intelligence-v1p2beta1.gemspec +++ b/google-cloud-video_intelligence-v1p2beta1/google-cloud-video_intelligence-v1p2beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video_intelligence-v1p2beta1/lib/google/cloud/video_intelligence/v1p2beta1/version.rb b/google-cloud-video_intelligence-v1p2beta1/lib/google/cloud/video_intelligence/v1p2beta1/version.rb index e14b607ca6ec..0ab7efe8c21d 100644 --- a/google-cloud-video_intelligence-v1p2beta1/lib/google/cloud/video_intelligence/v1p2beta1/version.rb +++ b/google-cloud-video_intelligence-v1p2beta1/lib/google/cloud/video_intelligence/v1p2beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VideoIntelligence module V1p2beta1 - VERSION = "0.14.0" + VERSION = "0.15.0" end end end diff --git a/google-cloud-video_intelligence-v1p2beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p2beta1.json b/google-cloud-video_intelligence-v1p2beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p2beta1.json index 56610db2acb9..5a4ae7952f08 100644 --- a/google-cloud-video_intelligence-v1p2beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p2beta1.json +++ b/google-cloud-video_intelligence-v1p2beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p2beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video_intelligence-v1p2beta1", - "version": "0.14.0", + "version": "0.15.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video_intelligence-v1p3beta1/CHANGELOG.md b/google-cloud-video_intelligence-v1p3beta1/CHANGELOG.md index 8fd6705bb75b..e5154d4978bd 100644 --- a/google-cloud-video_intelligence-v1p3beta1/CHANGELOG.md +++ b/google-cloud-video_intelligence-v1p3beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.11.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.10.0 (2025-05-12) #### Features diff --git a/google-cloud-video_intelligence-v1p3beta1/google-cloud-video_intelligence-v1p3beta1.gemspec b/google-cloud-video_intelligence-v1p3beta1/google-cloud-video_intelligence-v1p3beta1.gemspec index 86fa3bce9d0d..418004eb4191 100644 --- a/google-cloud-video_intelligence-v1p3beta1/google-cloud-video_intelligence-v1p3beta1.gemspec +++ b/google-cloud-video_intelligence-v1p3beta1/google-cloud-video_intelligence-v1p3beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-video_intelligence-v1p3beta1/lib/google/cloud/video_intelligence/v1p3beta1/version.rb b/google-cloud-video_intelligence-v1p3beta1/lib/google/cloud/video_intelligence/v1p3beta1/version.rb index bdd8e946b0b7..6fe000d093a6 100644 --- a/google-cloud-video_intelligence-v1p3beta1/lib/google/cloud/video_intelligence/v1p3beta1/version.rb +++ b/google-cloud-video_intelligence-v1p3beta1/lib/google/cloud/video_intelligence/v1p3beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VideoIntelligence module V1p3beta1 - VERSION = "0.10.0" + VERSION = "0.11.0" end end end diff --git a/google-cloud-video_intelligence-v1p3beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p3beta1.json b/google-cloud-video_intelligence-v1p3beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p3beta1.json index 7e590c3a7ec7..cbe59caf2c51 100644 --- a/google-cloud-video_intelligence-v1p3beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p3beta1.json +++ b/google-cloud-video_intelligence-v1p3beta1/snippets/snippet_metadata_google.cloud.videointelligence.v1p3beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-video_intelligence-v1p3beta1", - "version": "0.10.0", + "version": "0.11.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-video_intelligence/CHANGELOG.md b/google-cloud-video_intelligence/CHANGELOG.md index c2c20c482f40..f180caba2465 100644 --- a/google-cloud-video_intelligence/CHANGELOG.md +++ b/google-cloud-video_intelligence/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 4.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 4.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-video_intelligence/README.md b/google-cloud-video_intelligence/README.md index 93afb2787a2b..56076f1143ae 100644 --- a/google-cloud-video_intelligence/README.md +++ b/google-cloud-video_intelligence/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/videointelligence.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/video_intelligence" + +client = Google::Cloud::VideoIntelligence.video_intelligence_service +request = ::Google::Cloud::VideoIntelligence::V1::AnnotateVideoRequest.new # (request fields as keyword arguments...) +response = client.annotate_video request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-video_intelligence/lib/google/cloud/video_intelligence/version.rb b/google-cloud-video_intelligence/lib/google/cloud/video_intelligence/version.rb index 57e81579efbd..4ec33409058e 100644 --- a/google-cloud-video_intelligence/lib/google/cloud/video_intelligence/version.rb +++ b/google-cloud-video_intelligence/lib/google/cloud/video_intelligence/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module VideoIntelligence - VERSION = "4.0.2" + VERSION = "4.0.3" end end end diff --git a/google-cloud-vision-v1/CHANGELOG.md b/google-cloud-vision-v1/CHANGELOG.md index 3b3ae416e535..217d3af740e4 100644 --- a/google-cloud-vision-v1/CHANGELOG.md +++ b/google-cloud-vision-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.1 (2025-07-15) #### Documentation diff --git a/google-cloud-vision-v1/google-cloud-vision-v1.gemspec b/google-cloud-vision-v1/google-cloud-vision-v1.gemspec index 89a5f4b266f0..c4eb039b6537 100644 --- a/google-cloud-vision-v1/google-cloud-vision-v1.gemspec +++ b/google-cloud-vision-v1/google-cloud-vision-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-vision-v1/lib/google/cloud/vision/v1/version.rb b/google-cloud-vision-v1/lib/google/cloud/vision/v1/version.rb index 78852f7f8113..bb3ea2d7eb98 100644 --- a/google-cloud-vision-v1/lib/google/cloud/vision/v1/version.rb +++ b/google-cloud-vision-v1/lib/google/cloud/vision/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Vision module V1 - VERSION = "1.3.1" + VERSION = "1.4.0" end end end diff --git a/google-cloud-vision-v1/snippets/snippet_metadata_google.cloud.vision.v1.json b/google-cloud-vision-v1/snippets/snippet_metadata_google.cloud.vision.v1.json index 841f725521f2..b792ff45faef 100644 --- a/google-cloud-vision-v1/snippets/snippet_metadata_google.cloud.vision.v1.json +++ b/google-cloud-vision-v1/snippets/snippet_metadata_google.cloud.vision.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vision-v1", - "version": "1.3.1", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-vision-v1p3beta1/CHANGELOG.md b/google-cloud-vision-v1p3beta1/CHANGELOG.md index 248ff2223b54..3f973240305b 100644 --- a/google-cloud-vision-v1p3beta1/CHANGELOG.md +++ b/google-cloud-vision-v1p3beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.17.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.16.0 (2025-05-12) #### Features diff --git a/google-cloud-vision-v1p3beta1/google-cloud-vision-v1p3beta1.gemspec b/google-cloud-vision-v1p3beta1/google-cloud-vision-v1p3beta1.gemspec index 23ef522ea3d1..d9cf2582b4d8 100644 --- a/google-cloud-vision-v1p3beta1/google-cloud-vision-v1p3beta1.gemspec +++ b/google-cloud-vision-v1p3beta1/google-cloud-vision-v1p3beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-vision-v1p3beta1/lib/google/cloud/vision/v1p3beta1/version.rb b/google-cloud-vision-v1p3beta1/lib/google/cloud/vision/v1p3beta1/version.rb index 43113810184a..c7a78a9a657c 100644 --- a/google-cloud-vision-v1p3beta1/lib/google/cloud/vision/v1p3beta1/version.rb +++ b/google-cloud-vision-v1p3beta1/lib/google/cloud/vision/v1p3beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Vision module V1p3beta1 - VERSION = "0.16.0" + VERSION = "0.17.0" end end end diff --git a/google-cloud-vision-v1p3beta1/snippets/snippet_metadata_google.cloud.vision.v1p3beta1.json b/google-cloud-vision-v1p3beta1/snippets/snippet_metadata_google.cloud.vision.v1p3beta1.json index caf24e95ccec..5fae7c9bccda 100644 --- a/google-cloud-vision-v1p3beta1/snippets/snippet_metadata_google.cloud.vision.v1p3beta1.json +++ b/google-cloud-vision-v1p3beta1/snippets/snippet_metadata_google.cloud.vision.v1p3beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vision-v1p3beta1", - "version": "0.16.0", + "version": "0.17.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-vision-v1p4beta1/CHANGELOG.md b/google-cloud-vision-v1p4beta1/CHANGELOG.md index f829742fd19d..ff6eaf25485f 100644 --- a/google-cloud-vision-v1p4beta1/CHANGELOG.md +++ b/google-cloud-vision-v1p4beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 0.12.1 (2025-07-15) #### Documentation diff --git a/google-cloud-vision-v1p4beta1/google-cloud-vision-v1p4beta1.gemspec b/google-cloud-vision-v1p4beta1/google-cloud-vision-v1p4beta1.gemspec index f2418da5b914..1770f850fe18 100644 --- a/google-cloud-vision-v1p4beta1/google-cloud-vision-v1p4beta1.gemspec +++ b/google-cloud-vision-v1p4beta1/google-cloud-vision-v1p4beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-vision-v1p4beta1/lib/google/cloud/vision/v1p4beta1/version.rb b/google-cloud-vision-v1p4beta1/lib/google/cloud/vision/v1p4beta1/version.rb index afb8e2b42c26..56f7d4bb4b3e 100644 --- a/google-cloud-vision-v1p4beta1/lib/google/cloud/vision/v1p4beta1/version.rb +++ b/google-cloud-vision-v1p4beta1/lib/google/cloud/vision/v1p4beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Vision module V1p4beta1 - VERSION = "0.12.1" + VERSION = "0.13.0" end end end diff --git a/google-cloud-vision-v1p4beta1/snippets/snippet_metadata_google.cloud.vision.v1p4beta1.json b/google-cloud-vision-v1p4beta1/snippets/snippet_metadata_google.cloud.vision.v1p4beta1.json index 4d561b7ac562..b2433f954212 100644 --- a/google-cloud-vision-v1p4beta1/snippets/snippet_metadata_google.cloud.vision.v1p4beta1.json +++ b/google-cloud-vision-v1p4beta1/snippets/snippet_metadata_google.cloud.vision.v1p4beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vision-v1p4beta1", - "version": "0.12.1", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-vision/CHANGELOG.md b/google-cloud-vision/CHANGELOG.md index 601f964a8a42..2c992c7ae2a9 100644 --- a/google-cloud-vision/CHANGELOG.md +++ b/google-cloud-vision/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-vision/README.md b/google-cloud-vision/README.md index 547b4b6d5858..6c734edf6364 100644 --- a/google-cloud-vision/README.md +++ b/google-cloud-vision/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/vision.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/vision" + +client = Google::Cloud::Vision.product_search +request = ::Google::Cloud::Vision::V1::CreateProductSetRequest.new # (request fields as keyword arguments...) +response = client.create_product_set request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-vision/lib/google/cloud/vision/version.rb b/google-cloud-vision/lib/google/cloud/vision/version.rb index 3f86d88b3b60..d2f593e35ab6 100644 --- a/google-cloud-vision/lib/google/cloud/vision/version.rb +++ b/google-cloud-vision/lib/google/cloud/vision/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Vision - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-vision_ai-v1/CHANGELOG.md b/google-cloud-vision_ai-v1/CHANGELOG.md index 4d397a001e20..bb177e66e687 100644 --- a/google-cloud-vision_ai-v1/CHANGELOG.md +++ b/google-cloud-vision_ai-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.1.1 (2025-07-15) #### Documentation diff --git a/google-cloud-vision_ai-v1/google-cloud-vision_ai-v1.gemspec b/google-cloud-vision_ai-v1/google-cloud-vision_ai-v1.gemspec index e9678567f139..dfc3c8fa5283 100644 --- a/google-cloud-vision_ai-v1/google-cloud-vision_ai-v1.gemspec +++ b/google-cloud-vision_ai-v1/google-cloud-vision_ai-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-vision_ai-v1/lib/google/cloud/vision_ai/v1/version.rb b/google-cloud-vision_ai-v1/lib/google/cloud/vision_ai/v1/version.rb index a572a0b81608..a58ad3f3e483 100644 --- a/google-cloud-vision_ai-v1/lib/google/cloud/vision_ai/v1/version.rb +++ b/google-cloud-vision_ai-v1/lib/google/cloud/vision_ai/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VisionAI module V1 - VERSION = "1.1.1" + VERSION = "1.2.0" end end end diff --git a/google-cloud-vision_ai-v1/snippets/snippet_metadata_google.cloud.visionai.v1.json b/google-cloud-vision_ai-v1/snippets/snippet_metadata_google.cloud.visionai.v1.json index 7920fee89dd4..5e876c3964a3 100644 --- a/google-cloud-vision_ai-v1/snippets/snippet_metadata_google.cloud.visionai.v1.json +++ b/google-cloud-vision_ai-v1/snippets/snippet_metadata_google.cloud.visionai.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vision_ai-v1", - "version": "1.1.1", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-vision_ai/CHANGELOG.md b/google-cloud-vision_ai/CHANGELOG.md index 8c2b23217b27..0f610a9f4999 100644 --- a/google-cloud-vision_ai/CHANGELOG.md +++ b/google-cloud-vision_ai/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-vision_ai/README.md b/google-cloud-vision_ai/README.md index 307ad6651c72..cb86e0b49128 100644 --- a/google-cloud-vision_ai/README.md +++ b/google-cloud-vision_ai/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/visionai.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/vision_ai" + +client = Google::Cloud::VisionAI.live_video_analytics +request = ::Google::Cloud::VisionAI::V1::ListPublicOperatorsRequest.new # (request fields as keyword arguments...) +response = client.list_public_operators request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-vision_ai/lib/google/cloud/vision_ai/version.rb b/google-cloud-vision_ai/lib/google/cloud/vision_ai/version.rb index e39733ac984b..5ebc6e794c1c 100644 --- a/google-cloud-vision_ai/lib/google/cloud/vision_ai/version.rb +++ b/google-cloud-vision_ai/lib/google/cloud/vision_ai/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module VisionAI - VERSION = "1.0.1" + VERSION = "1.0.2" end end end diff --git a/google-cloud-vm_migration-v1/.owlbot-manifest.json b/google-cloud-vm_migration-v1/.owlbot-manifest.json index bff3b703b73d..223785f389e7 100644 --- a/google-cloud-vm_migration-v1/.owlbot-manifest.json +++ b/google-cloud-vm_migration-v1/.owlbot-manifest.json @@ -29,12 +29,25 @@ "lib/google/cloud/vm_migration/v1/vm_migration/rest/service_stub.rb", "lib/google/cloud/vmmigration/v1/vmmigration_pb.rb", "lib/google/cloud/vmmigration/v1/vmmigration_services_pb.rb", + "lib/google/iam/v1.rb", + "lib/google/iam/v1/bindings_override.rb", + "lib/google/iam/v1/iam_policy.rb", + "lib/google/iam/v1/iam_policy/client.rb", + "lib/google/iam/v1/iam_policy/credentials.rb", + "lib/google/iam/v1/iam_policy/rest.rb", + "lib/google/iam/v1/iam_policy/rest/client.rb", + "lib/google/iam/v1/iam_policy/rest/service_stub.rb", + "lib/google/iam/v1/rest.rb", "proto_docs/README.md", "proto_docs/google/api/client.rb", "proto_docs/google/api/field_behavior.rb", + "proto_docs/google/api/field_info.rb", "proto_docs/google/api/launch_stage.rb", "proto_docs/google/api/resource.rb", "proto_docs/google/cloud/vmmigration/v1/vmmigration.rb", + "proto_docs/google/iam/v1/iam_policy.rb", + "proto_docs/google/iam/v1/options.rb", + "proto_docs/google/iam/v1/policy.rb", "proto_docs/google/longrunning/operations.rb", "proto_docs/google/protobuf/any.rb", "proto_docs/google/protobuf/duration.rb", @@ -45,30 +58,45 @@ "proto_docs/google/rpc/status.rb", "proto_docs/google/type/expr.rb", "snippets/Gemfile", + "snippets/iam_policy/get_iam_policy.rb", + "snippets/iam_policy/set_iam_policy.rb", + "snippets/iam_policy/test_iam_permissions.rb", "snippets/snippet_metadata_google.cloud.vmmigration.v1.json", + "snippets/snippet_metadata_google.iam.v1.json", "snippets/vm_migration/add_group_migration.rb", "snippets/vm_migration/cancel_clone_job.rb", "snippets/vm_migration/cancel_cutover_job.rb", + "snippets/vm_migration/cancel_disk_migration_job.rb", + "snippets/vm_migration/cancel_image_import_job.rb", "snippets/vm_migration/create_clone_job.rb", "snippets/vm_migration/create_cutover_job.rb", "snippets/vm_migration/create_datacenter_connector.rb", + "snippets/vm_migration/create_disk_migration_job.rb", "snippets/vm_migration/create_group.rb", + "snippets/vm_migration/create_image_import.rb", "snippets/vm_migration/create_migrating_vm.rb", "snippets/vm_migration/create_source.rb", "snippets/vm_migration/create_target_project.rb", "snippets/vm_migration/create_utilization_report.rb", "snippets/vm_migration/delete_datacenter_connector.rb", + "snippets/vm_migration/delete_disk_migration_job.rb", "snippets/vm_migration/delete_group.rb", + "snippets/vm_migration/delete_image_import.rb", "snippets/vm_migration/delete_migrating_vm.rb", "snippets/vm_migration/delete_source.rb", "snippets/vm_migration/delete_target_project.rb", "snippets/vm_migration/delete_utilization_report.rb", + "snippets/vm_migration/extend_migration.rb", "snippets/vm_migration/fetch_inventory.rb", + "snippets/vm_migration/fetch_storage_inventory.rb", "snippets/vm_migration/finalize_migration.rb", "snippets/vm_migration/get_clone_job.rb", "snippets/vm_migration/get_cutover_job.rb", "snippets/vm_migration/get_datacenter_connector.rb", + "snippets/vm_migration/get_disk_migration_job.rb", "snippets/vm_migration/get_group.rb", + "snippets/vm_migration/get_image_import.rb", + "snippets/vm_migration/get_image_import_job.rb", "snippets/vm_migration/get_migrating_vm.rb", "snippets/vm_migration/get_replication_cycle.rb", "snippets/vm_migration/get_source.rb", @@ -77,7 +105,10 @@ "snippets/vm_migration/list_clone_jobs.rb", "snippets/vm_migration/list_cutover_jobs.rb", "snippets/vm_migration/list_datacenter_connectors.rb", + "snippets/vm_migration/list_disk_migration_jobs.rb", "snippets/vm_migration/list_groups.rb", + "snippets/vm_migration/list_image_import_jobs.rb", + "snippets/vm_migration/list_image_imports.rb", "snippets/vm_migration/list_migrating_vms.rb", "snippets/vm_migration/list_replication_cycles.rb", "snippets/vm_migration/list_sources.rb", @@ -86,7 +117,9 @@ "snippets/vm_migration/pause_migration.rb", "snippets/vm_migration/remove_group_migration.rb", "snippets/vm_migration/resume_migration.rb", + "snippets/vm_migration/run_disk_migration_job.rb", "snippets/vm_migration/start_migration.rb", + "snippets/vm_migration/update_disk_migration_job.rb", "snippets/vm_migration/update_group.rb", "snippets/vm_migration/update_migrating_vm.rb", "snippets/vm_migration/update_source.rb", @@ -96,6 +129,8 @@ "test/google/cloud/vm_migration/v1/vm_migration_paths_test.rb", "test/google/cloud/vm_migration/v1/vm_migration_rest_test.rb", "test/google/cloud/vm_migration/v1/vm_migration_test.rb", + "test/google/iam/v1/iam_policy_rest_test.rb", + "test/google/iam/v1/iam_policy_test.rb", "test/helper.rb" ], "static": [ diff --git a/google-cloud-vm_migration-v1/CHANGELOG.md b/google-cloud-vm_migration-v1/CHANGELOG.md index 5f0e21b2d57e..5b91639ef58f 100644 --- a/google-cloud-vm_migration-v1/CHANGELOG.md +++ b/google-cloud-vm_migration-v1/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 2.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + +### 2.3.0 (2025-09-08) + +#### Features + +* [‎google-cloud-vm_migration-v1] Azure as a source ([#30951](https://github.com/googleapis/google-cloud-ruby/issues/30951)) + ### 2.2.0 (2025-05-12) #### Features diff --git a/google-cloud-vm_migration-v1/gapic_metadata.json b/google-cloud-vm_migration-v1/gapic_metadata.json index e2f9c9b3855b..fca98208a8d8 100755 --- a/google-cloud-vm_migration-v1/gapic_metadata.json +++ b/google-cloud-vm_migration-v1/gapic_metadata.json @@ -40,6 +40,11 @@ "fetch_inventory" ] }, + "FetchStorageInventory": { + "methods": [ + "fetch_storage_inventory" + ] + }, "ListUtilizationReports": { "methods": [ "list_utilization_reports" @@ -130,6 +135,11 @@ "finalize_migration" ] }, + "ExtendMigration": { + "methods": [ + "extend_migration" + ] + }, "CreateCloneJob": { "methods": [ "create_clone_job" @@ -239,6 +249,76 @@ "methods": [ "get_replication_cycle" ] + }, + "ListImageImports": { + "methods": [ + "list_image_imports" + ] + }, + "GetImageImport": { + "methods": [ + "get_image_import" + ] + }, + "CreateImageImport": { + "methods": [ + "create_image_import" + ] + }, + "DeleteImageImport": { + "methods": [ + "delete_image_import" + ] + }, + "ListImageImportJobs": { + "methods": [ + "list_image_import_jobs" + ] + }, + "GetImageImportJob": { + "methods": [ + "get_image_import_job" + ] + }, + "CancelImageImportJob": { + "methods": [ + "cancel_image_import_job" + ] + }, + "CreateDiskMigrationJob": { + "methods": [ + "create_disk_migration_job" + ] + }, + "ListDiskMigrationJobs": { + "methods": [ + "list_disk_migration_jobs" + ] + }, + "GetDiskMigrationJob": { + "methods": [ + "get_disk_migration_job" + ] + }, + "UpdateDiskMigrationJob": { + "methods": [ + "update_disk_migration_job" + ] + }, + "DeleteDiskMigrationJob": { + "methods": [ + "delete_disk_migration_job" + ] + }, + "RunDiskMigrationJob": { + "methods": [ + "run_disk_migration_job" + ] + }, + "CancelDiskMigrationJob": { + "methods": [ + "cancel_disk_migration_job" + ] } } } diff --git a/google-cloud-vm_migration-v1/google-cloud-vm_migration-v1.gemspec b/google-cloud-vm_migration-v1/google-cloud-vm_migration-v1.gemspec index f4e992b61144..385cb6f66613 100755 --- a/google-cloud-vm_migration-v1/google-cloud-vm_migration-v1.gemspec +++ b/google-cloud-vm_migration-v1/google-cloud-vm_migration-v1.gemspec @@ -23,8 +23,8 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" - gem.add_dependency "google-iam-v1", "~> 1.3" + gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-cloud-vm_migration-v1/lib/google-cloud-vm_migration-v1.rb b/google-cloud-vm_migration-v1/lib/google-cloud-vm_migration-v1.rb index 9e16d757c6ee..7167b00cc34a 100755 --- a/google-cloud-vm_migration-v1/lib/google-cloud-vm_migration-v1.rb +++ b/google-cloud-vm_migration-v1/lib/google-cloud-vm_migration-v1.rb @@ -19,3 +19,4 @@ # This gem does not autoload during Bundler.require. To load this gem, # issue explicit require statements for the packages desired, e.g.: # require "google/cloud/vm_migration/v1" +# require "google/iam/v1" diff --git a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/version.rb b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/version.rb index 413812469ced..9397ece325d8 100644 --- a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/version.rb +++ b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VMMigration module V1 - VERSION = "2.2.0" + VERSION = "2.4.0" end end end diff --git a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/client.rb b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/client.rb index 0d45fed40a3d..4237f525064d 100755 --- a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/client.rb +++ b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/client.rb @@ -19,7 +19,6 @@ require "google/cloud/errors" require "google/cloud/vmmigration/v1/vmmigration_pb" require "google/cloud/location" -require "google/iam/v1" module Google module Cloud @@ -195,14 +194,6 @@ def initialize config.universe_domain = @vm_migration_stub.universe_domain config.logger = @vm_migration_stub.logger if config.respond_to? :logger= end - - @iam_policy_client = Google::Iam::V1::IAMPolicy::Client.new do |config| - config.credentials = credentials - config.quota_project = @quota_project_id - config.endpoint = @vm_migration_stub.endpoint - config.universe_domain = @vm_migration_stub.universe_domain - config.logger = @vm_migration_stub.logger if config.respond_to? :logger= - end end ## @@ -219,13 +210,6 @@ def initialize # attr_reader :location_client - ## - # Get the associated client for mix-in of the IAMPolicy. - # - # @return [Google::Iam::V1::IAMPolicy::Client] - # - attr_reader :iam_policy_client - ## # The logger used for request/response debug logging. # @@ -458,8 +442,8 @@ def get_source request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -572,8 +556,8 @@ def create_source request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -680,8 +664,8 @@ def update_source request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -854,6 +838,115 @@ def fetch_inventory request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # List remote source's inventory of storage resources. + # The remote source is another cloud vendor (e.g. AWS, Azure). + # The inventory describes the list of existing storage resources in that + # source. Note that this operation lists the resources on the remote source, + # as opposed to listing the MigratingVms resources in the vmmigration + # service. + # + # @overload fetch_storage_inventory(request, options = nil) + # Pass arguments to `fetch_storage_inventory` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload fetch_storage_inventory(source: nil, type: nil, force_refresh: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_storage_inventory` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param source [::String] + # Required. The name of the Source. + # @param type [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest::StorageType] + # Required. The type of the storage inventory to fetch. + # @param force_refresh [::Boolean] + # Optional. If this flag is set to true, the source will be queried instead + # of using cached results. Using this flag will make the call slower. + # @param page_size [::Integer] + # Optional. The maximum number of VMs to return. The service may return + # fewer than this value. + # @param page_token [::String] + # Optional. A page token, received from a previous `FetchStorageInventory` + # call. Provide this to retrieve the subsequent page. When paginating, all + # other parameters provided to `FetchStorageInventory` must match the call + # that provided the page token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::SourceStorageResource>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::SourceStorageResource>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new + # + # # Call the fetch_storage_inventory method. + # result = client.fetch_storage_inventory request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::SourceStorageResource. + # p item + # end + # + def fetch_storage_inventory request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.fetch_storage_inventory.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.source + header_params["source"] = request.source + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.fetch_storage_inventory.timeout, + metadata: metadata, + retry_policy: @config.rpcs.fetch_storage_inventory.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :fetch_storage_inventory, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @vm_migration_stub, :fetch_storage_inventory, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Lists Utilization Reports of the given Source. # @@ -1086,8 +1179,8 @@ def get_utilization_report request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1194,8 +1287,8 @@ def create_utilization_report request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1501,8 +1594,8 @@ def get_datacenter_connector request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1609,8 +1702,8 @@ def create_datacenter_connector request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1718,8 +1811,8 @@ def delete_datacenter_connector request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1830,8 +1923,8 @@ def upgrade_appliance request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -2139,8 +2232,8 @@ def get_migrating_vm request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -2698,6 +2791,100 @@ def finalize_migration request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Extend the migrating VM time to live. + # + # @overload extend_migration(request, options = nil) + # Pass arguments to `extend_migration` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ExtendMigrationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::ExtendMigrationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload extend_migration(migrating_vm: nil) + # Pass arguments to `extend_migration` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param migrating_vm [::String] + # Required. The name of the MigratingVm. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new + # + # # Call the extend_migration method. + # result = client.extend_migration request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def extend_migration request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ExtendMigrationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.extend_migration.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.migrating_vm + header_params["migrating_vm"] = request.migrating_vm + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.extend_migration.timeout, + metadata: metadata, + retry_policy: @config.rpcs.extend_migration.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :extend_migration, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Initiates a Clone of a specific migrating VM. # @@ -2728,8 +2915,8 @@ def finalize_migration request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -2905,7 +3092,8 @@ def cancel_clone_job request, options = nil end ## - # Lists CloneJobs of a given migrating VM. + # Lists the CloneJobs of a migrating VM. Only 25 most recent CloneJobs are + # listed. # # @overload list_clone_jobs(request, options = nil) # Pass arguments to `list_clone_jobs` via a request object, either of type @@ -3127,8 +3315,8 @@ def get_clone_job request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -3304,7 +3492,8 @@ def cancel_cutover_job request, options = nil end ## - # Lists CutoverJobs of a given migrating VM. + # Lists the CutoverJobs of a migrating VM. Only 25 most recent CutoverJobs + # are listed. # # @overload list_cutover_jobs(request, options = nil) # Pass arguments to `list_cutover_jobs` via a request object, either of type @@ -3715,8 +3904,8 @@ def get_group request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -3829,8 +4018,8 @@ def create_group request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -3937,8 +4126,8 @@ def update_group request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4441,8 +4630,8 @@ def get_target_project request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4558,8 +4747,8 @@ def create_target_project request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4669,8 +4858,8 @@ def update_target_project request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4943,52 +5132,1461 @@ def get_replication_cycle request, options = nil end ## - # Configuration class for the VmMigration API. + # Lists ImageImports in a given project. # - # This class represents the configuration for VmMigration, - # providing control over timeouts, retry behavior, logging, transport - # parameters, and other low-level controls. Certain parameters can also be - # applied individually to specific RPCs. See - # {::Google::Cloud::VMMigration::V1::VMMigration::Client::Configuration::Rpcs} - # for a list of RPCs that can be configured independently. + # @overload list_image_imports(request, options = nil) + # Pass arguments to `list_image_imports` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ListImageImportsRequest} or an equivalent Hash. # - # Configuration can be applied globally to all clients, or to a single client - # on construction. + # @param request [::Google::Cloud::VMMigration::V1::ListImageImportsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. # - # @example + # @overload list_image_imports(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_image_imports` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). # - # # Modify the global config, setting the timeout for - # # list_sources to 20 seconds, - # # and all remaining timeouts to 10 seconds. - # ::Google::Cloud::VMMigration::V1::VMMigration::Client.configure do |config| - # config.timeout = 10.0 - # config.rpcs.list_sources.timeout = 20.0 - # end + # @param parent [::String] + # Required. The parent, which owns this collection of targets. + # @param page_size [::Integer] + # Optional. The maximum number of targets to return. The service may return + # fewer than this value. If unspecified, at most 500 targets will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListImageImports` call. + # Provide this to retrieve the subsequent page. # - # # Apply the above configuration only to a new client. - # client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| - # config.timeout = 10.0 - # config.rpcs.list_sources.timeout = 20.0 - # end + # When paginating, all other parameters provided to `ListImageImports` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. The filter request (according to AIP-160). + # @param order_by [::String] + # Optional. The order by fields for the result (according to AIP-132). + # Currently ordering is only possible by "name" field. # - # @!attribute [rw] endpoint - # A custom service endpoint, as a hostname or hostname:port. The default is - # nil, indicating to use the default endpoint in the current universe domain. - # @return [::String,nil] - # @!attribute [rw] credentials - # Credentials to send with calls. You may provide any of the following types: - # * (`String`) The path to a service account key file in JSON format - # * (`Hash`) A service account key as a Hash - # * (`Google::Auth::Credentials`) A googleauth credentials object - # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) - # * (`Signet::OAuth2::Client`) A signet oauth2 client object - # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) - # * (`GRPC::Core::Channel`) a gRPC channel with included credentials - # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object - # * (`nil`) indicating no credentials + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImport>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] # - # Warning: If you accept a credential configuration (JSON file or Hash) from an - # external source for authentication to Google Cloud, you must validate it before + # @return [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImport>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ListImageImportsRequest.new + # + # # Call the list_image_imports method. + # result = client.list_image_imports request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::ImageImport. + # p item + # end + # + def list_image_imports request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ListImageImportsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_image_imports.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_image_imports.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_image_imports.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :list_image_imports, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @vm_migration_stub, :list_image_imports, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets details of a single ImageImport. + # + # @overload get_image_import(request, options = nil) + # Pass arguments to `get_image_import` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::GetImageImportRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::GetImageImportRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_image_import(name: nil) + # Pass arguments to `get_image_import` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The ImageImport name. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::VMMigration::V1::ImageImport] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::VMMigration::V1::ImageImport] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::GetImageImportRequest.new + # + # # Call the get_image_import method. + # result = client.get_image_import request + # + # # The returned object is of type Google::Cloud::VMMigration::V1::ImageImport. + # p result + # + def get_image_import request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::GetImageImportRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_image_import.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_image_import.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_image_import.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :get_image_import, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new ImageImport in a given project. + # + # @overload create_image_import(request, options = nil) + # Pass arguments to `create_image_import` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CreateImageImportRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CreateImageImportRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_image_import(parent: nil, image_import_id: nil, image_import: nil, request_id: nil) + # Pass arguments to `create_image_import` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The ImageImport's parent. + # @param image_import_id [::String] + # Required. The image import identifier. + # This value maximum length is 63 characters, and valid characters are + # /[a-z][0-9]-/. It must start with an english letter and must not end with a + # hyphen. + # @param image_import [::Google::Cloud::VMMigration::V1::ImageImport, ::Hash] + # Required. The create request body. + # @param request_id [::String] + # Optional. A 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). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CreateImageImportRequest.new + # + # # Call the create_image_import method. + # result = client.create_image_import request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_image_import request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CreateImageImportRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_image_import.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_image_import.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_image_import.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :create_image_import, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a single ImageImport. + # + # @overload delete_image_import(request, options = nil) + # Pass arguments to `delete_image_import` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::DeleteImageImportRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::DeleteImageImportRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_image_import(name: nil, request_id: nil) + # Pass arguments to `delete_image_import` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The ImageImport name. + # @param request_id [::String] + # Optional. A 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 t + # he 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). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new + # + # # Call the delete_image_import method. + # result = client.delete_image_import request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_image_import request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::DeleteImageImportRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_image_import.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_image_import.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_image_import.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :delete_image_import, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists ImageImportJobs in a given project. + # + # @overload list_image_import_jobs(request, options = nil) + # Pass arguments to `list_image_import_jobs` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_image_import_jobs(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_image_import_jobs` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of targets. + # @param page_size [::Integer] + # Optional. The maximum number of targets to return. The service may return + # fewer than this value. If unspecified, at most 500 targets will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListImageImportJobs` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListImageImportJobs` + # must match the call that provided the page token. + # @param filter [::String] + # Optional. The filter request (according to AIP-160). + # @param order_by [::String] + # Optional. The order by fields for the result (according to AIP-132). + # Currently ordering is only possible by "name" field. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImportJob>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImportJob>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new + # + # # Call the list_image_import_jobs method. + # result = client.list_image_import_jobs request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::ImageImportJob. + # p item + # end + # + def list_image_import_jobs request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_image_import_jobs.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_image_import_jobs.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_image_import_jobs.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :list_image_import_jobs, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @vm_migration_stub, :list_image_import_jobs, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets details of a single ImageImportJob. + # + # @overload get_image_import_job(request, options = nil) + # Pass arguments to `get_image_import_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::GetImageImportJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::GetImageImportJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_image_import_job(name: nil) + # Pass arguments to `get_image_import_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The ImageImportJob name. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::VMMigration::V1::ImageImportJob] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::VMMigration::V1::ImageImportJob] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new + # + # # Call the get_image_import_job method. + # result = client.get_image_import_job request + # + # # The returned object is of type Google::Cloud::VMMigration::V1::ImageImportJob. + # p result + # + def get_image_import_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::GetImageImportJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_image_import_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_image_import_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_image_import_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :get_image_import_job, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Initiates the cancellation of a running clone job. + # + # @overload cancel_image_import_job(request, options = nil) + # Pass arguments to `cancel_image_import_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload cancel_image_import_job(name: nil) + # Pass arguments to `cancel_image_import_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The image import job id. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new + # + # # Call the cancel_image_import_job method. + # result = client.cancel_image_import_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def cancel_image_import_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.cancel_image_import_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.cancel_image_import_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.cancel_image_import_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :cancel_image_import_job, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new disk migration job in a given Source. + # + # @overload create_disk_migration_job(request, options = nil) + # Pass arguments to `create_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_disk_migration_job(parent: nil, disk_migration_job_id: nil, disk_migration_job: nil, request_id: nil) + # Pass arguments to `create_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The DiskMigrationJob's parent. + # @param disk_migration_job_id [::String] + # Required. The DiskMigrationJob identifier. + # The maximum length of this value is 63 characters. + # Valid characters are lower case Latin letters, digits and hyphen. + # It must start with a Latin letter and must not end with a hyphen. + # @param disk_migration_job [::Google::Cloud::VMMigration::V1::DiskMigrationJob, ::Hash] + # Required. The create request body. + # @param request_id [::String] + # Optional. A 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 timed 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). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new + # + # # Call the create_disk_migration_job method. + # result = client.create_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_disk_migration_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :create_disk_migration_job, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists DiskMigrationJobs in a given Source. + # + # @overload list_disk_migration_jobs(request, options = nil) + # Pass arguments to `list_disk_migration_jobs` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_disk_migration_jobs(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_disk_migration_jobs` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of DiskMigrationJobs. + # @param page_size [::Integer] + # Optional. The maximum number of disk migration jobs to return. The service + # may return fewer than this value. If unspecified, at most 500 + # disk migration jobs will be returned. + # The maximum value is 1000; values above 1000 will be coerced to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListDiskMigrationJobs` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all parameters provided to `ListDiskMigrationJobs` + # except `page_size` must match the call that provided the page token. + # @param filter [::String] + # Optional. The filter request (according to AIP-160). + # @param order_by [::String] + # Optional. Ordering of the result list. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::DiskMigrationJob>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Cloud::VMMigration::V1::DiskMigrationJob>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new + # + # # Call the list_disk_migration_jobs method. + # result = client.list_disk_migration_jobs request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::DiskMigrationJob. + # p item + # end + # + def list_disk_migration_jobs request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_disk_migration_jobs.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_disk_migration_jobs.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_disk_migration_jobs.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :list_disk_migration_jobs, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @vm_migration_stub, :list_disk_migration_jobs, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets details of a single DiskMigrationJob. + # + # @overload get_disk_migration_job(request, options = nil) + # Pass arguments to `get_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_disk_migration_job(name: nil) + # Pass arguments to `get_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new + # + # # Call the get_disk_migration_job method. + # result = client.get_disk_migration_job request + # + # # The returned object is of type Google::Cloud::VMMigration::V1::DiskMigrationJob. + # p result + # + def get_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_disk_migration_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :get_disk_migration_job, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates the parameters of a single DiskMigrationJob. + # + # @overload update_disk_migration_job(request, options = nil) + # Pass arguments to `update_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_disk_migration_job(update_mask: nil, disk_migration_job: nil, request_id: nil) + # Pass arguments to `update_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. Field mask is used to specify the fields to be overwritten in the + # DiskMigrationJob 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 a mask equivalent to all fields that are + # populated (have a non-empty value), will be implied. + # @param disk_migration_job [::Google::Cloud::VMMigration::V1::DiskMigrationJob, ::Hash] + # Required. The update request body. + # @param request_id [::String] + # Optional. A 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 timed 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). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new + # + # # Call the update_disk_migration_job method. + # result = client.update_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def update_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.disk_migration_job&.name + header_params["disk_migration_job.name"] = request.disk_migration_job.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_disk_migration_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :update_disk_migration_job, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a single DiskMigrationJob. + # + # @overload delete_disk_migration_job(request, options = nil) + # Pass arguments to `delete_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_disk_migration_job(name: nil) + # Pass arguments to `delete_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new + # + # # Call the delete_disk_migration_job method. + # result = client.delete_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_disk_migration_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :delete_disk_migration_job, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Runs the disk migration job. + # + # @overload run_disk_migration_job(request, options = nil) + # Pass arguments to `run_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload run_disk_migration_job(name: nil) + # Pass arguments to `run_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new + # + # # Call the run_disk_migration_job method. + # result = client.run_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def run_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.run_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.run_disk_migration_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.run_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :run_disk_migration_job, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Cancels the disk migration job. + # + # @overload cancel_disk_migration_job(request, options = nil) + # Pass arguments to `cancel_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload cancel_disk_migration_job(name: nil) + # Pass arguments to `cancel_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::Operation] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new + # + # # Call the cancel_disk_migration_job method. + # result = client.cancel_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def cancel_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.cancel_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.cancel_disk_migration_job.timeout, + metadata: metadata, + retry_policy: @config.rpcs.cancel_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.call_rpc :cancel_disk_migration_job, request, options: options do |response, operation| + response = ::Gapic::Operation.new response, @operations_client, options: options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the VmMigration API. + # + # This class represents the configuration for VmMigration, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::VMMigration::V1::VMMigration::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_sources to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::VMMigration::V1::VMMigration::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_sources.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_sources.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before # providing it to a Google API client library. Providing an unvalidated credential # configuration to Google APIs can compromise the security of your systems and data. # For more information, refer to [Validate credential configurations from external @@ -5139,6 +6737,11 @@ class Rpcs # attr_reader :fetch_inventory ## + # RPC-specific configuration for `fetch_storage_inventory` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_storage_inventory + ## # RPC-specific configuration for `list_utilization_reports` # @return [::Gapic::Config::Method] # @@ -5229,6 +6832,11 @@ class Rpcs # attr_reader :finalize_migration ## + # RPC-specific configuration for `extend_migration` + # @return [::Gapic::Config::Method] + # + attr_reader :extend_migration + ## # RPC-specific configuration for `create_clone_job` # @return [::Gapic::Config::Method] # @@ -5338,6 +6946,76 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :get_replication_cycle + ## + # RPC-specific configuration for `list_image_imports` + # @return [::Gapic::Config::Method] + # + attr_reader :list_image_imports + ## + # RPC-specific configuration for `get_image_import` + # @return [::Gapic::Config::Method] + # + attr_reader :get_image_import + ## + # RPC-specific configuration for `create_image_import` + # @return [::Gapic::Config::Method] + # + attr_reader :create_image_import + ## + # RPC-specific configuration for `delete_image_import` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_image_import + ## + # RPC-specific configuration for `list_image_import_jobs` + # @return [::Gapic::Config::Method] + # + attr_reader :list_image_import_jobs + ## + # RPC-specific configuration for `get_image_import_job` + # @return [::Gapic::Config::Method] + # + attr_reader :get_image_import_job + ## + # RPC-specific configuration for `cancel_image_import_job` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_image_import_job + ## + # RPC-specific configuration for `create_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :create_disk_migration_job + ## + # RPC-specific configuration for `list_disk_migration_jobs` + # @return [::Gapic::Config::Method] + # + attr_reader :list_disk_migration_jobs + ## + # RPC-specific configuration for `get_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :get_disk_migration_job + ## + # RPC-specific configuration for `update_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :update_disk_migration_job + ## + # RPC-specific configuration for `delete_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_disk_migration_job + ## + # RPC-specific configuration for `run_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :run_disk_migration_job + ## + # RPC-specific configuration for `cancel_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_disk_migration_job # @private def initialize parent_rpcs = nil @@ -5353,6 +7031,8 @@ def initialize parent_rpcs = nil @delete_source = ::Gapic::Config::Method.new delete_source_config fetch_inventory_config = parent_rpcs.fetch_inventory if parent_rpcs.respond_to? :fetch_inventory @fetch_inventory = ::Gapic::Config::Method.new fetch_inventory_config + fetch_storage_inventory_config = parent_rpcs.fetch_storage_inventory if parent_rpcs.respond_to? :fetch_storage_inventory + @fetch_storage_inventory = ::Gapic::Config::Method.new fetch_storage_inventory_config list_utilization_reports_config = parent_rpcs.list_utilization_reports if parent_rpcs.respond_to? :list_utilization_reports @list_utilization_reports = ::Gapic::Config::Method.new list_utilization_reports_config get_utilization_report_config = parent_rpcs.get_utilization_report if parent_rpcs.respond_to? :get_utilization_report @@ -5389,6 +7069,8 @@ def initialize parent_rpcs = nil @pause_migration = ::Gapic::Config::Method.new pause_migration_config finalize_migration_config = parent_rpcs.finalize_migration if parent_rpcs.respond_to? :finalize_migration @finalize_migration = ::Gapic::Config::Method.new finalize_migration_config + extend_migration_config = parent_rpcs.extend_migration if parent_rpcs.respond_to? :extend_migration + @extend_migration = ::Gapic::Config::Method.new extend_migration_config create_clone_job_config = parent_rpcs.create_clone_job if parent_rpcs.respond_to? :create_clone_job @create_clone_job = ::Gapic::Config::Method.new create_clone_job_config cancel_clone_job_config = parent_rpcs.cancel_clone_job if parent_rpcs.respond_to? :cancel_clone_job @@ -5433,6 +7115,34 @@ def initialize parent_rpcs = nil @list_replication_cycles = ::Gapic::Config::Method.new list_replication_cycles_config get_replication_cycle_config = parent_rpcs.get_replication_cycle if parent_rpcs.respond_to? :get_replication_cycle @get_replication_cycle = ::Gapic::Config::Method.new get_replication_cycle_config + list_image_imports_config = parent_rpcs.list_image_imports if parent_rpcs.respond_to? :list_image_imports + @list_image_imports = ::Gapic::Config::Method.new list_image_imports_config + get_image_import_config = parent_rpcs.get_image_import if parent_rpcs.respond_to? :get_image_import + @get_image_import = ::Gapic::Config::Method.new get_image_import_config + create_image_import_config = parent_rpcs.create_image_import if parent_rpcs.respond_to? :create_image_import + @create_image_import = ::Gapic::Config::Method.new create_image_import_config + delete_image_import_config = parent_rpcs.delete_image_import if parent_rpcs.respond_to? :delete_image_import + @delete_image_import = ::Gapic::Config::Method.new delete_image_import_config + list_image_import_jobs_config = parent_rpcs.list_image_import_jobs if parent_rpcs.respond_to? :list_image_import_jobs + @list_image_import_jobs = ::Gapic::Config::Method.new list_image_import_jobs_config + get_image_import_job_config = parent_rpcs.get_image_import_job if parent_rpcs.respond_to? :get_image_import_job + @get_image_import_job = ::Gapic::Config::Method.new get_image_import_job_config + cancel_image_import_job_config = parent_rpcs.cancel_image_import_job if parent_rpcs.respond_to? :cancel_image_import_job + @cancel_image_import_job = ::Gapic::Config::Method.new cancel_image_import_job_config + create_disk_migration_job_config = parent_rpcs.create_disk_migration_job if parent_rpcs.respond_to? :create_disk_migration_job + @create_disk_migration_job = ::Gapic::Config::Method.new create_disk_migration_job_config + list_disk_migration_jobs_config = parent_rpcs.list_disk_migration_jobs if parent_rpcs.respond_to? :list_disk_migration_jobs + @list_disk_migration_jobs = ::Gapic::Config::Method.new list_disk_migration_jobs_config + get_disk_migration_job_config = parent_rpcs.get_disk_migration_job if parent_rpcs.respond_to? :get_disk_migration_job + @get_disk_migration_job = ::Gapic::Config::Method.new get_disk_migration_job_config + update_disk_migration_job_config = parent_rpcs.update_disk_migration_job if parent_rpcs.respond_to? :update_disk_migration_job + @update_disk_migration_job = ::Gapic::Config::Method.new update_disk_migration_job_config + delete_disk_migration_job_config = parent_rpcs.delete_disk_migration_job if parent_rpcs.respond_to? :delete_disk_migration_job + @delete_disk_migration_job = ::Gapic::Config::Method.new delete_disk_migration_job_config + run_disk_migration_job_config = parent_rpcs.run_disk_migration_job if parent_rpcs.respond_to? :run_disk_migration_job + @run_disk_migration_job = ::Gapic::Config::Method.new run_disk_migration_job_config + cancel_disk_migration_job_config = parent_rpcs.cancel_disk_migration_job if parent_rpcs.respond_to? :cancel_disk_migration_job + @cancel_disk_migration_job = ::Gapic::Config::Method.new cancel_disk_migration_job_config yield self if block_given? end diff --git a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/paths.rb b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/paths.rb index ca72341fa55f..55c9f18d6d65 100755 --- a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/paths.rb +++ b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/paths.rb @@ -47,6 +47,27 @@ def clone_job_path project:, location:, source:, migrating_vm:, clone_job: "projects/#{project}/locations/#{location}/sources/#{source}/migratingVms/#{migrating_vm}/cloneJobs/#{clone_job}" end + ## + # Create a fully-qualified CryptoKey resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}` + # + # @param project [String] + # @param location [String] + # @param key_ring [String] + # @param crypto_key [String] + # + # @return [::String] + def crypto_key_path project:, location:, key_ring:, crypto_key: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "key_ring cannot contain /" if key_ring.to_s.include? "/" + + "projects/#{project}/locations/#{location}/keyRings/#{key_ring}/cryptoKeys/#{crypto_key}" + end + ## # Create a fully-qualified CutoverJob resource string. # @@ -91,6 +112,27 @@ def datacenter_connector_path project:, location:, source:, datacenter_connector "projects/#{project}/locations/#{location}/sources/#{source}/datacenterConnectors/#{datacenter_connector}" end + ## + # Create a fully-qualified DiskMigrationJob resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/sources/{source}/diskMigrationJobs/{disk_migration_job}` + # + # @param project [String] + # @param location [String] + # @param source [String] + # @param disk_migration_job [String] + # + # @return [::String] + def disk_migration_job_path project:, location:, source:, disk_migration_job: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/" + + "projects/#{project}/locations/#{location}/sources/#{source}/diskMigrationJobs/#{disk_migration_job}" + end + ## # Create a fully-qualified Group resource string. # @@ -110,6 +152,63 @@ def group_path project:, location:, group: "projects/#{project}/locations/#{location}/groups/#{group}" end + ## + # Create a fully-qualified Image resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/global/images/{image}` + # + # @param project [String] + # @param image [String] + # + # @return [::String] + def image_path project:, image: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/global/images/#{image}" + end + + ## + # Create a fully-qualified ImageImport resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/imageImports/{job}` + # + # @param project [String] + # @param location [String] + # @param job [String] + # + # @return [::String] + def image_import_path project:, location:, job: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + + "projects/#{project}/locations/#{location}/imageImports/#{job}" + end + + ## + # Create a fully-qualified ImageImportJob resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/locations/{location}/imageImports/{job}/imageImportJobs/{result}` + # + # @param project [String] + # @param location [String] + # @param job [String] + # @param result [String] + # + # @return [::String] + def image_import_job_path project:, location:, job:, result: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/" + raise ::ArgumentError, "job cannot contain /" if job.to_s.include? "/" + + "projects/#{project}/locations/#{location}/imageImports/#{job}/imageImportJobs/#{result}" + end + ## # Create a fully-qualified Location resource string. # @@ -171,6 +270,23 @@ def replication_cycle_path project:, location:, source:, migrating_vm:, replicat "projects/#{project}/locations/#{location}/sources/#{source}/migratingVms/#{migrating_vm}/replicationCycles/#{replication_cycle}" end + ## + # Create a fully-qualified ServiceAccount resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/serviceAccounts/{service_account}` + # + # @param project [String] + # @param service_account [String] + # + # @return [::String] + def service_account_path project:, service_account: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/serviceAccounts/#{service_account}" + end + ## # Create a fully-qualified Source resource string. # diff --git a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/client.rb b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/client.rb index a5e9a2108349..110b6ce07102 100644 --- a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/client.rb +++ b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/client.rb @@ -20,7 +20,6 @@ require "google/cloud/vmmigration/v1/vmmigration_pb" require "google/cloud/vm_migration/v1/vm_migration/rest/service_stub" require "google/cloud/location/rest" -require "google/iam/v1/rest" module Google module Cloud @@ -189,14 +188,6 @@ def initialize config.bindings_override = @config.bindings_override config.logger = @vm_migration_stub.logger if config.respond_to? :logger= end - - @iam_policy_client = Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| - config.credentials = credentials - config.quota_project = @quota_project_id - config.endpoint = @vm_migration_stub.endpoint - config.universe_domain = @vm_migration_stub.universe_domain - config.logger = @vm_migration_stub.logger if config.respond_to? :logger= - end end ## @@ -213,13 +204,6 @@ def initialize # attr_reader :location_client - ## - # Get the associated client for mix-in of the IAMPolicy. - # - # @return [Google::Iam::V1::IAMPolicy::Rest::Client] - # - attr_reader :iam_policy_client - ## # The logger used for request/response debug logging. # @@ -438,8 +422,8 @@ def get_source request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -545,8 +529,8 @@ def create_source request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -646,8 +630,8 @@ def update_source request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -806,6 +790,108 @@ def fetch_inventory request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # List remote source's inventory of storage resources. + # The remote source is another cloud vendor (e.g. AWS, Azure). + # The inventory describes the list of existing storage resources in that + # source. Note that this operation lists the resources on the remote source, + # as opposed to listing the MigratingVms resources in the vmmigration + # service. + # + # @overload fetch_storage_inventory(request, options = nil) + # Pass arguments to `fetch_storage_inventory` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload fetch_storage_inventory(source: nil, type: nil, force_refresh: nil, page_size: nil, page_token: nil) + # Pass arguments to `fetch_storage_inventory` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param source [::String] + # Required. The name of the Source. + # @param type [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest::StorageType] + # Required. The type of the storage inventory to fetch. + # @param force_refresh [::Boolean] + # Optional. If this flag is set to true, the source will be queried instead + # of using cached results. Using this flag will make the call slower. + # @param page_size [::Integer] + # Optional. The maximum number of VMs to return. The service may return + # fewer than this value. + # @param page_token [::String] + # Optional. A page token, received from a previous `FetchStorageInventory` + # call. Provide this to retrieve the subsequent page. When paginating, all + # other parameters provided to `FetchStorageInventory` must match the call + # that provided the page token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::SourceStorageResource>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::SourceStorageResource>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new + # + # # Call the fetch_storage_inventory method. + # result = client.fetch_storage_inventory request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::SourceStorageResource. + # p item + # end + # + def fetch_storage_inventory request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.fetch_storage_inventory.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.fetch_storage_inventory.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.fetch_storage_inventory.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.fetch_storage_inventory request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @vm_migration_stub, :fetch_storage_inventory, "resources", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Lists Utilization Reports of the given Source. # @@ -1024,8 +1110,8 @@ def get_utilization_report request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1125,8 +1211,8 @@ def create_utilization_report request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1411,8 +1497,8 @@ def get_datacenter_connector request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1512,8 +1598,8 @@ def create_datacenter_connector request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1614,8 +1700,8 @@ def delete_datacenter_connector request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -1719,8 +1805,8 @@ def upgrade_appliance request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -2007,8 +2093,8 @@ def get_migrating_vm request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -2524,6 +2610,93 @@ def finalize_migration request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Extend the migrating VM time to live. + # + # @overload extend_migration(request, options = nil) + # Pass arguments to `extend_migration` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ExtendMigrationRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::ExtendMigrationRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload extend_migration(migrating_vm: nil) + # Pass arguments to `extend_migration` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param migrating_vm [::String] + # Required. The name of the MigratingVm. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new + # + # # Call the extend_migration method. + # result = client.extend_migration request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def extend_migration request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ExtendMigrationRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.extend_migration.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.extend_migration.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.extend_migration.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.extend_migration request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Initiates a Clone of a specific migrating VM. # @@ -2554,8 +2727,8 @@ def finalize_migration request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -2717,7 +2890,8 @@ def cancel_clone_job request, options = nil end ## - # Lists CloneJobs of a given migrating VM. + # Lists the CloneJobs of a migrating VM. Only 25 most recent CloneJobs are + # listed. # # @overload list_clone_jobs(request, options = nil) # Pass arguments to `list_clone_jobs` via a request object, either of type @@ -2925,8 +3099,8 @@ def get_clone_job request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -3088,7 +3262,8 @@ def cancel_cutover_job request, options = nil end ## - # Lists CutoverJobs of a given migrating VM. + # Lists the CutoverJobs of a migrating VM. Only 25 most recent CutoverJobs + # are listed. # # @overload list_cutover_jobs(request, options = nil) # Pass arguments to `list_cutover_jobs` via a request object, either of type @@ -3471,8 +3646,8 @@ def get_group request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -3578,8 +3753,8 @@ def create_group request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -3679,8 +3854,8 @@ def update_group request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4148,8 +4323,8 @@ def get_target_project request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4258,8 +4433,8 @@ def create_target_project request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4362,8 +4537,8 @@ def update_target_project request, options = nil # 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 t - # he request times out. If you make the request again with the same 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. @@ -4615,66 +4790,1377 @@ def get_replication_cycle request, options = nil end ## - # Configuration class for the VmMigration REST API. + # Lists ImageImports in a given project. # - # This class represents the configuration for VmMigration REST, - # providing control over timeouts, retry behavior, logging, transport - # parameters, and other low-level controls. Certain parameters can also be - # applied individually to specific RPCs. See - # {::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client::Configuration::Rpcs} - # for a list of RPCs that can be configured independently. + # @overload list_image_imports(request, options = nil) + # Pass arguments to `list_image_imports` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ListImageImportsRequest} or an equivalent Hash. # - # Configuration can be applied globally to all clients, or to a single client - # on construction. + # @param request [::Google::Cloud::VMMigration::V1::ListImageImportsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # @example + # @overload list_image_imports(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_image_imports` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). # - # # Modify the global config, setting the timeout for - # # list_sources to 20 seconds, - # # and all remaining timeouts to 10 seconds. - # ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.configure do |config| - # config.timeout = 10.0 - # config.rpcs.list_sources.timeout = 20.0 - # end + # @param parent [::String] + # Required. The parent, which owns this collection of targets. + # @param page_size [::Integer] + # Optional. The maximum number of targets to return. The service may return + # fewer than this value. If unspecified, at most 500 targets will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListImageImports` call. + # Provide this to retrieve the subsequent page. # - # # Apply the above configuration only to a new client. - # client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| - # config.timeout = 10.0 - # config.rpcs.list_sources.timeout = 20.0 - # end + # When paginating, all other parameters provided to `ListImageImports` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. The filter request (according to AIP-160). + # @param order_by [::String] + # Optional. The order by fields for the result (according to AIP-132). + # Currently ordering is only possible by "name" field. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImport>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @!attribute [rw] endpoint - # A custom service endpoint, as a hostname or hostname:port. The default is - # nil, indicating to use the default endpoint in the current universe domain. - # @return [::String,nil] - # @!attribute [rw] credentials - # Credentials to send with calls. You may provide any of the following types: - # * (`String`) The path to a service account key file in JSON format - # * (`Hash`) A service account key as a Hash - # * (`Google::Auth::Credentials`) A googleauth credentials object - # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) - # * (`Signet::OAuth2::Client`) A signet oauth2 client object - # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) - # * (`nil`) indicating no credentials + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImport>] # - # Warning: If you accept a credential configuration (JSON file or Hash) from an - # external source for authentication to Google Cloud, you must validate it before - # providing it to a Google API client library. Providing an unvalidated credential - # configuration to Google APIs can compromise the security of your systems and data. - # For more information, refer to [Validate credential configurations from external - # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). - # @return [::Object] - # @!attribute [rw] scope - # The OAuth scopes - # @return [::Array<::String>] - # @!attribute [rw] lib_name - # The library name as recorded in instrumentation and logging - # @return [::String] - # @!attribute [rw] lib_version - # The library version as recorded in instrumentation and logging - # @return [::String] - # @!attribute [rw] timeout - # The call timeout in seconds. + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ListImageImportsRequest.new + # + # # Call the list_image_imports method. + # result = client.list_image_imports request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::ImageImport. + # p item + # end + # + def list_image_imports request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ListImageImportsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_image_imports.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_image_imports.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_image_imports.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.list_image_imports request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @vm_migration_stub, :list_image_imports, "image_imports", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets details of a single ImageImport. + # + # @overload get_image_import(request, options = nil) + # Pass arguments to `get_image_import` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::GetImageImportRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::GetImageImportRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_image_import(name: nil) + # Pass arguments to `get_image_import` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The ImageImport name. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ImageImport] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::ImageImport] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::GetImageImportRequest.new + # + # # Call the get_image_import method. + # result = client.get_image_import request + # + # # The returned object is of type Google::Cloud::VMMigration::V1::ImageImport. + # p result + # + def get_image_import request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::GetImageImportRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_image_import.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_image_import.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_image_import.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.get_image_import request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new ImageImport in a given project. + # + # @overload create_image_import(request, options = nil) + # Pass arguments to `create_image_import` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CreateImageImportRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CreateImageImportRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_image_import(parent: nil, image_import_id: nil, image_import: nil, request_id: nil) + # Pass arguments to `create_image_import` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The ImageImport's parent. + # @param image_import_id [::String] + # Required. The image import identifier. + # This value maximum length is 63 characters, and valid characters are + # /[a-z][0-9]-/. It must start with an english letter and must not end with a + # hyphen. + # @param image_import [::Google::Cloud::VMMigration::V1::ImageImport, ::Hash] + # Required. The create request body. + # @param request_id [::String] + # Optional. A 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). + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CreateImageImportRequest.new + # + # # Call the create_image_import method. + # result = client.create_image_import request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_image_import request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CreateImageImportRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_image_import.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_image_import.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_image_import.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.create_image_import request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a single ImageImport. + # + # @overload delete_image_import(request, options = nil) + # Pass arguments to `delete_image_import` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::DeleteImageImportRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::DeleteImageImportRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_image_import(name: nil, request_id: nil) + # Pass arguments to `delete_image_import` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The ImageImport name. + # @param request_id [::String] + # Optional. A 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 t + # he 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). + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new + # + # # Call the delete_image_import method. + # result = client.delete_image_import request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_image_import request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::DeleteImageImportRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_image_import.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_image_import.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_image_import.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.delete_image_import request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists ImageImportJobs in a given project. + # + # @overload list_image_import_jobs(request, options = nil) + # Pass arguments to `list_image_import_jobs` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_image_import_jobs(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_image_import_jobs` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of targets. + # @param page_size [::Integer] + # Optional. The maximum number of targets to return. The service may return + # fewer than this value. If unspecified, at most 500 targets will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListImageImportJobs` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListImageImportJobs` + # must match the call that provided the page token. + # @param filter [::String] + # Optional. The filter request (according to AIP-160). + # @param order_by [::String] + # Optional. The order by fields for the result (according to AIP-132). + # Currently ordering is only possible by "name" field. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImportJob>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::ImageImportJob>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new + # + # # Call the list_image_import_jobs method. + # result = client.list_image_import_jobs request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::ImageImportJob. + # p item + # end + # + def list_image_import_jobs request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_image_import_jobs.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_image_import_jobs.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_image_import_jobs.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.list_image_import_jobs request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @vm_migration_stub, :list_image_import_jobs, "image_import_jobs", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets details of a single ImageImportJob. + # + # @overload get_image_import_job(request, options = nil) + # Pass arguments to `get_image_import_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::GetImageImportJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::GetImageImportJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_image_import_job(name: nil) + # Pass arguments to `get_image_import_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The ImageImportJob name. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ImageImportJob] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::ImageImportJob] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new + # + # # Call the get_image_import_job method. + # result = client.get_image_import_job request + # + # # The returned object is of type Google::Cloud::VMMigration::V1::ImageImportJob. + # p result + # + def get_image_import_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::GetImageImportJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_image_import_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_image_import_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_image_import_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.get_image_import_job request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Initiates the cancellation of a running clone job. + # + # @overload cancel_image_import_job(request, options = nil) + # Pass arguments to `cancel_image_import_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload cancel_image_import_job(name: nil) + # Pass arguments to `cancel_image_import_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The image import job id. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new + # + # # Call the cancel_image_import_job method. + # result = client.cancel_image_import_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def cancel_image_import_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.cancel_image_import_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.cancel_image_import_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.cancel_image_import_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.cancel_image_import_job request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a new disk migration job in a given Source. + # + # @overload create_disk_migration_job(request, options = nil) + # Pass arguments to `create_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_disk_migration_job(parent: nil, disk_migration_job_id: nil, disk_migration_job: nil, request_id: nil) + # Pass arguments to `create_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The DiskMigrationJob's parent. + # @param disk_migration_job_id [::String] + # Required. The DiskMigrationJob identifier. + # The maximum length of this value is 63 characters. + # Valid characters are lower case Latin letters, digits and hyphen. + # It must start with a Latin letter and must not end with a hyphen. + # @param disk_migration_job [::Google::Cloud::VMMigration::V1::DiskMigrationJob, ::Hash] + # Required. The create request body. + # @param request_id [::String] + # Optional. A 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 timed 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). + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new + # + # # Call the create_disk_migration_job method. + # result = client.create_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def create_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_disk_migration_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.create_disk_migration_job request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists DiskMigrationJobs in a given Source. + # + # @overload list_disk_migration_jobs(request, options = nil) + # Pass arguments to `list_disk_migration_jobs` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_disk_migration_jobs(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil) + # Pass arguments to `list_disk_migration_jobs` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of DiskMigrationJobs. + # @param page_size [::Integer] + # Optional. The maximum number of disk migration jobs to return. The service + # may return fewer than this value. If unspecified, at most 500 + # disk migration jobs will be returned. + # The maximum value is 1000; values above 1000 will be coerced to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListDiskMigrationJobs` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all parameters provided to `ListDiskMigrationJobs` + # except `page_size` must match the call that provided the page token. + # @param filter [::String] + # Optional. The filter request (according to AIP-160). + # @param order_by [::String] + # Optional. Ordering of the result list. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::DiskMigrationJob>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::VMMigration::V1::DiskMigrationJob>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new + # + # # Call the list_disk_migration_jobs method. + # result = client.list_disk_migration_jobs request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Cloud::VMMigration::V1::DiskMigrationJob. + # p item + # end + # + def list_disk_migration_jobs request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_disk_migration_jobs.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_disk_migration_jobs.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_disk_migration_jobs.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.list_disk_migration_jobs request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @vm_migration_stub, :list_disk_migration_jobs, "disk_migration_jobs", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets details of a single DiskMigrationJob. + # + # @overload get_disk_migration_job(request, options = nil) + # Pass arguments to `get_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_disk_migration_job(name: nil) + # Pass arguments to `get_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new + # + # # Call the get_disk_migration_job method. + # result = client.get_disk_migration_job request + # + # # The returned object is of type Google::Cloud::VMMigration::V1::DiskMigrationJob. + # p result + # + def get_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_disk_migration_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.get_disk_migration_job request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates the parameters of a single DiskMigrationJob. + # + # @overload update_disk_migration_job(request, options = nil) + # Pass arguments to `update_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_disk_migration_job(update_mask: nil, disk_migration_job: nil, request_id: nil) + # Pass arguments to `update_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. Field mask is used to specify the fields to be overwritten in the + # DiskMigrationJob 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 a mask equivalent to all fields that are + # populated (have a non-empty value), will be implied. + # @param disk_migration_job [::Google::Cloud::VMMigration::V1::DiskMigrationJob, ::Hash] + # Required. The update request body. + # @param request_id [::String] + # Optional. A 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 timed 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). + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new + # + # # Call the update_disk_migration_job method. + # result = client.update_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def update_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_disk_migration_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.update_disk_migration_job request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a single DiskMigrationJob. + # + # @overload delete_disk_migration_job(request, options = nil) + # Pass arguments to `delete_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_disk_migration_job(name: nil) + # Pass arguments to `delete_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new + # + # # Call the delete_disk_migration_job method. + # result = client.delete_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def delete_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_disk_migration_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.delete_disk_migration_job request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Runs the disk migration job. + # + # @overload run_disk_migration_job(request, options = nil) + # Pass arguments to `run_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload run_disk_migration_job(name: nil) + # Pass arguments to `run_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new + # + # # Call the run_disk_migration_job method. + # result = client.run_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def run_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.run_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.run_disk_migration_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.run_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.run_disk_migration_job request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Cancels the disk migration job. + # + # @overload cancel_disk_migration_job(request, options = nil) + # Pass arguments to `cancel_disk_migration_job` via a request object, either of type + # {::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload cancel_disk_migration_job(name: nil) + # Pass arguments to `cancel_disk_migration_job` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the DiskMigrationJob. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Operation] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/vm_migration/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new + # + # # Call the cancel_disk_migration_job method. + # result = client.cancel_disk_migration_job request + # + # # The returned object is of type Gapic::Operation. You can use it to + # # check the status of an operation, cancel it, or wait for results. + # # Here is how to wait for a response. + # result.wait_until_done! timeout: 60 + # if result.response? + # p result.response + # else + # puts "No response received." + # end + # + def cancel_disk_migration_job request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.cancel_disk_migration_job.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.cancel_disk_migration_job.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.cancel_disk_migration_job.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @vm_migration_stub.cancel_disk_migration_job request, options do |result, operation| + result = ::Gapic::Operation.new result, @operations_client, options: options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the VmMigration REST API. + # + # This class represents the configuration for VmMigration REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # list_sources to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.list_sources.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.list_sources.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. # @return [::Numeric] # @!attribute [rw] metadata # Additional headers to be sent with the call. @@ -4798,6 +6284,11 @@ class Rpcs # attr_reader :fetch_inventory ## + # RPC-specific configuration for `fetch_storage_inventory` + # @return [::Gapic::Config::Method] + # + attr_reader :fetch_storage_inventory + ## # RPC-specific configuration for `list_utilization_reports` # @return [::Gapic::Config::Method] # @@ -4888,6 +6379,11 @@ class Rpcs # attr_reader :finalize_migration ## + # RPC-specific configuration for `extend_migration` + # @return [::Gapic::Config::Method] + # + attr_reader :extend_migration + ## # RPC-specific configuration for `create_clone_job` # @return [::Gapic::Config::Method] # @@ -4997,6 +6493,76 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :get_replication_cycle + ## + # RPC-specific configuration for `list_image_imports` + # @return [::Gapic::Config::Method] + # + attr_reader :list_image_imports + ## + # RPC-specific configuration for `get_image_import` + # @return [::Gapic::Config::Method] + # + attr_reader :get_image_import + ## + # RPC-specific configuration for `create_image_import` + # @return [::Gapic::Config::Method] + # + attr_reader :create_image_import + ## + # RPC-specific configuration for `delete_image_import` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_image_import + ## + # RPC-specific configuration for `list_image_import_jobs` + # @return [::Gapic::Config::Method] + # + attr_reader :list_image_import_jobs + ## + # RPC-specific configuration for `get_image_import_job` + # @return [::Gapic::Config::Method] + # + attr_reader :get_image_import_job + ## + # RPC-specific configuration for `cancel_image_import_job` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_image_import_job + ## + # RPC-specific configuration for `create_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :create_disk_migration_job + ## + # RPC-specific configuration for `list_disk_migration_jobs` + # @return [::Gapic::Config::Method] + # + attr_reader :list_disk_migration_jobs + ## + # RPC-specific configuration for `get_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :get_disk_migration_job + ## + # RPC-specific configuration for `update_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :update_disk_migration_job + ## + # RPC-specific configuration for `delete_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_disk_migration_job + ## + # RPC-specific configuration for `run_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :run_disk_migration_job + ## + # RPC-specific configuration for `cancel_disk_migration_job` + # @return [::Gapic::Config::Method] + # + attr_reader :cancel_disk_migration_job # @private def initialize parent_rpcs = nil @@ -5012,6 +6578,8 @@ def initialize parent_rpcs = nil @delete_source = ::Gapic::Config::Method.new delete_source_config fetch_inventory_config = parent_rpcs.fetch_inventory if parent_rpcs.respond_to? :fetch_inventory @fetch_inventory = ::Gapic::Config::Method.new fetch_inventory_config + fetch_storage_inventory_config = parent_rpcs.fetch_storage_inventory if parent_rpcs.respond_to? :fetch_storage_inventory + @fetch_storage_inventory = ::Gapic::Config::Method.new fetch_storage_inventory_config list_utilization_reports_config = parent_rpcs.list_utilization_reports if parent_rpcs.respond_to? :list_utilization_reports @list_utilization_reports = ::Gapic::Config::Method.new list_utilization_reports_config get_utilization_report_config = parent_rpcs.get_utilization_report if parent_rpcs.respond_to? :get_utilization_report @@ -5048,6 +6616,8 @@ def initialize parent_rpcs = nil @pause_migration = ::Gapic::Config::Method.new pause_migration_config finalize_migration_config = parent_rpcs.finalize_migration if parent_rpcs.respond_to? :finalize_migration @finalize_migration = ::Gapic::Config::Method.new finalize_migration_config + extend_migration_config = parent_rpcs.extend_migration if parent_rpcs.respond_to? :extend_migration + @extend_migration = ::Gapic::Config::Method.new extend_migration_config create_clone_job_config = parent_rpcs.create_clone_job if parent_rpcs.respond_to? :create_clone_job @create_clone_job = ::Gapic::Config::Method.new create_clone_job_config cancel_clone_job_config = parent_rpcs.cancel_clone_job if parent_rpcs.respond_to? :cancel_clone_job @@ -5092,6 +6662,34 @@ def initialize parent_rpcs = nil @list_replication_cycles = ::Gapic::Config::Method.new list_replication_cycles_config get_replication_cycle_config = parent_rpcs.get_replication_cycle if parent_rpcs.respond_to? :get_replication_cycle @get_replication_cycle = ::Gapic::Config::Method.new get_replication_cycle_config + list_image_imports_config = parent_rpcs.list_image_imports if parent_rpcs.respond_to? :list_image_imports + @list_image_imports = ::Gapic::Config::Method.new list_image_imports_config + get_image_import_config = parent_rpcs.get_image_import if parent_rpcs.respond_to? :get_image_import + @get_image_import = ::Gapic::Config::Method.new get_image_import_config + create_image_import_config = parent_rpcs.create_image_import if parent_rpcs.respond_to? :create_image_import + @create_image_import = ::Gapic::Config::Method.new create_image_import_config + delete_image_import_config = parent_rpcs.delete_image_import if parent_rpcs.respond_to? :delete_image_import + @delete_image_import = ::Gapic::Config::Method.new delete_image_import_config + list_image_import_jobs_config = parent_rpcs.list_image_import_jobs if parent_rpcs.respond_to? :list_image_import_jobs + @list_image_import_jobs = ::Gapic::Config::Method.new list_image_import_jobs_config + get_image_import_job_config = parent_rpcs.get_image_import_job if parent_rpcs.respond_to? :get_image_import_job + @get_image_import_job = ::Gapic::Config::Method.new get_image_import_job_config + cancel_image_import_job_config = parent_rpcs.cancel_image_import_job if parent_rpcs.respond_to? :cancel_image_import_job + @cancel_image_import_job = ::Gapic::Config::Method.new cancel_image_import_job_config + create_disk_migration_job_config = parent_rpcs.create_disk_migration_job if parent_rpcs.respond_to? :create_disk_migration_job + @create_disk_migration_job = ::Gapic::Config::Method.new create_disk_migration_job_config + list_disk_migration_jobs_config = parent_rpcs.list_disk_migration_jobs if parent_rpcs.respond_to? :list_disk_migration_jobs + @list_disk_migration_jobs = ::Gapic::Config::Method.new list_disk_migration_jobs_config + get_disk_migration_job_config = parent_rpcs.get_disk_migration_job if parent_rpcs.respond_to? :get_disk_migration_job + @get_disk_migration_job = ::Gapic::Config::Method.new get_disk_migration_job_config + update_disk_migration_job_config = parent_rpcs.update_disk_migration_job if parent_rpcs.respond_to? :update_disk_migration_job + @update_disk_migration_job = ::Gapic::Config::Method.new update_disk_migration_job_config + delete_disk_migration_job_config = parent_rpcs.delete_disk_migration_job if parent_rpcs.respond_to? :delete_disk_migration_job + @delete_disk_migration_job = ::Gapic::Config::Method.new delete_disk_migration_job_config + run_disk_migration_job_config = parent_rpcs.run_disk_migration_job if parent_rpcs.respond_to? :run_disk_migration_job + @run_disk_migration_job = ::Gapic::Config::Method.new run_disk_migration_job_config + cancel_disk_migration_job_config = parent_rpcs.cancel_disk_migration_job if parent_rpcs.respond_to? :cancel_disk_migration_job + @cancel_disk_migration_job = ::Gapic::Config::Method.new cancel_disk_migration_job_config yield self if block_given? end diff --git a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/service_stub.rb b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/service_stub.rb index 0664d19edb43..5b0753440187 100644 --- a/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/service_stub.rb +++ b/google-cloud-vm_migration-v1/lib/google/cloud/vm_migration/v1/vm_migration/rest/service_stub.rb @@ -313,6 +313,46 @@ def fetch_inventory request_pb, options = nil end end + ## + # Baseline implementation for the fetch_storage_inventory REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse] + # A result object deserialized from the server's reply + def fetch_storage_inventory request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_fetch_storage_inventory_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "fetch_storage_inventory", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the list_utilization_reports REST call # @@ -1033,6 +1073,46 @@ def finalize_migration request_pb, options = nil end end + ## + # Baseline implementation for the extend_migration REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ExtendMigrationRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def extend_migration request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_extend_migration_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "extend_migration", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # Baseline implementation for the create_clone_job REST call # @@ -1914,139 +1994,720 @@ def get_replication_cycle request_pb, options = nil end ## - # @private + # Baseline implementation for the list_image_imports REST call # - # GRPC transcoding helper method for the list_sources REST call - # - # @param request_pb [::Google::Cloud::VMMigration::V1::ListSourcesRequest] + # @param request_pb [::Google::Cloud::VMMigration::V1::ListImageImportsRequest] # A request object representing the call parameters. Required. - # @return [Array(String, [String, nil], Hash{String => String})] - # Uri, Body, Query string parameters - def self.transcode_list_sources_request request_pb - transcoder = Gapic::Rest::GrpcTranscoder.new - .with_bindings( - uri_method: :get, - uri_template: "/v1/{parent}/sources", - matches: [ - ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] - ] - ) - transcoder.transcode request_pb - end - - ## - # @private + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # GRPC transcoding helper method for the get_source REST call + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ListImageImportsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @param request_pb [::Google::Cloud::VMMigration::V1::GetSourceRequest] - # A request object representing the call parameters. Required. - # @return [Array(String, [String, nil], Hash{String => String})] - # Uri, Body, Query string parameters - def self.transcode_get_source_request request_pb - transcoder = Gapic::Rest::GrpcTranscoder.new - .with_bindings( - uri_method: :get, - uri_template: "/v1/{name}", - matches: [ - ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] - ] - ) - transcoder.transcode request_pb + # @return [::Google::Cloud::VMMigration::V1::ListImageImportsResponse] + # A result object deserialized from the server's reply + def list_image_imports request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_image_imports_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_image_imports", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::ListImageImportsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end end ## - # @private + # Baseline implementation for the get_image_import REST call # - # GRPC transcoding helper method for the create_source REST call - # - # @param request_pb [::Google::Cloud::VMMigration::V1::CreateSourceRequest] + # @param request_pb [::Google::Cloud::VMMigration::V1::GetImageImportRequest] # A request object representing the call parameters. Required. - # @return [Array(String, [String, nil], Hash{String => String})] - # Uri, Body, Query string parameters - def self.transcode_create_source_request request_pb - transcoder = Gapic::Rest::GrpcTranscoder.new - .with_bindings( - uri_method: :post, - uri_template: "/v1/{parent}/sources", - body: "source", - matches: [ - ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] - ] - ) - transcoder.transcode request_pb - end - - ## - # @private + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # GRPC transcoding helper method for the update_source REST call + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ImageImport] + # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @param request_pb [::Google::Cloud::VMMigration::V1::UpdateSourceRequest] - # A request object representing the call parameters. Required. - # @return [Array(String, [String, nil], Hash{String => String})] - # Uri, Body, Query string parameters - def self.transcode_update_source_request request_pb - transcoder = Gapic::Rest::GrpcTranscoder.new - .with_bindings( - uri_method: :patch, - uri_template: "/v1/{source.name}", - body: "source", - matches: [ - ["source.name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] - ] - ) - transcoder.transcode request_pb + # @return [::Google::Cloud::VMMigration::V1::ImageImport] + # A result object deserialized from the server's reply + def get_image_import request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_image_import_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_image_import", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::ImageImport.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end end ## - # @private - # - # GRPC transcoding helper method for the delete_source REST call + # Baseline implementation for the create_image_import REST call # - # @param request_pb [::Google::Cloud::VMMigration::V1::DeleteSourceRequest] + # @param request_pb [::Google::Cloud::VMMigration::V1::CreateImageImportRequest] # A request object representing the call parameters. Required. - # @return [Array(String, [String, nil], Hash{String => String})] - # Uri, Body, Query string parameters - def self.transcode_delete_source_request request_pb - transcoder = Gapic::Rest::GrpcTranscoder.new - .with_bindings( - uri_method: :delete, - uri_template: "/v1/{name}", - matches: [ - ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] - ] - ) - transcoder.transcode request_pb - end - - ## - # @private + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. # - # GRPC transcoding helper method for the fetch_inventory REST call + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] # - # @param request_pb [::Google::Cloud::VMMigration::V1::FetchInventoryRequest] - # A request object representing the call parameters. Required. - # @return [Array(String, [String, nil], Hash{String => String})] - # Uri, Body, Query string parameters - def self.transcode_fetch_inventory_request request_pb - transcoder = Gapic::Rest::GrpcTranscoder.new - .with_bindings( - uri_method: :get, - uri_template: "/v1/{source}:fetchInventory", - matches: [ - ["source", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] - ] - ) - transcoder.transcode request_pb + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def create_image_import request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_image_import_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_image_import", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end end ## - # @private - # - # GRPC transcoding helper method for the list_utilization_reports REST call + # Baseline implementation for the delete_image_import REST call # - # @param request_pb [::Google::Cloud::VMMigration::V1::ListUtilizationReportsRequest] + # @param request_pb [::Google::Cloud::VMMigration::V1::DeleteImageImportRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def delete_image_import request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_image_import_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_image_import", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_image_import_jobs REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse] + # A result object deserialized from the server's reply + def list_image_import_jobs request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_image_import_jobs_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_image_import_jobs", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_image_import_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::GetImageImportJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ImageImportJob] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::ImageImportJob] + # A result object deserialized from the server's reply + def get_image_import_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_image_import_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_image_import_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::ImageImportJob.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the cancel_image_import_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def cancel_image_import_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_cancel_image_import_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "cancel_image_import_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the create_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def create_disk_migration_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_disk_migration_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_disk_migration_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_disk_migration_jobs REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse] + # A result object deserialized from the server's reply + def list_disk_migration_jobs request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_disk_migration_jobs_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_disk_migration_jobs", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # A result object deserialized from the server's reply + def get_disk_migration_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_disk_migration_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_disk_migration_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::VMMigration::V1::DiskMigrationJob.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def update_disk_migration_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_disk_migration_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_disk_migration_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def delete_disk_migration_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_disk_migration_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_disk_migration_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the run_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def run_disk_migration_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_run_disk_migration_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "run_disk_migration_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the cancel_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Longrunning::Operation] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Longrunning::Operation] + # A result object deserialized from the server's reply + def cancel_disk_migration_job request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_cancel_disk_migration_job_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "cancel_disk_migration_job", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the list_sources REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListSourcesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_sources_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/sources", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_source REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::GetSourceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_source_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_source REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CreateSourceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_source_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/sources", + body: "source", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_source REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::UpdateSourceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_source_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{source.name}", + body: "source", + matches: [ + ["source.name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_source REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::DeleteSourceRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_source_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_inventory REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::FetchInventoryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_inventory_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{source}:fetchInventory", + matches: [ + ["source", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the fetch_storage_inventory REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_fetch_storage_inventory_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{source}:fetchStorageInventory", + matches: [ + ["source", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_utilization_reports REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListUtilizationReportsRequest] # A request object representing the call parameters. Required. # @return [Array(String, [String, nil], Hash{String => String})] # Uri, Body, Query string parameters @@ -2428,6 +3089,28 @@ def self.transcode_finalize_migration_request request_pb transcoder.transcode request_pb end + ## + # @private + # + # GRPC transcoding helper method for the extend_migration REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ExtendMigrationRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_extend_migration_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{migrating_vm}:extendMigration", + body: "*", + matches: [ + ["migrating_vm", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/migratingVms/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + ## # @private # @@ -2899,6 +3582,306 @@ def self.transcode_get_replication_cycle_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the list_image_imports REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListImageImportsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_image_imports_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/imageImports", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_image_import REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::GetImageImportRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_image_import_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_image_import REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CreateImageImportRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_image_import_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/imageImports", + body: "image_import", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_image_import REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::DeleteImageImportRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_image_import_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_image_import_jobs REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_image_import_jobs_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/imageImportJobs", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_image_import_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::GetImageImportJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_image_import_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/imageImportJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the cancel_image_import_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_cancel_image_import_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:cancel", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/imageImports/[^/]+/imageImportJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_disk_migration_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/diskMigrationJobs", + body: "disk_migration_job", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_disk_migration_jobs REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_disk_migration_jobs_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/diskMigrationJobs", + matches: [ + ["parent", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_disk_migration_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/diskMigrationJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_disk_migration_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{disk_migration_job.name}", + body: "disk_migration_job", + matches: [ + ["disk_migration_job.name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/diskMigrationJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_disk_migration_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/diskMigrationJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the run_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_run_disk_migration_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:run", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/diskMigrationJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the cancel_disk_migration_job REST call + # + # @param request_pb [::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_cancel_disk_migration_job_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{name}:cancel", + body: "*", + matches: [ + ["name", %r{^projects/[^/]+/locations/[^/]+/sources/[^/]+/diskMigrationJobs/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-vm_migration-v1/lib/google/cloud/vmmigration/v1/vmmigration_pb.rb b/google-cloud-vm_migration-v1/lib/google/cloud/vmmigration/v1/vmmigration_pb.rb index 8b3f435c685c..3015b241f73a 100755 --- a/google-cloud-vm_migration-v1/lib/google/cloud/vmmigration/v1/vmmigration_pb.rb +++ b/google-cloud-vm_migration-v1/lib/google/cloud/vmmigration/v1/vmmigration_pb.rb @@ -7,16 +7,18 @@ require 'google/api/annotations_pb' require 'google/api/client_pb' require 'google/api/field_behavior_pb' +require 'google/api/field_info_pb' require 'google/api/resource_pb' require 'google/longrunning/operations_pb' require 'google/protobuf/duration_pb' +require 'google/protobuf/empty_pb' require 'google/protobuf/field_mask_pb' require 'google/protobuf/timestamp_pb' require 'google/rpc/error_details_pb' require 'google/rpc/status_pb' -descriptor_data = "\n-google/cloud/vmmigration/v1/vmmigration.proto\x12\x1bgoogle.cloud.vmmigration.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/rpc/error_details.proto\x1a\x17google/rpc/status.proto\"\x8d\x05\n\x10ReplicationCycle\x12\x0c\n\x04name\x18\r \x01(\t\x12\x14\n\x0c\x63ycle_number\x18\n \x01(\x05\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x14total_pause_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1c\n\x10progress_percent\x18\x05 \x01(\x05\x42\x02\x18\x01\x12\x35\n\x05steps\x18\t \x03(\x0b\x32&.google.cloud.vmmigration.v1.CycleStep\x12\x42\n\x05state\x18\x0b \x01(\x0e\x32\x33.google.cloud.vmmigration.v1.ReplicationCycle.State\x12!\n\x05\x65rror\x18\x0c \x01(\x0b\x32\x12.google.rpc.Status\"R\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06PAUSED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tSUCCEEDED\x10\x04:\xad\x01\xea\x41\xa9\x01\n+vmmigration.googleapis.com/ReplicationCycle\x12zprojects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}/replicationCycles/{replication_cycle}\"\xe0\x02\n\tCycleStep\x12\\\n\x18initializing_replication\x18\x03 \x01(\x0b\x32\x38.google.cloud.vmmigration.v1.InitializingReplicationStepH\x00\x12\x43\n\x0breplicating\x18\x04 \x01(\x0b\x32,.google.cloud.vmmigration.v1.ReplicatingStepH\x00\x12J\n\x0fpost_processing\x18\x05 \x01(\x0b\x32/.google.cloud.vmmigration.v1.PostProcessingStepH\x00\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04step\"\x1d\n\x1bInitializingReplicationStep\"\xa9\x01\n\x0fReplicatingStep\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x03\x12\x18\n\x10replicated_bytes\x18\x02 \x01(\x03\x12\x31\n)last_two_minutes_average_bytes_per_second\x18\x03 \x01(\x03\x12\x34\n,last_thirty_minutes_average_bytes_per_second\x18\x04 \x01(\x03\"\x14\n\x12PostProcessingStep\"E\n\x0fReplicationSync\x12\x32\n\x0elast_sync_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xa4\x0b\n\x0bMigratingVm\x12\x62\n\x1e\x63ompute_engine_target_defaults\x18\x1a \x01(\x0b\x32\x38.google.cloud.vmmigration.v1.ComputeEngineTargetDefaultsH\x00\x12U\n\x15\x61ws_source_vm_details\x18\x1d \x01(\x0b\x32/.google.cloud.vmmigration.v1.AwsSourceVmDetailsB\x03\xe0\x41\x03H\x01\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0csource_vm_id\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x12 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12;\n\x06policy\x18\x08 \x01(\x0b\x32+.google.cloud.vmmigration.v1.SchedulePolicy\x12\x34\n\x0b\x63reate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x44\n\tlast_sync\x18\x0b \x01(\x0b\x32,.google.cloud.vmmigration.v1.ReplicationSyncB\x03\xe0\x41\x03\x12\x42\n\x05state\x18\x17 \x01(\x0e\x32..google.cloud.vmmigration.v1.MigratingVm.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12M\n\x11\x63urrent_sync_info\x18\r \x01(\x0b\x32-.google.cloud.vmmigration.v1.ReplicationCycleB\x03\xe0\x41\x03\x12\x37\n\x05group\x18\x0f \x01(\tB(\xe0\x41\x03\xfa\x41\"\x12 vmmigration.googleapis.com/Group\x12\x44\n\x06labels\x18\x10 \x03(\x0b\x32\x34.google.cloud.vmmigration.v1.MigratingVm.LabelsEntry\x12\x45\n\x11recent_clone_jobs\x18\x11 \x03(\x0b\x32%.google.cloud.vmmigration.v1.CloneJobB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x13 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12I\n\x13recent_cutover_jobs\x18\x14 \x03(\x0b\x32\'.google.cloud.vmmigration.v1.CutoverJobB\x03\xe0\x41\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb7\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\t\n\x05READY\x10\x02\x12\x0e\n\nFIRST_SYNC\x10\x03\x12\n\n\x06\x41\x43TIVE\x10\x04\x12\x10\n\x0c\x43UTTING_OVER\x10\x07\x12\x0b\n\x07\x43UTOVER\x10\x08\x12\x0e\n\nFINAL_SYNC\x10\t\x12\n\n\x06PAUSED\x10\n\x12\x0e\n\nFINALIZING\x10\x0b\x12\r\n\tFINALIZED\x10\x0c\x12\t\n\x05\x45RROR\x10\r:\x81\x01\xea\x41~\n&vmmigration.googleapis.com/MigratingVm\x12Tprojects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}B\x14\n\x12target_vm_defaultsB\x13\n\x11source_vm_details\"\xf9\x05\n\x08\x43loneJob\x12\x65\n\x1d\x63ompute_engine_target_details\x18\x14 \x01(\x0b\x32\x37.google.cloud.vmmigration.v1.ComputeEngineTargetDetailsB\x03\xe0\x41\x03H\x00\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x16 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12?\n\x05state\x18\x0c \x01(\x0e\x32+.google.cloud.vmmigration.v1.CloneJob.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x0e \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x11 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12:\n\x05steps\x18\x17 \x03(\x0b\x32&.google.cloud.vmmigration.v1.CloneStepB\x03\xe0\x41\x03\"\x82\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x12\r\n\tCANCELLED\x10\x05\x12\x0e\n\nCANCELLING\x10\x06\x12\x0f\n\x0b\x41\x44\x41PTING_OS\x10\x07:\x95\x01\xea\x41\x91\x01\n#vmmigration.googleapis.com/CloneJob\x12jprojects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}/cloneJobs/{clone_job}B\x13\n\x11target_vm_details\"\xe5\x02\n\tCloneStep\x12\x42\n\x0b\x61\x64\x61pting_os\x18\x03 \x01(\x0b\x32+.google.cloud.vmmigration.v1.AdaptingOSStepH\x00\x12O\n\x12preparing_vm_disks\x18\x04 \x01(\x0b\x32\x31.google.cloud.vmmigration.v1.PreparingVMDisksStepH\x00\x12]\n\x19instantiating_migrated_vm\x18\x05 \x01(\x0b\x32\x38.google.cloud.vmmigration.v1.InstantiatingMigratedVMStepH\x00\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04step\"\x10\n\x0e\x41\x64\x61ptingOSStep\"\x16\n\x14PreparingVMDisksStep\"\x1d\n\x1bInstantiatingMigratedVMStep\"\xc0\x06\n\nCutoverJob\x12\x65\n\x1d\x63ompute_engine_target_details\x18\x0e \x01(\x0b\x32\x37.google.cloud.vmmigration.v1.ComputeEngineTargetDetailsB\x03\xe0\x41\x03H\x00\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x41\n\x05state\x18\x05 \x01(\x0e\x32-.google.cloud.vmmigration.v1.CutoverJob.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1d\n\x10progress_percent\x18\r \x01(\x05\x42\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\t \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x1a\n\rstate_message\x18\n \x01(\tB\x03\xe0\x41\x03\x12<\n\x05steps\x18\x11 \x03(\x0b\x32(.google.cloud.vmmigration.v1.CutoverStepB\x03\xe0\x41\x03\"\x82\x01\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\r\n\tCANCELLED\x10\x04\x12\x0e\n\nCANCELLING\x10\x05\x12\n\n\x06\x41\x43TIVE\x10\x06\x12\x0f\n\x0b\x41\x44\x41PTING_OS\x10\x07:\x9b\x01\xea\x41\x97\x01\n%vmmigration.googleapis.com/CutoverJob\x12nprojects/{project}/locations/{location}/sources/{source}/migratingVms/{migrating_vm}/cutoverJobs/{cutover_job}B\x13\n\x11target_vm_details\"\x97\x04\n\x0b\x43utoverStep\x12S\n\x1aprevious_replication_cycle\x18\x03 \x01(\x0b\x32-.google.cloud.vmmigration.v1.ReplicationCycleH\x00\x12X\n\x17shutting_down_source_vm\x18\x04 \x01(\x0b\x32\x35.google.cloud.vmmigration.v1.ShuttingDownSourceVMStepH\x00\x12\x43\n\nfinal_sync\x18\x05 \x01(\x0b\x32-.google.cloud.vmmigration.v1.ReplicationCycleH\x00\x12O\n\x12preparing_vm_disks\x18\x06 \x01(\x0b\x32\x31.google.cloud.vmmigration.v1.PreparingVMDisksStepH\x00\x12]\n\x19instantiating_migrated_vm\x18\x07 \x01(\x0b\x32\x38.google.cloud.vmmigration.v1.InstantiatingMigratedVMStepH\x00\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\n\x04step\"\x1a\n\x18ShuttingDownSourceVMStep\"\xc2\x01\n\x15\x43reateCloneJobRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#vmmigration.googleapis.com/CloneJob\x12\x19\n\x0c\x63lone_job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12=\n\tclone_job\x18\x03 \x01(\x0b\x32%.google.cloud.vmmigration.v1.CloneJobB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"R\n\x15\x43\x61ncelCloneJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#vmmigration.googleapis.com/CloneJob\"\x18\n\x16\x43\x61ncelCloneJobResponse\"\xb0\x01\n\x14ListCloneJobsRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#vmmigration.googleapis.com/CloneJob\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x8f\x01\n\x15ListCloneJobsResponse\x12>\n\nclone_jobs\x18\x01 \x03(\x0b\x32%.google.cloud.vmmigration.v1.CloneJobB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"O\n\x12GetCloneJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#vmmigration.googleapis.com/CloneJob\"\x82\x04\n\x06Source\x12\x42\n\x06vmware\x18\n \x01(\x0b\x32\x30.google.cloud.vmmigration.v1.VmwareSourceDetailsH\x00\x12<\n\x03\x61ws\x18\x0c \x01(\x0b\x32-.google.cloud.vmmigration.v1.AwsSourceDetailsH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12?\n\x06labels\x18\x04 \x03(\x0b\x32/.google.cloud.vmmigration.v1.Source.LabelsEntry\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:`\xea\x41]\n!vmmigration.googleapis.com/Source\x12\x38projects/{project}/locations/{location}/sources/{source}B\x10\n\x0esource_details\"f\n\x13VmwareSourceDetails\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x15\n\x08password\x18\x02 \x01(\tB\x03\xe0\x41\x04\x12\x12\n\nvcenter_ip\x18\x03 \x01(\t\x12\x12\n\nthumbprint\x18\x04 \x01(\t\"\x8f\x06\n\x10\x41wsSourceDetails\x12^\n\x10\x61\x63\x63\x65ss_key_creds\x18\x0b \x01(\x0b\x32\x42.google.cloud.vmmigration.v1.AwsSourceDetails.AccessKeyCredentialsH\x00\x12\x17\n\naws_region\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12G\n\x05state\x18\x04 \x01(\x0e\x32\x33.google.cloud.vmmigration.v1.AwsSourceDetails.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12M\n\x12inventory_tag_list\x18\n \x03(\x0b\x32\x31.google.cloud.vmmigration.v1.AwsSourceDetails.Tag\x12&\n\x1einventory_security_group_names\x18\x07 \x03(\t\x12t\n\x1dmigration_resources_user_tags\x18\x08 \x03(\x0b\x32M.google.cloud.vmmigration.v1.AwsSourceDetails.MigrationResourcesUserTagsEntry\x12\x16\n\tpublic_ip\x18\t \x01(\tB\x03\xe0\x41\x03\x1aM\n\x14\x41\x63\x63\x65ssKeyCredentials\x12\x15\n\raccess_key_id\x18\x01 \x01(\t\x12\x1e\n\x11secret_access_key\x18\x02 \x01(\tB\x03\xe0\x41\x04\x1a!\n\x03Tag\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x1a\x41\n\x1fMigrationResourcesUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\n\n\x06\x41\x43TIVE\x10\x03\x42\x12\n\x10\x63redentials_type\"\xfa\x06\n\x13\x44\x61tacenterConnector\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fregistration_id\x18\x0c \x01(\tB\x03\xe0\x41\x05\x12\x17\n\x0fservice_account\x18\x05 \x01(\t\x12\x0f\n\x07version\x18\x06 \x01(\t\x12\x13\n\x06\x62ucket\x18\n \x01(\tB\x03\xe0\x41\x03\x12J\n\x05state\x18\x07 \x01(\x0e\x32\x36.google.cloud.vmmigration.v1.DatacenterConnector.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x0b \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12-\n appliance_infrastructure_version\x18\r \x01(\tB\x03\xe0\x41\x03\x12\'\n\x1a\x61ppliance_software_version\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12N\n\x12\x61vailable_versions\x18\x0f \x01(\x0b\x32-.google.cloud.vmmigration.v1.AvailableUpdatesB\x03\xe0\x41\x03\x12G\n\x0eupgrade_status\x18\x10 \x01(\x0b\x32*.google.cloud.vmmigration.v1.UpgradeStatusB\x03\xe0\x41\x03\"P\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\n\n\x06\x41\x43TIVE\x10\x04:\x9a\x01\xea\x41\x96\x01\n.vmmigration.googleapis.com/DatacenterConnector\x12\x64projects/{project}/locations/{location}/sources/{source}/datacenterConnectors/{datacenter_connector}\"\x96\x02\n\rUpgradeStatus\x12\x0f\n\x07version\x18\x01 \x01(\t\x12?\n\x05state\x18\x02 \x01(\x0e\x32\x30.google.cloud.vmmigration.v1.UpgradeStatus.State\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.Status\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10previous_version\x18\x05 \x01(\t\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\"\xab\x01\n\x10\x41vailableUpdates\x12O\n\x18new_deployable_appliance\x18\x01 \x01(\x0b\x32-.google.cloud.vmmigration.v1.ApplianceVersion\x12\x46\n\x0fin_place_update\x18\x02 \x01(\x0b\x32-.google.cloud.vmmigration.v1.ApplianceVersion\"]\n\x10\x41pplianceVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x10\n\x08\x63ritical\x18\x03 \x01(\x08\x12\x19\n\x11release_notes_uri\x18\x04 \x01(\t\"\xac\x01\n\x12ListSourcesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!vmmigration.googleapis.com/Source\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x88\x01\n\x13ListSourcesResponse\x12\x39\n\x07sources\x18\x01 \x03(\x0b\x32#.google.cloud.vmmigration.v1.SourceB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"K\n\x10GetSourceRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\"\xb6\x01\n\x13\x43reateSourceRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!vmmigration.googleapis.com/Source\x12\x16\n\tsource_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x38\n\x06source\x18\x03 \x01(\x0b\x32#.google.cloud.vmmigration.v1.SourceB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x94\x01\n\x13UpdateSourceRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x38\n\x06source\x18\x02 \x01(\x0b\x32#.google.cloud.vmmigration.v1.SourceB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"g\n\x13\x44\x65leteSourceRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"i\n\x15\x46\x65tchInventoryRequest\x12\x39\n\x06source\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\x12\x15\n\rforce_refresh\x18\x02 \x01(\x08\"\x98\x04\n\x0fVmwareVmDetails\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x15\n\rdatacenter_id\x18\x02 \x01(\t\x12\x1e\n\x16\x64\x61tacenter_description\x18\x03 \x01(\t\x12\x0c\n\x04uuid\x18\x04 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\t\x12L\n\x0bpower_state\x18\x06 \x01(\x0e\x32\x37.google.cloud.vmmigration.v1.VmwareVmDetails.PowerState\x12\x11\n\tcpu_count\x18\x07 \x01(\x05\x12\x11\n\tmemory_mb\x18\x08 \x01(\x05\x12\x12\n\ndisk_count\x18\t \x01(\x05\x12\x1c\n\x14\x63ommitted_storage_mb\x18\x0c \x01(\x03\x12\x19\n\x11guest_description\x18\x0b \x01(\t\x12Q\n\x0b\x62oot_option\x18\r \x01(\x0e\x32\x37.google.cloud.vmmigration.v1.VmwareVmDetails.BootOptionB\x03\xe0\x41\x03\"I\n\nPowerState\x12\x1b\n\x17POWER_STATE_UNSPECIFIED\x10\x00\x12\x06\n\x02ON\x10\x01\x12\x07\n\x03OFF\x10\x02\x12\r\n\tSUSPENDED\x10\x03\"<\n\nBootOption\x12\x1b\n\x17\x42OOT_OPTION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"\xdb\x08\n\x0c\x41wsVmDetails\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x11\n\tsource_id\x18\x03 \x01(\t\x12\x1a\n\x12source_description\x18\x04 \x01(\t\x12N\n\x0bpower_state\x18\x05 \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.AwsVmDetails.PowerStateB\x03\xe0\x41\x03\x12\x11\n\tcpu_count\x18\x06 \x01(\x05\x12\x11\n\tmemory_mb\x18\x07 \x01(\x05\x12\x12\n\ndisk_count\x18\x08 \x01(\x05\x12\x1c\n\x14\x63ommitted_storage_mb\x18\t \x01(\x03\x12\x16\n\x0eos_description\x18\n \x01(\t\x12I\n\x0b\x62oot_option\x18\x0b \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.AwsVmDetails.BootOption\x12\x15\n\rinstance_type\x18\x0c \x01(\t\x12\x0e\n\x06vpc_id\x18\r \x01(\t\x12\x46\n\x0fsecurity_groups\x18\x0e \x03(\x0b\x32-.google.cloud.vmmigration.v1.AwsSecurityGroup\x12\x41\n\x04tags\x18\x0f \x03(\x0b\x32\x33.google.cloud.vmmigration.v1.AwsVmDetails.TagsEntry\x12\x0c\n\x04zone\x18\x10 \x01(\t\x12[\n\x13virtualization_type\x18\x11 \x01(\x0e\x32>.google.cloud.vmmigration.v1.AwsVmDetails.VmVirtualizationType\x12N\n\x0c\x61rchitecture\x18\x12 \x01(\x0e\x32\x38.google.cloud.vmmigration.v1.AwsVmDetails.VmArchitecture\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"V\n\nPowerState\x12\x1b\n\x17POWER_STATE_UNSPECIFIED\x10\x00\x12\x06\n\x02ON\x10\x01\x12\x07\n\x03OFF\x10\x02\x12\r\n\tSUSPENDED\x10\x03\x12\x0b\n\x07PENDING\x10\x04\"<\n\nBootOption\x12\x1b\n\x17\x42OOT_OPTION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"X\n\x14VmVirtualizationType\x12&\n\"VM_VIRTUALIZATION_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03HVM\x10\x01\x12\x0f\n\x0bPARAVIRTUAL\x10\x02\"b\n\x0eVmArchitecture\x12\x1f\n\x1bVM_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x08\n\x04I386\x10\x01\x12\n\n\x06X86_64\x10\x02\x12\t\n\x05\x41RM64\x10\x03\x12\x0e\n\nX86_64_MAC\x10\x04\",\n\x10\x41wsSecurityGroup\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"Q\n\x10VmwareVmsDetails\x12=\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32,.google.cloud.vmmigration.v1.VmwareVmDetails\"K\n\rAwsVmsDetails\x12:\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32).google.cloud.vmmigration.v1.AwsVmDetails\"\xdf\x01\n\x16\x46\x65tchInventoryResponse\x12\x43\n\nvmware_vms\x18\x01 \x01(\x0b\x32-.google.cloud.vmmigration.v1.VmwareVmsDetailsH\x00\x12=\n\x07\x61ws_vms\x18\x03 \x01(\x0b\x32*.google.cloud.vmmigration.v1.AwsVmsDetailsH\x00\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x42\x0b\n\tSourceVms\"\x9c\x06\n\x11UtilizationReport\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12H\n\x05state\x18\x03 \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.UtilizationReport.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12L\n\ntime_frame\x18\x07 \x01(\x0e\x32\x38.google.cloud.vmmigration.v1.UtilizationReport.TimeFrame\x12\x37\n\x0e\x66rame_end_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x15\n\x08vm_count\x18\t \x01(\x05\x42\x03\xe0\x41\x03\x12;\n\x03vms\x18\n \x03(\x0b\x32..google.cloud.vmmigration.v1.VmUtilizationInfo\"G\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"F\n\tTimeFrame\x12\x1a\n\x16TIME_FRAME_UNSPECIFIED\x10\x00\x12\x08\n\x04WEEK\x10\x01\x12\t\n\x05MONTH\x10\x02\x12\x08\n\x04YEAR\x10\x03:\x94\x01\xea\x41\x90\x01\n,vmmigration.googleapis.com/UtilizationReport\x12`projects/{project}/locations/{location}/sources/{source}/utilizationReports/{utilization_report}\"\xc2\x01\n\x11VmUtilizationInfo\x12I\n\x11vmware_vm_details\x18\x01 \x01(\x0b\x32,.google.cloud.vmmigration.v1.VmwareVmDetailsH\x00\x12\r\n\x05vm_id\x18\x03 \x01(\t\x12\x46\n\x0butilization\x18\x02 \x01(\x0b\x32\x31.google.cloud.vmmigration.v1.VmUtilizationMetricsB\x0b\n\tVmDetails\"\x98\x02\n\x14VmUtilizationMetrics\x12\x17\n\x0f\x63pu_max_percent\x18\t \x01(\x05\x12\x1b\n\x13\x63pu_average_percent\x18\n \x01(\x05\x12\x1a\n\x12memory_max_percent\x18\x0b \x01(\x05\x12\x1e\n\x16memory_average_percent\x18\x0c \x01(\x05\x12\x1d\n\x15\x64isk_io_rate_max_kbps\x18\r \x01(\x03\x12!\n\x19\x64isk_io_rate_average_kbps\x18\x0e \x01(\x03\x12#\n\x1bnetwork_throughput_max_kbps\x18\x0f \x01(\x03\x12\'\n\x1fnetwork_throughput_average_kbps\x18\x10 \x01(\x03\"\x89\x02\n\x1dListUtilizationReportsRequest\x12\x44\n\x06parent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\x12,vmmigration.googleapis.com/UtilizationReport\x12\x45\n\x04view\x18\x02 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.UtilizationReportViewB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xaa\x01\n\x1eListUtilizationReportsResponse\x12P\n\x13utilization_reports\x18\x01 \x03(\x0b\x32..google.cloud.vmmigration.v1.UtilizationReportB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\xa8\x01\n\x1bGetUtilizationReportRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,vmmigration.googleapis.com/UtilizationReport\x12\x45\n\x04view\x18\x02 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.UtilizationReportViewB\x03\xe0\x41\x01\"\xef\x01\n\x1e\x43reateUtilizationReportRequest\x12\x44\n\x06parent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\x12,vmmigration.googleapis.com/UtilizationReport\x12O\n\x12utilization_report\x18\x02 \x01(\x0b\x32..google.cloud.vmmigration.v1.UtilizationReportB\x03\xe0\x41\x02\x12\"\n\x15utilization_report_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"}\n\x1e\x44\x65leteUtilizationReportRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,vmmigration.googleapis.com/UtilizationReport\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xb0\x01\n ListDatacenterConnectorsResponse\x12T\n\x15\x64\x61tacenter_connectors\x18\x01 \x03(\x0b\x32\x30.google.cloud.vmmigration.v1.DatacenterConnectorB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"e\n\x1dGetDatacenterConnectorRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.vmmigration.googleapis.com/DatacenterConnector\"\xf9\x01\n CreateDatacenterConnectorRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.vmmigration.googleapis.com/DatacenterConnector\x12$\n\x17\x64\x61tacenter_connector_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12S\n\x14\x64\x61tacenter_connector\x18\x03 \x01(\x0b\x32\x30.google.cloud.vmmigration.v1.DatacenterConnectorB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"|\n DeleteDatacenterConnectorRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.vmmigration.googleapis.com/DatacenterConnector\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x83\x01\n\x17UpgradeApplianceRequest\x12T\n\x14\x64\x61tacenter_connector\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.vmmigration.googleapis.com/DatacenterConnector\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x1a\n\x18UpgradeApplianceResponse\"\xc6\x01\n\x1fListDatacenterConnectorsRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.vmmigration.googleapis.com/DatacenterConnector\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xff\x07\n\x1b\x43omputeEngineTargetDefaults\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\x12\x45\n\x0etarget_project\x18\x02 \x01(\tB-\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x0c\n\x04zone\x18\x03 \x01(\t\x12\x1b\n\x13machine_type_series\x18\x04 \x01(\t\x12\x14\n\x0cmachine_type\x18\x05 \x01(\t\x12\x14\n\x0cnetwork_tags\x18\x06 \x03(\t\x12I\n\x12network_interfaces\x18\x07 \x03(\x0b\x32-.google.cloud.vmmigration.v1.NetworkInterface\x12\x17\n\x0fservice_account\x18\x08 \x01(\t\x12\x45\n\tdisk_type\x18\t \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskType\x12T\n\x06labels\x18\n \x03(\x0b\x32\x44.google.cloud.vmmigration.v1.ComputeEngineTargetDefaults.LabelsEntry\x12K\n\x0clicense_type\x18\x0b \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.ComputeEngineLicenseType\x12I\n\x0f\x61pplied_license\x18\x0c \x01(\x0b\x32+.google.cloud.vmmigration.v1.AppliedLicenseB\x03\xe0\x41\x03\x12J\n\x12\x63ompute_scheduling\x18\r \x01(\x0b\x32..google.cloud.vmmigration.v1.ComputeScheduling\x12\x13\n\x0bsecure_boot\x18\x0e \x01(\x08\x12N\n\x0b\x62oot_option\x18\x0f \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.ComputeEngineBootOptionB\x03\xe0\x41\x03\x12X\n\x08metadata\x18\x10 \x03(\x0b\x32\x46.google.cloud.vmmigration.v1.ComputeEngineTargetDefaults.MetadataEntry\x12\x1b\n\x13\x61\x64\x64itional_licenses\x18\x11 \x03(\t\x12\x10\n\x08hostname\x18\x12 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xbc\x07\n\x1a\x43omputeEngineTargetDetails\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x0c\n\x04zone\x18\x03 \x01(\t\x12\x1b\n\x13machine_type_series\x18\x04 \x01(\t\x12\x14\n\x0cmachine_type\x18\x05 \x01(\t\x12\x14\n\x0cnetwork_tags\x18\x06 \x03(\t\x12I\n\x12network_interfaces\x18\x07 \x03(\x0b\x32-.google.cloud.vmmigration.v1.NetworkInterface\x12\x17\n\x0fservice_account\x18\x08 \x01(\t\x12\x45\n\tdisk_type\x18\t \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskType\x12S\n\x06labels\x18\n \x03(\x0b\x32\x43.google.cloud.vmmigration.v1.ComputeEngineTargetDetails.LabelsEntry\x12K\n\x0clicense_type\x18\x0b \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.ComputeEngineLicenseType\x12\x44\n\x0f\x61pplied_license\x18\x0c \x01(\x0b\x32+.google.cloud.vmmigration.v1.AppliedLicense\x12J\n\x12\x63ompute_scheduling\x18\r \x01(\x0b\x32..google.cloud.vmmigration.v1.ComputeScheduling\x12\x13\n\x0bsecure_boot\x18\x0e \x01(\x08\x12I\n\x0b\x62oot_option\x18\x0f \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.ComputeEngineBootOption\x12W\n\x08metadata\x18\x10 \x03(\x0b\x32\x45.google.cloud.vmmigration.v1.ComputeEngineTargetDetails.MetadataEntry\x12\x1b\n\x13\x61\x64\x64itional_licenses\x18\x11 \x03(\t\x12\x10\n\x08hostname\x18\x12 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"a\n\x10NetworkInterface\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x12\n\nsubnetwork\x18\x02 \x01(\t\x12\x13\n\x0binternal_ip\x18\x03 \x01(\t\x12\x13\n\x0b\x65xternal_ip\x18\x04 \x01(\t\"\xa0\x01\n\x0e\x41ppliedLicense\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.cloud.vmmigration.v1.AppliedLicense.Type\x12\x12\n\nos_license\x18\x02 \x01(\t\":\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04PAYG\x10\x02\x12\x08\n\x04\x42YOL\x10\x03\"\xbf\x01\n\x16SchedulingNodeAffinity\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x08operator\x18\x02 \x01(\x0e\x32<.google.cloud.vmmigration.v1.SchedulingNodeAffinity.Operator\x12\x0e\n\x06values\x18\x03 \x03(\t\"8\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x06\n\x02IN\x10\x01\x12\n\n\x06NOT_IN\x10\x02\"\xdd\x03\n\x11\x43omputeScheduling\x12]\n\x13on_host_maintenance\x18\x01 \x01(\x0e\x32@.google.cloud.vmmigration.v1.ComputeScheduling.OnHostMaintenance\x12P\n\x0crestart_type\x18\x05 \x01(\x0e\x32:.google.cloud.vmmigration.v1.ComputeScheduling.RestartType\x12L\n\x0fnode_affinities\x18\x03 \x03(\x0b\x32\x33.google.cloud.vmmigration.v1.SchedulingNodeAffinity\x12\x15\n\rmin_node_cpus\x18\x04 \x01(\x05\"T\n\x11OnHostMaintenance\x12#\n\x1fON_HOST_MAINTENANCE_UNSPECIFIED\x10\x00\x12\r\n\tTERMINATE\x10\x01\x12\x0b\n\x07MIGRATE\x10\x02\"\\\n\x0bRestartType\x12\x1c\n\x18RESTART_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41UTOMATIC_RESTART\x10\x01\x12\x18\n\x14NO_AUTOMATIC_RESTART\x10\x02\"^\n\x0eSchedulePolicy\x12\x30\n\ridle_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12skip_os_adaptation\x18\x02 \x01(\x08\"\xd1\x01\n\x18\x43reateMigratingVmRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&vmmigration.googleapis.com/MigratingVm\x12\x1c\n\x0fmigrating_vm_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x0cmigrating_vm\x18\x03 \x01(\x0b\x32(.google.cloud.vmmigration.v1.MigratingVmB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\xf7\x01\n\x17ListMigratingVmsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&vmmigration.googleapis.com/MigratingVm\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12?\n\x04view\x18\x06 \x01(\x0e\x32,.google.cloud.vmmigration.v1.MigratingVmViewB\x03\xe0\x41\x01\"\x98\x01\n\x18ListMigratingVmsResponse\x12\x44\n\rmigrating_vms\x18\x01 \x03(\x0b\x32(.google.cloud.vmmigration.v1.MigratingVmB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\x96\x01\n\x15GetMigratingVmRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\x12?\n\x04view\x18\x02 \x01(\x0e\x32,.google.cloud.vmmigration.v1.MigratingVmViewB\x03\xe0\x41\x01\"\xa4\x01\n\x18UpdateMigratingVmRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x0cmigrating_vm\x18\x02 \x01(\x0b\x32(.google.cloud.vmmigration.v1.MigratingVmB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"X\n\x18\x44\x65leteMigratingVmRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"]\n\x15StartMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x18\n\x16StartMigrationResponse\"]\n\x15PauseMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x18\n\x16PauseMigrationResponse\"^\n\x16ResumeMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x19\n\x17ResumeMigrationResponse\"`\n\x18\x46inalizeMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x1b\n\x19\x46inalizeMigrationResponse\"\xac\x02\n\rTargetProject\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:v\xea\x41s\n(vmmigration.googleapis.com/TargetProject\x12Gprojects/{project}/locations/{location}/targetProjects/{target_project}\"Y\n\x17GetTargetProjectRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\"\xba\x01\n\x19ListTargetProjectsRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(vmmigration.googleapis.com/TargetProject\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x9e\x01\n\x1aListTargetProjectsResponse\x12H\n\x0ftarget_projects\x18\x01 \x03(\x0b\x32*.google.cloud.vmmigration.v1.TargetProjectB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\xdb\x01\n\x1a\x43reateTargetProjectRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(vmmigration.googleapis.com/TargetProject\x12\x1e\n\x11target_project_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12G\n\x0etarget_project\x18\x03 \x01(\x0b\x32*.google.cloud.vmmigration.v1.TargetProjectB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\xaa\x01\n\x1aUpdateTargetProjectRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x0etarget_project\x18\x02 \x01(\x0b\x32*.google.cloud.vmmigration.v1.TargetProjectB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"u\n\x1a\x44\x65leteTargetProjectRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\x90\x02\n\x05Group\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\t:]\xea\x41Z\n vmmigration.googleapis.com/Group\x12\x36projects/{project}/locations/{location}/groups/{group}\"\xaa\x01\n\x11ListGroupsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 vmmigration.googleapis.com/Group\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x85\x01\n\x12ListGroupsResponse\x12\x37\n\x06groups\x18\x01 \x03(\x0b\x32\".google.cloud.vmmigration.v1.GroupB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"I\n\x0fGetGroupRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\"\xb1\x01\n\x12\x43reateGroupRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 vmmigration.googleapis.com/Group\x12\x15\n\x08group_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x05group\x18\x03 \x01(\x0b\x32\".google.cloud.vmmigration.v1.GroupB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x91\x01\n\x12UpdateGroupRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x36\n\x05group\x18\x02 \x01(\x0b\x32\".google.cloud.vmmigration.v1.GroupB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"e\n\x12\x44\x65leteGroupRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\x96\x01\n\x18\x41\x64\x64GroupMigrationRequest\x12\x37\n\x05group\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\x12\x41\n\x0cmigrating_vm\x18\x02 \x01(\tB+\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x1b\n\x19\x41\x64\x64GroupMigrationResponse\"\x99\x01\n\x1bRemoveGroupMigrationRequest\x12\x37\n\x05group\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\x12\x41\n\x0cmigrating_vm\x18\x02 \x01(\tB+\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x1e\n\x1cRemoveGroupMigrationResponse\"\xcc\x01\n\x17\x43reateCutoverJobRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%vmmigration.googleapis.com/CutoverJob\x12\x1b\n\x0e\x63utover_job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x0b\x63utover_job\x18\x03 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.CutoverJobB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"V\n\x17\x43\x61ncelCutoverJobRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%vmmigration.googleapis.com/CutoverJob\"\x1a\n\x18\x43\x61ncelCutoverJobResponse\"\xb4\x01\n\x16ListCutoverJobsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%vmmigration.googleapis.com/CutoverJob\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x95\x01\n\x17ListCutoverJobsResponse\x12\x42\n\x0c\x63utover_jobs\x18\x01 \x03(\x0b\x32\'.google.cloud.vmmigration.v1.CutoverJobB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"S\n\x14GetCutoverJobRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%vmmigration.googleapis.com/CutoverJob\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\xbf\x04\n\x0eMigrationError\x12H\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.MigrationError.ErrorCodeB\x03\xe0\x41\x03\x12\x38\n\rerror_message\x18\x02 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageB\x03\xe0\x41\x03\x12\x36\n\x0b\x61\x63tion_item\x18\x03 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageB\x03\xe0\x41\x03\x12.\n\nhelp_links\x18\x04 \x03(\x0b\x32\x15.google.rpc.Help.LinkB\x03\xe0\x41\x03\x12\x33\n\nerror_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\x8b\x02\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12\x11\n\rUNKNOWN_ERROR\x10\x01\x12\x1b\n\x17SOURCE_VALIDATION_ERROR\x10\x02\x12\x1c\n\x18SOURCE_REPLICATION_ERROR\x10\x03\x12\x1c\n\x18TARGET_REPLICATION_ERROR\x10\x04\x12\x17\n\x13OS_ADAPTATION_ERROR\x10\x05\x12\x0f\n\x0b\x43LONE_ERROR\x10\x06\x12\x11\n\rCUTOVER_ERROR\x10\x07\x12\x1c\n\x18UTILIZATION_REPORT_ERROR\x10\x08\x12\x1b\n\x17\x41PPLIANCE_UPGRADE_ERROR\x10\t\"\xba\x01\n\x12\x41wsSourceVmDetails\x12J\n\x08\x66irmware\x18\x01 \x01(\x0e\x32\x38.google.cloud.vmmigration.v1.AwsSourceVmDetails.Firmware\x12\x1f\n\x17\x63ommitted_storage_bytes\x18\x02 \x01(\x03\"7\n\x08\x46irmware\x12\x18\n\x14\x46IRMWARE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"\xc0\x01\n\x1cListReplicationCyclesRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\x12+vmmigration.googleapis.com/ReplicationCycle\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xa7\x01\n\x1dListReplicationCyclesResponse\x12N\n\x12replication_cycles\x18\x01 \x03(\x0b\x32-.google.cloud.vmmigration.v1.ReplicationCycleB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"_\n\x1aGetReplicationCycleRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+vmmigration.googleapis.com/ReplicationCycle*U\n\x15UtilizationReportView\x12\'\n#UTILIZATION_REPORT_VIEW_UNSPECIFIED\x10\x00\x12\t\n\x05\x42\x41SIC\x10\x01\x12\x08\n\x04\x46ULL\x10\x02*m\n\x0fMigratingVmView\x12!\n\x1dMIGRATING_VM_VIEW_UNSPECIFIED\x10\x00\x12\x1b\n\x17MIGRATING_VM_VIEW_BASIC\x10\x01\x12\x1a\n\x16MIGRATING_VM_VIEW_FULL\x10\x02*\xb1\x01\n\x15\x43omputeEngineDiskType\x12(\n$COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED\x10\x00\x12%\n!COMPUTE_ENGINE_DISK_TYPE_STANDARD\x10\x01\x12 \n\x1c\x43OMPUTE_ENGINE_DISK_TYPE_SSD\x10\x02\x12%\n!COMPUTE_ENGINE_DISK_TYPE_BALANCED\x10\x03*\x8f\x01\n\x18\x43omputeEngineLicenseType\x12\'\n#COMPUTE_ENGINE_LICENSE_TYPE_DEFAULT\x10\x00\x12$\n COMPUTE_ENGINE_LICENSE_TYPE_PAYG\x10\x01\x12$\n COMPUTE_ENGINE_LICENSE_TYPE_BYOL\x10\x02*\x8e\x01\n\x17\x43omputeEngineBootOption\x12*\n&COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x43OMPUTE_ENGINE_BOOT_OPTION_EFI\x10\x01\x12#\n\x1f\x43OMPUTE_ENGINE_BOOT_OPTION_BIOS\x10\x02\x32\x89S\n\x0bVmMigration\x12\xae\x01\n\x0bListSources\x12/.google.cloud.vmmigration.v1.ListSourcesRequest\x1a\x30.google.cloud.vmmigration.v1.ListSourcesResponse\"<\xda\x41\x06parent\x82\xd3\xe4\x93\x02-\x12+/v1/{parent=projects/*/locations/*}/sources\x12\x9b\x01\n\tGetSource\x12-.google.cloud.vmmigration.v1.GetSourceRequest\x1a#.google.cloud.vmmigration.v1.Source\":\xda\x41\x04name\x82\xd3\xe4\x93\x02-\x12+/v1/{name=projects/*/locations/*/sources/*}\x12\xd4\x01\n\x0c\x43reateSource\x12\x30.google.cloud.vmmigration.v1.CreateSourceRequest\x1a\x1d.google.longrunning.Operation\"s\xca\x41\x1b\n\x06Source\x12\x11OperationMetadata\xda\x41\x17parent,source,source_id\x82\xd3\xe4\x93\x02\x35\"+/v1/{parent=projects/*/locations/*}/sources:\x06source\x12\xd6\x01\n\x0cUpdateSource\x12\x30.google.cloud.vmmigration.v1.UpdateSourceRequest\x1a\x1d.google.longrunning.Operation\"u\xca\x41\x1b\n\x06Source\x12\x11OperationMetadata\xda\x41\x12source,update_mask\x82\xd3\xe4\x93\x02<22/v1/{source.name=projects/*/locations/*/sources/*}:\x06source\x12\xc8\x01\n\x0c\x44\x65leteSource\x12\x30.google.cloud.vmmigration.v1.DeleteSourceRequest\x1a\x1d.google.longrunning.Operation\"g\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02-*+/v1/{name=projects/*/locations/*/sources/*}\x12\xc8\x01\n\x0e\x46\x65tchInventory\x12\x32.google.cloud.vmmigration.v1.FetchInventoryRequest\x1a\x33.google.cloud.vmmigration.v1.FetchInventoryResponse\"M\xda\x41\x06source\x82\xd3\xe4\x93\x02>\x12\n\nclone_jobs\x18\x01 \x03(\x0b\x32%.google.cloud.vmmigration.v1.CloneJobB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"O\n\x12GetCloneJobRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#vmmigration.googleapis.com/CloneJob\"\x89\x05\n\x06Source\x12\x42\n\x06vmware\x18\n \x01(\x0b\x32\x30.google.cloud.vmmigration.v1.VmwareSourceDetailsH\x00\x12<\n\x03\x61ws\x18\x0c \x01(\x0b\x32-.google.cloud.vmmigration.v1.AwsSourceDetailsH\x00\x12@\n\x05\x61zure\x18\r \x01(\x0b\x32/.google.cloud.vmmigration.v1.AzureSourceDetailsH\x00\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12?\n\x06labels\x18\x04 \x03(\x0b\x32/.google.cloud.vmmigration.v1.Source.LabelsEntry\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x43\n\nencryption\x18\x0e \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x06\xe0\x41\x01\xe0\x41\x05\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:`\xea\x41]\n!vmmigration.googleapis.com/Source\x12\x38projects/{project}/locations/{location}/sources/{source}B\x10\n\x0esource_details\"H\n\nEncryption\x12:\n\x07kms_key\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!cloudkms.googleapis.com/CryptoKey\"\x85\x01\n\x13VmwareSourceDetails\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x15\n\x08password\x18\x02 \x01(\tB\x03\xe0\x41\x04\x12\x12\n\nvcenter_ip\x18\x03 \x01(\t\x12\x12\n\nthumbprint\x18\x04 \x01(\t\x12\x1d\n\x15resolved_vcenter_host\x18\x05 \x01(\t\"\xb5\x06\n\x10\x41wsSourceDetails\x12^\n\x10\x61\x63\x63\x65ss_key_creds\x18\x0b \x01(\x0b\x32\x42.google.cloud.vmmigration.v1.AwsSourceDetails.AccessKeyCredentialsH\x00\x12\x17\n\naws_region\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12G\n\x05state\x18\x04 \x01(\x0e\x32\x33.google.cloud.vmmigration.v1.AwsSourceDetails.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12M\n\x12inventory_tag_list\x18\n \x03(\x0b\x32\x31.google.cloud.vmmigration.v1.AwsSourceDetails.Tag\x12&\n\x1einventory_security_group_names\x18\x07 \x03(\t\x12t\n\x1dmigration_resources_user_tags\x18\x08 \x03(\x0b\x32M.google.cloud.vmmigration.v1.AwsSourceDetails.MigrationResourcesUserTagsEntry\x12\x16\n\tpublic_ip\x18\t \x01(\tB\x03\xe0\x41\x03\x1ai\n\x14\x41\x63\x63\x65ssKeyCredentials\x12\x15\n\raccess_key_id\x18\x01 \x01(\t\x12\x1e\n\x11secret_access_key\x18\x02 \x01(\tB\x03\xe0\x41\x04\x12\x1a\n\rsession_token\x18\x03 \x01(\tB\x03\xe0\x41\x04\x1a+\n\x03Tag\x12\x10\n\x03key\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02\x1a\x41\n\x1fMigrationResourcesUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\n\n\x06\x41\x43TIVE\x10\x03\x42\x12\n\x10\x63redentials_type\"\xbb\x05\n\x12\x41zureSourceDetails\x12\x66\n\x13\x63lient_secret_creds\x18\t \x01(\x0b\x32G.google.cloud.vmmigration.v1.AzureSourceDetails.ClientSecretCredentialsH\x00\x12\x1c\n\x0fsubscription_id\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x1b\n\x0e\x61zure_location\x18\x05 \x01(\tB\x03\xe0\x41\x05\x12I\n\x05state\x18\x06 \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.AzureSourceDetails.StateB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x07 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12v\n\x1dmigration_resources_user_tags\x18\x08 \x03(\x0b\x32O.google.cloud.vmmigration.v1.AzureSourceDetails.MigrationResourcesUserTagsEntry\x12\x1e\n\x11resource_group_id\x18\n \x01(\tB\x03\xe0\x41\x03\x1a[\n\x17\x43lientSecretCredentials\x12\x11\n\ttenant_id\x18\x01 \x01(\t\x12\x11\n\tclient_id\x18\x02 \x01(\t\x12\x1a\n\rclient_secret\x18\x03 \x01(\tB\x03\xe0\x41\x04\x1a\x41\n\x1fMigrationResourcesUserTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\n\n\x06\x41\x43TIVE\x10\x03\x42\x12\n\x10\x63redentials_type\"\xfa\x06\n\x13\x44\x61tacenterConnector\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x1c\n\x0fregistration_id\x18\x0c \x01(\tB\x03\xe0\x41\x05\x12\x17\n\x0fservice_account\x18\x05 \x01(\t\x12\x0f\n\x07version\x18\x06 \x01(\t\x12\x13\n\x06\x62ucket\x18\n \x01(\tB\x03\xe0\x41\x03\x12J\n\x05state\x18\x07 \x01(\x0e\x32\x36.google.cloud.vmmigration.v1.DatacenterConnector.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x0b \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12-\n appliance_infrastructure_version\x18\r \x01(\tB\x03\xe0\x41\x03\x12\'\n\x1a\x61ppliance_software_version\x18\x0e \x01(\tB\x03\xe0\x41\x03\x12N\n\x12\x61vailable_versions\x18\x0f \x01(\x0b\x32-.google.cloud.vmmigration.v1.AvailableUpdatesB\x03\xe0\x41\x03\x12G\n\x0eupgrade_status\x18\x10 \x01(\x0b\x32*.google.cloud.vmmigration.v1.UpgradeStatusB\x03\xe0\x41\x03\"P\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\n\n\x06\x41\x43TIVE\x10\x04:\x9a\x01\xea\x41\x96\x01\n.vmmigration.googleapis.com/DatacenterConnector\x12\x64projects/{project}/locations/{location}/sources/{source}/datacenterConnectors/{datacenter_connector}\"\x9b\x02\n\rUpgradeStatus\x12\x0f\n\x07version\x18\x01 \x01(\t\x12?\n\x05state\x18\x02 \x01(\x0e\x32\x30.google.cloud.vmmigration.v1.UpgradeStatus.State\x12&\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10previous_version\x18\x05 \x01(\t\"F\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\"\xab\x01\n\x10\x41vailableUpdates\x12O\n\x18new_deployable_appliance\x18\x01 \x01(\x0b\x32-.google.cloud.vmmigration.v1.ApplianceVersion\x12\x46\n\x0fin_place_update\x18\x02 \x01(\x0b\x32-.google.cloud.vmmigration.v1.ApplianceVersion\"]\n\x10\x41pplianceVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x10\n\x08\x63ritical\x18\x03 \x01(\x08\x12\x19\n\x11release_notes_uri\x18\x04 \x01(\t\"\xac\x01\n\x12ListSourcesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!vmmigration.googleapis.com/Source\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x88\x01\n\x13ListSourcesResponse\x12\x39\n\x07sources\x18\x01 \x03(\x0b\x32#.google.cloud.vmmigration.v1.SourceB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"K\n\x10GetSourceRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\"\xb6\x01\n\x13\x43reateSourceRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!vmmigration.googleapis.com/Source\x12\x16\n\tsource_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x38\n\x06source\x18\x03 \x01(\x0b\x32#.google.cloud.vmmigration.v1.SourceB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x94\x01\n\x13UpdateSourceRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x38\n\x06source\x18\x02 \x01(\x0b\x32#.google.cloud.vmmigration.v1.SourceB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"g\n\x13\x44\x65leteSourceRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"i\n\x15\x46\x65tchInventoryRequest\x12\x39\n\x06source\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\x12\x15\n\rforce_refresh\x18\x02 \x01(\x08\"\xde\x05\n\x0fVmwareVmDetails\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x15\n\rdatacenter_id\x18\x02 \x01(\t\x12\x1e\n\x16\x64\x61tacenter_description\x18\x03 \x01(\t\x12\x0c\n\x04uuid\x18\x04 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\t\x12L\n\x0bpower_state\x18\x06 \x01(\x0e\x32\x37.google.cloud.vmmigration.v1.VmwareVmDetails.PowerState\x12\x11\n\tcpu_count\x18\x07 \x01(\x05\x12\x11\n\tmemory_mb\x18\x08 \x01(\x05\x12\x12\n\ndisk_count\x18\t \x01(\x05\x12\x1c\n\x14\x63ommitted_storage_mb\x18\x0c \x01(\x03\x12\x19\n\x11guest_description\x18\x0b \x01(\t\x12Q\n\x0b\x62oot_option\x18\r \x01(\x0e\x32\x37.google.cloud.vmmigration.v1.VmwareVmDetails.BootOptionB\x03\xe0\x41\x03\x12V\n\x0c\x61rchitecture\x18\x0e \x01(\x0e\x32;.google.cloud.vmmigration.v1.VmwareVmDetails.VmArchitectureB\x03\xe0\x41\x03\"I\n\nPowerState\x12\x1b\n\x17POWER_STATE_UNSPECIFIED\x10\x00\x12\x06\n\x02ON\x10\x01\x12\x07\n\x03OFF\x10\x02\x12\r\n\tSUSPENDED\x10\x03\"<\n\nBootOption\x12\x1b\n\x17\x42OOT_OPTION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"l\n\x0eVmArchitecture\x12\x1f\n\x1bVM_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aVM_ARCHITECTURE_X86_FAMILY\x10\x01\x12\x19\n\x15VM_ARCHITECTURE_ARM64\x10\x02\"\xef\x08\n\x0c\x41wsVmDetails\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x11\n\tsource_id\x18\x03 \x01(\t\x12\x1a\n\x12source_description\x18\x04 \x01(\t\x12N\n\x0bpower_state\x18\x05 \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.AwsVmDetails.PowerStateB\x03\xe0\x41\x03\x12\x11\n\tcpu_count\x18\x06 \x01(\x05\x12\x11\n\tmemory_mb\x18\x07 \x01(\x05\x12\x12\n\ndisk_count\x18\x08 \x01(\x05\x12\x1c\n\x14\x63ommitted_storage_mb\x18\t \x01(\x03\x12\x16\n\x0eos_description\x18\n \x01(\t\x12I\n\x0b\x62oot_option\x18\x0b \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.AwsVmDetails.BootOption\x12\x15\n\rinstance_type\x18\x0c \x01(\t\x12\x0e\n\x06vpc_id\x18\r \x01(\t\x12\x46\n\x0fsecurity_groups\x18\x0e \x03(\x0b\x32-.google.cloud.vmmigration.v1.AwsSecurityGroup\x12\x41\n\x04tags\x18\x0f \x03(\x0b\x32\x33.google.cloud.vmmigration.v1.AwsVmDetails.TagsEntry\x12\x0c\n\x04zone\x18\x10 \x01(\t\x12[\n\x13virtualization_type\x18\x11 \x01(\x0e\x32>.google.cloud.vmmigration.v1.AwsVmDetails.VmVirtualizationType\x12N\n\x0c\x61rchitecture\x18\x12 \x01(\x0e\x32\x38.google.cloud.vmmigration.v1.AwsVmDetails.VmArchitecture\x12\x12\n\nvcpu_count\x18\x13 \x01(\x05\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"V\n\nPowerState\x12\x1b\n\x17POWER_STATE_UNSPECIFIED\x10\x00\x12\x06\n\x02ON\x10\x01\x12\x07\n\x03OFF\x10\x02\x12\r\n\tSUSPENDED\x10\x03\x12\x0b\n\x07PENDING\x10\x04\"<\n\nBootOption\x12\x1b\n\x17\x42OOT_OPTION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"X\n\x14VmVirtualizationType\x12&\n\"VM_VIRTUALIZATION_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03HVM\x10\x01\x12\x0f\n\x0bPARAVIRTUAL\x10\x02\"b\n\x0eVmArchitecture\x12\x1f\n\x1bVM_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x08\n\x04I386\x10\x01\x12\n\n\x06X86_64\x10\x02\x12\t\n\x05\x41RM64\x10\x03\x12\x0e\n\nX86_64_MAC\x10\x04\",\n\x10\x41wsSecurityGroup\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xce\t\n\x0e\x41zureVmDetails\x12\r\n\x05vm_id\x18\x01 \x01(\t\x12K\n\x0bpower_state\x18\x02 \x01(\x0e\x32\x36.google.cloud.vmmigration.v1.AzureVmDetails.PowerState\x12\x0f\n\x07vm_size\x18\x03 \x01(\t\x12\x11\n\tcpu_count\x18\x04 \x01(\x05\x12\x11\n\tmemory_mb\x18\x05 \x01(\x05\x12\x12\n\ndisk_count\x18\x06 \x01(\x05\x12\x1c\n\x14\x63ommitted_storage_mb\x18\x07 \x01(\x03\x12\x43\n\x07os_disk\x18\x08 \x01(\x0b\x32\x32.google.cloud.vmmigration.v1.AzureVmDetails.OSDisk\x12?\n\x05\x64isks\x18\t \x03(\x0b\x32\x30.google.cloud.vmmigration.v1.AzureVmDetails.Disk\x12Q\n\x0eos_description\x18\n \x01(\x0b\x32\x39.google.cloud.vmmigration.v1.AzureVmDetails.OSDescription\x12K\n\x0b\x62oot_option\x18\x0b \x01(\x0e\x32\x36.google.cloud.vmmigration.v1.AzureVmDetails.BootOption\x12\x43\n\x04tags\x18\x0c \x03(\x0b\x32\x35.google.cloud.vmmigration.v1.AzureVmDetails.TagsEntry\x12\x15\n\rcomputer_name\x18\r \x01(\t\x12P\n\x0c\x61rchitecture\x18\x0e \x01(\x0e\x32:.google.cloud.vmmigration.v1.AzureVmDetails.VmArchitecture\x1a\x35\n\x06OSDisk\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07size_gb\x18\x03 \x01(\x05\x1a\x32\n\x04\x44isk\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07size_gb\x18\x02 \x01(\x05\x12\x0b\n\x03lun\x18\x03 \x01(\x05\x1aM\n\rOSDescription\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x11\n\tpublisher\x18\x02 \x01(\t\x12\r\n\x05offer\x18\x03 \x01(\t\x12\x0c\n\x04plan\x18\x04 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x8f\x01\n\nPowerState\x12\x1b\n\x17POWER_STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08STARTING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\x0c\n\x08STOPPING\x10\x03\x12\x0b\n\x07STOPPED\x10\x04\x12\x10\n\x0c\x44\x45\x41LLOCATING\x10\x05\x12\x0f\n\x0b\x44\x45\x41LLOCATED\x10\x06\x12\x0b\n\x07UNKNOWN\x10\x07\"<\n\nBootOption\x12\x1b\n\x17\x42OOT_OPTION_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"l\n\x0eVmArchitecture\x12\x1f\n\x1bVM_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aVM_ARCHITECTURE_X86_FAMILY\x10\x01\x12\x19\n\x15VM_ARCHITECTURE_ARM64\x10\x02\"Q\n\x10VmwareVmsDetails\x12=\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32,.google.cloud.vmmigration.v1.VmwareVmDetails\"K\n\rAwsVmsDetails\x12:\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32).google.cloud.vmmigration.v1.AwsVmDetails\"O\n\x0f\x41zureVmsDetails\x12<\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32+.google.cloud.vmmigration.v1.AzureVmDetails\"\xa2\x02\n\x16\x46\x65tchInventoryResponse\x12\x43\n\nvmware_vms\x18\x01 \x01(\x0b\x32-.google.cloud.vmmigration.v1.VmwareVmsDetailsH\x00\x12=\n\x07\x61ws_vms\x18\x03 \x01(\x0b\x32*.google.cloud.vmmigration.v1.AwsVmsDetailsH\x00\x12\x41\n\tazure_vms\x18\x05 \x01(\x0b\x32,.google.cloud.vmmigration.v1.AzureVmsDetailsH\x00\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x42\x0b\n\tSourceVms\"\xc7\x02\n\x1c\x46\x65tchStorageInventoryRequest\x12\x39\n\x06source\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!vmmigration.googleapis.com/Source\x12X\n\x04type\x18\x02 \x01(\x0e\x32\x45.google.cloud.vmmigration.v1.FetchStorageInventoryRequest.StorageTypeB\x03\xe0\x41\x02\x12\x1a\n\rforce_refresh\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01\"E\n\x0bStorageType\x12\x1c\n\x18STORAGE_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05\x44ISKS\x10\x01\x12\r\n\tSNAPSHOTS\x10\x02\"\xba\x01\n\x1d\x46\x65tchStorageInventoryResponse\x12\x45\n\tresources\x18\x01 \x03(\x0b\x32\x32.google.cloud.vmmigration.v1.SourceStorageResource\x12\x34\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x03 \x01(\tB\x03\xe0\x41\x03\"y\n\x15SourceStorageResource\x12M\n\x10\x61ws_disk_details\x18\x01 \x01(\x0b\x32\x31.google.cloud.vmmigration.v1.AwsSourceDiskDetailsH\x00\x42\x11\n\x0fStorageResource\"\x9c\x06\n\x11UtilizationReport\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12H\n\x05state\x18\x03 \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.UtilizationReport.StateB\x03\xe0\x41\x03\x12\x33\n\nstate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12&\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12L\n\ntime_frame\x18\x07 \x01(\x0e\x32\x38.google.cloud.vmmigration.v1.UtilizationReport.TimeFrame\x12\x37\n\x0e\x66rame_end_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x15\n\x08vm_count\x18\t \x01(\x05\x42\x03\xe0\x41\x03\x12;\n\x03vms\x18\n \x03(\x0b\x32..google.cloud.vmmigration.v1.VmUtilizationInfo\"G\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43REATING\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"F\n\tTimeFrame\x12\x1a\n\x16TIME_FRAME_UNSPECIFIED\x10\x00\x12\x08\n\x04WEEK\x10\x01\x12\t\n\x05MONTH\x10\x02\x12\x08\n\x04YEAR\x10\x03:\x94\x01\xea\x41\x90\x01\n,vmmigration.googleapis.com/UtilizationReport\x12`projects/{project}/locations/{location}/sources/{source}/utilizationReports/{utilization_report}\"\xc2\x01\n\x11VmUtilizationInfo\x12I\n\x11vmware_vm_details\x18\x01 \x01(\x0b\x32,.google.cloud.vmmigration.v1.VmwareVmDetailsH\x00\x12\r\n\x05vm_id\x18\x03 \x01(\t\x12\x46\n\x0butilization\x18\x02 \x01(\x0b\x32\x31.google.cloud.vmmigration.v1.VmUtilizationMetricsB\x0b\n\tVmDetails\"\x98\x02\n\x14VmUtilizationMetrics\x12\x17\n\x0f\x63pu_max_percent\x18\t \x01(\x05\x12\x1b\n\x13\x63pu_average_percent\x18\n \x01(\x05\x12\x1a\n\x12memory_max_percent\x18\x0b \x01(\x05\x12\x1e\n\x16memory_average_percent\x18\x0c \x01(\x05\x12\x1d\n\x15\x64isk_io_rate_max_kbps\x18\r \x01(\x03\x12!\n\x19\x64isk_io_rate_average_kbps\x18\x0e \x01(\x03\x12#\n\x1bnetwork_throughput_max_kbps\x18\x0f \x01(\x03\x12\'\n\x1fnetwork_throughput_average_kbps\x18\x10 \x01(\x03\"\x89\x02\n\x1dListUtilizationReportsRequest\x12\x44\n\x06parent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\x12,vmmigration.googleapis.com/UtilizationReport\x12\x45\n\x04view\x18\x02 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.UtilizationReportViewB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\xaa\x01\n\x1eListUtilizationReportsResponse\x12P\n\x13utilization_reports\x18\x01 \x03(\x0b\x32..google.cloud.vmmigration.v1.UtilizationReportB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\xa8\x01\n\x1bGetUtilizationReportRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,vmmigration.googleapis.com/UtilizationReport\x12\x45\n\x04view\x18\x02 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.UtilizationReportViewB\x03\xe0\x41\x01\"\xef\x01\n\x1e\x43reateUtilizationReportRequest\x12\x44\n\x06parent\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\x12,vmmigration.googleapis.com/UtilizationReport\x12O\n\x12utilization_report\x18\x02 \x01(\x0b\x32..google.cloud.vmmigration.v1.UtilizationReportB\x03\xe0\x41\x02\x12\"\n\x15utilization_report_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"}\n\x1e\x44\x65leteUtilizationReportRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,vmmigration.googleapis.com/UtilizationReport\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xb0\x01\n ListDatacenterConnectorsResponse\x12T\n\x15\x64\x61tacenter_connectors\x18\x01 \x03(\x0b\x32\x30.google.cloud.vmmigration.v1.DatacenterConnectorB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"e\n\x1dGetDatacenterConnectorRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.vmmigration.googleapis.com/DatacenterConnector\"\xf9\x01\n CreateDatacenterConnectorRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.vmmigration.googleapis.com/DatacenterConnector\x12$\n\x17\x64\x61tacenter_connector_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12S\n\x14\x64\x61tacenter_connector\x18\x03 \x01(\x0b\x32\x30.google.cloud.vmmigration.v1.DatacenterConnectorB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"|\n DeleteDatacenterConnectorRequest\x12\x44\n\x04name\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.vmmigration.googleapis.com/DatacenterConnector\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x83\x01\n\x17UpgradeApplianceRequest\x12T\n\x14\x64\x61tacenter_connector\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\n.vmmigration.googleapis.com/DatacenterConnector\x12\x12\n\nrequest_id\x18\x02 \x01(\t\"\x1a\n\x18UpgradeApplianceResponse\"\xc6\x01\n\x1fListDatacenterConnectorsRequest\x12\x46\n\x06parent\x18\x01 \x01(\tB6\xe0\x41\x02\xfa\x41\x30\x12.vmmigration.googleapis.com/DatacenterConnector\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xf9\t\n\x1b\x43omputeEngineTargetDefaults\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\x12\x45\n\x0etarget_project\x18\x02 \x01(\tB-\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x0c\n\x04zone\x18\x03 \x01(\t\x12\x1b\n\x13machine_type_series\x18\x04 \x01(\t\x12\x14\n\x0cmachine_type\x18\x05 \x01(\t\x12\x14\n\x0cnetwork_tags\x18\x06 \x03(\t\x12I\n\x12network_interfaces\x18\x07 \x03(\x0b\x32-.google.cloud.vmmigration.v1.NetworkInterface\x12\x1c\n\x0fservice_account\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\tdisk_type\x18\t \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskType\x12T\n\x06labels\x18\n \x03(\x0b\x32\x44.google.cloud.vmmigration.v1.ComputeEngineTargetDefaults.LabelsEntry\x12K\n\x0clicense_type\x18\x0b \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.ComputeEngineLicenseType\x12I\n\x0f\x61pplied_license\x18\x0c \x01(\x0b\x32+.google.cloud.vmmigration.v1.AppliedLicenseB\x03\xe0\x41\x03\x12J\n\x12\x63ompute_scheduling\x18\r \x01(\x0b\x32..google.cloud.vmmigration.v1.ComputeScheduling\x12\x13\n\x0bsecure_boot\x18\x0e \x01(\x08\x12\x18\n\x0b\x65nable_vtpm\x18\x15 \x01(\x08\x42\x03\xe0\x41\x01\x12(\n\x1b\x65nable_integrity_monitoring\x18\x16 \x01(\x08\x42\x03\xe0\x41\x01\x12N\n\x0b\x62oot_option\x18\x0f \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.ComputeEngineBootOptionB\x03\xe0\x41\x03\x12X\n\x08metadata\x18\x10 \x03(\x0b\x32\x46.google.cloud.vmmigration.v1.ComputeEngineTargetDefaults.MetadataEntry\x12\x1b\n\x13\x61\x64\x64itional_licenses\x18\x11 \x03(\t\x12\x10\n\x08hostname\x18\x12 \x01(\t\x12\x43\n\nencryption\x18\x13 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x06\xe0\x41\x01\xe0\x41\x05\x12I\n\x0f\x62oot_conversion\x18\x14 \x01(\x0e\x32+.google.cloud.vmmigration.v1.BootConversionB\x03\xe0\x41\x01\x12\x1f\n\x12\x64isk_replica_zones\x18\x18 \x03(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xae\t\n\x1a\x43omputeEngineTargetDetails\x12\x0f\n\x07vm_name\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x0c\n\x04zone\x18\x03 \x01(\t\x12\x1b\n\x13machine_type_series\x18\x04 \x01(\t\x12\x14\n\x0cmachine_type\x18\x05 \x01(\t\x12\x14\n\x0cnetwork_tags\x18\x06 \x03(\t\x12I\n\x12network_interfaces\x18\x07 \x03(\x0b\x32-.google.cloud.vmmigration.v1.NetworkInterface\x12\x17\n\x0fservice_account\x18\x08 \x01(\t\x12\x45\n\tdisk_type\x18\t \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskType\x12S\n\x06labels\x18\n \x03(\x0b\x32\x43.google.cloud.vmmigration.v1.ComputeEngineTargetDetails.LabelsEntry\x12K\n\x0clicense_type\x18\x0b \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.ComputeEngineLicenseType\x12\x44\n\x0f\x61pplied_license\x18\x0c \x01(\x0b\x32+.google.cloud.vmmigration.v1.AppliedLicense\x12J\n\x12\x63ompute_scheduling\x18\r \x01(\x0b\x32..google.cloud.vmmigration.v1.ComputeScheduling\x12\x13\n\x0bsecure_boot\x18\x0e \x01(\x08\x12\x18\n\x0b\x65nable_vtpm\x18\x15 \x01(\x08\x42\x03\xe0\x41\x01\x12(\n\x1b\x65nable_integrity_monitoring\x18\x16 \x01(\x08\x42\x03\xe0\x41\x01\x12I\n\x0b\x62oot_option\x18\x0f \x01(\x0e\x32\x34.google.cloud.vmmigration.v1.ComputeEngineBootOption\x12W\n\x08metadata\x18\x10 \x03(\x0b\x32\x45.google.cloud.vmmigration.v1.ComputeEngineTargetDetails.MetadataEntry\x12\x1b\n\x13\x61\x64\x64itional_licenses\x18\x11 \x03(\t\x12\x10\n\x08hostname\x18\x12 \x01(\t\x12@\n\nencryption\x18\x13 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x01\x12I\n\x0f\x62oot_conversion\x18\x14 \x01(\x0e\x32+.google.cloud.vmmigration.v1.BootConversionB\x03\xe0\x41\x01\x12\x1f\n\x12\x64isk_replica_zones\x18\x18 \x03(\tB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xc7\x01\n\x10NetworkInterface\x12\x14\n\x07network\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nsubnetwork\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0binternal_ip\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x65xternal_ip\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12P\n\x0cnetwork_tier\x18\x05 \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.ComputeEngineNetworkTierB\x03\xe0\x41\x01\"\xa0\x01\n\x0e\x41ppliedLicense\x12>\n\x04type\x18\x01 \x01(\x0e\x32\x30.google.cloud.vmmigration.v1.AppliedLicense.Type\x12\x12\n\nos_license\x18\x02 \x01(\t\":\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x08\n\x04PAYG\x10\x02\x12\x08\n\x04\x42YOL\x10\x03\"\xbf\x01\n\x16SchedulingNodeAffinity\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x08operator\x18\x02 \x01(\x0e\x32<.google.cloud.vmmigration.v1.SchedulingNodeAffinity.Operator\x12\x0e\n\x06values\x18\x03 \x03(\t\"8\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x06\n\x02IN\x10\x01\x12\n\n\x06NOT_IN\x10\x02\"\xdd\x03\n\x11\x43omputeScheduling\x12]\n\x13on_host_maintenance\x18\x01 \x01(\x0e\x32@.google.cloud.vmmigration.v1.ComputeScheduling.OnHostMaintenance\x12P\n\x0crestart_type\x18\x05 \x01(\x0e\x32:.google.cloud.vmmigration.v1.ComputeScheduling.RestartType\x12L\n\x0fnode_affinities\x18\x03 \x03(\x0b\x32\x33.google.cloud.vmmigration.v1.SchedulingNodeAffinity\x12\x15\n\rmin_node_cpus\x18\x04 \x01(\x05\"T\n\x11OnHostMaintenance\x12#\n\x1fON_HOST_MAINTENANCE_UNSPECIFIED\x10\x00\x12\r\n\tTERMINATE\x10\x01\x12\x0b\n\x07MIGRATE\x10\x02\"\\\n\x0bRestartType\x12\x1c\n\x18RESTART_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41UTOMATIC_RESTART\x10\x01\x12\x18\n\x14NO_AUTOMATIC_RESTART\x10\x02\"\x92\x03\n ComputeEngineDisksTargetDefaults\x12\x0e\n\x04zone\x18\x02 \x01(\tH\x00\x12_\n\x15\x64isks_target_defaults\x18\x05 \x01(\x0b\x32>.google.cloud.vmmigration.v1.DisksMigrationDisksTargetDefaultsH\x01\x12Y\n\x12vm_target_defaults\x18\x06 \x01(\x0b\x32;.google.cloud.vmmigration.v1.DisksMigrationVmTargetDefaultsH\x01\x12\x45\n\x0etarget_project\x18\x01 \x01(\tB-\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x42\n\x05\x64isks\x18\x04 \x03(\x0b\x32\x33.google.cloud.vmmigration.v1.PersistentDiskDefaultsB\n\n\x08locationB\x0b\n\tvm_target\"\xcf\x03\n\x16PersistentDiskDefaults\x12\x1f\n\x12source_disk_number\x18\x01 \x01(\x05\x42\x03\xe0\x41\x02\x12\x16\n\tdisk_name\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\tdisk_type\x18\x03 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskType\x12\x64\n\x11\x61\x64\x64itional_labels\x18\x04 \x03(\x0b\x32I.google.cloud.vmmigration.v1.PersistentDiskDefaults.AdditionalLabelsEntry\x12@\n\nencryption\x18\x05 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x01\x12T\n\x15vm_attachment_details\x18\x06 \x01(\x0b\x32\x30.google.cloud.vmmigration.v1.VmAttachmentDetailsB\x03\xe0\x41\x01\x1a\x37\n\x15\x41\x64\x64itionalLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"/\n\x13VmAttachmentDetails\x12\x18\n\x0b\x64\x65vice_name\x18\x01 \x01(\tB\x03\xe0\x41\x01\"#\n!DisksMigrationDisksTargetDefaults\"\x96\x07\n\x1e\x44isksMigrationVmTargetDefaults\x12\x14\n\x07vm_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12 \n\x13machine_type_series\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cmachine_type\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x19\n\x0cnetwork_tags\x18\x04 \x03(\tB\x03\xe0\x41\x01\x12N\n\x12network_interfaces\x18\x05 \x03(\x0b\x32-.google.cloud.vmmigration.v1.NetworkInterfaceB\x03\xe0\x41\x01\x12\x1c\n\x0fservice_account\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12O\n\x12\x63ompute_scheduling\x18\x07 \x01(\x0b\x32..google.cloud.vmmigration.v1.ComputeSchedulingB\x03\xe0\x41\x01\x12\x18\n\x0bsecure_boot\x18\x08 \x01(\x08\x42\x03\xe0\x41\x01\x12\x18\n\x0b\x65nable_vtpm\x18\x10 \x01(\x08\x42\x03\xe0\x41\x01\x12(\n\x1b\x65nable_integrity_monitoring\x18\x11 \x01(\x08\x42\x03\xe0\x41\x01\x12`\n\x08metadata\x18\n \x03(\x0b\x32I.google.cloud.vmmigration.v1.DisksMigrationVmTargetDefaults.MetadataEntryB\x03\xe0\x41\x01\x12 \n\x13\x61\x64\x64itional_licenses\x18\x0b \x03(\tB\x03\xe0\x41\x01\x12\x15\n\x08hostname\x18\x0c \x01(\tB\x03\xe0\x41\x01\x12\\\n\x06labels\x18\r \x03(\x0b\x32G.google.cloud.vmmigration.v1.DisksMigrationVmTargetDefaults.LabelsEntryB\x03\xe0\x41\x01\x12N\n\x12\x62oot_disk_defaults\x18\x0e \x01(\x0b\x32-.google.cloud.vmmigration.v1.BootDiskDefaultsB\x03\xe0\x41\x01\x12@\n\nencryption\x18\x0f \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x01\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xff\x02\n\x10\x42ootDiskDefaults\x12P\n\x05image\x18\x03 \x01(\x0b\x32?.google.cloud.vmmigration.v1.BootDiskDefaults.DiskImageDefaultsH\x00\x12\x16\n\tdisk_name\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12J\n\tdisk_type\x18\x02 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskTypeB\x03\xe0\x41\x01\x12\x18\n\x0b\x64\x65vice_name\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12@\n\nencryption\x18\x05 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x01\x1aO\n\x11\x44iskImageDefaults\x12:\n\x0csource_image\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1c\x63ompute.googleapis.com/ImageB\x08\n\x06source\"\xa2\x02\n\x1f\x43omputeEngineDisksTargetDetails\x12]\n\x14\x64isks_target_details\x18\x05 \x01(\x0b\x32=.google.cloud.vmmigration.v1.DisksMigrationDisksTargetDetailsH\x00\x12W\n\x11vm_target_details\x18\x06 \x01(\x0b\x32:.google.cloud.vmmigration.v1.DisksMigrationVmTargetDetailsH\x00\x12:\n\x05\x64isks\x18\x01 \x03(\x0b\x32+.google.cloud.vmmigration.v1.PersistentDiskB\x0b\n\tvm_target\">\n\x0ePersistentDisk\x12\x1a\n\x12source_disk_number\x18\x01 \x01(\x05\x12\x10\n\x08\x64isk_uri\x18\x02 \x01(\t\"\"\n DisksMigrationDisksTargetDetails\"4\n\x1d\x44isksMigrationVmTargetDetails\x12\x13\n\x06vm_uri\x18\x01 \x01(\tB\x03\xe0\x41\x03\"^\n\x0eSchedulePolicy\x12\x30\n\ridle_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1a\n\x12skip_os_adaptation\x18\x02 \x01(\x08\"\xd1\x01\n\x18\x43reateMigratingVmRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&vmmigration.googleapis.com/MigratingVm\x12\x1c\n\x0fmigrating_vm_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x0cmigrating_vm\x18\x03 \x01(\x0b\x32(.google.cloud.vmmigration.v1.MigratingVmB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\xf7\x01\n\x17ListMigratingVmsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&vmmigration.googleapis.com/MigratingVm\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12?\n\x04view\x18\x06 \x01(\x0e\x32,.google.cloud.vmmigration.v1.MigratingVmViewB\x03\xe0\x41\x01\"\x98\x01\n\x18ListMigratingVmsResponse\x12\x44\n\rmigrating_vms\x18\x01 \x03(\x0b\x32(.google.cloud.vmmigration.v1.MigratingVmB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\x96\x01\n\x15GetMigratingVmRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\x12?\n\x04view\x18\x02 \x01(\x0e\x32,.google.cloud.vmmigration.v1.MigratingVmViewB\x03\xe0\x41\x01\"\xa4\x01\n\x18UpdateMigratingVmRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x43\n\x0cmigrating_vm\x18\x02 \x01(\x0b\x32(.google.cloud.vmmigration.v1.MigratingVmB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"X\n\x18\x44\x65leteMigratingVmRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"]\n\x15StartMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x18\n\x16StartMigrationResponse\"]\n\x15PauseMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x18\n\x16PauseMigrationResponse\"^\n\x16ResumeMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x19\n\x17ResumeMigrationResponse\"`\n\x18\x46inalizeMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"^\n\x16\x45xtendMigrationRequest\x12\x44\n\x0cmigrating_vm\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x19\n\x17\x45xtendMigrationResponse\"\x1b\n\x19\x46inalizeMigrationResponse\"\xb1\x02\n\rTargetProject\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07project\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:v\xea\x41s\n(vmmigration.googleapis.com/TargetProject\x12Gprojects/{project}/locations/{location}/targetProjects/{target_project}\"Y\n\x17GetTargetProjectRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\"\xba\x01\n\x19ListTargetProjectsRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(vmmigration.googleapis.com/TargetProject\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x9e\x01\n\x1aListTargetProjectsResponse\x12H\n\x0ftarget_projects\x18\x01 \x03(\x0b\x32*.google.cloud.vmmigration.v1.TargetProjectB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\xdb\x01\n\x1a\x43reateTargetProjectRequest\x12@\n\x06parent\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\x12(vmmigration.googleapis.com/TargetProject\x12\x1e\n\x11target_project_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12G\n\x0etarget_project\x18\x03 \x01(\x0b\x32*.google.cloud.vmmigration.v1.TargetProjectB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\xaa\x01\n\x1aUpdateTargetProjectRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12G\n\x0etarget_project\x18\x02 \x01(\x0b\x32*.google.cloud.vmmigration.v1.TargetProjectB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"u\n\x1a\x44\x65leteTargetProjectRequest\x12>\n\x04name\x18\x01 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\xea\x03\n\x05Group\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x05 \x01(\t\x12Z\n\x15migration_target_type\x18\x06 \x01(\x0e\x32\x36.google.cloud.vmmigration.v1.Group.MigrationTargetTypeB\x03\xe0\x41\x05\"|\n\x13MigrationTargetType\x12%\n!MIGRATION_TARGET_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19MIGRATION_TARGET_TYPE_GCE\x10\x01\x12\x1f\n\x1bMIGRATION_TARGET_TYPE_DISKS\x10\x02:]\xea\x41Z\n vmmigration.googleapis.com/Group\x12\x36projects/{project}/locations/{location}/groups/{group}\"\xaa\x01\n\x11ListGroupsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 vmmigration.googleapis.com/Group\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x85\x01\n\x12ListGroupsResponse\x12\x37\n\x06groups\x18\x01 \x03(\x0b\x32\".google.cloud.vmmigration.v1.GroupB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"I\n\x0fGetGroupRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\"\xb1\x01\n\x12\x43reateGroupRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 vmmigration.googleapis.com/Group\x12\x15\n\x08group_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x36\n\x05group\x18\x03 \x01(\x0b\x32\".google.cloud.vmmigration.v1.GroupB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"\x91\x01\n\x12UpdateGroupRequest\x12/\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x36\n\x05group\x18\x02 \x01(\x0b\x32\".google.cloud.vmmigration.v1.GroupB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x03 \x01(\t\"e\n\x12\x44\x65leteGroupRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"\x96\x01\n\x18\x41\x64\x64GroupMigrationRequest\x12\x37\n\x05group\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\x12\x41\n\x0cmigrating_vm\x18\x02 \x01(\tB+\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x1b\n\x19\x41\x64\x64GroupMigrationResponse\"\x99\x01\n\x1bRemoveGroupMigrationRequest\x12\x37\n\x05group\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n vmmigration.googleapis.com/Group\x12\x41\n\x0cmigrating_vm\x18\x02 \x01(\tB+\xfa\x41(\n&vmmigration.googleapis.com/MigratingVm\"\x1e\n\x1cRemoveGroupMigrationResponse\"\xcc\x01\n\x17\x43reateCutoverJobRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%vmmigration.googleapis.com/CutoverJob\x12\x1b\n\x0e\x63utover_job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x41\n\x0b\x63utover_job\x18\x03 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.CutoverJobB\x03\xe0\x41\x02\x12\x12\n\nrequest_id\x18\x04 \x01(\t\"V\n\x17\x43\x61ncelCutoverJobRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%vmmigration.googleapis.com/CutoverJob\"\x1a\n\x18\x43\x61ncelCutoverJobResponse\"\xb4\x01\n\x16ListCutoverJobsRequest\x12=\n\x06parent\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\x12%vmmigration.googleapis.com/CutoverJob\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x95\x01\n\x17ListCutoverJobsResponse\x12\x42\n\x0c\x63utover_jobs\x18\x01 \x03(\x0b\x32\'.google.cloud.vmmigration.v1.CutoverJobB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"S\n\x14GetCutoverJobRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%vmmigration.googleapis.com/CutoverJob\"\x80\x02\n\x11OperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x13\n\x06target\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x11\n\x04verb\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x1b\n\x0estatus_message\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x03\xe0\x41\x03\x12\x18\n\x0b\x61pi_version\x18\x07 \x01(\tB\x03\xe0\x41\x03\"\xf1\x04\n\x0eMigrationError\x12H\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.MigrationError.ErrorCodeB\x03\xe0\x41\x03\x12\x38\n\rerror_message\x18\x02 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageB\x03\xe0\x41\x03\x12\x36\n\x0b\x61\x63tion_item\x18\x03 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageB\x03\xe0\x41\x03\x12.\n\nhelp_links\x18\x04 \x03(\x0b\x32\x15.google.rpc.Help.LinkB\x03\xe0\x41\x03\x12\x33\n\nerror_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\xbd\x02\n\tErrorCode\x12\x1a\n\x16\x45RROR_CODE_UNSPECIFIED\x10\x00\x12\x11\n\rUNKNOWN_ERROR\x10\x01\x12\x1b\n\x17SOURCE_VALIDATION_ERROR\x10\x02\x12\x1c\n\x18SOURCE_REPLICATION_ERROR\x10\x03\x12\x1c\n\x18TARGET_REPLICATION_ERROR\x10\x04\x12\x17\n\x13OS_ADAPTATION_ERROR\x10\x05\x12\x0f\n\x0b\x43LONE_ERROR\x10\x06\x12\x11\n\rCUTOVER_ERROR\x10\x07\x12\x1c\n\x18UTILIZATION_REPORT_ERROR\x10\x08\x12\x1b\n\x17\x41PPLIANCE_UPGRADE_ERROR\x10\t\x12\x16\n\x12IMAGE_IMPORT_ERROR\x10\n\x12\x18\n\x14\x44ISK_MIGRATION_ERROR\x10\x0b\"\xf6\x02\n\x10MigrationWarning\x12G\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x39.google.cloud.vmmigration.v1.MigrationWarning.WarningCode\x12:\n\x0fwarning_message\x18\x02 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageB\x03\xe0\x41\x03\x12\x36\n\x0b\x61\x63tion_item\x18\x03 \x01(\x0b\x32\x1c.google.rpc.LocalizedMessageB\x03\xe0\x41\x03\x12.\n\nhelp_links\x18\x04 \x03(\x0b\x32\x15.google.rpc.Help.LinkB\x03\xe0\x41\x03\x12\x30\n\x0cwarning_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"C\n\x0bWarningCode\x12\x1c\n\x18WARNING_CODE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x41\x44\x41PTATION_WARNING\x10\x01\"\x95\x04\n\x15VmwareSourceVmDetails\x12R\n\x08\x66irmware\x18\x01 \x01(\x0e\x32;.google.cloud.vmmigration.v1.VmwareSourceVmDetails.FirmwareB\x03\xe0\x41\x03\x12$\n\x17\x63ommitted_storage_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12X\n\x05\x64isks\x18\x03 \x03(\x0b\x32\x44.google.cloud.vmmigration.v1.VmwareSourceVmDetails.VmwareDiskDetailsB\x03\xe0\x41\x03\x12N\n\x14vm_capabilities_info\x18\x05 \x01(\x0b\x32+.google.cloud.vmmigration.v1.VmCapabilitiesB\x03\xe0\x41\x03\x12\x46\n\x0c\x61rchitecture\x18\x06 \x01(\x0e\x32+.google.cloud.vmmigration.v1.VmArchitectureB\x03\xe0\x41\x03\x1aW\n\x11VmwareDiskDetails\x12\x18\n\x0b\x64isk_number\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x14\n\x07size_gb\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x12\n\x05label\x18\x03 \x01(\tB\x03\xe0\x41\x03\"7\n\x08\x46irmware\x12\x18\n\x14\x46IRMWARE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"\x8a\x04\n\x12\x41wsSourceVmDetails\x12O\n\x08\x66irmware\x18\x01 \x01(\x0e\x32\x38.google.cloud.vmmigration.v1.AwsSourceVmDetails.FirmwareB\x03\xe0\x41\x03\x12$\n\x17\x63ommitted_storage_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12R\n\x05\x64isks\x18\x03 \x03(\x0b\x32>.google.cloud.vmmigration.v1.AwsSourceVmDetails.AwsDiskDetailsB\x03\xe0\x41\x03\x12N\n\x14vm_capabilities_info\x18\x05 \x01(\x0b\x32+.google.cloud.vmmigration.v1.VmCapabilitiesB\x03\xe0\x41\x03\x12\x46\n\x0c\x61rchitecture\x18\x06 \x01(\x0e\x32+.google.cloud.vmmigration.v1.VmArchitectureB\x03\xe0\x41\x03\x1aX\n\x0e\x41wsDiskDetails\x12\x18\n\x0b\x64isk_number\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x16\n\tvolume_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07size_gb\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\"7\n\x08\x46irmware\x12\x18\n\x14\x46IRMWARE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"\x92\x04\n\x14\x41zureSourceVmDetails\x12Q\n\x08\x66irmware\x18\x01 \x01(\x0e\x32:.google.cloud.vmmigration.v1.AzureSourceVmDetails.FirmwareB\x03\xe0\x41\x03\x12$\n\x17\x63ommitted_storage_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12V\n\x05\x64isks\x18\x03 \x03(\x0b\x32\x42.google.cloud.vmmigration.v1.AzureSourceVmDetails.AzureDiskDetailsB\x03\xe0\x41\x03\x12N\n\x14vm_capabilities_info\x18\x05 \x01(\x0b\x32+.google.cloud.vmmigration.v1.VmCapabilitiesB\x03\xe0\x41\x03\x12\x46\n\x0c\x61rchitecture\x18\x06 \x01(\x0e\x32+.google.cloud.vmmigration.v1.VmArchitectureB\x03\xe0\x41\x03\x1aX\n\x10\x41zureDiskDetails\x12\x18\n\x0b\x64isk_number\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x14\n\x07\x64isk_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x14\n\x07size_gb\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\"7\n\x08\x46irmware\x12\x18\n\x14\x46IRMWARE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x45\x46I\x10\x01\x12\x08\n\x04\x42IOS\x10\x02\"\xc0\x01\n\x1cListReplicationCyclesRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\x12+vmmigration.googleapis.com/ReplicationCycle\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xa7\x01\n\x1dListReplicationCyclesResponse\x12N\n\x12replication_cycles\x18\x01 \x03(\x0b\x32-.google.cloud.vmmigration.v1.ReplicationCycleB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"_\n\x1aGetReplicationCycleRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+vmmigration.googleapis.com/ReplicationCycle\"\xa7\x01\n\x0eVmCapabilities\x12J\n\x0fos_capabilities\x18\x01 \x03(\x0e\x32).google.cloud.vmmigration.v1.OsCapabilityB\x06\xe0\x41\x03\xe0\x41\x06\x12I\n last_os_capabilities_update_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"\xf6\x04\n\x0bImageImport\x12 \n\x11\x63loud_storage_uri\x18\x02 \x01(\tB\x03\xe0\x41\x05H\x00\x12^\n\x1a\x64isk_image_target_defaults\x18\x04 \x01(\x0b\x32\x33.google.cloud.vmmigration.v1.DiskImageTargetDetailsB\x03\xe0\x41\x05H\x01\x12\x64\n\x1dmachine_image_target_defaults\x18\x07 \x01(\x0b\x32\x36.google.cloud.vmmigration.v1.MachineImageTargetDetailsB\x03\xe0\x41\x05H\x01\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12R\n\x18recent_image_import_jobs\x18\x05 \x03(\x0b\x32+.google.cloud.vmmigration.v1.ImageImportJobB\x03\xe0\x41\x03\x12@\n\nencryption\x18\x06 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x05:\x82\x01\xea\x41\x7f\n&vmmigration.googleapis.com/ImageImport\x12:projects/{project}/locations/{location}/imageImports/{job}*\x0cimageImports2\x0bimageImportB\x08\n\x06sourceB\x11\n\x0ftarget_defaults\"\xc2\x07\n\x0eImageImportJob\x12 \n\x11\x63loud_storage_uri\x18\n \x01(\tB\x03\xe0\x41\x03H\x00\x12]\n\x19\x64isk_image_target_details\x18\x03 \x01(\x0b\x32\x33.google.cloud.vmmigration.v1.DiskImageTargetDetailsB\x03\xe0\x41\x03H\x01\x12\x63\n\x1cmachine_image_target_details\x18\x0b \x01(\x0b\x32\x36.google.cloud.vmmigration.v1.MachineImageTargetDetailsB\x03\xe0\x41\x03H\x01\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1e\n\x11\x63reated_resources\x18\x02 \x03(\tB\x03\xe0\x41\x03\x12\x45\n\x05state\x18\x04 \x01(\x0e\x32\x31.google.cloud.vmmigration.v1.ImageImportJob.StateB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\'\n\x06\x65rrors\x18\x07 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x44\n\x08warnings\x18\x08 \x03(\x0b\x32-.google.cloud.vmmigration.v1.MigrationWarningB\x03\xe0\x41\x03\x12@\n\x05steps\x18\t \x03(\x0b\x32,.google.cloud.vmmigration.v1.ImageImportStepB\x03\xe0\x41\x03\"r\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0e\n\nCANCELLING\x10\x05\x12\r\n\tCANCELLED\x10\x06:\xa5\x01\xea\x41\xa1\x01\n)vmmigration.googleapis.com/ImageImportJob\x12Sprojects/{project}/locations/{location}/imageImports/{job}/imageImportJobs/{result}*\x0fimageImportJobs2\x0eimageImportJobB\x08\n\x06sourceB\x10\n\x0etarget_details\"\xbb\x03\n\x0fImageImportStep\x12P\n\x0cinitializing\x18\x03 \x01(\x0b\x32\x38.google.cloud.vmmigration.v1.InitializingImageImportStepH\x00\x12X\n\x14loading_source_files\x18\x04 \x01(\x0b\x32\x38.google.cloud.vmmigration.v1.LoadingImageSourceFilesStepH\x00\x12\x42\n\x0b\x61\x64\x61pting_os\x18\x05 \x01(\x0b\x32+.google.cloud.vmmigration.v1.AdaptingOSStepH\x00\x12H\n\x0e\x63reating_image\x18\x06 \x01(\x0b\x32..google.cloud.vmmigration.v1.CreatingImageStepH\x00\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x42\x06\n\x04step\"\x1d\n\x1bInitializingImageImportStep\"\x1d\n\x1bLoadingImageSourceFilesStep\"\x13\n\x11\x43reatingImageStep\"\x96\x05\n\x16\x44iskImageTargetDetails\x12g\n\x18os_adaptation_parameters\x18\x0b \x01(\x0b\x32>.google.cloud.vmmigration.v1.ImageImportOsAdaptationParametersB\x03\xe0\x41\x01H\x00\x12W\n\x16\x64\x61ta_disk_image_import\x18\x0c \x01(\x0b\x32\x30.google.cloud.vmmigration.v1.DataDiskImageImportB\x03\xe0\x41\x01H\x00\x12\x17\n\nimage_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x0etarget_project\x18\x02 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x18\n\x0b\x66\x61mily_name\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12T\n\x06labels\x18\x07 \x03(\x0b\x32?.google.cloud.vmmigration.v1.DiskImageTargetDetails.LabelsEntryB\x03\xe0\x41\x01\x12 \n\x13\x61\x64\x64itional_licenses\x18\x08 \x03(\tB\x03\xe0\x41\x01\x12\"\n\x15single_region_storage\x18\t \x01(\x08\x42\x03\xe0\x41\x01\x12@\n\nencryption\x18\n \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x05\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x16\n\x14os_adaptation_config\"\xfc\x07\n\x19MachineImageTargetDetails\x12g\n\x18os_adaptation_parameters\x18\x03 \x01(\x0b\x32>.google.cloud.vmmigration.v1.ImageImportOsAdaptationParametersB\x03\xe0\x41\x01H\x00\x12P\n\x12skip_os_adaptation\x18\x10 \x01(\x0b\x32-.google.cloud.vmmigration.v1.SkipOsAdaptationB\x03\xe0\x41\x01H\x00\x12\x1f\n\x12machine_image_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12H\n\x0etarget_project\x18\x02 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\"\n\x15single_region_storage\x18\x05 \x01(\x08\x42\x03\xe0\x41\x01\x12@\n\nencryption\x18\x06 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x05\x12m\n\"machine_image_parameters_overrides\x18\x07 \x01(\x0b\x32<.google.cloud.vmmigration.v1.MachineImageParametersOverridesB\x03\xe0\x41\x01\x12I\n\x0fservice_account\x18\x08 \x01(\x0b\x32+.google.cloud.vmmigration.v1.ServiceAccountB\x03\xe0\x41\x01\x12 \n\x13\x61\x64\x64itional_licenses\x18\t \x03(\tB\x03\xe0\x41\x01\x12W\n\x06labels\x18\n \x03(\x0b\x32\x42.google.cloud.vmmigration.v1.MachineImageTargetDetails.LabelsEntryB\x03\xe0\x41\x01\x12\x11\n\x04tags\x18\x0b \x03(\tB\x03\xe0\x41\x01\x12Z\n\x18shielded_instance_config\x18\x0c \x01(\x0b\x32\x33.google.cloud.vmmigration.v1.ShieldedInstanceConfigB\x03\xe0\x41\x01\x12N\n\x12network_interfaces\x18\r \x03(\x0b\x32-.google.cloud.vmmigration.v1.NetworkInterfaceB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x16\n\x14os_adaptation_config\"_\n\x0eServiceAccount\x12\x38\n\x05\x65mail\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!iam.googleapis.com/ServiceAccount\x12\x13\n\x06scopes\x18\x02 \x03(\tB\x03\xe0\x41\x01\"\xf6\x01\n\x16ShieldedInstanceConfig\x12X\n\x0bsecure_boot\x18\x01 \x01(\x0e\x32>.google.cloud.vmmigration.v1.ShieldedInstanceConfig.SecureBootB\x03\xe0\x41\x01\x12\x18\n\x0b\x65nable_vtpm\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12(\n\x1b\x65nable_integrity_monitoring\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\">\n\nSecureBoot\x12\x1b\n\x17SECURE_BOOT_UNSPECIFIED\x10\x00\x12\x08\n\x04TRUE\x10\x01\x12\t\n\x05\x46\x41LSE\x10\x02\"<\n\x1fMachineImageParametersOverrides\x12\x19\n\x0cmachine_type\x18\x01 \x01(\tB\x03\xe0\x41\x01\"\xd9\x01\n!ImageImportOsAdaptationParameters\x12\x17\n\ngeneralize\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x12P\n\x0clicense_type\x18\x02 \x01(\x0e\x32\x35.google.cloud.vmmigration.v1.ComputeEngineLicenseTypeB\x03\xe0\x41\x01\x12I\n\x0f\x62oot_conversion\x18\x03 \x01(\x0e\x32+.google.cloud.vmmigration.v1.BootConversionB\x03\xe0\x41\x01\"\x15\n\x13\x44\x61taDiskImageImport\"\x12\n\x10SkipOsAdaptation\"U\n\x15GetImageImportRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/ImageImport\"\xb6\x01\n\x17ListImageImportsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&vmmigration.googleapis.com/ImageImport\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\x98\x01\n\x18ListImageImportsResponse\x12\x44\n\rimage_imports\x18\x01 \x03(\x0b\x32(.google.cloud.vmmigration.v1.ImageImportB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"\xd6\x01\n\x18\x43reateImageImportRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&vmmigration.googleapis.com/ImageImport\x12\x1c\n\x0fimage_import_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x43\n\x0cimage_import\x18\x03 \x01(\x0b\x32(.google.cloud.vmmigration.v1.ImageImportB\x03\xe0\x41\x02\x12\x17\n\nrequest_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\"q\n\x18\x44\x65leteImageImportRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&vmmigration.googleapis.com/ImageImport\x12\x17\n\nrequest_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"[\n\x18GetImageImportJobRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)vmmigration.googleapis.com/ImageImportJob\"\xbc\x01\n\x1aListImageImportJobsRequest\x12\x41\n\x06parent\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\x12)vmmigration.googleapis.com/ImageImportJob\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xa2\x01\n\x1bListImageImportJobsResponse\x12K\n\x11image_import_jobs\x18\x01 \x03(\x0b\x32+.google.cloud.vmmigration.v1.ImageImportJobB\x03\xe0\x41\x03\x12\x1c\n\x0fnext_page_token\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x18\n\x0bunreachable\x18\x03 \x03(\tB\x03\xe0\x41\x03\"^\n\x1b\x43\x61ncelImageImportJobRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)vmmigration.googleapis.com/ImageImportJob\"\x1e\n\x1c\x43\x61ncelImageImportJobResponse\"\xbc\x06\n\x10\x44iskMigrationJob\x12T\n\x17\x61ws_source_disk_details\x18\x02 \x01(\x0b\x32\x31.google.cloud.vmmigration.v1.AwsSourceDiskDetailsH\x00\x12\x14\n\x04name\x18\x01 \x01(\tB\x06\xe0\x41\x08\xe0\x41\x03\x12W\n\x0etarget_details\x18\x03 \x01(\x0b\x32:.google.cloud.vmmigration.v1.DiskMigrationJobTargetDetailsB\x03\xe0\x41\x02\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12G\n\x05state\x18\x06 \x01(\x0e\x32\x33.google.cloud.vmmigration.v1.DiskMigrationJob.StateB\x03\xe0\x41\x03\x12\'\n\x06\x65rrors\x18\x07 \x03(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03\x12\x42\n\x05steps\x18\x08 \x03(\x0b\x32..google.cloud.vmmigration.v1.DiskMigrationStepB\x03\xe0\x41\x03\"p\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\t\n\x05READY\x10\x01\x12\x0b\n\x07RUNNING\x10\x03\x12\r\n\tSUCCEEDED\x10\x04\x12\x0e\n\nCANCELLING\x10\x05\x12\r\n\tCANCELLED\x10\x06\x12\n\n\x06\x46\x41ILED\x10\x07:\xb7\x01\xea\x41\xb3\x01\n+vmmigration.googleapis.com/DiskMigrationJob\x12_projects/{project}/locations/{location}/sources/{source}/diskMigrationJobs/{disk_migration_job}*\x11\x64iskMigrationJobs2\x10\x64iskMigrationJobB\x15\n\x13source_disk_details\"\x95\x03\n\x1d\x44iskMigrationJobTargetDetails\x12J\n\x0btarget_disk\x18\x08 \x01(\x0b\x32..google.cloud.vmmigration.v1.ComputeEngineDiskB\x03\xe0\x41\x02H\x00\x12H\n\x0etarget_project\x18\x02 \x01(\tB0\xe0\x41\x02\xfa\x41*\n(vmmigration.googleapis.com/TargetProject\x12[\n\x06labels\x18\x06 \x03(\x0b\x32\x46.google.cloud.vmmigration.v1.DiskMigrationJobTargetDetails.LabelsEntryB\x03\xe0\x41\x01\x12@\n\nencryption\x18\x07 \x01(\x0b\x32\'.google.cloud.vmmigration.v1.EncryptionB\x03\xe0\x41\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0etarget_storage\"\xaa\x03\n\x11\x44iskMigrationStep\x12\x64\n\x1d\x63reating_source_disk_snapshot\x18\x03 \x01(\x0b\x32;.google.cloud.vmmigration.v1.CreatingSourceDiskSnapshotStepH\x00\x12\x62\n\x1c\x63opying_source_disk_snapshot\x18\x04 \x01(\x0b\x32:.google.cloud.vmmigration.v1.CopyingSourceDiskSnapshotStepH\x00\x12[\n\x18provisioning_target_disk\x18\x05 \x01(\x0b\x32\x37.google.cloud.vmmigration.v1.ProvisioningTargetDiskStepH\x00\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x42\x06\n\x04step\" \n\x1e\x43reatingSourceDiskSnapshotStep\"\x1f\n\x1d\x43opyingSourceDiskSnapshotStep\"\x1c\n\x1aProvisioningTargetDiskStep\"\xf0\x01\n\x11\x43omputeEngineDisk\x12\x14\n\x07\x64isk_id\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x37\n\x04zone\x18\x02 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!locations.googleapis.com/Location\x12@\n\rreplica_zones\x18\x03 \x03(\tB)\xe0\x41\x01\xfa\x41#\n!locations.googleapis.com/Location\x12J\n\tdisk_type\x18\x04 \x01(\x0e\x32\x32.google.cloud.vmmigration.v1.ComputeEngineDiskTypeB\x03\xe0\x41\x02\"\xfa\x02\n\x14\x41wsSourceDiskDetails\x12\x16\n\tvolume_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x15\n\x08size_gib\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12Q\n\tdisk_type\x18\x03 \x01(\x0e\x32\x36.google.cloud.vmmigration.v1.AwsSourceDiskDetails.TypeB\x06\xe0\x41\x01\xe0\x41\x03\x12Q\n\x04tags\x18\x04 \x03(\x0b\x32;.google.cloud.vmmigration.v1.AwsSourceDiskDetails.TagsEntryB\x06\xe0\x41\x01\xe0\x41\x03\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"`\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03GP2\x10\x01\x12\x07\n\x03GP3\x10\x02\x12\x07\n\x03IO1\x10\x03\x12\x07\n\x03IO2\x10\x04\x12\x07\n\x03ST1\x10\x05\x12\x07\n\x03SC1\x10\x06\x12\x0c\n\x08STANDARD\x10\x07\"\xf9\x01\n\x1d\x43reateDiskMigrationJobRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\x12+vmmigration.googleapis.com/DiskMigrationJob\x12\"\n\x15\x64isk_migration_job_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12N\n\x12\x64isk_migration_job\x18\x03 \x01(\x0b\x32-.google.cloud.vmmigration.v1.DiskMigrationJobB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xc0\x01\n\x1cListDiskMigrationJobsRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\x12+vmmigration.googleapis.com/DiskMigrationJob\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08order_by\x18\x05 \x01(\tB\x03\xe0\x41\x01\"\xd1\x01\n\x1dListDiskMigrationJobsResponse\x12O\n\x13\x64isk_migration_jobs\x18\x01 \x03(\x0b\x32-.google.cloud.vmmigration.v1.DiskMigrationJobB\x03\xe0\x41\x03\x12\x1f\n\x0fnext_page_token\x18\x02 \x01(\tB\x06\xe0\x41\x03\xe0\x41\x01\x12>\n\x0bunreachable\x18\x03 \x03(\tB)\xe0\x41\x03\xfa\x41#\n!locations.googleapis.com/Location\"_\n\x1aGetDiskMigrationJobRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+vmmigration.googleapis.com/DiskMigrationJob\"\xc6\x01\n\x1dUpdateDiskMigrationJobRequest\x12\x34\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12N\n\x12\x64isk_migration_job\x18\x02 \x01(\x0b\x32-.google.cloud.vmmigration.v1.DiskMigrationJobB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"b\n\x1d\x44\x65leteDiskMigrationJobRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+vmmigration.googleapis.com/DiskMigrationJob\"_\n\x1aRunDiskMigrationJobRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+vmmigration.googleapis.com/DiskMigrationJob\"\x1d\n\x1bRunDiskMigrationJobResponse\"b\n\x1d\x43\x61ncelDiskMigrationJobRequest\x12\x41\n\x04name\x18\x01 \x01(\tB3\xe0\x41\x02\xfa\x41-\n+vmmigration.googleapis.com/DiskMigrationJob\" \n\x1e\x43\x61ncelDiskMigrationJobResponse*\xe2\x01\n\x15\x43omputeEngineDiskType\x12(\n$COMPUTE_ENGINE_DISK_TYPE_UNSPECIFIED\x10\x00\x12%\n!COMPUTE_ENGINE_DISK_TYPE_STANDARD\x10\x01\x12 \n\x1c\x43OMPUTE_ENGINE_DISK_TYPE_SSD\x10\x02\x12%\n!COMPUTE_ENGINE_DISK_TYPE_BALANCED\x10\x03\x12/\n+COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED\x10\x04*\x8f\x01\n\x18\x43omputeEngineLicenseType\x12\'\n#COMPUTE_ENGINE_LICENSE_TYPE_DEFAULT\x10\x00\x12$\n COMPUTE_ENGINE_LICENSE_TYPE_PAYG\x10\x01\x12$\n COMPUTE_ENGINE_LICENSE_TYPE_BYOL\x10\x02*\x8e\x01\n\x17\x43omputeEngineBootOption\x12*\n&COMPUTE_ENGINE_BOOT_OPTION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x43OMPUTE_ENGINE_BOOT_OPTION_EFI\x10\x01\x12#\n\x1f\x43OMPUTE_ENGINE_BOOT_OPTION_BIOS\x10\x02*\xa9\x01\n\x0cOsCapability\x12\x1d\n\x19OS_CAPABILITY_UNSPECIFIED\x10\x00\x12%\n!OS_CAPABILITY_NVME_STORAGE_ACCESS\x10\x01\x12)\n%OS_CAPABILITY_GVNIC_NETWORK_INTERFACE\x10\x02\x12(\n$OS_CAPABILITY_IDPF_NETWORK_INTERFACE\x10\x03*L\n\x0e\x42ootConversion\x12\x1f\n\x1b\x42OOT_CONVERSION_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0f\n\x0b\x42IOS_TO_EFI\x10\x02*U\n\x15UtilizationReportView\x12\'\n#UTILIZATION_REPORT_VIEW_UNSPECIFIED\x10\x00\x12\t\n\x05\x42\x41SIC\x10\x01\x12\x08\n\x04\x46ULL\x10\x02*m\n\x0fMigratingVmView\x12!\n\x1dMIGRATING_VM_VIEW_UNSPECIFIED\x10\x00\x12\x1b\n\x17MIGRATING_VM_VIEW_BASIC\x10\x01\x12\x1a\n\x16MIGRATING_VM_VIEW_FULL\x10\x02*l\n\x0eVmArchitecture\x12\x1f\n\x1bVM_ARCHITECTURE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aVM_ARCHITECTURE_X86_FAMILY\x10\x01\x12\x19\n\x15VM_ARCHITECTURE_ARM64\x10\x02*|\n\x18\x43omputeEngineNetworkTier\x12+\n\'COMPUTE_ENGINE_NETWORK_TIER_UNSPECIFIED\x10\x00\x12\x19\n\x15NETWORK_TIER_STANDARD\x10\x01\x12\x18\n\x14NETWORK_TIER_PREMIUM\x10\x02\x32\xebp\n\x0bVmMigration\x12\xae\x01\n\x0bListSources\x12/.google.cloud.vmmigration.v1.ListSourcesRequest\x1a\x30.google.cloud.vmmigration.v1.ListSourcesResponse\"<\xda\x41\x06parent\x82\xd3\xe4\x93\x02-\x12+/v1/{parent=projects/*/locations/*}/sources\x12\x9b\x01\n\tGetSource\x12-.google.cloud.vmmigration.v1.GetSourceRequest\x1a#.google.cloud.vmmigration.v1.Source\":\xda\x41\x04name\x82\xd3\xe4\x93\x02-\x12+/v1/{name=projects/*/locations/*/sources/*}\x12\xd4\x01\n\x0c\x43reateSource\x12\x30.google.cloud.vmmigration.v1.CreateSourceRequest\x1a\x1d.google.longrunning.Operation\"s\xca\x41\x1b\n\x06Source\x12\x11OperationMetadata\xda\x41\x17parent,source,source_id\x82\xd3\xe4\x93\x02\x35\"+/v1/{parent=projects/*/locations/*}/sources:\x06source\x12\xd6\x01\n\x0cUpdateSource\x12\x30.google.cloud.vmmigration.v1.UpdateSourceRequest\x1a\x1d.google.longrunning.Operation\"u\xca\x41\x1b\n\x06Source\x12\x11OperationMetadata\xda\x41\x12source,update_mask\x82\xd3\xe4\x93\x02<22/v1/{source.name=projects/*/locations/*/sources/*}:\x06source\x12\xc8\x01\n\x0c\x44\x65leteSource\x12\x30.google.cloud.vmmigration.v1.DeleteSourceRequest\x1a\x1d.google.longrunning.Operation\"g\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02-*+/v1/{name=projects/*/locations/*/sources/*}\x12\xc8\x01\n\x0e\x46\x65tchInventory\x12\x32.google.cloud.vmmigration.v1.FetchInventoryRequest\x1a\x33.google.cloud.vmmigration.v1.FetchInventoryResponse\"M\xda\x41\x06source\x82\xd3\xe4\x93\x02>\x12 e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the access control policy for a resource. + # Returns an empty policy if the resource exists and does not have a policy + # set. + # + # @overload get_iam_policy(request, options = nil) + # Pass arguments to `get_iam_policy` via a request object, either of type + # {::Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::GetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_iam_policy(resource: nil, options: nil) + # Pass arguments to `get_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param options [::Google::Iam::V1::GetPolicyOptions, ::Hash] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::Policy] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::GetIamPolicyRequest.new + # + # # Call the get_iam_policy method. + # result = client.get_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def get_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::GetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource + header_params["resource"] = request.resource + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.call_rpc :get_iam_policy, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # 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. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::TestIamPermissionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload test_iam_permissions(resource: nil, permissions: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param permissions [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::TestIamPermissionsRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::TestIamPermissionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.resource + header_params["resource"] = request.resource + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.call_rpc :test_iam_permissions, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the IAMPolicy API. + # + # This class represents the configuration for IAMPolicy, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Iam::V1::IAMPolicy::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # set_iam_policy to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Iam::V1::IAMPolicy::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "iam-meta-api.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the IAMPolicy API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `set_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :set_iam_policy + ## + # RPC-specific configuration for `get_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_iam_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions + + # @private + def initialize parent_rpcs = nil + set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy + @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config + get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy + @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config + + yield self if block_given? + end + end + end + end + end + end + end +end diff --git a/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/credentials.rb b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/credentials.rb new file mode 100644 index 000000000000..58c18d8376c1 --- /dev/null +++ b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/credentials.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Iam + module V1 + module IAMPolicy + # Credentials for the IAMPolicy API. + class Credentials < ::Google::Auth::Credentials + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end +end diff --git a/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest.rb b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest.rb new file mode 100644 index 000000000000..16f40e2d9a85 --- /dev/null +++ b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest.rb @@ -0,0 +1,74 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/cloud/vm_migration/v1/version" +require "google/iam/v1/bindings_override" + +require "google/iam/v1/iam_policy/credentials" +require "google/iam/v1/iam_policy/rest/client" + +module Google + module Iam + module V1 + ## + # API Overview + # + # Manages Identity and Access Management (IAM) policies. + # + # Any implementation of an API that offers access control features + # implements the google.iam.v1.IAMPolicy interface. + # + # ## Data model + # + # Access control is applied when a principal (user or service account), takes + # some action on a resource exposed by a service. Resources, identified by + # URI-like names, are the unit of access control specification. Service + # implementations can choose the granularity of access control and the + # supported permissions for their resources. + # For example one database service may allow access control to be + # specified only at the Table level, whereas another might allow access control + # to also be specified at the Column level. + # + # ## Policy Structure + # + # See google.iam.v1.Policy + # + # This is intentionally not a CRUD style API because access control policies + # are created and deleted implicitly with the resources to which they are + # attached. + # + # To load this service and instantiate a REST client: + # + # require "google/iam/v1/iam_policy/rest" + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + module IAMPolicy + # Client for the REST transport + module Rest + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/iam/v1/iam_policy/rest/helpers" if ::File.file? helper_path diff --git a/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest/client.rb b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest/client.rb new file mode 100644 index 000000000000..f2fd3730bb57 --- /dev/null +++ b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest/client.rb @@ -0,0 +1,671 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/iam/v1/iam_policy_pb" +require "google/iam/v1/iam_policy/rest/service_stub" +require "google/cloud/location/rest" + +module Google + module Iam + module V1 + module IAMPolicy + module Rest + ## + # REST client for the IAMPolicy service. + # + # API Overview + # + # Manages Identity and Access Management (IAM) policies. + # + # Any implementation of an API that offers access control features + # implements the google.iam.v1.IAMPolicy interface. + # + # ## Data model + # + # Access control is applied when a principal (user or service account), takes + # some action on a resource exposed by a service. Resources, identified by + # URI-like names, are the unit of access control specification. Service + # implementations can choose the granularity of access control and the + # supported permissions for their resources. + # For example one database service may allow access control to be + # specified only at the Table level, whereas another might allow access control + # to also be specified at the Column level. + # + # ## Policy Structure + # + # See google.iam.v1.Policy + # + # This is intentionally not a CRUD style API because access control policies + # are created and deleted implicitly with the resources to which they are + # attached. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "iam-meta-api.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :iam_policy_stub + + ## + # Configure the IAMPolicy Client class. + # + # See {::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all IAMPolicy clients + # ::Google::Iam::V1::IAMPolicy::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Iam", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the IAMPolicy Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @iam_policy_stub.universe_domain + end + + ## + # Create a new IAMPolicy REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the IAMPolicy client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @iam_policy_stub = ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @iam_policy_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + + @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config| + config.credentials = credentials + config.quota_project = @quota_project_id + config.endpoint = @iam_policy_stub.endpoint + config.universe_domain = @iam_policy_stub.universe_domain + config.bindings_override = @config.bindings_override + config.logger = @iam_policy_stub.logger if config.respond_to? :logger= + end + end + + ## + # Get the associated client for mix-in of the Locations. + # + # @return [Google::Cloud::Location::Locations::Rest::Client] + # + attr_reader :location_client + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @iam_policy_stub.logger + end + + # Service calls + + ## + # Sets the access control policy on the specified resource. Replaces any + # existing policy. + # + # Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. + # + # @overload set_iam_policy(request, options = nil) + # Pass arguments to `set_iam_policy` via a request object, either of type + # {::Google::Iam::V1::SetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::SetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload set_iam_policy(resource: nil, policy: nil, update_mask: nil) + # Pass arguments to `set_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @param policy [::Google::Iam::V1::Policy, ::Hash] + # REQUIRED: The complete policy to be applied to the `resource`. The size of + # the policy is limited to a few 10s of KB. An empty policy is a + # valid policy but certain Cloud Platform services (such as Projects) + # might reject them. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # + # `paths: "bindings, etag"` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::SetIamPolicyRequest.new + # + # # Call the set_iam_policy method. + # result = client.set_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def set_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::SetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.set_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.set_iam_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.set_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.set_iam_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Gets the access control policy for a resource. + # Returns an empty policy if the resource exists and does not have a policy + # set. + # + # @overload get_iam_policy(request, options = nil) + # Pass arguments to `get_iam_policy` via a request object, either of type + # {::Google::Iam::V1::GetIamPolicyRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::GetIamPolicyRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_iam_policy(resource: nil, options: nil) + # Pass arguments to `get_iam_policy` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @param options [::Google::Iam::V1::GetPolicyOptions, ::Hash] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::GetIamPolicyRequest.new + # + # # Call the get_iam_policy method. + # result = client.get_iam_policy request + # + # # The returned object is of type Google::Iam::V1::Policy. + # p result + # + def get_iam_policy request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::GetIamPolicyRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_iam_policy.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_iam_policy.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_iam_policy.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.get_iam_policy request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # 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. + # + # @overload test_iam_permissions(request, options = nil) + # Pass arguments to `test_iam_permissions` via a request object, either of type + # {::Google::Iam::V1::TestIamPermissionsRequest} or an equivalent Hash. + # + # @param request [::Google::Iam::V1::TestIamPermissionsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload test_iam_permissions(resource: nil, permissions: nil) + # Pass arguments to `test_iam_permissions` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param resource [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @param permissions [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/iam/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Iam::V1::IAMPolicy::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Iam::V1::TestIamPermissionsRequest.new + # + # # Call the test_iam_permissions method. + # result = client.test_iam_permissions request + # + # # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + # p result + # + def test_iam_permissions request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Iam::V1::TestIamPermissionsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.test_iam_permissions.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Cloud::VMMigration::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.test_iam_permissions.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.test_iam_permissions.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @iam_policy_stub.test_iam_permissions request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the IAMPolicy REST API. + # + # This class represents the configuration for IAMPolicy REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # set_iam_policy to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Iam::V1::IAMPolicy::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.set_iam_policy.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "iam-meta-api.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + + # @private + # Overrides for http bindings for the RPCs of this service + # are only used when this service is used as mixin, and only + # by the host service. + # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}] + config_attr :bindings_override, {}, ::Hash, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the IAMPolicy API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `set_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :set_iam_policy + ## + # RPC-specific configuration for `get_iam_policy` + # @return [::Gapic::Config::Method] + # + attr_reader :get_iam_policy + ## + # RPC-specific configuration for `test_iam_permissions` + # @return [::Gapic::Config::Method] + # + attr_reader :test_iam_permissions + + # @private + def initialize parent_rpcs = nil + set_iam_policy_config = parent_rpcs.set_iam_policy if parent_rpcs.respond_to? :set_iam_policy + @set_iam_policy = ::Gapic::Config::Method.new set_iam_policy_config + get_iam_policy_config = parent_rpcs.get_iam_policy if parent_rpcs.respond_to? :get_iam_policy + @get_iam_policy = ::Gapic::Config::Method.new get_iam_policy_config + test_iam_permissions_config = parent_rpcs.test_iam_permissions if parent_rpcs.respond_to? :test_iam_permissions + @test_iam_permissions = ::Gapic::Config::Method.new test_iam_permissions_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest/service_stub.rb b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest/service_stub.rb new file mode 100644 index 000000000000..94e9f4648bb0 --- /dev/null +++ b/google-cloud-vm_migration-v1/lib/google/iam/v1/iam_policy/rest/service_stub.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/iam/v1/iam_policy_pb" + +module Google + module Iam + module V1 + module IAMPolicy + module Rest + ## + # REST service stub for the IAMPolicy service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the set_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::SetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # A result object deserialized from the server's reply + def set_iam_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_set_iam_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "set_iam_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Iam::V1::Policy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::GetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::Policy] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::Policy] + # A result object deserialized from the server's reply + def get_iam_policy request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_iam_policy_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_iam_policy", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Iam::V1::Policy.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the test_iam_permissions REST call + # + # @param request_pb [::Google::Iam::V1::TestIamPermissionsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Iam::V1::TestIamPermissionsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Iam::V1::TestIamPermissionsResponse] + # A result object deserialized from the server's reply + def test_iam_permissions request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_test_iam_permissions_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "test_iam_permissions", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Iam::V1::TestIamPermissionsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the set_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::SetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_set_iam_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{resource}:setIamPolicy", + body: "*", + matches: [ + ["resource", %r{^.*$}, true] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_iam_policy REST call + # + # @param request_pb [::Google::Iam::V1::GetIamPolicyRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_iam_policy_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{resource}:getIamPolicy", + body: "*", + matches: [ + ["resource", %r{^.*$}, true] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the test_iam_permissions REST call + # + # @param request_pb [::Google::Iam::V1::TestIamPermissionsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_test_iam_permissions_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{resource}:testIamPermissions", + body: "*", + matches: [ + ["resource", %r{^.*$}, true] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end +end diff --git a/google-cloud-vm_migration-v1/lib/google/iam/v1/rest.rb b/google-cloud-vm_migration-v1/lib/google/iam/v1/rest.rb new file mode 100644 index 000000000000..ca339f341618 --- /dev/null +++ b/google-cloud-vm_migration-v1/lib/google/iam/v1/rest.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/iam/v1/iam_policy/rest" +require "google/iam/v1/bindings_override" +require "google/cloud/vm_migration/v1/version" + +module Google + module Iam + ## + # To load just the REST part of this package, including all its services, and instantiate a REST client: + # + # @example + # + # require "google/iam/v1/rest" + # client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new + # + module V1 + end + end +end diff --git a/google-cloud-vm_migration-v1/proto_docs/google/api/field_info.rb b/google-cloud-vm_migration-v1/proto_docs/google/api/field_info.rb new file mode 100644 index 000000000000..cea53f02d1a8 --- /dev/null +++ b/google-cloud-vm_migration-v1/proto_docs/google/api/field_info.rb @@ -0,0 +1,88 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Api + # Rich semantic information of an API field beyond basic typing. + # @!attribute [rw] format + # @return [::Google::Api::FieldInfo::Format] + # The standard format of a field value. This does not explicitly configure + # any API consumer, just documents the API's format for the field it is + # applied to. + # @!attribute [rw] referenced_types + # @return [::Array<::Google::Api::TypeReference>] + # The type(s) that the annotated, generic field may represent. + # + # Currently, this must only be used on fields of type `google.protobuf.Any`. + # Supporting other generic types may be considered in the future. + class FieldInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The standard format of a field value. The supported formats are all backed + # by either an RFC defined by the IETF or a Google-defined AIP. + module Format + # Default, unspecified value. + FORMAT_UNSPECIFIED = 0 + + # Universally Unique Identifier, version 4, value as defined by + # https://datatracker.ietf.org/doc/html/rfc4122. The value may be + # normalized to entirely lowercase letters. For example, the value + # `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to + # `f47ac10b-58cc-0372-8567-0e02b2c3d479`. + UUID4 = 1 + + # Internet Protocol v4 value as defined by [RFC + # 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be + # condensed, with leading zeros in each octet stripped. For example, + # `001.022.233.040` would be condensed to `1.22.233.40`. + IPV4 = 2 + + # Internet Protocol v6 value as defined by [RFC + # 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be + # normalized to entirely lowercase letters with zeros compressed, following + # [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example, + # the value `2001:0DB8:0::0` would be normalized to `2001:db8::`. + IPV6 = 3 + + # An IP address in either v4 or v6 format as described by the individual + # values defined herein. See the comments on the IPV4 and IPV6 types for + # allowed normalizations of each. + IPV4_OR_IPV6 = 4 + end + end + + # A reference to a message type, for use in {::Google::Api::FieldInfo FieldInfo}. + # @!attribute [rw] type_name + # @return [::String] + # The name of the type that the annotated, generic field may represent. + # If the type is in the same protobuf package, the value can be the simple + # message name e.g., `"MyMessage"`. Otherwise, the value must be the + # fully-qualified message name e.g., `"google.library.v1.Book"`. + # + # If the type(s) are unknown to the service (e.g. the field accepts generic + # user input), use the wildcard `"*"` to denote this behavior. + # + # See [AIP-202](https://google.aip.dev/202#type-references) for more details. + class TypeReference + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end +end diff --git a/google-cloud-vm_migration-v1/proto_docs/google/cloud/vmmigration/v1/vmmigration.rb b/google-cloud-vm_migration-v1/proto_docs/google/cloud/vmmigration/v1/vmmigration.rb index e40f7871b20c..e4e9f0140e56 100755 --- a/google-cloud-vm_migration-v1/proto_docs/google/cloud/vmmigration/v1/vmmigration.rb +++ b/google-cloud-vm_migration-v1/proto_docs/google/cloud/vmmigration/v1/vmmigration.rb @@ -50,9 +50,13 @@ module V1 # @!attribute [rw] state # @return [::Google::Cloud::VMMigration::V1::ReplicationCycle::State] # State of the ReplicationCycle. - # @!attribute [rw] error + # @!attribute [r] error # @return [::Google::Rpc::Status] - # Provides details on the state of the cycle in case of an error. + # Output only. Provides details on the state of the cycle in case of an + # error. + # @!attribute [r] warnings + # @return [::Array<::Google::Cloud::VMMigration::V1::MigrationWarning>] + # Output only. Warnings that occurred during the cycle. class ReplicationCycle include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -151,9 +155,28 @@ class ReplicationSync # @!attribute [rw] compute_engine_target_defaults # @return [::Google::Cloud::VMMigration::V1::ComputeEngineTargetDefaults] # Details of the target VM in Compute Engine. + # + # Note: The following fields are mutually exclusive: `compute_engine_target_defaults`, `compute_engine_disks_target_defaults`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] compute_engine_disks_target_defaults + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDisksTargetDefaults] + # Details of the target Persistent Disks in Compute Engine. + # + # Note: The following fields are mutually exclusive: `compute_engine_disks_target_defaults`, `compute_engine_target_defaults`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] vmware_source_vm_details + # @return [::Google::Cloud::VMMigration::V1::VmwareSourceVmDetails] + # Output only. Details of the VM from a Vmware source. + # + # Note: The following fields are mutually exclusive: `vmware_source_vm_details`, `aws_source_vm_details`, `azure_source_vm_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] aws_source_vm_details # @return [::Google::Cloud::VMMigration::V1::AwsSourceVmDetails] # Output only. Details of the VM from an AWS source. + # + # Note: The following fields are mutually exclusive: `aws_source_vm_details`, `vmware_source_vm_details`, `azure_source_vm_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] azure_source_vm_details + # @return [::Google::Cloud::VMMigration::V1::AzureSourceVmDetails] + # Output only. Details of the VM from an Azure source. + # + # Note: The following fields are mutually exclusive: `azure_source_vm_details`, `vmware_source_vm_details`, `aws_source_vm_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] name # @return [::String] # Output only. The identifier of the MigratingVm. @@ -190,8 +213,12 @@ class ReplicationSync # Output only. The last time the migrating VM state was updated. # @!attribute [r] current_sync_info # @return [::Google::Cloud::VMMigration::V1::ReplicationCycle] - # Output only. The percentage progress of the current running replication - # cycle. + # Output only. Details of the current running replication cycle. + # @!attribute [r] last_replication_cycle + # @return [::Google::Cloud::VMMigration::V1::ReplicationCycle] + # Output only. Details of the last replication cycle. This will be updated + # whenever a replication cycle is finished and is not to be confused with + # last_sync which is only updated on successful replication cycles. # @!attribute [r] group # @return [::String] # Output only. The group this migrating vm is included in, if any. The group @@ -218,10 +245,33 @@ class ReplicationSync # running cutover job, if one exists. # Note: To have this field populated you need to explicitly request it via # the "view" parameter of the Get/List request. + # @!attribute [r] cutover_forecast + # @return [::Google::Cloud::VMMigration::V1::CutoverForecast] + # Output only. Provides details of future CutoverJobs of a MigratingVm. + # Set to empty when cutover forecast is unavailable. + # @!attribute [r] expiration + # @return [::Google::Cloud::VMMigration::V1::MigratingVm::Expiration] + # Output only. Provides details about the expiration state of the migrating + # VM. class MigratingVm include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + # Expiration holds information about the expiration of a MigratingVm. + # @!attribute [r] expire_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Timestamp of when this resource is considered expired. + # @!attribute [r] extension_count + # @return [::Integer] + # Output only. The number of times expiration was extended. + # @!attribute [r] extendable + # @return [::Boolean] + # Output only. Describes whether the expiration can be extended. + class Expiration + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # @!attribute [rw] key # @return [::String] # @!attribute [rw] value @@ -274,9 +324,27 @@ module State # The replication process encountered an unrecoverable error and was # aborted. ERROR = 13 + + # The migrating VM has passed its expiration date. It might be possible to + # bring it back to "Active" state by updating the TTL field. For more + # information, see the documentation. + EXPIRED = 14 + + # The migrating VM's has been finalized and migration resources have been + # removed. + FINALIZED_EXPIRED = 17 end end + # CutoverForecast holds information about future CutoverJobs of a MigratingVm. + # @!attribute [r] estimated_cutover_job_duration + # @return [::Google::Protobuf::Duration] + # Output only. Estimation of the CutoverJob duration. + class CutoverForecast + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # CloneJob describes the process of creating a clone of a # {::Google::Cloud::VMMigration::V1::MigratingVm MigratingVM} to the # requested target based on the latest successful uploaded snapshots. @@ -290,6 +358,13 @@ module State # @!attribute [r] compute_engine_target_details # @return [::Google::Cloud::VMMigration::V1::ComputeEngineTargetDetails] # Output only. Details of the target VM in Compute Engine. + # + # Note: The following fields are mutually exclusive: `compute_engine_target_details`, `compute_engine_disks_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] compute_engine_disks_target_details + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDisksTargetDetails] + # Output only. Details of the target Persistent Disks in Compute Engine. + # + # Note: The following fields are mutually exclusive: `compute_engine_disks_target_details`, `compute_engine_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time the clone job was created (as an API call, not when @@ -393,10 +468,17 @@ class InstantiatingMigratedVMStep # CutoverJob message describes a cutover of a migrating VM. The CutoverJob is # the operation of shutting down the VM, creating a snapshot and - # clonning the VM using the replicated snapshot. + # cloning the VM using the replicated snapshot. # @!attribute [r] compute_engine_target_details # @return [::Google::Cloud::VMMigration::V1::ComputeEngineTargetDetails] # Output only. Details of the target VM in Compute Engine. + # + # Note: The following fields are mutually exclusive: `compute_engine_target_details`, `compute_engine_disks_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] compute_engine_disks_target_details + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDisksTargetDetails] + # Output only. Details of the target Persistent Disks in Compute Engine. + # + # Note: The following fields are mutually exclusive: `compute_engine_disks_target_details`, `compute_engine_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time the cutover job was created (as an API call, not when @@ -520,8 +602,8 @@ class ShuttingDownSourceVMStep # 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 t - # he request times out. If you make the request again with the same 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. @@ -607,12 +689,17 @@ class GetCloneJobRequest # @return [::Google::Cloud::VMMigration::V1::VmwareSourceDetails] # Vmware type source details. # - # Note: The following fields are mutually exclusive: `vmware`, `aws`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `vmware`, `aws`, `azure`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] aws # @return [::Google::Cloud::VMMigration::V1::AwsSourceDetails] # AWS type source details. # - # Note: The following fields are mutually exclusive: `aws`, `vmware`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `aws`, `vmware`, `azure`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] azure + # @return [::Google::Cloud::VMMigration::V1::AzureSourceDetails] + # Azure type source details. + # + # Note: The following fields are mutually exclusive: `azure`, `vmware`, `aws`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] name # @return [::String] # Output only. The Source name. @@ -628,6 +715,10 @@ class GetCloneJobRequest # @!attribute [rw] description # @return [::String] # User-provided description of the source. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. Immutable. The encryption details of the source data stored by + # the service. class Source include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -642,6 +733,16 @@ class LabelsEntry end end + # Encryption message describes the details of the applied encryption. + # @!attribute [rw] kms_key + # @return [::String] + # Required. The name of the encryption key that is stored in Google Cloud + # KMS. + class Encryption + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # VmwareSourceDetails message describes a specific source details for the # vmware source type. # @!attribute [rw] username @@ -657,6 +758,9 @@ class LabelsEntry # @!attribute [rw] thumbprint # @return [::String] # The thumbprint representing the certificate for the vcenter. + # @!attribute [rw] resolved_vcenter_host + # @return [::String] + # The hostname of the vcenter. class VmwareSourceDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -705,6 +809,11 @@ class AwsSourceDetails # @!attribute [rw] secret_access_key # @return [::String] # Input only. AWS secret access key. + # @!attribute [rw] session_token + # @return [::String] + # Input only. AWS session token. + # Used only when AWS security token service (STS) is responsible for + # creating the temporary credentials. class AccessKeyCredentials include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -713,10 +822,10 @@ class AccessKeyCredentials # Tag is an AWS tag representation. # @!attribute [rw] key # @return [::String] - # Key of tag. + # Required. Key of tag. # @!attribute [rw] value # @return [::String] - # Value of tag. + # Required. Value of tag. class Tag include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -750,6 +859,82 @@ module State end end + # AzureSourceDetails message describes a specific source details for the + # Azure source type. + # @!attribute [rw] client_secret_creds + # @return [::Google::Cloud::VMMigration::V1::AzureSourceDetails::ClientSecretCredentials] + # Azure Credentials using tenant ID, client ID and secret. + # @!attribute [rw] subscription_id + # @return [::String] + # Immutable. Azure subscription ID. + # @!attribute [rw] azure_location + # @return [::String] + # Immutable. The Azure location (region) that the source VMs will be migrated + # from. + # @!attribute [r] state + # @return [::Google::Cloud::VMMigration::V1::AzureSourceDetails::State] + # Output only. State of the source as determined by the health check. + # @!attribute [r] error + # @return [::Google::Rpc::Status] + # Output only. Provides details on the state of the Source in case of an + # error. + # @!attribute [rw] migration_resources_user_tags + # @return [::Google::Protobuf::Map{::String => ::String}] + # User specified tags to add to every M2VM generated resource in Azure. + # These tags will be set in addition to the default tags that are set as part + # of the migration process. The tags must not begin with the reserved prefix + # `m4ce` or `m2vm`. + # @!attribute [r] resource_group_id + # @return [::String] + # Output only. The ID of the Azure resource group that contains all resources + # related to the migration process of this source. + class AzureSourceDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Message describing Azure Credentials using tenant ID, client ID and secret. + # @!attribute [rw] tenant_id + # @return [::String] + # Azure tenant ID. + # @!attribute [rw] client_id + # @return [::String] + # Azure client ID. + # @!attribute [rw] client_secret + # @return [::String] + # Input only. Azure client secret. + class ClientSecretCredentials + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class MigrationResourcesUserTagsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The possible values of the state. + module State + # The state is unknown. This is used for API compatibility only and is not + # used by the system. + STATE_UNSPECIFIED = 0 + + # The state was not sampled by the health checks yet. + PENDING = 1 + + # The source is available but might not be usable yet due to invalid + # credentials or another reason. + # The error message will contain further details. + FAILED = 2 + + # The source exists and its credentials were verified. + ACTIVE = 3 + end + end + # DatacenterConnector message describes a connector between the Source and # Google Cloud, which is installed on a vmware datacenter (an OVA vm installed # by the user) to connect the Datacenter to Google Cloud and support vm @@ -841,9 +1026,10 @@ module State # @!attribute [rw] state # @return [::Google::Cloud::VMMigration::V1::UpgradeStatus::State] # The state of the upgradeAppliance operation. - # @!attribute [rw] error + # @!attribute [r] error # @return [::Google::Rpc::Status] - # Provides details on the state of the upgrade operation in case of an error. + # Output only. Provides details on the state of the upgrade operation in case + # of an error. # @!attribute [rw] start_time # @return [::Google::Protobuf::Timestamp] # The time the operation was started. @@ -870,7 +1056,7 @@ module State end end - # Holds informatiom about the available versions for upgrade. + # Holds information about the available versions for upgrade. # @!attribute [rw] new_deployable_appliance # @return [::Google::Cloud::VMMigration::V1::ApplianceVersion] # The newest deployable version of the appliance. @@ -974,8 +1160,8 @@ class GetSourceRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1005,8 +1191,8 @@ class CreateSourceRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1029,8 +1215,8 @@ class UpdateSourceRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1096,6 +1282,9 @@ class FetchInventoryRequest # @!attribute [r] boot_option # @return [::Google::Cloud::VMMigration::V1::VmwareVmDetails::BootOption] # Output only. The VM Boot Option. + # @!attribute [r] architecture + # @return [::Google::Cloud::VMMigration::V1::VmwareVmDetails::VmArchitecture] + # Output only. The CPU architecture. class VmwareVmDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1126,6 +1315,18 @@ module BootOption # The boot option is BIOS. BIOS = 2 end + + # Possible values for the VM architecture. + module VmArchitecture + # The architecture is unknown. + VM_ARCHITECTURE_UNSPECIFIED = 0 + + # The architecture is one of the x86 architectures. + VM_ARCHITECTURE_X86_FAMILY = 1 + + # The architecture is ARM64. + VM_ARCHITECTURE_ARM64 = 2 + end end # AwsVmDetails describes a VM in AWS. @@ -1146,7 +1347,7 @@ module BootOption # Output only. The power state of the VM at the moment list was taken. # @!attribute [rw] cpu_count # @return [::Integer] - # The number of cpus the VM has. + # The number of CPU cores the VM has. # @!attribute [rw] memory_mb # @return [::Integer] # The memory size of the VM in MB. @@ -1183,6 +1384,10 @@ module BootOption # @!attribute [rw] architecture # @return [::Google::Cloud::VMMigration::V1::AwsVmDetails::VmArchitecture] # The CPU architecture. + # @!attribute [rw] vcpu_count + # @return [::Integer] + # The number of vCPUs the VM has. It is calculated as the + # number of CPU cores * threads per CPU the VM has. class AwsVmDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1270,6 +1475,163 @@ class AwsSecurityGroup extend ::Google::Protobuf::MessageExts::ClassMethods end + # AzureVmDetails describes a VM in Azure. + # @!attribute [rw] vm_id + # @return [::String] + # The VM full path in Azure. + # @!attribute [rw] power_state + # @return [::Google::Cloud::VMMigration::V1::AzureVmDetails::PowerState] + # The power state of the VM at the moment list was taken. + # @!attribute [rw] vm_size + # @return [::String] + # VM size as configured in Azure. Determines the VM's hardware spec. + # @!attribute [rw] cpu_count + # @return [::Integer] + # The number of cpus the VM has. + # @!attribute [rw] memory_mb + # @return [::Integer] + # The memory size of the VM in MB. + # @!attribute [rw] disk_count + # @return [::Integer] + # The number of disks the VM has, including OS disk. + # @!attribute [rw] committed_storage_mb + # @return [::Integer] + # The total size of the storage allocated to the VM in MB. + # @!attribute [rw] os_disk + # @return [::Google::Cloud::VMMigration::V1::AzureVmDetails::OSDisk] + # Description of the OS disk. + # @!attribute [rw] disks + # @return [::Array<::Google::Cloud::VMMigration::V1::AzureVmDetails::Disk>] + # Description of the data disks. + # @!attribute [rw] os_description + # @return [::Google::Cloud::VMMigration::V1::AzureVmDetails::OSDescription] + # Description of the OS. + # @!attribute [rw] boot_option + # @return [::Google::Cloud::VMMigration::V1::AzureVmDetails::BootOption] + # The VM Boot Option. + # @!attribute [rw] tags + # @return [::Google::Protobuf::Map{::String => ::String}] + # The tags of the VM. + # @!attribute [rw] computer_name + # @return [::String] + # The VM's ComputerName. + # @!attribute [rw] architecture + # @return [::Google::Cloud::VMMigration::V1::AzureVmDetails::VmArchitecture] + # The CPU architecture. + class AzureVmDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # A message describing the OS disk. + # @!attribute [rw] type + # @return [::String] + # The disk's type. + # @!attribute [rw] name + # @return [::String] + # The disk's full name. + # @!attribute [rw] size_gb + # @return [::Integer] + # The disk's size in GB. + class OSDisk + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A message describing a data disk. + # @!attribute [rw] name + # @return [::String] + # The disk name. + # @!attribute [rw] size_gb + # @return [::Integer] + # The disk size in GB. + # @!attribute [rw] lun + # @return [::Integer] + # The disk's Logical Unit Number (LUN). + class Disk + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A message describing the VM's OS. Including OS, Publisher, Offer and Plan + # if applicable. + # @!attribute [rw] type + # @return [::String] + # OS type. + # @!attribute [rw] publisher + # @return [::String] + # OS publisher. + # @!attribute [rw] offer + # @return [::String] + # OS offer. + # @!attribute [rw] plan + # @return [::String] + # OS plan. + class OSDescription + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class TagsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Possible values for the power state of the VM. + module PowerState + # Power state is not specified. + POWER_STATE_UNSPECIFIED = 0 + + # The VM is starting. + STARTING = 1 + + # The VM is running. + RUNNING = 2 + + # The VM is stopping. + STOPPING = 3 + + # The VM is stopped. + STOPPED = 4 + + # The VM is deallocating. + DEALLOCATING = 5 + + # The VM is deallocated. + DEALLOCATED = 6 + + # The VM's power state is unknown. + UNKNOWN = 7 + end + + # The possible values for the vm boot option. + module BootOption + # The boot option is unknown. + BOOT_OPTION_UNSPECIFIED = 0 + + # The boot option is UEFI. + EFI = 1 + + # The boot option is BIOS. + BIOS = 2 + end + + # Possible values for the VM architecture. + module VmArchitecture + # The architecture is unknown. + VM_ARCHITECTURE_UNSPECIFIED = 0 + + # The architecture is one of the x86 architectures. + VM_ARCHITECTURE_X86_FAMILY = 1 + + # The architecture is ARM64. + VM_ARCHITECTURE_ARM64 = 2 + end + end + # VmwareVmsDetails describes VMs in vCenter. # @!attribute [rw] details # @return [::Array<::Google::Cloud::VMMigration::V1::VmwareVmDetails>] @@ -1288,18 +1650,32 @@ class AwsVmsDetails extend ::Google::Protobuf::MessageExts::ClassMethods end + # AzureVmsDetails describes VMs in Azure. + # @!attribute [rw] details + # @return [::Array<::Google::Cloud::VMMigration::V1::AzureVmDetails>] + # The details of the Azure VMs. + class AzureVmsDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Response message for # {::Google::Cloud::VMMigration::V1::VMMigration::Client#fetch_inventory fetchInventory}. # @!attribute [rw] vmware_vms # @return [::Google::Cloud::VMMigration::V1::VmwareVmsDetails] # The description of the VMs in a Source of type Vmware. # - # Note: The following fields are mutually exclusive: `vmware_vms`, `aws_vms`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `vmware_vms`, `aws_vms`, `azure_vms`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] aws_vms # @return [::Google::Cloud::VMMigration::V1::AwsVmsDetails] # The description of the VMs in a Source of type AWS. # - # Note: The following fields are mutually exclusive: `aws_vms`, `vmware_vms`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `aws_vms`, `vmware_vms`, `azure_vms`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] azure_vms + # @return [::Google::Cloud::VMMigration::V1::AzureVmsDetails] + # The description of the VMs in a Source of type Azure. + # + # Note: The following fields are mutually exclusive: `azure_vms`, `vmware_vms`, `aws_vms`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The timestamp when the source was last queried (if the result @@ -1309,6 +1685,72 @@ class FetchInventoryResponse extend ::Google::Protobuf::MessageExts::ClassMethods end + # Request message for + # {::Google::Cloud::VMMigration::V1::VMMigration::Client#fetch_storage_inventory fetchStorageInventory}. + # @!attribute [rw] source + # @return [::String] + # Required. The name of the Source. + # @!attribute [rw] type + # @return [::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest::StorageType] + # Required. The type of the storage inventory to fetch. + # @!attribute [rw] force_refresh + # @return [::Boolean] + # Optional. If this flag is set to true, the source will be queried instead + # of using cached results. Using this flag will make the call slower. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of VMs to return. The service may return + # fewer than this value. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `FetchStorageInventory` + # call. Provide this to retrieve the subsequent page. When paginating, all + # other parameters provided to `FetchStorageInventory` must match the call + # that provided the page token. + class FetchStorageInventoryRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The type of the storage inventory to fetch. + module StorageType + # The type is unspecified. + STORAGE_TYPE_UNSPECIFIED = 0 + + # The type is disks. + DISKS = 1 + + # The type is snapshots. + SNAPSHOTS = 2 + end + end + + # Response message for + # {::Google::Cloud::VMMigration::V1::VMMigration::Client#fetch_storage_inventory fetchStorageInventory}. + # @!attribute [rw] resources + # @return [::Array<::Google::Cloud::VMMigration::V1::SourceStorageResource>] + # The list of storage resources in the source. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The timestamp when the source was last queried (if the result + # is from the cache). + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token, which can be sent as `page_token` to retrieve the + # next page. If this field is omitted, there are no subsequent pages. + class FetchStorageInventoryResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # SourceStorageResource describes a storage resource in the source. + # @!attribute [rw] aws_disk_details + # @return [::Google::Cloud::VMMigration::V1::AwsSourceDiskDetails] + # Source AWS volume details. + class SourceStorageResource + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Utilization report details the utilization (CPU, memory, etc.) of selected # source VMs. # @!attribute [r] name @@ -1514,8 +1956,8 @@ class GetUtilizationReportRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1538,8 +1980,8 @@ class CreateUtilizationReportRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1596,8 +2038,8 @@ class GetDatacenterConnectorRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1620,8 +2062,8 @@ class CreateDatacenterConnectorRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1644,8 +2086,8 @@ class DeleteDatacenterConnectorRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -1712,13 +2154,13 @@ class ListDatacenterConnectorsRequest # The machine type to create the VM with. # @!attribute [rw] network_tags # @return [::Array<::String>] - # A map of network tags to associate with the VM. + # A list of network tags to associate with the VM. # @!attribute [rw] network_interfaces # @return [::Array<::Google::Cloud::VMMigration::V1::NetworkInterface>] # List of NICs connected to this VM. # @!attribute [rw] service_account # @return [::String] - # The service account to associate the VM with. + # Optional. The service account to associate the VM with. # @!attribute [rw] disk_type # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDiskType] # The disk type to use in the VM. @@ -1737,10 +2179,19 @@ class ListDatacenterConnectorsRequest # @!attribute [rw] secure_boot # @return [::Boolean] # Defines whether the instance has Secure Boot enabled. - # This can be set to true only if the vm boot option is EFI. + # This can be set to true only if the VM boot option is EFI. + # @!attribute [rw] enable_vtpm + # @return [::Boolean] + # Optional. Defines whether the instance has vTPM enabled. + # This can be set to true only if the VM boot option is EFI. + # @!attribute [rw] enable_integrity_monitoring + # @return [::Boolean] + # Optional. Defines whether the instance has integrity monitoring enabled. + # This can be set to true only if the VM boot option is EFI, and vTPM is + # enabled. # @!attribute [r] boot_option # @return [::Google::Cloud::VMMigration::V1::ComputeEngineBootOption] - # Output only. The VM Boot Option, as set in the source vm. + # Output only. The VM Boot Option, as set in the source VM. # @!attribute [rw] metadata # @return [::Google::Protobuf::Map{::String => ::String}] # The metadata key/value pairs to assign to the VM. @@ -1750,6 +2201,25 @@ class ListDatacenterConnectorsRequest # @!attribute [rw] hostname # @return [::String] # The hostname to assign to the VM. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. Immutable. The encryption to apply to the VM disks. + # @!attribute [rw] boot_conversion + # @return [::Google::Cloud::VMMigration::V1::BootConversion] + # Optional. By default the virtual machine will keep its existing boot + # option. Setting this property will trigger an internal process which will + # convert the virtual machine from using the existing boot option to another. + # @!attribute [rw] disk_replica_zones + # @return [::Array<::String>] + # Optional. Additional replica zones of the target regional disks. + # If this list is not empty a regional disk will be created. The first + # supported zone would be the one stated in the + # {::Google::Cloud::VMMigration::V1::ComputeEngineTargetDefaults#zone zone} field. + # The rest are taken from this list. Please refer to the [regional disk + # creation + # API](https://cloud.google.com/compute/docs/regions-zones/global-regional-zonal-resources) + # for further details about regional vs zonal disks. If not specified, a + # zonal disk will be created in the same zone the VM is created. class ComputeEngineTargetDefaults include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1792,7 +2262,7 @@ class MetadataEntry # The machine type to create the VM with. # @!attribute [rw] network_tags # @return [::Array<::String>] - # A map of network tags to associate with the VM. + # A list of network tags to associate with the VM. # @!attribute [rw] network_interfaces # @return [::Array<::Google::Cloud::VMMigration::V1::NetworkInterface>] # List of NICs connected to this VM. @@ -1817,10 +2287,16 @@ class MetadataEntry # @!attribute [rw] secure_boot # @return [::Boolean] # Defines whether the instance has Secure Boot enabled. - # This can be set to true only if the vm boot option is EFI. + # This can be set to true only if the VM boot option is EFI. + # @!attribute [rw] enable_vtpm + # @return [::Boolean] + # Optional. Defines whether the instance has vTPM enabled. + # @!attribute [rw] enable_integrity_monitoring + # @return [::Boolean] + # Optional. Defines whether the instance has integrity monitoring enabled. # @!attribute [rw] boot_option # @return [::Google::Cloud::VMMigration::V1::ComputeEngineBootOption] - # The VM Boot Option, as set in the source vm. + # The VM Boot Option, as set in the source VM. # @!attribute [rw] metadata # @return [::Google::Protobuf::Map{::String => ::String}] # The metadata key/value pairs to assign to the VM. @@ -1830,6 +2306,25 @@ class MetadataEntry # @!attribute [rw] hostname # @return [::String] # The hostname to assign to the VM. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. The encryption to apply to the VM disks. + # @!attribute [rw] boot_conversion + # @return [::Google::Cloud::VMMigration::V1::BootConversion] + # Optional. By default the virtual machine will keep its existing boot + # option. Setting this property will trigger an internal process which will + # convert the virtual machine from using the existing boot option to another. + # @!attribute [rw] disk_replica_zones + # @return [::Array<::String>] + # Optional. Additional replica zones of the target regional disks. + # If this list is not empty a regional disk will be created. The first + # supported zone would be the one stated in the + # {::Google::Cloud::VMMigration::V1::ComputeEngineTargetDetails#zone zone} field. + # The rest are taken from this list. Please refer to the [regional disk + # creation + # API](https://cloud.google.com/compute/docs/regions-zones/global-regional-zonal-resources) + # for further details about regional vs zonal disks. If not specified, a + # zonal disk will be created in the same zone the VM is created. class ComputeEngineTargetDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1856,18 +2351,23 @@ class MetadataEntry # NetworkInterface represents a NIC of a VM. # @!attribute [rw] network # @return [::String] - # The network to connect the NIC to. + # Optional. The network to connect the NIC to. # @!attribute [rw] subnetwork # @return [::String] - # The subnetwork to connect the NIC to. + # Optional. The subnetwork to connect the NIC to. # @!attribute [rw] internal_ip # @return [::String] - # The internal IP to define in the NIC. + # Optional. The internal IP to define in the NIC. # The formats accepted are: `ephemeral` \ ipv4 address \ a named address # resource full path. # @!attribute [rw] external_ip # @return [::String] - # The external IP to define in the NIC. + # Optional. The external IP to define in the NIC. + # @!attribute [rw] network_tier + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineNetworkTier] + # Optional. The networking tier used for optimizing connectivity between + # instances and systems on the internet. Applies only for external ephemeral + # IP addresses. If left empty, will default to PREMIUM. class NetworkInterface include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -1933,6 +2433,8 @@ module Operator # Scheduling information for VM on maintenance/restart behaviour and # node allocation in sole tenant nodes. + # Options for instance behavior when the host machine undergoes + # maintenance that may temporarily impact instance performance. # @!attribute [rw] on_host_maintenance # @return [::Google::Cloud::VMMigration::V1::ComputeScheduling::OnHostMaintenance] # How the instance should behave when the host machine undergoes @@ -1985,10 +2487,248 @@ module RestartType end end - # A policy for scheduling replications. - # @!attribute [rw] idle_duration - # @return [::Google::Protobuf::Duration] - # The idle duration between replication stages. + # ComputeEngineDisksTargetDefaults is a collection of details for creating + # Persistent Disks in a target Compute Engine project. + # @!attribute [rw] zone + # @return [::String] + # The zone in which to create the Persistent Disks. + # @!attribute [rw] disks_target_defaults + # @return [::Google::Cloud::VMMigration::V1::DisksMigrationDisksTargetDefaults] + # Details of the disk only migration target. + # + # Note: The following fields are mutually exclusive: `disks_target_defaults`, `vm_target_defaults`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] vm_target_defaults + # @return [::Google::Cloud::VMMigration::V1::DisksMigrationVmTargetDefaults] + # Details of the VM migration target. + # + # Note: The following fields are mutually exclusive: `vm_target_defaults`, `disks_target_defaults`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] target_project + # @return [::String] + # The full path of the resource of type TargetProject which represents the + # Compute Engine project in which to create the Persistent Disks. + # @!attribute [rw] disks + # @return [::Array<::Google::Cloud::VMMigration::V1::PersistentDiskDefaults>] + # The details of each Persistent Disk to create. + class ComputeEngineDisksTargetDefaults + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details for creation of a Persistent Disk. + # @!attribute [rw] source_disk_number + # @return [::Integer] + # Required. The ordinal number of the source VM disk. + # @!attribute [rw] disk_name + # @return [::String] + # Optional. The name of the Persistent Disk to create. + # @!attribute [rw] disk_type + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDiskType] + # The disk type to use. + # @!attribute [rw] additional_labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # A map of labels to associate with the Persistent Disk. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. The encryption to apply to the disk. + # @!attribute [rw] vm_attachment_details + # @return [::Google::Cloud::VMMigration::V1::VmAttachmentDetails] + # Optional. Details for attachment of the disk to a VM. + # Used when the disk is set to be attached to a target VM. + class PersistentDiskDefaults + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class AdditionalLabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Details for attachment of the disk to a VM. + # @!attribute [rw] device_name + # @return [::String] + # Optional. Specifies a unique device name of your choice that is reflected + # into the /dev/disk/by-id/google-* tree of a Linux operating system running + # within the instance. If not specified, the server chooses a default device + # name to apply to this disk, in the form persistent-disk-x, where x is a + # number assigned by Google Compute Engine. This field is only applicable for + # persistent disks. + class VmAttachmentDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details for a disk only migration. + class DisksMigrationDisksTargetDefaults + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details for creation of a VM that migrated data disks will be attached to. + # @!attribute [rw] vm_name + # @return [::String] + # Required. The name of the VM to create. + # @!attribute [rw] machine_type_series + # @return [::String] + # Optional. The machine type series to create the VM with. + # For presentation only. + # @!attribute [rw] machine_type + # @return [::String] + # Required. The machine type to create the VM with. + # @!attribute [rw] network_tags + # @return [::Array<::String>] + # Optional. A list of network tags to associate with the VM. + # @!attribute [rw] network_interfaces + # @return [::Array<::Google::Cloud::VMMigration::V1::NetworkInterface>] + # Optional. NICs to attach to the VM. + # @!attribute [rw] service_account + # @return [::String] + # Optional. The service account to associate the VM with. + # @!attribute [rw] compute_scheduling + # @return [::Google::Cloud::VMMigration::V1::ComputeScheduling] + # Optional. Compute instance scheduling information (if empty default is + # used). + # @!attribute [rw] secure_boot + # @return [::Boolean] + # Optional. Defines whether the instance has Secure Boot enabled. + # This can be set to true only if the VM boot option is EFI. + # @!attribute [rw] enable_vtpm + # @return [::Boolean] + # Optional. Defines whether the instance has vTPM enabled. + # @!attribute [rw] enable_integrity_monitoring + # @return [::Boolean] + # Optional. Defines whether the instance has integrity monitoring enabled. + # @!attribute [rw] metadata + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. The metadata key/value pairs to assign to the VM. + # @!attribute [rw] additional_licenses + # @return [::Array<::String>] + # Optional. Additional licenses to assign to the VM. + # @!attribute [rw] hostname + # @return [::String] + # Optional. The hostname to assign to the VM. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. A map of labels to associate with the VM. + # @!attribute [rw] boot_disk_defaults + # @return [::Google::Cloud::VMMigration::V1::BootDiskDefaults] + # Optional. Details of the boot disk of the VM. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. The encryption to apply to the VM. + class DisksMigrationVmTargetDefaults + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class MetadataEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # BootDiskDefaults hold information about the boot disk of a VM. + # @!attribute [rw] image + # @return [::Google::Cloud::VMMigration::V1::BootDiskDefaults::DiskImageDefaults] + # The image to use when creating the disk. + # @!attribute [rw] disk_name + # @return [::String] + # Optional. The name of the disk. + # @!attribute [rw] disk_type + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDiskType] + # Optional. The type of disk provisioning to use for the VM. + # @!attribute [rw] device_name + # @return [::String] + # Optional. Specifies a unique device name of your choice that is reflected + # into the /dev/disk/by-id/google-* tree of a Linux operating system running + # within the instance. If not specified, the server chooses a default device + # name to apply to this disk, in the form persistent-disk-x, where x is a + # number assigned by Google Compute Engine. This field is only applicable for + # persistent disks. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. The encryption to apply to the boot disk. + class BootDiskDefaults + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Contains details about the image source used to create the disk. + # @!attribute [rw] source_image + # @return [::String] + # Required. The Image resource used when creating the disk. + class DiskImageDefaults + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # ComputeEngineDisksTargetDetails is a collection of created Persistent Disks + # details. + # @!attribute [rw] disks_target_details + # @return [::Google::Cloud::VMMigration::V1::DisksMigrationDisksTargetDetails] + # Details of the disks-only migration target. + # + # Note: The following fields are mutually exclusive: `disks_target_details`, `vm_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] vm_target_details + # @return [::Google::Cloud::VMMigration::V1::DisksMigrationVmTargetDetails] + # Details for the VM the migrated data disks are attached to. + # + # Note: The following fields are mutually exclusive: `vm_target_details`, `disks_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] disks + # @return [::Array<::Google::Cloud::VMMigration::V1::PersistentDisk>] + # The details of each created Persistent Disk. + class ComputeEngineDisksTargetDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details of a created Persistent Disk. + # @!attribute [rw] source_disk_number + # @return [::Integer] + # The ordinal number of the source VM disk. + # @!attribute [rw] disk_uri + # @return [::String] + # The URI of the Persistent Disk. + class PersistentDisk + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details for a disks-only migration. + class DisksMigrationDisksTargetDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Details for the VM created VM as part of disks migration. + # @!attribute [r] vm_uri + # @return [::String] + # Output only. The URI of the Compute Engine VM. + class DisksMigrationVmTargetDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A policy for scheduling replications. + # @!attribute [rw] idle_duration + # @return [::Google::Protobuf::Duration] + # The idle duration between replication stages. # @!attribute [rw] skip_os_adaptation # @return [::Boolean] # A flag to indicate whether to skip OS adaptation during the replication @@ -2016,8 +2756,8 @@ class SchedulePolicy # 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 t - # he request times out. If you make the request again with the same 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. @@ -2106,8 +2846,8 @@ class GetMigratingVmRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -2182,6 +2922,21 @@ class FinalizeMigrationRequest extend ::Google::Protobuf::MessageExts::ClassMethods end + # Request message for 'ExtendMigrationRequest' request. + # @!attribute [rw] migrating_vm + # @return [::String] + # Required. The name of the MigratingVm. + class ExtendMigrationRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'ExtendMigration' request. + class ExtendMigrationResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Response message for 'FinalizeMigration' request. class FinalizeMigrationResponse include ::Google::Protobuf::MessageExts @@ -2195,7 +2950,7 @@ class FinalizeMigrationResponse # Output only. The name of the target project. # @!attribute [rw] project # @return [::String] - # The target project ID (number) or project name. + # Required. The target project ID (number) or project name. # @!attribute [rw] description # @return [::String] # The target project's description. @@ -2281,8 +3036,8 @@ class ListTargetProjectsResponse # 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 t - # he request times out. If you make the request again with the same 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. @@ -2312,8 +3067,8 @@ class CreateTargetProjectRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -2336,8 +3091,8 @@ class UpdateTargetProjectRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -2366,9 +3121,24 @@ class DeleteTargetProjectRequest # @!attribute [rw] display_name # @return [::String] # Display name is a user defined name for this group which can be updated. + # @!attribute [rw] migration_target_type + # @return [::Google::Cloud::VMMigration::V1::Group::MigrationTargetType] + # Immutable. The target type of this group. class Group include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + + # The possible types of the group. + module MigrationTargetType + # Group type is not specified. This defaults to Compute Engine targets. + MIGRATION_TARGET_TYPE_UNSPECIFIED = 0 + + # All MigratingVMs in the group must have Compute Engine targets. + MIGRATION_TARGET_TYPE_GCE = 1 + + # All MigratingVMs in the group must have Compute Engine Disks targets. + MIGRATION_TARGET_TYPE_DISKS = 2 + end end # Request message for 'ListGroups' request. @@ -2441,8 +3211,8 @@ class GetGroupRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -2472,8 +3242,8 @@ class CreateGroupRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -2496,8 +3266,8 @@ class UpdateGroupRequest # 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 t - # he request times out. If you make the request again with the same 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. @@ -2562,8 +3332,8 @@ class RemoveGroupMigrationResponse # 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 t - # he request times out. If you make the request again with the same 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. @@ -2702,48 +3472,166 @@ module ErrorCode # Default value. This value is not used. ERROR_CODE_UNSPECIFIED = 0 - # Migrate for Compute encountered an unknown error. + # Migrate to Virtual Machines encountered an unknown error. UNKNOWN_ERROR = 1 - # Migrate for Compute encountered an error while validating replication - # source health. + # Migrate to Virtual Machines encountered an error while validating + # replication source health. SOURCE_VALIDATION_ERROR = 2 - # Migrate for Compute encountered an error during source data operation. + # Migrate to Virtual Machines encountered an error during source data + # operation. SOURCE_REPLICATION_ERROR = 3 - # Migrate for Compute encountered an error during target data operation. + # Migrate to Virtual Machines encountered an error during target data + # operation. TARGET_REPLICATION_ERROR = 4 - # Migrate for Compute encountered an error during OS adaptation. + # Migrate to Virtual Machines encountered an error during OS adaptation. OS_ADAPTATION_ERROR = 5 - # Migrate for Compute encountered an error in clone operation. + # Migrate to Virtual Machines encountered an error in clone operation. CLONE_ERROR = 6 - # Migrate for Compute encountered an error in cutover operation. + # Migrate to Virtual Machines encountered an error in cutover operation. CUTOVER_ERROR = 7 - # Migrate for Compute encountered an error during utilization report - # creation. + # Migrate to Virtual Machines encountered an error during utilization + # report creation. UTILIZATION_REPORT_ERROR = 8 - # Migrate for Compute encountered an error during appliance upgrade. + # Migrate to Virtual Machines encountered an error during appliance + # upgrade. APPLIANCE_UPGRADE_ERROR = 9 + + # Migrate to Virtual Machines encountered an error in image import + # operation. + IMAGE_IMPORT_ERROR = 10 + + # Migrate to Virtual Machines encountered an error in disk migration + # operation. + DISK_MIGRATION_ERROR = 11 + end + end + + # Represents migration resource warning information that can be used with + # google.rpc.Status message. MigrationWarning is used to present the user with + # warning information in migration operations. + # @!attribute [rw] code + # @return [::Google::Cloud::VMMigration::V1::MigrationWarning::WarningCode] + # The warning code. + # @!attribute [r] warning_message + # @return [::Google::Rpc::LocalizedMessage] + # Output only. The localized warning message. + # @!attribute [r] action_item + # @return [::Google::Rpc::LocalizedMessage] + # Output only. Suggested action for solving the warning. + # @!attribute [r] help_links + # @return [::Array<::Google::Rpc::Help::Link>] + # Output only. URL(s) pointing to additional information on handling the + # current warning. + # @!attribute [rw] warning_time + # @return [::Google::Protobuf::Timestamp] + # The time the warning occurred. + class MigrationWarning + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Represents possible warning codes. + module WarningCode + # Default value. This value is not used. + WARNING_CODE_UNSPECIFIED = 0 + + # A warning originated from OS Adaptation. + ADAPTATION_WARNING = 1 + end + end + + # Represent the source Vmware VM details. + # @!attribute [r] firmware + # @return [::Google::Cloud::VMMigration::V1::VmwareSourceVmDetails::Firmware] + # Output only. The firmware type of the source VM. + # @!attribute [r] committed_storage_bytes + # @return [::Integer] + # Output only. The total size of the disks being migrated in bytes. + # @!attribute [r] disks + # @return [::Array<::Google::Cloud::VMMigration::V1::VmwareSourceVmDetails::VmwareDiskDetails>] + # Output only. The disks attached to the source VM. + # @!attribute [r] vm_capabilities_info + # @return [::Google::Cloud::VMMigration::V1::VmCapabilities] + # Output only. Information about VM capabilities needed for some Compute + # Engine features. + # @!attribute [r] architecture + # @return [::Google::Cloud::VMMigration::V1::VmArchitecture] + # Output only. The VM architecture. + class VmwareSourceVmDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The details of a Vmware VM disk. + # @!attribute [r] disk_number + # @return [::Integer] + # Output only. The ordinal number of the disk. + # @!attribute [r] size_gb + # @return [::Integer] + # Output only. Size in GB. + # @!attribute [r] label + # @return [::String] + # Output only. The disk label. + class VmwareDiskDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Possible values for Vmware VM firmware. + module Firmware + # The firmware is unknown. + FIRMWARE_UNSPECIFIED = 0 + + # The firmware is EFI. + EFI = 1 + + # The firmware is BIOS. + BIOS = 2 end end # Represent the source AWS VM details. - # @!attribute [rw] firmware + # @!attribute [r] firmware # @return [::Google::Cloud::VMMigration::V1::AwsSourceVmDetails::Firmware] - # The firmware type of the source VM. - # @!attribute [rw] committed_storage_bytes + # Output only. The firmware type of the source VM. + # @!attribute [r] committed_storage_bytes # @return [::Integer] - # The total size of the disks being migrated in bytes. + # Output only. The total size of the disks being migrated in bytes. + # @!attribute [r] disks + # @return [::Array<::Google::Cloud::VMMigration::V1::AwsSourceVmDetails::AwsDiskDetails>] + # Output only. The disks attached to the source VM. + # @!attribute [r] vm_capabilities_info + # @return [::Google::Cloud::VMMigration::V1::VmCapabilities] + # Output only. Information about VM capabilities needed for some Compute + # Engine features. + # @!attribute [r] architecture + # @return [::Google::Cloud::VMMigration::V1::VmArchitecture] + # Output only. The VM architecture. class AwsSourceVmDetails include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods + # The details of an AWS instance disk. + # @!attribute [r] disk_number + # @return [::Integer] + # Output only. The ordinal number of the disk. + # @!attribute [r] volume_id + # @return [::String] + # Output only. AWS volume ID. + # @!attribute [r] size_gb + # @return [::Integer] + # Output only. Size in GB. + class AwsDiskDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # Possible values for AWS VM firmware. module Firmware # The firmware is unknown. @@ -2757,6 +3645,55 @@ module Firmware end end + # Represent the source Azure VM details. + # @!attribute [r] firmware + # @return [::Google::Cloud::VMMigration::V1::AzureSourceVmDetails::Firmware] + # Output only. The firmware type of the source VM. + # @!attribute [r] committed_storage_bytes + # @return [::Integer] + # Output only. The total size of the disks being migrated in bytes. + # @!attribute [r] disks + # @return [::Array<::Google::Cloud::VMMigration::V1::AzureSourceVmDetails::AzureDiskDetails>] + # Output only. The disks attached to the source VM. + # @!attribute [r] vm_capabilities_info + # @return [::Google::Cloud::VMMigration::V1::VmCapabilities] + # Output only. Information about VM capabilities needed for some Compute + # Engine features. + # @!attribute [r] architecture + # @return [::Google::Cloud::VMMigration::V1::VmArchitecture] + # Output only. The VM architecture. + class AzureSourceVmDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The details of an Azure VM disk. + # @!attribute [r] disk_number + # @return [::Integer] + # Output only. The ordinal number of the disk. + # @!attribute [r] disk_id + # @return [::String] + # Output only. Azure disk ID. + # @!attribute [r] size_gb + # @return [::Integer] + # Output only. Size in GB. + class AzureDiskDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Possible values for Azure VM firmware. + module Firmware + # The firmware is unknown. + FIRMWARE_UNSPECIFIED = 0 + + # The firmware is EFI. + EFI = 1 + + # The firmware is BIOS. + BIOS = 2 + end + end + # Request message for 'LisReplicationCyclesRequest' request. # @!attribute [rw] parent # @return [::String] @@ -2810,33 +3747,956 @@ class GetReplicationCycleRequest extend ::Google::Protobuf::MessageExts::ClassMethods end - # Controls the level of details of a Utilization Report. - module UtilizationReportView - # The default / unset value. - # The API will default to FULL on single report request and BASIC for - # multiple reports request. - UTILIZATION_REPORT_VIEW_UNSPECIFIED = 0 - - # Get the report metadata, without the list of VMs and their utilization - # info. - BASIC = 1 - - # Include everything. - FULL = 2 + # Migrating VM source information about the VM capabilities needed for some + # Compute Engine features. + # @!attribute [r] os_capabilities + # @return [::Array<::Google::Cloud::VMMigration::V1::OsCapability>] + # Output only. Unordered list. List of certain VM OS capabilities needed for + # some Compute Engine features. + # @!attribute [r] last_os_capabilities_update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The last time OS capabilities list was updated. + class VmCapabilities + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods end - # Controls the level of details of a Migrating VM. - module MigratingVmView - # View is unspecified. The API will fallback to the default value. - MIGRATING_VM_VIEW_UNSPECIFIED = 0 - - # Get the migrating VM basic details. - # The basic details do not include the recent clone jobs and recent cutover - # jobs lists. - MIGRATING_VM_VIEW_BASIC = 1 - - # Include everything. - MIGRATING_VM_VIEW_FULL = 2 + # ImageImport describes the configuration of the image import to run. + # @!attribute [rw] cloud_storage_uri + # @return [::String] + # Immutable. The path to the Cloud Storage file from which the image should + # be imported. + # @!attribute [rw] disk_image_target_defaults + # @return [::Google::Cloud::VMMigration::V1::DiskImageTargetDetails] + # Immutable. Target details for importing a disk image, will be used by + # ImageImportJob. + # + # Note: The following fields are mutually exclusive: `disk_image_target_defaults`, `machine_image_target_defaults`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] machine_image_target_defaults + # @return [::Google::Cloud::VMMigration::V1::MachineImageTargetDetails] + # Immutable. Target details for importing a machine image, will be used by + # ImageImportJob. + # + # Note: The following fields are mutually exclusive: `machine_image_target_defaults`, `disk_image_target_defaults`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] name + # @return [::String] + # Output only. The resource path of the ImageImport. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the image import was created. + # @!attribute [r] recent_image_import_jobs + # @return [::Array<::Google::Cloud::VMMigration::V1::ImageImportJob>] + # Output only. The result of the most recent runs for this ImageImport. All + # jobs for this ImageImport can be listed via ListImageImportJobs. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Immutable. The encryption details used by the image import process during + # the image adaptation for Compute Engine. + class ImageImport + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # ImageImportJob describes the progress and result of an image import. + # @!attribute [r] cloud_storage_uri + # @return [::String] + # Output only. The path to the Cloud Storage file from which the image + # should be imported. + # @!attribute [r] disk_image_target_details + # @return [::Google::Cloud::VMMigration::V1::DiskImageTargetDetails] + # Output only. Target details used to import a disk image. + # + # Note: The following fields are mutually exclusive: `disk_image_target_details`, `machine_image_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] machine_image_target_details + # @return [::Google::Cloud::VMMigration::V1::MachineImageTargetDetails] + # Output only. Target details used to import a machine image. + # + # Note: The following fields are mutually exclusive: `machine_image_target_details`, `disk_image_target_details`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] name + # @return [::String] + # Output only. The resource path of the ImageImportJob. + # @!attribute [r] created_resources + # @return [::Array<::String>] + # Output only. The resource paths of the resources created by the image + # import job. + # @!attribute [r] state + # @return [::Google::Cloud::VMMigration::V1::ImageImportJob::State] + # Output only. The state of the image import. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the image import was created (as an API call, not + # when it was actually created in the target). + # @!attribute [r] end_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the image import was ended. + # @!attribute [r] errors + # @return [::Array<::Google::Rpc::Status>] + # Output only. Provides details on the error that led to the image import + # state in case of an error. + # @!attribute [r] warnings + # @return [::Array<::Google::Cloud::VMMigration::V1::MigrationWarning>] + # Output only. Warnings that occurred during the image import. + # @!attribute [r] steps + # @return [::Array<::Google::Cloud::VMMigration::V1::ImageImportStep>] + # Output only. The image import steps list representing its progress. + class ImageImportJob + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Possible states of the image import. + module State + # The state is unknown. + STATE_UNSPECIFIED = 0 + + # The image import has not yet started. + PENDING = 1 + + # The image import is active and running. + RUNNING = 2 + + # The image import has finished successfully. + SUCCEEDED = 3 + + # The image import has finished with errors. + FAILED = 4 + + # The image import is being cancelled. + CANCELLING = 5 + + # The image import was cancelled. + CANCELLED = 6 + end + end + + # ImageImportStep holds information about the image import step progress. + # @!attribute [rw] initializing + # @return [::Google::Cloud::VMMigration::V1::InitializingImageImportStep] + # Initializing step. + # + # Note: The following fields are mutually exclusive: `initializing`, `loading_source_files`, `adapting_os`, `creating_image`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] loading_source_files + # @return [::Google::Cloud::VMMigration::V1::LoadingImageSourceFilesStep] + # Loading source files step. + # + # Note: The following fields are mutually exclusive: `loading_source_files`, `initializing`, `adapting_os`, `creating_image`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] adapting_os + # @return [::Google::Cloud::VMMigration::V1::AdaptingOSStep] + # Adapting OS step. + # + # Note: The following fields are mutually exclusive: `adapting_os`, `initializing`, `loading_source_files`, `creating_image`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] creating_image + # @return [::Google::Cloud::VMMigration::V1::CreatingImageStep] + # Creating image step. + # + # Note: The following fields are mutually exclusive: `creating_image`, `initializing`, `loading_source_files`, `adapting_os`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] start_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the step has started. + # @!attribute [r] end_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the step has ended. + class ImageImportStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # InitializingImageImportStep contains specific step details. + class InitializingImageImportStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # LoadingImageSourceFilesStep contains specific step details. + class LoadingImageSourceFilesStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # CreatingImageStep contains specific step details. + class CreatingImageStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The target details of the image resource that will be created by the import + # job. + # @!attribute [rw] os_adaptation_parameters + # @return [::Google::Cloud::VMMigration::V1::ImageImportOsAdaptationParameters] + # Optional. Use to set the parameters relevant for the OS adaptation + # process. + # + # Note: The following fields are mutually exclusive: `os_adaptation_parameters`, `data_disk_image_import`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] data_disk_image_import + # @return [::Google::Cloud::VMMigration::V1::DataDiskImageImport] + # Optional. Use to skip OS adaptation process. + # + # Note: The following fields are mutually exclusive: `data_disk_image_import`, `os_adaptation_parameters`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] image_name + # @return [::String] + # Required. The name of the image to be created. + # @!attribute [rw] target_project + # @return [::String] + # Required. Reference to the TargetProject resource that represents the + # target project in which the imported image will be created. + # @!attribute [rw] description + # @return [::String] + # Optional. An optional description of the image. + # @!attribute [rw] family_name + # @return [::String] + # Optional. The name of the image family to which the new image belongs. + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. A map of labels to associate with the image. + # @!attribute [rw] additional_licenses + # @return [::Array<::String>] + # Optional. Additional licenses to assign to the image. + # Format: + # https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/licenses/LICENSE_NAME + # Or + # https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/licenses/LICENSE_NAME + # @!attribute [rw] single_region_storage + # @return [::Boolean] + # Optional. Set to true to set the image storageLocations to the single + # region of the import job. When false, the closest multi-region is selected. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Immutable. The encryption to apply to the image. + class DiskImageTargetDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # The target details of the machine image resource that will be created by the + # image import job. + # @!attribute [rw] os_adaptation_parameters + # @return [::Google::Cloud::VMMigration::V1::ImageImportOsAdaptationParameters] + # Optional. Use to set the parameters relevant for the OS adaptation + # process. + # + # Note: The following fields are mutually exclusive: `os_adaptation_parameters`, `skip_os_adaptation`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] skip_os_adaptation + # @return [::Google::Cloud::VMMigration::V1::SkipOsAdaptation] + # Optional. Use to skip OS adaptation process. + # + # Note: The following fields are mutually exclusive: `skip_os_adaptation`, `os_adaptation_parameters`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] machine_image_name + # @return [::String] + # Required. The name of the machine image to be created. + # @!attribute [rw] target_project + # @return [::String] + # Required. Reference to the TargetProject resource that represents the + # target project in which the imported machine image will be created. + # @!attribute [rw] description + # @return [::String] + # Optional. An optional description of the machine image. + # @!attribute [rw] single_region_storage + # @return [::Boolean] + # Optional. Set to true to set the machine image storageLocations to the + # single region of the import job. When false, the closest multi-region is + # selected. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Immutable. The encryption to apply to the machine image. + # If the Image Import resource has an encryption, this field must be set to + # the same encryption key. + # @!attribute [rw] machine_image_parameters_overrides + # @return [::Google::Cloud::VMMigration::V1::MachineImageParametersOverrides] + # Optional. Parameters overriding decisions based on the source machine image + # configurations. + # @!attribute [rw] service_account + # @return [::Google::Cloud::VMMigration::V1::ServiceAccount] + # Optional. The service account to assign to the instance created by the + # machine image. + # @!attribute [rw] additional_licenses + # @return [::Array<::String>] + # Optional. Additional licenses to assign to the instance created by the + # machine image. Format: + # https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/licenses/LICENSE_NAME + # Or + # https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/licenses/LICENSE_NAME + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. The labels to apply to the instance created by the machine image. + # @!attribute [rw] tags + # @return [::Array<::String>] + # Optional. The tags to apply to the instance created by the machine image. + # @!attribute [rw] shielded_instance_config + # @return [::Google::Cloud::VMMigration::V1::ShieldedInstanceConfig] + # Optional. Shielded instance configuration. + # @!attribute [rw] network_interfaces + # @return [::Array<::Google::Cloud::VMMigration::V1::NetworkInterface>] + # Optional. The network interfaces to create with the instance created by the + # machine image. Internal and external IP addresses, and network tiers are + # ignored for machine image import. + class MachineImageTargetDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Service account to assign to the instance created by the machine image. + # @!attribute [rw] email + # @return [::String] + # Required. The email address of the service account. + # @!attribute [rw] scopes + # @return [::Array<::String>] + # Optional. The list of scopes to be made available for this service account. + class ServiceAccount + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Shielded instance configuration. + # @!attribute [rw] secure_boot + # @return [::Google::Cloud::VMMigration::V1::ShieldedInstanceConfig::SecureBoot] + # Optional. Defines whether the instance created by the machine image has + # Secure Boot enabled. This can be set to true only if the image boot option + # is EFI. + # @!attribute [rw] enable_vtpm + # @return [::Boolean] + # Optional. Defines whether the instance created by the machine image has + # vTPM enabled. This can be set to true only if the image boot option is EFI. + # @!attribute [rw] enable_integrity_monitoring + # @return [::Boolean] + # Optional. Defines whether the instance created by the machine image has + # integrity monitoring enabled. This can be set to true only if the image + # boot option is EFI, and vTPM is enabled. + class ShieldedInstanceConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Possible values for secure boot. + module SecureBoot + # No explicit value is selected. Will use the configuration of the source + # (if exists, otherwise the default will be false). + SECURE_BOOT_UNSPECIFIED = 0 + + # Use secure boot. This can be set to true only if the image boot option is + # EFI. + TRUE = 1 + + # Do not use secure boot. + FALSE = 2 + end + end + + # Parameters overriding decisions based on the source machine image + # configurations. + # @!attribute [rw] machine_type + # @return [::String] + # Optional. The machine type to create the MachineImage with. + # If empty, the service will choose a relevant machine type based on the + # information from the source image. + # For more information about machine types, please refer to + # https://cloud.google.com/compute/docs/machine-resource. + class MachineImageParametersOverrides + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Parameters affecting the OS adaptation process. + # @!attribute [rw] generalize + # @return [::Boolean] + # Optional. Set to true in order to generalize the imported image. + # The generalization process enables co-existence of multiple VMs created + # from the same image. + # For Windows, generalizing the image removes computer-specific information + # such as installed drivers and the computer security identifier (SID). + # @!attribute [rw] license_type + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineLicenseType] + # Optional. Choose which type of license to apply to the imported image. + # @!attribute [rw] boot_conversion + # @return [::Google::Cloud::VMMigration::V1::BootConversion] + # Optional. By default the image will keep its existing boot option. Setting + # this property will trigger an internal process which will convert the + # image from using the existing boot option to another. + # The size of the boot disk might be increased to allow the conversion + class ImageImportOsAdaptationParameters + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Mentions that the image import is not using OS adaptation process. + class DataDiskImageImport + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Mentions that the machine image import is not using OS adaptation process. + class SkipOsAdaptation + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'GetImageImport' call. + # @!attribute [rw] name + # @return [::String] + # Required. The ImageImport name. + class GetImageImportRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'ListImageImports' call. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of targets. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of targets to return. The service may return + # fewer than this value. If unspecified, at most 500 targets will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListImageImports` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListImageImports` must + # match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. The filter request (according to AIP-160). + # @!attribute [rw] order_by + # @return [::String] + # Optional. The order by fields for the result (according to AIP-132). + # Currently ordering is only possible by "name" field. + class ListImageImportsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'ListImageImports' call. + # @!attribute [r] image_imports + # @return [::Array<::Google::Cloud::VMMigration::V1::ImageImport>] + # Output only. The list of target response. + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token, which can be sent as `page_token` to retrieve the + # next page. If this field is omitted, there are no subsequent pages. + # @!attribute [r] unreachable + # @return [::Array<::String>] + # Output only. Locations that could not be reached. + class ListImageImportsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'CreateImageImport' request. + # @!attribute [rw] parent + # @return [::String] + # Required. The ImageImport's parent. + # @!attribute [rw] image_import_id + # @return [::String] + # Required. The image import identifier. + # This value maximum length is 63 characters, and valid characters are + # /[a-z][0-9]-/. It must start with an english letter and must not end with a + # hyphen. + # @!attribute [rw] image_import + # @return [::Google::Cloud::VMMigration::V1::ImageImport] + # Required. The create request body. + # @!attribute [rw] request_id + # @return [::String] + # Optional. A 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). + class CreateImageImportRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'DeleteImageImport' request. + # @!attribute [rw] name + # @return [::String] + # Required. The ImageImport name. + # @!attribute [rw] request_id + # @return [::String] + # Optional. A 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 t + # he 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). + class DeleteImageImportRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'GetImageImportJob' call. + # @!attribute [rw] name + # @return [::String] + # Required. The ImageImportJob name. + class GetImageImportJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'ListImageImportJobs' call. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of targets. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of targets to return. The service may return + # fewer than this value. If unspecified, at most 500 targets will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListImageImportJobs` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListImageImportJobs` + # must match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. The filter request (according to AIP-160). + # @!attribute [rw] order_by + # @return [::String] + # Optional. The order by fields for the result (according to AIP-132). + # Currently ordering is only possible by "name" field. + class ListImageImportJobsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'ListImageImportJobs' call. + # @!attribute [r] image_import_jobs + # @return [::Array<::Google::Cloud::VMMigration::V1::ImageImportJob>] + # Output only. The list of target response. + # @!attribute [r] next_page_token + # @return [::String] + # Output only. A token, which can be sent as `page_token` to retrieve the + # next page. If this field is omitted, there are no subsequent pages. + # @!attribute [r] unreachable + # @return [::Array<::String>] + # Output only. Locations that could not be reached. + class ListImageImportJobsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'CancelImageImportJob' request. + # @!attribute [rw] name + # @return [::String] + # Required. The image import job id. + class CancelImageImportJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'CancelImageImportJob' request. + class CancelImageImportJobResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Describes the disk which will be migrated from the source environment. + # The source disk has to be unattached. + # @!attribute [rw] aws_source_disk_details + # @return [::Google::Cloud::VMMigration::V1::AwsSourceDiskDetails] + # Details of the unattached AWS source disk. + # @!attribute [r] name + # @return [::String] + # Output only. Identifier. The identifier of the DiskMigrationJob. + # @!attribute [rw] target_details + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJobTargetDetails] + # Required. Details of the target Disk in Compute Engine. + # @!attribute [r] create_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the DiskMigrationJob resource was created. + # @!attribute [r] update_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The last time the DiskMigrationJob resource was updated. + # @!attribute [r] state + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJob::State] + # Output only. State of the DiskMigrationJob. + # @!attribute [r] errors + # @return [::Array<::Google::Rpc::Status>] + # Output only. Provides details on the errors that led to the disk migration + # job's state in case of an error. + # @!attribute [r] steps + # @return [::Array<::Google::Cloud::VMMigration::V1::DiskMigrationStep>] + # Output only. The disk migration steps list representing its progress. + class DiskMigrationJob + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The possible values of the state/health of DiskMigrationJob. + module State + # The state is unspecified. This is not in use. + STATE_UNSPECIFIED = 0 + + # The initial state of the disk migration. + # In this state the customers can update the target details. + READY = 1 + + # The migration is active, and it's running or scheduled to run. + RUNNING = 3 + + # The migration completed successfully. + SUCCEEDED = 4 + + # Migration cancellation was initiated. + CANCELLING = 5 + + # The migration was cancelled. + CANCELLED = 6 + + # The migration process encountered an unrecoverable error and was aborted. + FAILED = 7 + end + end + + # Details of the target disk in Compute Engine. + # @!attribute [rw] target_disk + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDisk] + # Required. The target disk. + # @!attribute [rw] target_project + # @return [::String] + # Required. The name of the resource of type TargetProject which represents + # the Compute Engine project in which to create the disk. Should be of the + # form: projects/\\{project}/locations/global/targetProjects/\\{target-project} + # @!attribute [rw] labels + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. A map of labels to associate with the disk. + # @!attribute [rw] encryption + # @return [::Google::Cloud::VMMigration::V1::Encryption] + # Optional. The encryption to apply to the disk. + # If the DiskMigrationJob parent Source resource has an encryption, this + # field must be set to the same encryption key. + class DiskMigrationJobTargetDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class LabelsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # DiskMigrationStep holds information about the disk migration step progress. + # @!attribute [rw] creating_source_disk_snapshot + # @return [::Google::Cloud::VMMigration::V1::CreatingSourceDiskSnapshotStep] + # Creating source disk snapshot step. + # + # Note: The following fields are mutually exclusive: `creating_source_disk_snapshot`, `copying_source_disk_snapshot`, `provisioning_target_disk`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] copying_source_disk_snapshot + # @return [::Google::Cloud::VMMigration::V1::CopyingSourceDiskSnapshotStep] + # Copying source disk snapshot step. + # + # Note: The following fields are mutually exclusive: `copying_source_disk_snapshot`, `creating_source_disk_snapshot`, `provisioning_target_disk`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] provisioning_target_disk + # @return [::Google::Cloud::VMMigration::V1::ProvisioningTargetDiskStep] + # Creating target disk step. + # + # Note: The following fields are mutually exclusive: `provisioning_target_disk`, `creating_source_disk_snapshot`, `copying_source_disk_snapshot`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [r] start_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the step has started. + # @!attribute [r] end_time + # @return [::Google::Protobuf::Timestamp] + # Output only. The time the step has ended. + class DiskMigrationStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # CreatingSourceDiskSnapshotStep contains specific step details. + class CreatingSourceDiskSnapshotStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # CopyingSourceDiskSnapshotStep contains specific step details. + class CopyingSourceDiskSnapshotStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # ProvisioningTargetDiskStep contains specific step details. + class ProvisioningTargetDiskStep + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Compute Engine disk target details. + # @!attribute [rw] disk_id + # @return [::String] + # Optional. Target Compute Engine Disk ID. + # This is the resource ID segment of the Compute Engine Disk to create. + # In the resource name compute/v1/projects/\\{project}/zones/\\{zone}/disks/disk1 + # "disk1" is the resource ID for the disk. + # @!attribute [rw] zone + # @return [::String] + # Required. The Compute Engine zone in which to create the disk. Should be of + # the form: projects/\\{target-project}/locations/\\{zone} + # @!attribute [rw] replica_zones + # @return [::Array<::String>] + # Optional. Replication zones of the regional disk. Should be of the form: + # projects/\\{target-project}/locations/\\{replica-zone} + # Currently only one replica zone is supported. + # @!attribute [rw] disk_type + # @return [::Google::Cloud::VMMigration::V1::ComputeEngineDiskType] + # Required. The disk type to use. + class ComputeEngineDisk + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Represents the source AWS Disk details. + # @!attribute [rw] volume_id + # @return [::String] + # Required. AWS volume ID. + # @!attribute [r] size_gib + # @return [::Integer] + # Output only. Size in GiB. + # @!attribute [r] disk_type + # @return [::Google::Cloud::VMMigration::V1::AwsSourceDiskDetails::Type] + # Optional. Output only. Disk type. + # @!attribute [r] tags + # @return [::Google::Protobuf::Map{::String => ::String}] + # Optional. Output only. A map of AWS volume tags. + class AwsSourceDiskDetails + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # @!attribute [rw] key + # @return [::String] + # @!attribute [rw] value + # @return [::String] + class TagsEntry + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Possible values for disk types. + module Type + # Unspecified AWS disk type. Should not be used. + TYPE_UNSPECIFIED = 0 + + # GP2 disk type. + GP2 = 1 + + # GP3 disk type. + GP3 = 2 + + # IO1 disk type. + IO1 = 3 + + # IO2 disk type. + IO2 = 4 + + # ST1 disk type. + ST1 = 5 + + # SC1 disk type. + SC1 = 6 + + # Standard disk type. + STANDARD = 7 + end + end + + # Request message for 'CreateDiskMigrationJob' request. + # @!attribute [rw] parent + # @return [::String] + # Required. The DiskMigrationJob's parent. + # @!attribute [rw] disk_migration_job_id + # @return [::String] + # Required. The DiskMigrationJob identifier. + # The maximum length of this value is 63 characters. + # Valid characters are lower case Latin letters, digits and hyphen. + # It must start with a Latin letter and must not end with a hyphen. + # @!attribute [rw] disk_migration_job + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # Required. The create request body. + # @!attribute [rw] request_id + # @return [::String] + # Optional. A 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 timed 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). + class CreateDiskMigrationJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'ListDiskMigrationJobsRequest' request. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of DiskMigrationJobs. + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of disk migration jobs to return. The service + # may return fewer than this value. If unspecified, at most 500 + # disk migration jobs will be returned. + # The maximum value is 1000; values above 1000 will be coerced to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListDiskMigrationJobs` + # call. Provide this to retrieve the subsequent page. + # + # When paginating, all parameters provided to `ListDiskMigrationJobs` + # except `page_size` must match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. The filter request (according to AIP-160). + # @!attribute [rw] order_by + # @return [::String] + # Optional. Ordering of the result list. + class ListDiskMigrationJobsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'ListDiskMigrationJobs' request. + # @!attribute [r] disk_migration_jobs + # @return [::Array<::Google::Cloud::VMMigration::V1::DiskMigrationJob>] + # Output only. The list of the disk migration jobs. + # @!attribute [r] next_page_token + # @return [::String] + # Optional. Output only. A token, which can be sent as `page_token` to + # retrieve the next page. If this field is omitted, there are no subsequent + # pages. + # @!attribute [r] unreachable + # @return [::Array<::String>] + # Output only. Locations that could not be reached. + class ListDiskMigrationJobsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'GetDiskMigrationJob' request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the DiskMigrationJob. + class GetDiskMigrationJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'UpdateDiskMigrationJob' request. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. Field mask is used to specify the fields to be overwritten in the + # DiskMigrationJob 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 a mask equivalent to all fields that are + # populated (have a non-empty value), will be implied. + # @!attribute [rw] disk_migration_job + # @return [::Google::Cloud::VMMigration::V1::DiskMigrationJob] + # Required. The update request body. + # @!attribute [rw] request_id + # @return [::String] + # Optional. A 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 timed 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). + class UpdateDiskMigrationJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'DeleteDiskMigrationJob' request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the DiskMigrationJob. + class DeleteDiskMigrationJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'RunDiskMigrationJobRequest' request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the DiskMigrationJob. + class RunDiskMigrationJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'RunDiskMigrationJob' request. + class RunDiskMigrationJobResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for 'CancelDiskMigrationJob' request. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the DiskMigrationJob. + class CancelDiskMigrationJobRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for 'CancelDiskMigrationJob' request. + class CancelDiskMigrationJobResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods end # Types of disks supported for Compute Engine VM. @@ -2853,6 +4713,9 @@ module ComputeEngineDiskType # An alternative to SSD persistent disks that balance performance and # cost. COMPUTE_ENGINE_DISK_TYPE_BALANCED = 3 + + # Hyperdisk balanced disk type. + COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED = 4 end # Types of licenses used in OS adaptation. @@ -2878,6 +4741,88 @@ module ComputeEngineBootOption # The boot option is BIOS. COMPUTE_ENGINE_BOOT_OPTION_BIOS = 2 end + + # VM operating system (OS) capabilities needed for determining compatibility + # with Compute Engine features supported by the migration. + module OsCapability + # This is for API compatibility only and is not in use. + OS_CAPABILITY_UNSPECIFIED = 0 + + # NVMe driver installed and the VM can use NVMe PD or local SSD. + OS_CAPABILITY_NVME_STORAGE_ACCESS = 1 + + # gVNIC virtual NIC driver supported. + OS_CAPABILITY_GVNIC_NETWORK_INTERFACE = 2 + + # IDPF virtual NIC driver supported. + OS_CAPABILITY_IDPF_NETWORK_INTERFACE = 3 + end + + # Possible boot options conversions. + module BootConversion + # Unspecified conversion type. + BOOT_CONVERSION_UNSPECIFIED = 0 + + # No conversion. + NONE = 1 + + # Convert from BIOS to EFI. + BIOS_TO_EFI = 2 + end + + # Controls the level of details of a Utilization Report. + module UtilizationReportView + # The default / unset value. + # The API will default to FULL on single report request and BASIC for + # multiple reports request. + UTILIZATION_REPORT_VIEW_UNSPECIFIED = 0 + + # Get the report metadata, without the list of VMs and their utilization + # info. + BASIC = 1 + + # Include everything. + FULL = 2 + end + + # Controls the level of details of a Migrating VM. + module MigratingVmView + # View is unspecified. The API will fallback to the default value. + MIGRATING_VM_VIEW_UNSPECIFIED = 0 + + # Get the migrating VM basic details. + # The basic details do not include the recent clone jobs and recent cutover + # jobs lists. + MIGRATING_VM_VIEW_BASIC = 1 + + # Include everything. + MIGRATING_VM_VIEW_FULL = 2 + end + + # Possible values for the VM architecture. + module VmArchitecture + # The architecture is unknown. + VM_ARCHITECTURE_UNSPECIFIED = 0 + + # The architecture is one of the x86 architectures. + VM_ARCHITECTURE_X86_FAMILY = 1 + + # The architecture is ARM64. + VM_ARCHITECTURE_ARM64 = 2 + end + + # Describes the networking tier used for configuring network access + # configuration. + module ComputeEngineNetworkTier + # An unspecified network tier. Will be used as PREMIUM. + COMPUTE_ENGINE_NETWORK_TIER_UNSPECIFIED = 0 + + # A standard network tier. + NETWORK_TIER_STANDARD = 1 + + # A premium network tier. + NETWORK_TIER_PREMIUM = 2 + end end end end diff --git a/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/iam_policy.rb b/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/iam_policy.rb new file mode 100644 index 000000000000..fbee4c39d435 --- /dev/null +++ b/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/iam_policy.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Iam + module V1 + # Request message for `SetIamPolicy` method. + # @!attribute [rw] resource + # @return [::String] + # REQUIRED: The resource for which the policy is being specified. + # See the operation documentation for the appropriate value for this field. + # @!attribute [rw] policy + # @return [::Google::Iam::V1::Policy] + # REQUIRED: The complete policy to be applied to the `resource`. The size of + # the policy is limited to a few 10s of KB. An empty policy is a + # valid policy but certain Cloud Platform services (such as Projects) + # might reject them. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + # the fields in the mask will be modified. If no mask is provided, the + # following default mask is used: + # + # `paths: "bindings, etag"` + class SetIamPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for `GetIamPolicy` method. + # @!attribute [rw] resource + # @return [::String] + # REQUIRED: The resource for which the policy is being requested. + # See the operation documentation for the appropriate value for this field. + # @!attribute [rw] options + # @return [::Google::Iam::V1::GetPolicyOptions] + # OPTIONAL: A `GetPolicyOptions` object for specifying options to + # `GetIamPolicy`. + class GetIamPolicyRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for `TestIamPermissions` method. + # @!attribute [rw] resource + # @return [::String] + # REQUIRED: The resource for which the policy detail is being requested. + # See the operation documentation for the appropriate value for this field. + # @!attribute [rw] permissions + # @return [::Array<::String>] + # The set of permissions to check for the `resource`. Permissions with + # wildcards (such as '*' or 'storage.*') are not allowed. For more + # information see + # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + class TestIamPermissionsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for `TestIamPermissions` method. + # @!attribute [rw] permissions + # @return [::Array<::String>] + # A subset of `TestPermissionsRequest.permissions` that the caller is + # allowed. + class TestIamPermissionsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end +end diff --git a/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/options.rb b/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/options.rb new file mode 100644 index 000000000000..848f8c2f7895 --- /dev/null +++ b/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/options.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Iam + module V1 + # Encapsulates settings provided to GetIamPolicy. + # @!attribute [rw] requested_policy_version + # @return [::Integer] + # Optional. The maximum policy version that will be used to format the + # policy. + # + # Valid values are 0, 1, and 3. Requests specifying an invalid value will be + # rejected. + # + # Requests for policies with any conditional role bindings must specify + # version 3. Policies with no conditional role bindings may specify any valid + # value or leave the field unset. + # + # The policy in the response might use the policy version that you specified, + # or it might use a lower policy version. For example, if you specify version + # 3, but the policy has no conditional role bindings, the response uses + # version 1. + # + # To learn which resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + class GetPolicyOptions + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end +end diff --git a/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/policy.rb b/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/policy.rb new file mode 100644 index 000000000000..79fdbd1e2eff --- /dev/null +++ b/google-cloud-vm_migration-v1/proto_docs/google/iam/v1/policy.rb @@ -0,0 +1,426 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Iam + module V1 + # An Identity and Access Management (IAM) policy, which specifies access + # controls for Google Cloud resources. + # + # + # A `Policy` is a collection of `bindings`. A `binding` binds one or more + # `members`, or principals, to a single `role`. Principals can be user + # accounts, service accounts, Google groups, and domains (such as G Suite). A + # `role` is a named list of permissions; each `role` can be an IAM predefined + # role or a user-created custom role. + # + # For some types of Google Cloud resources, a `binding` can also specify a + # `condition`, which is a logical expression that allows access to a resource + # only if the expression evaluates to `true`. A condition can add constraints + # based on attributes of the request, the resource, or both. To learn which + # resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + # + # **JSON example:** + # + # ``` + # { + # "bindings": [ + # { + # "role": "roles/resourcemanager.organizationAdmin", + # "members": [ + # "user:mike@example.com", + # "group:admins@example.com", + # "domain:google.com", + # "serviceAccount:my-project-id@appspot.gserviceaccount.com" + # ] + # }, + # { + # "role": "roles/resourcemanager.organizationViewer", + # "members": [ + # "user:eve@example.com" + # ], + # "condition": { + # "title": "expirable access", + # "description": "Does not grant access after Sep 2020", + # "expression": "request.time < + # timestamp('2020-10-01T00:00:00.000Z')", + # } + # } + # ], + # "etag": "BwWWja0YfJA=", + # "version": 3 + # } + # ``` + # + # **YAML example:** + # + # ``` + # bindings: + # - members: + # - user:mike@example.com + # - group:admins@example.com + # - domain:google.com + # - serviceAccount:my-project-id@appspot.gserviceaccount.com + # role: roles/resourcemanager.organizationAdmin + # - members: + # - user:eve@example.com + # role: roles/resourcemanager.organizationViewer + # condition: + # title: expirable access + # description: Does not grant access after Sep 2020 + # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + # etag: BwWWja0YfJA= + # version: 3 + # ``` + # + # For a description of IAM and its features, see the + # [IAM documentation](https://cloud.google.com/iam/docs/). + # @!attribute [rw] version + # @return [::Integer] + # Specifies the format of the policy. + # + # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + # are rejected. + # + # Any operation that affects conditional role bindings must specify version + # `3`. This requirement applies to the following operations: + # + # * Getting a policy that includes a conditional role binding + # * Adding a conditional role binding to a policy + # * Changing a conditional role binding in a policy + # * Removing any role binding, with or without a condition, from a policy + # that includes conditions + # + # **Important:** If you use IAM Conditions, you must include the `etag` field + # whenever you call `setIamPolicy`. If you omit this field, then IAM allows + # you to overwrite a version `3` policy with a version `1` policy, and all of + # the conditions in the version `3` policy are lost. + # + # If a policy does not include any conditions, operations on that policy may + # specify any valid version or leave the field unset. + # + # To learn which resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + # @!attribute [rw] bindings + # @return [::Array<::Google::Iam::V1::Binding>] + # Associates a list of `members`, or principals, with a `role`. Optionally, + # may specify a `condition` that determines how and when the `bindings` are + # applied. Each of the `bindings` must contain at least one principal. + # + # The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + # of these principals can be Google groups. Each occurrence of a principal + # counts towards these limits. For example, if the `bindings` grant 50 + # different roles to `user:alice@example.com`, and not to any other + # principal, then you can add another 1,450 principals to the `bindings` in + # the `Policy`. + # @!attribute [rw] audit_configs + # @return [::Array<::Google::Iam::V1::AuditConfig>] + # Specifies cloud audit logging configuration for this policy. + # @!attribute [rw] etag + # @return [::String] + # `etag` is used for optimistic concurrency control as a way to help + # prevent simultaneous updates of a policy from overwriting each other. + # It is strongly suggested that systems make use of the `etag` in the + # read-modify-write cycle to perform policy updates in order to avoid race + # conditions: An `etag` is returned in the response to `getIamPolicy`, and + # systems are expected to put that etag in the request to `setIamPolicy` to + # ensure that their change will be applied to the same version of the policy. + # + # **Important:** If you use IAM Conditions, you must include the `etag` field + # whenever you call `setIamPolicy`. If you omit this field, then IAM allows + # you to overwrite a version `3` policy with a version `1` policy, and all of + # the conditions in the version `3` policy are lost. + class Policy + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Associates `members`, or principals, with a `role`. + # @!attribute [rw] role + # @return [::String] + # Role that is assigned to the list of `members`, or principals. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # @!attribute [rw] members + # @return [::Array<::String>] + # Specifies the principals requesting access for a Google Cloud resource. + # `members` can have the following values: + # + # * `allUsers`: A special identifier that represents anyone who is + # on the internet; with or without a Google account. + # + # * `allAuthenticatedUsers`: A special identifier that represents anyone + # who is authenticated with a Google account or a service account. + # + # * `user:{emailid}`: An email address that represents a specific Google + # account. For example, `alice@example.com` . + # + # + # * `serviceAccount:{emailid}`: An email address that represents a service + # account. For example, `my-other-app@appspot.gserviceaccount.com`. + # + # * `group:{emailid}`: An email address that represents a Google group. + # For example, `admins@example.com`. + # + # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + # identifier) representing a user that has been recently deleted. For + # example, `alice@example.com?uid=123456789012345678901`. If the user is + # recovered, this value reverts to `user:{emailid}` and the recovered user + # retains the role in the binding. + # + # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + # unique identifier) representing a service account that has been recently + # deleted. For example, + # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + # If the service account is undeleted, this value reverts to + # `serviceAccount:{emailid}` and the undeleted service account retains the + # role in the binding. + # + # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + # identifier) representing a Google group that has been recently + # deleted. For example, `admins@example.com?uid=123456789012345678901`. If + # the group is recovered, this value reverts to `group:{emailid}` and the + # recovered group retains the role in the binding. + # + # + # * `domain:{domain}`: The G Suite domain (primary) that represents all the + # users of that domain. For example, `google.com` or `example.com`. + # @!attribute [rw] condition + # @return [::Google::Type::Expr] + # The condition that is associated with this binding. + # + # If the condition evaluates to `true`, then this binding applies to the + # current request. + # + # If the condition evaluates to `false`, then this binding does not apply to + # the current request. However, a different role binding might grant the same + # role to one or more of the principals in this binding. + # + # To learn which resources support conditions in their IAM policies, see the + # [IAM + # documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + class Binding + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Specifies the audit configuration for a service. + # The configuration determines which permission types are logged, and what + # identities, if any, are exempted from logging. + # An AuditConfig must have one or more AuditLogConfigs. + # + # If there are AuditConfigs for both `allServices` and a specific service, + # the union of the two AuditConfigs is used for that service: the log_types + # specified in each AuditConfig are enabled, and the exempted_members in each + # AuditLogConfig are exempted. + # + # Example Policy with multiple AuditConfigs: + # + # { + # "audit_configs": [ + # { + # "service": "allServices", + # "audit_log_configs": [ + # { + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:jose@example.com" + # ] + # }, + # { + # "log_type": "DATA_WRITE" + # }, + # { + # "log_type": "ADMIN_READ" + # } + # ] + # }, + # { + # "service": "sampleservice.googleapis.com", + # "audit_log_configs": [ + # { + # "log_type": "DATA_READ" + # }, + # { + # "log_type": "DATA_WRITE", + # "exempted_members": [ + # "user:aliya@example.com" + # ] + # } + # ] + # } + # ] + # } + # + # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ + # logging. It also exempts `jose@example.com` from DATA_READ logging, and + # `aliya@example.com` from DATA_WRITE logging. + # @!attribute [rw] service + # @return [::String] + # Specifies a service that will be enabled for audit logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # @!attribute [rw] audit_log_configs + # @return [::Array<::Google::Iam::V1::AuditLogConfig>] + # The configuration for logging of each type of permission. + class AuditConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Provides the configuration for logging a type of permissions. + # Example: + # + # { + # "audit_log_configs": [ + # { + # "log_type": "DATA_READ", + # "exempted_members": [ + # "user:jose@example.com" + # ] + # }, + # { + # "log_type": "DATA_WRITE" + # } + # ] + # } + # + # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting + # jose@example.com from DATA_READ logging. + # @!attribute [rw] log_type + # @return [::Google::Iam::V1::AuditLogConfig::LogType] + # The log type that this config enables. + # @!attribute [rw] exempted_members + # @return [::Array<::String>] + # Specifies the identities that do not cause logging for this type of + # permission. + # Follows the same format of + # [Binding.members][google.iam.v1.Binding.members]. + class AuditLogConfig + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The list of valid permission types for which logging can be configured. + # Admin writes are always logged, and are not configurable. + module LogType + # Default case. Should never be this. + LOG_TYPE_UNSPECIFIED = 0 + + # Admin reads. Example: CloudIAM getIamPolicy + ADMIN_READ = 1 + + # Data writes. Example: CloudSQL Users create + DATA_WRITE = 2 + + # Data reads. Example: CloudSQL Users list + DATA_READ = 3 + end + end + + # The difference delta between two policies. + # @!attribute [rw] binding_deltas + # @return [::Array<::Google::Iam::V1::BindingDelta>] + # The delta for Bindings between two policies. + # @!attribute [rw] audit_config_deltas + # @return [::Array<::Google::Iam::V1::AuditConfigDelta>] + # The delta for AuditConfigs between two policies. + class PolicyDelta + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # One delta entry for Binding. Each individual change (only one member in each + # entry) to a binding will be a separate entry. + # @!attribute [rw] action + # @return [::Google::Iam::V1::BindingDelta::Action] + # The action that was performed on a Binding. + # Required + # @!attribute [rw] role + # @return [::String] + # Role that is assigned to `members`. + # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + # Required + # @!attribute [rw] member + # @return [::String] + # A single identity requesting access for a Google Cloud resource. + # Follows the same format of Binding.members. + # Required + # @!attribute [rw] condition + # @return [::Google::Type::Expr] + # The condition that is associated with this binding. + class BindingDelta + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The type of action performed on a Binding in a policy. + module Action + # Unspecified. + ACTION_UNSPECIFIED = 0 + + # Addition of a Binding. + ADD = 1 + + # Removal of a Binding. + REMOVE = 2 + end + end + + # One delta entry for AuditConfig. Each individual change (only one + # exempted_member in each entry) to a AuditConfig will be a separate entry. + # @!attribute [rw] action + # @return [::Google::Iam::V1::AuditConfigDelta::Action] + # The action that was performed on an audit configuration in a policy. + # Required + # @!attribute [rw] service + # @return [::String] + # Specifies a service that was configured for Cloud Audit Logging. + # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + # `allServices` is a special value that covers all services. + # Required + # @!attribute [rw] exempted_member + # @return [::String] + # A single identity that is exempted from "data access" audit + # logging for the `service` specified above. + # Follows the same format of Binding.members. + # @!attribute [rw] log_type + # @return [::String] + # Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + # enabled, and cannot be configured. + # Required + class AuditConfigDelta + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The type of action performed on an audit configuration in a policy. + module Action + # Unspecified. + ACTION_UNSPECIFIED = 0 + + # Addition of an audit configuration. + ADD = 1 + + # Removal of an audit configuration. + REMOVE = 2 + end + end + end + end +end diff --git a/google-cloud-vm_migration-v1/snippets/iam_policy/get_iam_policy.rb b/google-cloud-vm_migration-v1/snippets/iam_policy/get_iam_policy.rb new file mode 100644 index 000000000000..537bf77e73af --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/iam_policy/get_iam_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_IAMPolicy_GetIamPolicy_sync] +require "google/iam/v1" + +## +# Snippet for the get_iam_policy call in the IAMPolicy service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Iam::V1::IAMPolicy::Client#get_iam_policy. +# +def get_iam_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Iam::V1::IAMPolicy::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::GetIamPolicyRequest.new + + # Call the get_iam_policy method. + result = client.get_iam_policy request + + # The returned object is of type Google::Iam::V1::Policy. + p result +end +# [END vmmigration_v1_generated_IAMPolicy_GetIamPolicy_sync] diff --git a/google-cloud-vm_migration-v1/snippets/iam_policy/set_iam_policy.rb b/google-cloud-vm_migration-v1/snippets/iam_policy/set_iam_policy.rb new file mode 100644 index 000000000000..3ab1734c596c --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/iam_policy/set_iam_policy.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_IAMPolicy_SetIamPolicy_sync] +require "google/iam/v1" + +## +# Snippet for the set_iam_policy call in the IAMPolicy service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Iam::V1::IAMPolicy::Client#set_iam_policy. +# +def set_iam_policy + # Create a client object. The client can be reused for multiple calls. + client = Google::Iam::V1::IAMPolicy::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::SetIamPolicyRequest.new + + # Call the set_iam_policy method. + result = client.set_iam_policy request + + # The returned object is of type Google::Iam::V1::Policy. + p result +end +# [END vmmigration_v1_generated_IAMPolicy_SetIamPolicy_sync] diff --git a/google-cloud-vm_migration-v1/snippets/iam_policy/test_iam_permissions.rb b/google-cloud-vm_migration-v1/snippets/iam_policy/test_iam_permissions.rb new file mode 100644 index 000000000000..dfcc22b7946d --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/iam_policy/test_iam_permissions.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_IAMPolicy_TestIamPermissions_sync] +require "google/iam/v1" + +## +# Snippet for the test_iam_permissions call in the IAMPolicy service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Iam::V1::IAMPolicy::Client#test_iam_permissions. +# +def test_iam_permissions + # Create a client object. The client can be reused for multiple calls. + client = Google::Iam::V1::IAMPolicy::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Iam::V1::TestIamPermissionsRequest.new + + # Call the test_iam_permissions method. + result = client.test_iam_permissions request + + # The returned object is of type Google::Iam::V1::TestIamPermissionsResponse. + p result +end +# [END vmmigration_v1_generated_IAMPolicy_TestIamPermissions_sync] diff --git a/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.cloud.vmmigration.v1.json b/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.cloud.vmmigration.v1.json index 93ba060fce87..52bf081adf47 100644 --- a/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.cloud.vmmigration.v1.json +++ b/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.cloud.vmmigration.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vm_migration-v1", - "version": "2.2.0", + "version": "2.4.0", "language": "RUBY", "apis": [ { @@ -251,6 +251,46 @@ } ] }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_FetchStorageInventory_sync", + "title": "Snippet for the fetch_storage_inventory call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#fetch_storage_inventory.", + "file": "vm_migration/fetch_storage_inventory.rb", + "language": "RUBY", + "client_method": { + "short_name": "fetch_storage_inventory", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#fetch_storage_inventory", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "FetchStorageInventory", + "full_name": "google.cloud.vmmigration.v1.VmMigration.FetchStorageInventory", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, { "region_tag": "vmmigration_v1_generated_VMMigration_ListUtilizationReports_sync", "title": "Snippet for the list_utilization_reports call in the VMMigration service", @@ -971,6 +1011,46 @@ } ] }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_ExtendMigration_sync", + "title": "Snippet for the extend_migration call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#extend_migration.", + "file": "vm_migration/extend_migration.rb", + "language": "RUBY", + "client_method": { + "short_name": "extend_migration", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#extend_migration", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::ExtendMigrationRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "ExtendMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration.ExtendMigration", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, { "region_tag": "vmmigration_v1_generated_VMMigration_CreateCloneJob_sync", "title": "Snippet for the create_clone_job call in the VMMigration service", @@ -1850,6 +1930,566 @@ "type": "FULL" } ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_ListImageImports_sync", + "title": "Snippet for the list_image_imports call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#list_image_imports.", + "file": "vm_migration/list_image_imports.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_image_imports", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#list_image_imports", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::ListImageImportsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::ListImageImportsResponse", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "ListImageImports", + "full_name": "google.cloud.vmmigration.v1.VmMigration.ListImageImports", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_GetImageImport_sync", + "title": "Snippet for the get_image_import call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#get_image_import.", + "file": "vm_migration/get_image_import.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_image_import", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#get_image_import", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::GetImageImportRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::ImageImport", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "GetImageImport", + "full_name": "google.cloud.vmmigration.v1.VmMigration.GetImageImport", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_CreateImageImport_sync", + "title": "Snippet for the create_image_import call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#create_image_import.", + "file": "vm_migration/create_image_import.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_image_import", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#create_image_import", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::CreateImageImportRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "CreateImageImport", + "full_name": "google.cloud.vmmigration.v1.VmMigration.CreateImageImport", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_DeleteImageImport_sync", + "title": "Snippet for the delete_image_import call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#delete_image_import.", + "file": "vm_migration/delete_image_import.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_image_import", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#delete_image_import", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::DeleteImageImportRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "DeleteImageImport", + "full_name": "google.cloud.vmmigration.v1.VmMigration.DeleteImageImport", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_ListImageImportJobs_sync", + "title": "Snippet for the list_image_import_jobs call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#list_image_import_jobs.", + "file": "vm_migration/list_image_import_jobs.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_image_import_jobs", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#list_image_import_jobs", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "ListImageImportJobs", + "full_name": "google.cloud.vmmigration.v1.VmMigration.ListImageImportJobs", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_GetImageImportJob_sync", + "title": "Snippet for the get_image_import_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#get_image_import_job.", + "file": "vm_migration/get_image_import_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_image_import_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#get_image_import_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::GetImageImportJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::ImageImportJob", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "GetImageImportJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.GetImageImportJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_CancelImageImportJob_sync", + "title": "Snippet for the cancel_image_import_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#cancel_image_import_job.", + "file": "vm_migration/cancel_image_import_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "cancel_image_import_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#cancel_image_import_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "CancelImageImportJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.CancelImageImportJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_CreateDiskMigrationJob_sync", + "title": "Snippet for the create_disk_migration_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#create_disk_migration_job.", + "file": "vm_migration/create_disk_migration_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_disk_migration_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#create_disk_migration_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "CreateDiskMigrationJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.CreateDiskMigrationJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_ListDiskMigrationJobs_sync", + "title": "Snippet for the list_disk_migration_jobs call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#list_disk_migration_jobs.", + "file": "vm_migration/list_disk_migration_jobs.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_disk_migration_jobs", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#list_disk_migration_jobs", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "ListDiskMigrationJobs", + "full_name": "google.cloud.vmmigration.v1.VmMigration.ListDiskMigrationJobs", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_GetDiskMigrationJob_sync", + "title": "Snippet for the get_disk_migration_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#get_disk_migration_job.", + "file": "vm_migration/get_disk_migration_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_disk_migration_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#get_disk_migration_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::VMMigration::V1::DiskMigrationJob", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "GetDiskMigrationJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.GetDiskMigrationJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_UpdateDiskMigrationJob_sync", + "title": "Snippet for the update_disk_migration_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#update_disk_migration_job.", + "file": "vm_migration/update_disk_migration_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_disk_migration_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#update_disk_migration_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "UpdateDiskMigrationJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.UpdateDiskMigrationJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_DeleteDiskMigrationJob_sync", + "title": "Snippet for the delete_disk_migration_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#delete_disk_migration_job.", + "file": "vm_migration/delete_disk_migration_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_disk_migration_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#delete_disk_migration_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "DeleteDiskMigrationJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.DeleteDiskMigrationJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_RunDiskMigrationJob_sync", + "title": "Snippet for the run_disk_migration_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#run_disk_migration_job.", + "file": "vm_migration/run_disk_migration_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "run_disk_migration_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#run_disk_migration_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "RunDiskMigrationJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.RunDiskMigrationJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_VMMigration_CancelDiskMigrationJob_sync", + "title": "Snippet for the cancel_disk_migration_job call in the VMMigration service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::VMMigration::V1::VMMigration::Client#cancel_disk_migration_job.", + "file": "vm_migration/cancel_disk_migration_job.rb", + "language": "RUBY", + "client_method": { + "short_name": "cancel_disk_migration_job", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client#cancel_disk_migration_job", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest", + "name": "request" + } + ], + "result_type": "::Google::Longrunning::Operation", + "client": { + "short_name": "VMMigration::Client", + "full_name": "::Google::Cloud::VMMigration::V1::VMMigration::Client" + }, + "method": { + "short_name": "CancelDiskMigrationJob", + "full_name": "google.cloud.vmmigration.v1.VmMigration.CancelDiskMigrationJob", + "service": { + "short_name": "VmMigration", + "full_name": "google.cloud.vmmigration.v1.VmMigration" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 53, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.iam.v1.json b/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.iam.v1.json new file mode 100644 index 000000000000..c3da5d9aa1da --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/snippet_metadata_google.iam.v1.json @@ -0,0 +1,135 @@ +{ + "client_library": { + "name": "google-cloud-vm_migration-v1", + "version": "2.4.0", + "language": "RUBY", + "apis": [ + { + "id": "google.iam.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "region_tag": "vmmigration_v1_generated_IAMPolicy_SetIamPolicy_sync", + "title": "Snippet for the set_iam_policy call in the IAMPolicy service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Iam::V1::IAMPolicy::Client#set_iam_policy.", + "file": "iam_policy/set_iam_policy.rb", + "language": "RUBY", + "client_method": { + "short_name": "set_iam_policy", + "full_name": "::Google::Iam::V1::IAMPolicy::Client#set_iam_policy", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::SetIamPolicyRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::Policy", + "client": { + "short_name": "IAMPolicy::Client", + "full_name": "::Google::Iam::V1::IAMPolicy::Client" + }, + "method": { + "short_name": "SetIamPolicy", + "full_name": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "short_name": "IAMPolicy", + "full_name": "google.iam.v1.IAMPolicy" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_IAMPolicy_GetIamPolicy_sync", + "title": "Snippet for the get_iam_policy call in the IAMPolicy service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Iam::V1::IAMPolicy::Client#get_iam_policy.", + "file": "iam_policy/get_iam_policy.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_iam_policy", + "full_name": "::Google::Iam::V1::IAMPolicy::Client#get_iam_policy", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::GetIamPolicyRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::Policy", + "client": { + "short_name": "IAMPolicy::Client", + "full_name": "::Google::Iam::V1::IAMPolicy::Client" + }, + "method": { + "short_name": "GetIamPolicy", + "full_name": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "short_name": "IAMPolicy", + "full_name": "google.iam.v1.IAMPolicy" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "vmmigration_v1_generated_IAMPolicy_TestIamPermissions_sync", + "title": "Snippet for the test_iam_permissions call in the IAMPolicy service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Iam::V1::IAMPolicy::Client#test_iam_permissions.", + "file": "iam_policy/test_iam_permissions.rb", + "language": "RUBY", + "client_method": { + "short_name": "test_iam_permissions", + "full_name": "::Google::Iam::V1::IAMPolicy::Client#test_iam_permissions", + "async": false, + "parameters": [ + { + "type": "::Google::Iam::V1::TestIamPermissionsRequest", + "name": "request" + } + ], + "result_type": "::Google::Iam::V1::TestIamPermissionsResponse", + "client": { + "short_name": "IAMPolicy::Client", + "full_name": "::Google::Iam::V1::IAMPolicy::Client" + }, + "method": { + "short_name": "TestIamPermissions", + "full_name": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "short_name": "IAMPolicy", + "full_name": "google.iam.v1.IAMPolicy" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/cancel_disk_migration_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/cancel_disk_migration_job.rb new file mode 100644 index 000000000000..cf18f4222701 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/cancel_disk_migration_job.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_CancelDiskMigrationJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the cancel_disk_migration_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#cancel_disk_migration_job. +# +def cancel_disk_migration_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new + + # Call the cancel_disk_migration_job method. + result = client.cancel_disk_migration_job request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_CancelDiskMigrationJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/cancel_image_import_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/cancel_image_import_job.rb new file mode 100644 index 000000000000..deade43d2faa --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/cancel_image_import_job.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_CancelImageImportJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the cancel_image_import_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#cancel_image_import_job. +# +def cancel_image_import_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new + + # Call the cancel_image_import_job method. + result = client.cancel_image_import_job request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_CancelImageImportJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/create_disk_migration_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/create_disk_migration_job.rb new file mode 100644 index 000000000000..d720b8dda877 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/create_disk_migration_job.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_CreateDiskMigrationJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the create_disk_migration_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#create_disk_migration_job. +# +def create_disk_migration_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new + + # Call the create_disk_migration_job method. + result = client.create_disk_migration_job request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_CreateDiskMigrationJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/create_image_import.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/create_image_import.rb new file mode 100644 index 000000000000..e3995e638347 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/create_image_import.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_CreateImageImport_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the create_image_import call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#create_image_import. +# +def create_image_import + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::CreateImageImportRequest.new + + # Call the create_image_import method. + result = client.create_image_import request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_CreateImageImport_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/delete_disk_migration_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/delete_disk_migration_job.rb new file mode 100644 index 000000000000..a96786a8c3bc --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/delete_disk_migration_job.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_DeleteDiskMigrationJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the delete_disk_migration_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#delete_disk_migration_job. +# +def delete_disk_migration_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new + + # Call the delete_disk_migration_job method. + result = client.delete_disk_migration_job request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_DeleteDiskMigrationJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/delete_image_import.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/delete_image_import.rb new file mode 100644 index 000000000000..6efaef67387d --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/delete_image_import.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_DeleteImageImport_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the delete_image_import call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#delete_image_import. +# +def delete_image_import + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new + + # Call the delete_image_import method. + result = client.delete_image_import request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_DeleteImageImport_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/extend_migration.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/extend_migration.rb new file mode 100644 index 000000000000..87476bc97fa5 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/extend_migration.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_ExtendMigration_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the extend_migration call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#extend_migration. +# +def extend_migration + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new + + # Call the extend_migration method. + result = client.extend_migration request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_ExtendMigration_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/fetch_storage_inventory.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/fetch_storage_inventory.rb new file mode 100644 index 000000000000..1f8d86b64dd4 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/fetch_storage_inventory.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_FetchStorageInventory_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the fetch_storage_inventory call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#fetch_storage_inventory. +# +def fetch_storage_inventory + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new + + # Call the fetch_storage_inventory method. + result = client.fetch_storage_inventory request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::VMMigration::V1::SourceStorageResource. + p item + end +end +# [END vmmigration_v1_generated_VMMigration_FetchStorageInventory_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/get_disk_migration_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/get_disk_migration_job.rb new file mode 100644 index 000000000000..7cf3c5517b81 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/get_disk_migration_job.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_GetDiskMigrationJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the get_disk_migration_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#get_disk_migration_job. +# +def get_disk_migration_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new + + # Call the get_disk_migration_job method. + result = client.get_disk_migration_job request + + # The returned object is of type Google::Cloud::VMMigration::V1::DiskMigrationJob. + p result +end +# [END vmmigration_v1_generated_VMMigration_GetDiskMigrationJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/get_image_import.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/get_image_import.rb new file mode 100644 index 000000000000..5265c10f5246 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/get_image_import.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_GetImageImport_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the get_image_import call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#get_image_import. +# +def get_image_import + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::GetImageImportRequest.new + + # Call the get_image_import method. + result = client.get_image_import request + + # The returned object is of type Google::Cloud::VMMigration::V1::ImageImport. + p result +end +# [END vmmigration_v1_generated_VMMigration_GetImageImport_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/get_image_import_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/get_image_import_job.rb new file mode 100644 index 000000000000..3a94a0770a15 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/get_image_import_job.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_GetImageImportJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the get_image_import_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#get_image_import_job. +# +def get_image_import_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new + + # Call the get_image_import_job method. + result = client.get_image_import_job request + + # The returned object is of type Google::Cloud::VMMigration::V1::ImageImportJob. + p result +end +# [END vmmigration_v1_generated_VMMigration_GetImageImportJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/list_disk_migration_jobs.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/list_disk_migration_jobs.rb new file mode 100644 index 000000000000..66e9e465fb18 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/list_disk_migration_jobs.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_ListDiskMigrationJobs_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the list_disk_migration_jobs call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#list_disk_migration_jobs. +# +def list_disk_migration_jobs + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new + + # Call the list_disk_migration_jobs method. + result = client.list_disk_migration_jobs request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::VMMigration::V1::DiskMigrationJob. + p item + end +end +# [END vmmigration_v1_generated_VMMigration_ListDiskMigrationJobs_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/list_image_import_jobs.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/list_image_import_jobs.rb new file mode 100644 index 000000000000..cd3b4a4ecb58 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/list_image_import_jobs.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_ListImageImportJobs_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the list_image_import_jobs call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#list_image_import_jobs. +# +def list_image_import_jobs + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new + + # Call the list_image_import_jobs method. + result = client.list_image_import_jobs request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::VMMigration::V1::ImageImportJob. + p item + end +end +# [END vmmigration_v1_generated_VMMigration_ListImageImportJobs_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/list_image_imports.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/list_image_imports.rb new file mode 100644 index 000000000000..26fbecac4251 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/list_image_imports.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_ListImageImports_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the list_image_imports call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#list_image_imports. +# +def list_image_imports + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::ListImageImportsRequest.new + + # Call the list_image_imports method. + result = client.list_image_imports request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Cloud::VMMigration::V1::ImageImport. + p item + end +end +# [END vmmigration_v1_generated_VMMigration_ListImageImports_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/run_disk_migration_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/run_disk_migration_job.rb new file mode 100644 index 000000000000..a56f0153cf43 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/run_disk_migration_job.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_RunDiskMigrationJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the run_disk_migration_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#run_disk_migration_job. +# +def run_disk_migration_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new + + # Call the run_disk_migration_job method. + result = client.run_disk_migration_job request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_RunDiskMigrationJob_sync] diff --git a/google-cloud-vm_migration-v1/snippets/vm_migration/update_disk_migration_job.rb b/google-cloud-vm_migration-v1/snippets/vm_migration/update_disk_migration_job.rb new file mode 100644 index 000000000000..df5eafb92686 --- /dev/null +++ b/google-cloud-vm_migration-v1/snippets/vm_migration/update_disk_migration_job.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START vmmigration_v1_generated_VMMigration_UpdateDiskMigrationJob_sync] +require "google/cloud/vm_migration/v1" + +## +# Snippet for the update_disk_migration_job call in the VMMigration service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::VMMigration::V1::VMMigration::Client#update_disk_migration_job. +# +def update_disk_migration_job + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::VMMigration::V1::VMMigration::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new + + # Call the update_disk_migration_job method. + result = client.update_disk_migration_job request + + # The returned object is of type Gapic::Operation. You can use it to + # check the status of an operation, cancel it, or wait for results. + # Here is how to wait for a response. + result.wait_until_done! timeout: 60 + if result.response? + p result.response + else + puts "No response received." + end +end +# [END vmmigration_v1_generated_VMMigration_UpdateDiskMigrationJob_sync] diff --git a/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_paths_test.rb b/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_paths_test.rb index 74d5784cdc6f..58075d2cdd20 100755 --- a/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_paths_test.rb +++ b/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_paths_test.rb @@ -53,6 +53,18 @@ def test_clone_job_path end end + def test_crypto_key_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.crypto_key_path project: "value0", location: "value1", key_ring: "value2", crypto_key: "value3" + assert_equal "projects/value0/locations/value1/keyRings/value2/cryptoKeys/value3", path + end + end + def test_cutover_job_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do @@ -77,6 +89,18 @@ def test_datacenter_connector_path end end + def test_disk_migration_job_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.disk_migration_job_path project: "value0", location: "value1", source: "value2", disk_migration_job: "value3" + assert_equal "projects/value0/locations/value1/sources/value2/diskMigrationJobs/value3", path + end + end + def test_group_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do @@ -89,6 +113,42 @@ def test_group_path end end + def test_image_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.image_path project: "value0", image: "value1" + assert_equal "projects/value0/global/images/value1", path + end + end + + def test_image_import_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.image_import_path project: "value0", location: "value1", job: "value2" + assert_equal "projects/value0/locations/value1/imageImports/value2", path + end + end + + def test_image_import_job_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.image_import_job_path project: "value0", location: "value1", job: "value2", result: "value3" + assert_equal "projects/value0/locations/value1/imageImports/value2/imageImportJobs/value3", path + end + end + def test_location_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do @@ -125,6 +185,18 @@ def test_replication_cycle_path end end + def test_service_account_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.service_account_path project: "value0", service_account: "value1" + assert_equal "projects/value0/serviceAccounts/value1", path + end + end + def test_source_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_rest_test.rb b/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_rest_test.rb index 3df691b2341c..136242984610 100644 --- a/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_rest_test.rb +++ b/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_rest_test.rb @@ -413,6 +413,64 @@ def test_fetch_inventory end end + def test_fetch_storage_inventory + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + source = "hello world" + type = :STORAGE_TYPE_UNSPECIFIED + force_refresh = true + page_size = 42 + page_token = "hello world" + + fetch_storage_inventory_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_fetch_storage_inventory_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, fetch_storage_inventory_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.fetch_storage_inventory({ source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.fetch_storage_inventory source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.fetch_storage_inventory ::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new(source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.fetch_storage_inventory({ source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.fetch_storage_inventory(::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new(source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, fetch_storage_inventory_client_stub.call_count + end + end + end + def test_list_utilization_reports # Create test objects. client_result = ::Google::Cloud::VMMigration::V1::ListUtilizationReportsResponse.new @@ -1415,6 +1473,60 @@ def test_finalize_migration end end + def test_extend_migration + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + migrating_vm = "hello world" + + extend_migration_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_extend_migration_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, extend_migration_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.extend_migration({ migrating_vm: migrating_vm }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.extend_migration migrating_vm: migrating_vm do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.extend_migration ::Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new(migrating_vm: migrating_vm) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.extend_migration({ migrating_vm: migrating_vm }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.extend_migration(::Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new(migrating_vm: migrating_vm), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, extend_migration_client_stub.call_count + end + end + end + def test_create_clone_job # Create test objects. client_result = ::Google::Longrunning::Operation.new @@ -2643,6 +2755,783 @@ def test_get_replication_cycle end end + def test_list_image_imports + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::ListImageImportsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_image_imports_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_list_image_imports_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_image_imports_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_image_imports({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_image_imports parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_image_imports ::Google::Cloud::VMMigration::V1::ListImageImportsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_image_imports({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_image_imports(::Google::Cloud::VMMigration::V1::ListImageImportsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_image_imports_client_stub.call_count + end + end + end + + def test_get_image_import + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::ImageImport.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_image_import_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_get_image_import_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_image_import_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_image_import({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_image_import name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_image_import ::Google::Cloud::VMMigration::V1::GetImageImportRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_image_import({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_image_import(::Google::Cloud::VMMigration::V1::GetImageImportRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_image_import_client_stub.call_count + end + end + end + + def test_create_image_import + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + image_import_id = "hello world" + image_import = {} + request_id = "hello world" + + create_image_import_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_create_image_import_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_image_import_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_image_import({ parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_image_import parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_image_import ::Google::Cloud::VMMigration::V1::CreateImageImportRequest.new(parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_image_import({ parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_image_import(::Google::Cloud::VMMigration::V1::CreateImageImportRequest.new(parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_image_import_client_stub.call_count + end + end + end + + def test_delete_image_import + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + request_id = "hello world" + + delete_image_import_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_delete_image_import_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_image_import_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_image_import({ name: name, request_id: request_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_image_import name: name, request_id: request_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_image_import ::Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new(name: name, request_id: request_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_image_import({ name: name, request_id: request_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_image_import(::Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new(name: name, request_id: request_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_image_import_client_stub.call_count + end + end + end + + def test_list_image_import_jobs + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_image_import_jobs_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_list_image_import_jobs_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_image_import_jobs_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_image_import_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_image_import_jobs parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_image_import_jobs ::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_image_import_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_image_import_jobs(::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_image_import_jobs_client_stub.call_count + end + end + end + + def test_get_image_import_job + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::ImageImportJob.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_image_import_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_get_image_import_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_image_import_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_image_import_job({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_image_import_job name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_image_import_job ::Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_image_import_job({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_image_import_job(::Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_image_import_job_client_stub.call_count + end + end + end + + def test_cancel_image_import_job + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + cancel_image_import_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_cancel_image_import_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, cancel_image_import_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.cancel_image_import_job({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.cancel_image_import_job name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.cancel_image_import_job ::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.cancel_image_import_job({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.cancel_image_import_job(::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, cancel_image_import_job_client_stub.call_count + end + end + end + + def test_create_disk_migration_job + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + disk_migration_job_id = "hello world" + disk_migration_job = {} + request_id = "hello world" + + create_disk_migration_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_create_disk_migration_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_disk_migration_job({ parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_disk_migration_job parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_disk_migration_job ::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new(parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_disk_migration_job({ parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_disk_migration_job(::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new(parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_disk_migration_job_client_stub.call_count + end + end + end + + def test_list_disk_migration_jobs + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_disk_migration_jobs_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_list_disk_migration_jobs_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_disk_migration_jobs_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_disk_migration_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_disk_migration_jobs parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_disk_migration_jobs ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_disk_migration_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_disk_migration_jobs(::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_disk_migration_jobs_client_stub.call_count + end + end + end + + def test_get_disk_migration_job + # Create test objects. + client_result = ::Google::Cloud::VMMigration::V1::DiskMigrationJob.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_disk_migration_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_get_disk_migration_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_disk_migration_job({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_disk_migration_job name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_disk_migration_job ::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_disk_migration_job({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_disk_migration_job(::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_disk_migration_job_client_stub.call_count + end + end + end + + def test_update_disk_migration_job + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + update_mask = {} + disk_migration_job = {} + request_id = "hello world" + + update_disk_migration_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_update_disk_migration_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_disk_migration_job({ update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_disk_migration_job update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_disk_migration_job ::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new(update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_disk_migration_job({ update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_disk_migration_job(::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new(update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_disk_migration_job_client_stub.call_count + end + end + end + + def test_delete_disk_migration_job + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_disk_migration_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_delete_disk_migration_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_disk_migration_job({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_disk_migration_job name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_disk_migration_job ::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_disk_migration_job({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_disk_migration_job(::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_disk_migration_job_client_stub.call_count + end + end + end + + def test_run_disk_migration_job + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + run_disk_migration_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_run_disk_migration_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, run_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.run_disk_migration_job({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.run_disk_migration_job name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.run_disk_migration_job ::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.run_disk_migration_job({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.run_disk_migration_job(::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, run_disk_migration_job_client_stub.call_count + end + end + end + + def test_cancel_disk_migration_job + # Create test objects. + client_result = ::Google::Longrunning::Operation.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + cancel_disk_migration_job_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::VMMigration::V1::VMMigration::Rest::ServiceStub.stub :transcode_cancel_disk_migration_job_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, cancel_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.cancel_disk_migration_job({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.cancel_disk_migration_job name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.cancel_disk_migration_job ::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.cancel_disk_migration_job({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.cancel_disk_migration_job(::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, cancel_disk_migration_job_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_test.rb b/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_test.rb index b3997f286f6a..a03a5ec9f349 100755 --- a/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_test.rb +++ b/google-cloud-vm_migration-v1/test/google/cloud/vm_migration/v1/vm_migration_test.rb @@ -453,6 +453,77 @@ def test_fetch_inventory end end + def test_fetch_storage_inventory + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::FetchStorageInventoryResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + source = "hello world" + type = :STORAGE_TYPE_UNSPECIFIED + force_refresh = true + page_size = 42 + page_token = "hello world" + + fetch_storage_inventory_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :fetch_storage_inventory, name + assert_kind_of ::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest, request + assert_equal "hello world", request["source"] + assert_equal :STORAGE_TYPE_UNSPECIFIED, request["type"] + assert_equal true, request["force_refresh"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, fetch_storage_inventory_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.fetch_storage_inventory({ source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.fetch_storage_inventory source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.fetch_storage_inventory ::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new(source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.fetch_storage_inventory({ source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.fetch_storage_inventory(::Google::Cloud::VMMigration::V1::FetchStorageInventoryRequest.new(source: source, type: type, force_refresh: force_refresh, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, fetch_storage_inventory_client_stub.call_rpc_count + end + end + def test_list_utilization_reports # Create GRPC objects. grpc_response = ::Google::Cloud::VMMigration::V1::ListUtilizationReportsResponse.new @@ -1632,6 +1703,69 @@ def test_finalize_migration end end + def test_extend_migration + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + migrating_vm = "hello world" + + extend_migration_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :extend_migration, name + assert_kind_of ::Google::Cloud::VMMigration::V1::ExtendMigrationRequest, request + assert_equal "hello world", request["migrating_vm"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, extend_migration_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.extend_migration({ migrating_vm: migrating_vm }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.extend_migration migrating_vm: migrating_vm do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.extend_migration ::Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new(migrating_vm: migrating_vm) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.extend_migration({ migrating_vm: migrating_vm }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.extend_migration(::Google::Cloud::VMMigration::V1::ExtendMigrationRequest.new(migrating_vm: migrating_vm), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, extend_migration_client_stub.call_rpc_count + end + end + def test_create_clone_job # Create GRPC objects. grpc_response = ::Google::Longrunning::Operation.new @@ -3073,6 +3207,915 @@ def test_get_replication_cycle end end + def test_list_image_imports + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::ListImageImportsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_image_imports_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_image_imports, name + assert_kind_of ::Google::Cloud::VMMigration::V1::ListImageImportsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_image_imports_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_image_imports({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_image_imports parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_image_imports ::Google::Cloud::VMMigration::V1::ListImageImportsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_image_imports({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_image_imports(::Google::Cloud::VMMigration::V1::ListImageImportsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_image_imports_client_stub.call_rpc_count + end + end + + def test_get_image_import + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::ImageImport.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_image_import_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_image_import, name + assert_kind_of ::Google::Cloud::VMMigration::V1::GetImageImportRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_image_import_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_image_import({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_image_import name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_image_import ::Google::Cloud::VMMigration::V1::GetImageImportRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_image_import({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_image_import(::Google::Cloud::VMMigration::V1::GetImageImportRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_image_import_client_stub.call_rpc_count + end + end + + def test_create_image_import + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + image_import_id = "hello world" + image_import = {} + request_id = "hello world" + + create_image_import_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_image_import, name + assert_kind_of ::Google::Cloud::VMMigration::V1::CreateImageImportRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["image_import_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::VMMigration::V1::ImageImport), request["image_import"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_image_import_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_image_import({ parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_image_import parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_image_import ::Google::Cloud::VMMigration::V1::CreateImageImportRequest.new(parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_image_import({ parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_image_import(::Google::Cloud::VMMigration::V1::CreateImageImportRequest.new(parent: parent, image_import_id: image_import_id, image_import: image_import, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_image_import_client_stub.call_rpc_count + end + end + + def test_delete_image_import + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + request_id = "hello world" + + delete_image_import_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_image_import, name + assert_kind_of ::Google::Cloud::VMMigration::V1::DeleteImageImportRequest, request + assert_equal "hello world", request["name"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_image_import_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_image_import({ name: name, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_image_import name: name, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_image_import ::Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new(name: name, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_image_import({ name: name, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_image_import(::Google::Cloud::VMMigration::V1::DeleteImageImportRequest.new(name: name, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_image_import_client_stub.call_rpc_count + end + end + + def test_list_image_import_jobs + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::ListImageImportJobsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_image_import_jobs_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_image_import_jobs, name + assert_kind_of ::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_image_import_jobs_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_image_import_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_image_import_jobs parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_image_import_jobs ::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_image_import_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_image_import_jobs(::Google::Cloud::VMMigration::V1::ListImageImportJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_image_import_jobs_client_stub.call_rpc_count + end + end + + def test_get_image_import_job + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::ImageImportJob.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_image_import_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_image_import_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::GetImageImportJobRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_image_import_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_image_import_job({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_image_import_job name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_image_import_job ::Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_image_import_job({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_image_import_job(::Google::Cloud::VMMigration::V1::GetImageImportJobRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_image_import_job_client_stub.call_rpc_count + end + end + + def test_cancel_image_import_job + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + cancel_image_import_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :cancel_image_import_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, cancel_image_import_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.cancel_image_import_job({ name: name }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.cancel_image_import_job name: name do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.cancel_image_import_job ::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new(name: name) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.cancel_image_import_job({ name: name }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.cancel_image_import_job(::Google::Cloud::VMMigration::V1::CancelImageImportJobRequest.new(name: name), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, cancel_image_import_job_client_stub.call_rpc_count + end + end + + def test_create_disk_migration_job + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + disk_migration_job_id = "hello world" + disk_migration_job = {} + request_id = "hello world" + + create_disk_migration_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_disk_migration_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["disk_migration_job_id"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::VMMigration::V1::DiskMigrationJob), request["disk_migration_job"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_disk_migration_job({ parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_disk_migration_job parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_disk_migration_job ::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new(parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_disk_migration_job({ parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_disk_migration_job(::Google::Cloud::VMMigration::V1::CreateDiskMigrationJobRequest.new(parent: parent, disk_migration_job_id: disk_migration_job_id, disk_migration_job: disk_migration_job, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_disk_migration_job_client_stub.call_rpc_count + end + end + + def test_list_disk_migration_jobs + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + order_by = "hello world" + + list_disk_migration_jobs_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_disk_migration_jobs, name + assert_kind_of ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + assert_equal "hello world", request["order_by"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_disk_migration_jobs_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_disk_migration_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_disk_migration_jobs parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_disk_migration_jobs ::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_disk_migration_jobs({ parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_disk_migration_jobs(::Google::Cloud::VMMigration::V1::ListDiskMigrationJobsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter, order_by: order_by), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_disk_migration_jobs_client_stub.call_rpc_count + end + end + + def test_get_disk_migration_job + # Create GRPC objects. + grpc_response = ::Google::Cloud::VMMigration::V1::DiskMigrationJob.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_disk_migration_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_disk_migration_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_disk_migration_job({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_disk_migration_job name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_disk_migration_job ::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_disk_migration_job({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_disk_migration_job(::Google::Cloud::VMMigration::V1::GetDiskMigrationJobRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_disk_migration_job_client_stub.call_rpc_count + end + end + + def test_update_disk_migration_job + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + update_mask = {} + disk_migration_job = {} + request_id = "hello world" + + update_disk_migration_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_disk_migration_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Cloud::VMMigration::V1::DiskMigrationJob), request["disk_migration_job"] + assert_equal "hello world", request["request_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_disk_migration_job({ update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_disk_migration_job update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_disk_migration_job ::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new(update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_disk_migration_job({ update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_disk_migration_job(::Google::Cloud::VMMigration::V1::UpdateDiskMigrationJobRequest.new(update_mask: update_mask, disk_migration_job: disk_migration_job, request_id: request_id), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_disk_migration_job_client_stub.call_rpc_count + end + end + + def test_delete_disk_migration_job + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_disk_migration_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_disk_migration_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_disk_migration_job({ name: name }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_disk_migration_job name: name do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_disk_migration_job ::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new(name: name) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_disk_migration_job({ name: name }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_disk_migration_job(::Google::Cloud::VMMigration::V1::DeleteDiskMigrationJobRequest.new(name: name), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_disk_migration_job_client_stub.call_rpc_count + end + end + + def test_run_disk_migration_job + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + run_disk_migration_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :run_disk_migration_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, run_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.run_disk_migration_job({ name: name }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.run_disk_migration_job name: name do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.run_disk_migration_job ::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new(name: name) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.run_disk_migration_job({ name: name }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.run_disk_migration_job(::Google::Cloud::VMMigration::V1::RunDiskMigrationJobRequest.new(name: name), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, run_disk_migration_job_client_stub.call_rpc_count + end + end + + def test_cancel_disk_migration_job + # Create GRPC objects. + grpc_response = ::Google::Longrunning::Operation.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + cancel_disk_migration_job_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :cancel_disk_migration_job, name + assert_kind_of ::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, cancel_disk_migration_job_client_stub do + # Create client + client = ::Google::Cloud::VMMigration::V1::VMMigration::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.cancel_disk_migration_job({ name: name }) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use named arguments + client.cancel_disk_migration_job name: name do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.cancel_disk_migration_job ::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new(name: name) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.cancel_disk_migration_job({ name: name }, grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.cancel_disk_migration_job(::Google::Cloud::VMMigration::V1::CancelDiskMigrationJobRequest.new(name: name), grpc_options) do |response, operation| + assert_kind_of Gapic::Operation, response + assert_equal grpc_response, response.grpc_op + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, cancel_disk_migration_job_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure diff --git a/google-cloud-vm_migration-v1/test/google/iam/v1/iam_policy_rest_test.rb b/google-cloud-vm_migration-v1/test/google/iam/v1/iam_policy_rest_test.rb new file mode 100644 index 000000000000..5e313396bf44 --- /dev/null +++ b/google-cloud-vm_migration-v1/test/google/iam/v1/iam_policy_rest_test.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/iam/v1/iam_policy_pb" +require "google/iam/v1/iam_policy/rest" + + +class ::Google::Iam::V1::IAMPolicy::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_set_iam_policy + # Create test objects. + client_result = ::Google::Iam::V1::Policy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + policy = {} + update_mask = {} + + set_iam_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.stub :transcode_set_iam_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, set_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.set_iam_policy resource: resource, policy: policy, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.set_iam_policy ::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.set_iam_policy(::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, set_iam_policy_client_stub.call_count + end + end + end + + def test_get_iam_policy + # Create test objects. + client_result = ::Google::Iam::V1::Policy.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + options = {} + + get_iam_policy_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.stub :transcode_get_iam_policy_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_iam_policy({ resource: resource, options: options }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_iam_policy resource: resource, options: options do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_iam_policy ::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_iam_policy({ resource: resource, options: options }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_iam_policy(::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_iam_policy_client_stub.call_count + end + end + end + + def test_test_iam_permissions + # Create test objects. + client_result = ::Google::Iam::V1::TestIamPermissionsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + permissions = ["hello world"] + + test_iam_permissions_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Iam::V1::IAMPolicy::Rest::ServiceStub.stub :transcode_test_iam_permissions_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.test_iam_permissions({ resource: resource, permissions: permissions }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.test_iam_permissions resource: resource, permissions: permissions do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.test_iam_permissions ::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.test_iam_permissions({ resource: resource, permissions: permissions }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Iam::V1::IAMPolicy::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Iam::V1::IAMPolicy::Rest::Client::Configuration, config + end +end diff --git a/google-cloud-vm_migration-v1/test/google/iam/v1/iam_policy_test.rb b/google-cloud-vm_migration-v1/test/google/iam/v1/iam_policy_test.rb new file mode 100644 index 000000000000..e72910e04b88 --- /dev/null +++ b/google-cloud-vm_migration-v1/test/google/iam/v1/iam_policy_test.rb @@ -0,0 +1,266 @@ +# frozen_string_literal: true + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/iam/v1/iam_policy_pb" +require "google/iam/v1/iam_policy" + +class ::Google::Iam::V1::IAMPolicy::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_set_iam_policy + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::Policy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + policy = {} + update_mask = {} + + set_iam_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :set_iam_policy, name + assert_kind_of ::Google::Iam::V1::SetIamPolicyRequest, request + assert_equal "hello world", request["resource"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Iam::V1::Policy), request["policy"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, set_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.set_iam_policy resource: resource, policy: policy, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.set_iam_policy ::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.set_iam_policy({ resource: resource, policy: policy, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.set_iam_policy(::Google::Iam::V1::SetIamPolicyRequest.new(resource: resource, policy: policy, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, set_iam_policy_client_stub.call_rpc_count + end + end + + def test_get_iam_policy + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::Policy.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + options = {} + + get_iam_policy_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_iam_policy, name + assert_kind_of ::Google::Iam::V1::GetIamPolicyRequest, request + assert_equal "hello world", request["resource"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Iam::V1::GetPolicyOptions), request["options"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_iam_policy_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_iam_policy({ resource: resource, options: options }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_iam_policy resource: resource, options: options do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_iam_policy ::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_iam_policy({ resource: resource, options: options }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_iam_policy(::Google::Iam::V1::GetIamPolicyRequest.new(resource: resource, options: options), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_iam_policy_client_stub.call_rpc_count + end + end + + def test_test_iam_permissions + # Create GRPC objects. + grpc_response = ::Google::Iam::V1::TestIamPermissionsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + resource = "hello world" + permissions = ["hello world"] + + test_iam_permissions_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :test_iam_permissions, name + assert_kind_of ::Google::Iam::V1::TestIamPermissionsRequest, request + assert_equal "hello world", request["resource"] + assert_equal ["hello world"], request["permissions"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, test_iam_permissions_client_stub do + # Create client + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.test_iam_permissions({ resource: resource, permissions: permissions }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.test_iam_permissions resource: resource, permissions: permissions do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.test_iam_permissions ::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.test_iam_permissions({ resource: resource, permissions: permissions }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.test_iam_permissions(::Google::Iam::V1::TestIamPermissionsRequest.new(resource: resource, permissions: permissions), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, test_iam_permissions_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Iam::V1::IAMPolicy::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Iam::V1::IAMPolicy::Client::Configuration, config + end +end diff --git a/google-cloud-vm_migration/CHANGELOG.md b/google-cloud-vm_migration/CHANGELOG.md index 248ad7cf7f55..d00b341f5b16 100644 --- a/google-cloud-vm_migration/CHANGELOG.md +++ b/google-cloud-vm_migration/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-vm_migration/README.md b/google-cloud-vm_migration/README.md index 2405aa8ac1a7..6d043b83fcb3 100755 --- a/google-cloud-vm_migration/README.md +++ b/google-cloud-vm_migration/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/vmmigration.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/vm_migration" + +client = Google::Cloud::VMMigration.vm_migration +request = ::Google::Cloud::VMMigration::V1::ListSourcesRequest.new # (request fields as keyword arguments...) +response = client.list_sources request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-vm_migration/lib/google/cloud/vm_migration/version.rb b/google-cloud-vm_migration/lib/google/cloud/vm_migration/version.rb index 566213fc95fe..2cf5d3349ac8 100644 --- a/google-cloud-vm_migration/lib/google/cloud/vm_migration/version.rb +++ b/google-cloud-vm_migration/lib/google/cloud/vm_migration/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module VMMigration - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-vmware_engine-v1/CHANGELOG.md b/google-cloud-vmware_engine-v1/CHANGELOG.md index 21409ffb0d16..53183aa6a778 100644 --- a/google-cloud-vmware_engine-v1/CHANGELOG.md +++ b/google-cloud-vmware_engine-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.1.0 (2025-05-12) #### Features diff --git a/google-cloud-vmware_engine-v1/google-cloud-vmware_engine-v1.gemspec b/google-cloud-vmware_engine-v1/google-cloud-vmware_engine-v1.gemspec index 825490ecf994..baf0121c6ffe 100644 --- a/google-cloud-vmware_engine-v1/google-cloud-vmware_engine-v1.gemspec +++ b/google-cloud-vmware_engine-v1/google-cloud-vmware_engine-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-vmware_engine-v1/lib/google/cloud/vmware_engine/v1/version.rb b/google-cloud-vmware_engine-v1/lib/google/cloud/vmware_engine/v1/version.rb index 0526ca709390..b615fd84630a 100644 --- a/google-cloud-vmware_engine-v1/lib/google/cloud/vmware_engine/v1/version.rb +++ b/google-cloud-vmware_engine-v1/lib/google/cloud/vmware_engine/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VmwareEngine module V1 - VERSION = "1.1.0" + VERSION = "1.2.0" end end end diff --git a/google-cloud-vmware_engine-v1/snippets/snippet_metadata_google.cloud.vmwareengine.v1.json b/google-cloud-vmware_engine-v1/snippets/snippet_metadata_google.cloud.vmwareengine.v1.json index 60d3e156cda9..d754b78a9898 100644 --- a/google-cloud-vmware_engine-v1/snippets/snippet_metadata_google.cloud.vmwareengine.v1.json +++ b/google-cloud-vmware_engine-v1/snippets/snippet_metadata_google.cloud.vmwareengine.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vmware_engine-v1", - "version": "1.1.0", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-vmware_engine/CHANGELOG.md b/google-cloud-vmware_engine/CHANGELOG.md index 868be345c608..8338101cbe97 100644 --- a/google-cloud-vmware_engine/CHANGELOG.md +++ b/google-cloud-vmware_engine/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-vmware_engine/README.md b/google-cloud-vmware_engine/README.md index 3d4d2352fbf6..d5633c7d9ac1 100644 --- a/google-cloud-vmware_engine/README.md +++ b/google-cloud-vmware_engine/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/vmwareengine.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/vmware_engine" + +client = Google::Cloud::VmwareEngine.vmware_engine +request = ::Google::Cloud::VmwareEngine::V1::ListPrivateCloudsRequest.new # (request fields as keyword arguments...) +response = client.list_private_clouds request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-vmware_engine/lib/google/cloud/vmware_engine/version.rb b/google-cloud-vmware_engine/lib/google/cloud/vmware_engine/version.rb index cc9b3d507684..7cbf186f1068 100644 --- a/google-cloud-vmware_engine/lib/google/cloud/vmware_engine/version.rb +++ b/google-cloud-vmware_engine/lib/google/cloud/vmware_engine/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module VmwareEngine - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-vpc_access-v1/CHANGELOG.md b/google-cloud-vpc_access-v1/CHANGELOG.md index 956e1b0e8078..b42708b75730 100644 --- a/google-cloud-vpc_access-v1/CHANGELOG.md +++ b/google-cloud-vpc_access-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31011](https://github.com/googleapis/google-cloud-ruby/issues/31011)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-vpc_access-v1/google-cloud-vpc_access-v1.gemspec b/google-cloud-vpc_access-v1/google-cloud-vpc_access-v1.gemspec index e1095a7c2f5c..93cc867ae5b0 100644 --- a/google-cloud-vpc_access-v1/google-cloud-vpc_access-v1.gemspec +++ b/google-cloud-vpc_access-v1/google-cloud-vpc_access-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-vpc_access-v1/lib/google/cloud/vpc_access/v1/version.rb b/google-cloud-vpc_access-v1/lib/google/cloud/vpc_access/v1/version.rb index 43eebd3d2866..5cb6728abf0e 100644 --- a/google-cloud-vpc_access-v1/lib/google/cloud/vpc_access/v1/version.rb +++ b/google-cloud-vpc_access-v1/lib/google/cloud/vpc_access/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module VpcAccess module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-vpc_access-v1/snippets/snippet_metadata_google.cloud.vpcaccess.v1.json b/google-cloud-vpc_access-v1/snippets/snippet_metadata_google.cloud.vpcaccess.v1.json index 51a9ac592cfb..59e8929c906b 100644 --- a/google-cloud-vpc_access-v1/snippets/snippet_metadata_google.cloud.vpcaccess.v1.json +++ b/google-cloud-vpc_access-v1/snippets/snippet_metadata_google.cloud.vpcaccess.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-vpc_access-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-vpc_access/CHANGELOG.md b/google-cloud-vpc_access/CHANGELOG.md index 4509c6f86249..76dc0c77574b 100644 --- a/google-cloud-vpc_access/CHANGELOG.md +++ b/google-cloud-vpc_access/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-vpc_access/README.md b/google-cloud-vpc_access/README.md index cc93126c3d46..c0e54c7952f9 100644 --- a/google-cloud-vpc_access/README.md +++ b/google-cloud-vpc_access/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/vpcaccess.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/vpc_access" + +client = Google::Cloud::VpcAccess.vpc_access_service +request = ::Google::Cloud::VpcAccess::V1::CreateConnectorRequest.new # (request fields as keyword arguments...) +response = client.create_connector request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-vpc_access/lib/google/cloud/vpc_access/version.rb b/google-cloud-vpc_access/lib/google/cloud/vpc_access/version.rb index e135daabc066..7fbae0c03012 100644 --- a/google-cloud-vpc_access/lib/google/cloud/vpc_access/version.rb +++ b/google-cloud-vpc_access/lib/google/cloud/vpc_access/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module VpcAccess - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-cloud-web_risk-v1/CHANGELOG.md b/google-cloud-web_risk-v1/CHANGELOG.md index 0d49b4b6acdd..d55ca25b8eaa 100644 --- a/google-cloud-web_risk-v1/CHANGELOG.md +++ b/google-cloud-web_risk-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 1.4.0 (2025-05-12) #### Features diff --git a/google-cloud-web_risk-v1/google-cloud-web_risk-v1.gemspec b/google-cloud-web_risk-v1/google-cloud-web_risk-v1.gemspec index 56506f7cf1b6..906c2d6daa93 100644 --- a/google-cloud-web_risk-v1/google-cloud-web_risk-v1.gemspec +++ b/google-cloud-web_risk-v1/google-cloud-web_risk-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-web_risk-v1/lib/google/cloud/web_risk/v1/version.rb b/google-cloud-web_risk-v1/lib/google/cloud/web_risk/v1/version.rb index 295227c8ec21..c079a490be82 100644 --- a/google-cloud-web_risk-v1/lib/google/cloud/web_risk/v1/version.rb +++ b/google-cloud-web_risk-v1/lib/google/cloud/web_risk/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module WebRisk module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-cloud-web_risk-v1/snippets/snippet_metadata_google.cloud.webrisk.v1.json b/google-cloud-web_risk-v1/snippets/snippet_metadata_google.cloud.webrisk.v1.json index a74d72399cce..ea6ee96ebb5f 100644 --- a/google-cloud-web_risk-v1/snippets/snippet_metadata_google.cloud.webrisk.v1.json +++ b/google-cloud-web_risk-v1/snippets/snippet_metadata_google.cloud.webrisk.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-web_risk-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-web_risk-v1beta1/CHANGELOG.md b/google-cloud-web_risk-v1beta1/CHANGELOG.md index 2307a2862d70..23d48e66bd02 100644 --- a/google-cloud-web_risk-v1beta1/CHANGELOG.md +++ b/google-cloud-web_risk-v1beta1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-web_risk-v1beta1/google-cloud-web_risk-v1beta1.gemspec b/google-cloud-web_risk-v1beta1/google-cloud-web_risk-v1beta1.gemspec index 37b3da2c5d0a..e72c804552f5 100644 --- a/google-cloud-web_risk-v1beta1/google-cloud-web_risk-v1beta1.gemspec +++ b/google-cloud-web_risk-v1beta1/google-cloud-web_risk-v1beta1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-web_risk-v1beta1/lib/google/cloud/web_risk/v1beta1/version.rb b/google-cloud-web_risk-v1beta1/lib/google/cloud/web_risk/v1beta1/version.rb index b169017186e7..11c3bf3cbf5c 100644 --- a/google-cloud-web_risk-v1beta1/lib/google/cloud/web_risk/v1beta1/version.rb +++ b/google-cloud-web_risk-v1beta1/lib/google/cloud/web_risk/v1beta1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module WebRisk module V1beta1 - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-web_risk-v1beta1/snippets/snippet_metadata_google.cloud.webrisk.v1beta1.json b/google-cloud-web_risk-v1beta1/snippets/snippet_metadata_google.cloud.webrisk.v1beta1.json index b03309bcf342..63e86086fdd2 100644 --- a/google-cloud-web_risk-v1beta1/snippets/snippet_metadata_google.cloud.webrisk.v1beta1.json +++ b/google-cloud-web_risk-v1beta1/snippets/snippet_metadata_google.cloud.webrisk.v1beta1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-web_risk-v1beta1", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-web_risk/CHANGELOG.md b/google-cloud-web_risk/CHANGELOG.md index 7e1035f1a0bd..819496dbe91c 100644 --- a/google-cloud-web_risk/CHANGELOG.md +++ b/google-cloud-web_risk/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.2 (2025-05-27) #### Documentation diff --git a/google-cloud-web_risk/README.md b/google-cloud-web_risk/README.md index bffe88d2e886..cc79f845f222 100644 --- a/google-cloud-web_risk/README.md +++ b/google-cloud-web_risk/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/webrisk.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/web_risk" + +client = Google::Cloud::WebRisk.web_risk_service +request = ::Google::Cloud::WebRisk::V1::ComputeThreatListDiffRequest.new # (request fields as keyword arguments...) +response = client.compute_threat_list_diff request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-web_risk/lib/google/cloud/web_risk/version.rb b/google-cloud-web_risk/lib/google/cloud/web_risk/version.rb index 3efe623c9802..187cd5c1bad5 100644 --- a/google-cloud-web_risk/lib/google/cloud/web_risk/version.rb +++ b/google-cloud-web_risk/lib/google/cloud/web_risk/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module WebRisk - VERSION = "2.0.2" + VERSION = "2.0.3" end end end diff --git a/google-cloud-web_security_scanner-v1/CHANGELOG.md b/google-cloud-web_security_scanner-v1/CHANGELOG.md index 18197eefe5f0..a31f7fdf90f7 100644 --- a/google-cloud-web_security_scanner-v1/CHANGELOG.md +++ b/google-cloud-web_security_scanner-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-web_security_scanner-v1/google-cloud-web_security_scanner-v1.gemspec b/google-cloud-web_security_scanner-v1/google-cloud-web_security_scanner-v1.gemspec index 80f453dff7b7..e21b5930236d 100644 --- a/google-cloud-web_security_scanner-v1/google-cloud-web_security_scanner-v1.gemspec +++ b/google-cloud-web_security_scanner-v1/google-cloud-web_security_scanner-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-web_security_scanner-v1/lib/google/cloud/web_security_scanner/v1/version.rb b/google-cloud-web_security_scanner-v1/lib/google/cloud/web_security_scanner/v1/version.rb index 2a7b6d037dcf..ba4e184edca4 100644 --- a/google-cloud-web_security_scanner-v1/lib/google/cloud/web_security_scanner/v1/version.rb +++ b/google-cloud-web_security_scanner-v1/lib/google/cloud/web_security_scanner/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module WebSecurityScanner module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-web_security_scanner-v1/snippets/snippet_metadata_google.cloud.websecurityscanner.v1.json b/google-cloud-web_security_scanner-v1/snippets/snippet_metadata_google.cloud.websecurityscanner.v1.json index e6ed9654349b..7b8c2cd01913 100644 --- a/google-cloud-web_security_scanner-v1/snippets/snippet_metadata_google.cloud.websecurityscanner.v1.json +++ b/google-cloud-web_security_scanner-v1/snippets/snippet_metadata_google.cloud.websecurityscanner.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-web_security_scanner-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-web_security_scanner-v1beta/CHANGELOG.md b/google-cloud-web_security_scanner-v1beta/CHANGELOG.md index 37d37ca19e47..38a57dbae0dc 100644 --- a/google-cloud-web_security_scanner-v1beta/CHANGELOG.md +++ b/google-cloud-web_security_scanner-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.13.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.12.0 (2025-05-12) #### Features diff --git a/google-cloud-web_security_scanner-v1beta/google-cloud-web_security_scanner-v1beta.gemspec b/google-cloud-web_security_scanner-v1beta/google-cloud-web_security_scanner-v1beta.gemspec index 9398f59bf99a..46d14b4a6be3 100644 --- a/google-cloud-web_security_scanner-v1beta/google-cloud-web_security_scanner-v1beta.gemspec +++ b/google-cloud-web_security_scanner-v1beta/google-cloud-web_security_scanner-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-web_security_scanner-v1beta/lib/google/cloud/web_security_scanner/v1beta/version.rb b/google-cloud-web_security_scanner-v1beta/lib/google/cloud/web_security_scanner/v1beta/version.rb index df5c41d2446c..6f08ff6f0162 100644 --- a/google-cloud-web_security_scanner-v1beta/lib/google/cloud/web_security_scanner/v1beta/version.rb +++ b/google-cloud-web_security_scanner-v1beta/lib/google/cloud/web_security_scanner/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module WebSecurityScanner module V1beta - VERSION = "0.12.0" + VERSION = "0.13.0" end end end diff --git a/google-cloud-web_security_scanner-v1beta/snippets/snippet_metadata_google.cloud.websecurityscanner.v1beta.json b/google-cloud-web_security_scanner-v1beta/snippets/snippet_metadata_google.cloud.websecurityscanner.v1beta.json index b5ffbf0c034a..0011950fc231 100644 --- a/google-cloud-web_security_scanner-v1beta/snippets/snippet_metadata_google.cloud.websecurityscanner.v1beta.json +++ b/google-cloud-web_security_scanner-v1beta/snippets/snippet_metadata_google.cloud.websecurityscanner.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-web_security_scanner-v1beta", - "version": "0.12.0", + "version": "0.13.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-web_security_scanner/CHANGELOG.md b/google-cloud-web_security_scanner/CHANGELOG.md index 930b688d5459..7a48571b02da 100644 --- a/google-cloud-web_security_scanner/CHANGELOG.md +++ b/google-cloud-web_security_scanner/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-web_security_scanner/README.md b/google-cloud-web_security_scanner/README.md index f965c771e60b..92aa0e027e3f 100644 --- a/google-cloud-web_security_scanner/README.md +++ b/google-cloud-web_security_scanner/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/websecurityscanner.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/web_security_scanner" + +client = Google::Cloud::WebSecurityScanner.web_security_scanner +request = ::Google::Cloud::WebSecurityScanner::V1::CreateScanConfigRequest.new # (request fields as keyword arguments...) +response = client.create_scan_config request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-web_security_scanner/lib/google/cloud/web_security_scanner/version.rb b/google-cloud-web_security_scanner/lib/google/cloud/web_security_scanner/version.rb index 64985184ede0..07bdf817a7a5 100644 --- a/google-cloud-web_security_scanner/lib/google/cloud/web_security_scanner/version.rb +++ b/google-cloud-web_security_scanner/lib/google/cloud/web_security_scanner/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module WebSecurityScanner - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-cloud-workflows-executions-v1/CHANGELOG.md b/google-cloud-workflows-executions-v1/CHANGELOG.md index c5a0f26658d5..ee7cc1b4082c 100644 --- a/google-cloud-workflows-executions-v1/CHANGELOG.md +++ b/google-cloud-workflows-executions-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 1.3.0 (2025-05-12) #### Features diff --git a/google-cloud-workflows-executions-v1/google-cloud-workflows-executions-v1.gemspec b/google-cloud-workflows-executions-v1/google-cloud-workflows-executions-v1.gemspec index a1143d836713..1e05a1b2b58e 100644 --- a/google-cloud-workflows-executions-v1/google-cloud-workflows-executions-v1.gemspec +++ b/google-cloud-workflows-executions-v1/google-cloud-workflows-executions-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-workflows-executions-v1/lib/google/cloud/workflows/executions/v1/version.rb b/google-cloud-workflows-executions-v1/lib/google/cloud/workflows/executions/v1/version.rb index 369df9acd34f..8efd13386477 100644 --- a/google-cloud-workflows-executions-v1/lib/google/cloud/workflows/executions/v1/version.rb +++ b/google-cloud-workflows-executions-v1/lib/google/cloud/workflows/executions/v1/version.rb @@ -22,7 +22,7 @@ module Cloud module Workflows module Executions module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-cloud-workflows-executions-v1/snippets/snippet_metadata_google.cloud.workflows.executions.v1.json b/google-cloud-workflows-executions-v1/snippets/snippet_metadata_google.cloud.workflows.executions.v1.json index a4e1de81d074..73706ca4a090 100644 --- a/google-cloud-workflows-executions-v1/snippets/snippet_metadata_google.cloud.workflows.executions.v1.json +++ b/google-cloud-workflows-executions-v1/snippets/snippet_metadata_google.cloud.workflows.executions.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-workflows-executions-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-workflows-executions-v1beta/CHANGELOG.md b/google-cloud-workflows-executions-v1beta/CHANGELOG.md index 7e80ed218d65..86aaf25ac1e0 100644 --- a/google-cloud-workflows-executions-v1beta/CHANGELOG.md +++ b/google-cloud-workflows-executions-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.11.0 (2025-05-12) #### Features diff --git a/google-cloud-workflows-executions-v1beta/google-cloud-workflows-executions-v1beta.gemspec b/google-cloud-workflows-executions-v1beta/google-cloud-workflows-executions-v1beta.gemspec index c0e6a03706c4..24f03edc36f6 100644 --- a/google-cloud-workflows-executions-v1beta/google-cloud-workflows-executions-v1beta.gemspec +++ b/google-cloud-workflows-executions-v1beta/google-cloud-workflows-executions-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-cloud-workflows-executions-v1beta/lib/google/cloud/workflows/executions/v1beta/version.rb b/google-cloud-workflows-executions-v1beta/lib/google/cloud/workflows/executions/v1beta/version.rb index 8e70e4b1a641..c301b77e24df 100644 --- a/google-cloud-workflows-executions-v1beta/lib/google/cloud/workflows/executions/v1beta/version.rb +++ b/google-cloud-workflows-executions-v1beta/lib/google/cloud/workflows/executions/v1beta/version.rb @@ -22,7 +22,7 @@ module Cloud module Workflows module Executions module V1beta - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-cloud-workflows-executions-v1beta/snippets/snippet_metadata_google.cloud.workflows.executions.v1beta.json b/google-cloud-workflows-executions-v1beta/snippets/snippet_metadata_google.cloud.workflows.executions.v1beta.json index e9aa58200253..3111bf1ca9a5 100644 --- a/google-cloud-workflows-executions-v1beta/snippets/snippet_metadata_google.cloud.workflows.executions.v1beta.json +++ b/google-cloud-workflows-executions-v1beta/snippets/snippet_metadata_google.cloud.workflows.executions.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-workflows-executions-v1beta", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-workflows-v1/CHANGELOG.md b/google-cloud-workflows-v1/CHANGELOG.md index 98e49b858df1..ce4d2661bde5 100644 --- a/google-cloud-workflows-v1/CHANGELOG.md +++ b/google-cloud-workflows-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 2.2.0 (2025-05-12) #### Features diff --git a/google-cloud-workflows-v1/google-cloud-workflows-v1.gemspec b/google-cloud-workflows-v1/google-cloud-workflows-v1.gemspec index 3d03a98b6b61..52db5a4f6e82 100644 --- a/google-cloud-workflows-v1/google-cloud-workflows-v1.gemspec +++ b/google-cloud-workflows-v1/google-cloud-workflows-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-workflows-v1/lib/google/cloud/workflows/v1/version.rb b/google-cloud-workflows-v1/lib/google/cloud/workflows/v1/version.rb index c03928fbf773..a770e846a6dd 100644 --- a/google-cloud-workflows-v1/lib/google/cloud/workflows/v1/version.rb +++ b/google-cloud-workflows-v1/lib/google/cloud/workflows/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Workflows module V1 - VERSION = "2.2.0" + VERSION = "2.3.0" end end end diff --git a/google-cloud-workflows-v1/snippets/snippet_metadata_google.cloud.workflows.v1.json b/google-cloud-workflows-v1/snippets/snippet_metadata_google.cloud.workflows.v1.json index 08a5db277b0d..8988322c0b58 100644 --- a/google-cloud-workflows-v1/snippets/snippet_metadata_google.cloud.workflows.v1.json +++ b/google-cloud-workflows-v1/snippets/snippet_metadata_google.cloud.workflows.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-workflows-v1", - "version": "2.2.0", + "version": "2.3.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-workflows-v1beta/CHANGELOG.md b/google-cloud-workflows-v1beta/CHANGELOG.md index 75385ea01979..ec93ab30eafd 100644 --- a/google-cloud-workflows-v1beta/CHANGELOG.md +++ b/google-cloud-workflows-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.14.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.13.0 (2025-05-12) #### Features diff --git a/google-cloud-workflows-v1beta/google-cloud-workflows-v1beta.gemspec b/google-cloud-workflows-v1beta/google-cloud-workflows-v1beta.gemspec index e408c1f9108c..443d6bd40ddd 100644 --- a/google-cloud-workflows-v1beta/google-cloud-workflows-v1beta.gemspec +++ b/google-cloud-workflows-v1beta/google-cloud-workflows-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-cloud-workflows-v1beta/lib/google/cloud/workflows/v1beta/version.rb b/google-cloud-workflows-v1beta/lib/google/cloud/workflows/v1beta/version.rb index f218f000633d..b2a9865d465e 100644 --- a/google-cloud-workflows-v1beta/lib/google/cloud/workflows/v1beta/version.rb +++ b/google-cloud-workflows-v1beta/lib/google/cloud/workflows/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Workflows module V1beta - VERSION = "0.13.0" + VERSION = "0.14.0" end end end diff --git a/google-cloud-workflows-v1beta/snippets/snippet_metadata_google.cloud.workflows.v1beta.json b/google-cloud-workflows-v1beta/snippets/snippet_metadata_google.cloud.workflows.v1beta.json index f13f5810923d..9d2b39a610af 100644 --- a/google-cloud-workflows-v1beta/snippets/snippet_metadata_google.cloud.workflows.v1beta.json +++ b/google-cloud-workflows-v1beta/snippets/snippet_metadata_google.cloud.workflows.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-workflows-v1beta", - "version": "0.13.0", + "version": "0.14.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-workflows/CHANGELOG.md b/google-cloud-workflows/CHANGELOG.md index e6c7a6ab6831..ac10b93978fa 100644 --- a/google-cloud-workflows/CHANGELOG.md +++ b/google-cloud-workflows/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 3.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 3.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-workflows/README.md b/google-cloud-workflows/README.md index cae39be2073a..f0e82b3c99b5 100644 --- a/google-cloud-workflows/README.md +++ b/google-cloud-workflows/README.md @@ -35,6 +35,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/workflows.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/workflows" + +client = Google::Cloud::Workflows.workflows +request = ::Google::Cloud::Workflows::V1::ListWorkflowsRequest.new # (request fields as keyword arguments...) +response = client.list_workflows request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-workflows/lib/google/cloud/workflows/version.rb b/google-cloud-workflows/lib/google/cloud/workflows/version.rb index d7aa7d3c71a8..c2f8f1d549d2 100644 --- a/google-cloud-workflows/lib/google/cloud/workflows/version.rb +++ b/google-cloud-workflows/lib/google/cloud/workflows/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Workflows - VERSION = "3.0.1" + VERSION = "3.0.2" end end end diff --git a/google-cloud-workstations-v1/CHANGELOG.md b/google-cloud-workstations-v1/CHANGELOG.md index 9d15b9a7e17b..11a399cd7891 100644 --- a/google-cloud-workstations-v1/CHANGELOG.md +++ b/google-cloud-workstations-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 1.1.1 (2025-07-15) #### Documentation diff --git a/google-cloud-workstations-v1/google-cloud-workstations-v1.gemspec b/google-cloud-workstations-v1/google-cloud-workstations-v1.gemspec index 023e03a80c1d..673b80c09ed4 100644 --- a/google-cloud-workstations-v1/google-cloud-workstations-v1.gemspec +++ b/google-cloud-workstations-v1/google-cloud-workstations-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-workstations-v1/lib/google/cloud/workstations/v1/version.rb b/google-cloud-workstations-v1/lib/google/cloud/workstations/v1/version.rb index 6c4455b5122a..4476d74e6e42 100644 --- a/google-cloud-workstations-v1/lib/google/cloud/workstations/v1/version.rb +++ b/google-cloud-workstations-v1/lib/google/cloud/workstations/v1/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Workstations module V1 - VERSION = "1.1.1" + VERSION = "1.2.0" end end end diff --git a/google-cloud-workstations-v1/snippets/snippet_metadata_google.cloud.workstations.v1.json b/google-cloud-workstations-v1/snippets/snippet_metadata_google.cloud.workstations.v1.json index cf0553c3645e..eae13c5fe044 100644 --- a/google-cloud-workstations-v1/snippets/snippet_metadata_google.cloud.workstations.v1.json +++ b/google-cloud-workstations-v1/snippets/snippet_metadata_google.cloud.workstations.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-workstations-v1", - "version": "1.1.1", + "version": "1.2.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-workstations-v1beta/CHANGELOG.md b/google-cloud-workstations-v1beta/CHANGELOG.md index 90818ecb058f..96d1ff986dc6 100644 --- a/google-cloud-workstations-v1beta/CHANGELOG.md +++ b/google-cloud-workstations-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.5.1 (2025-07-15) #### Documentation diff --git a/google-cloud-workstations-v1beta/google-cloud-workstations-v1beta.gemspec b/google-cloud-workstations-v1beta/google-cloud-workstations-v1beta.gemspec index 6471953d85b1..ba0788c51019 100644 --- a/google-cloud-workstations-v1beta/google-cloud-workstations-v1beta.gemspec +++ b/google-cloud-workstations-v1beta/google-cloud-workstations-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" gem.add_dependency "google-iam-v1", "~> 1.3" diff --git a/google-cloud-workstations-v1beta/lib/google/cloud/workstations/v1beta/version.rb b/google-cloud-workstations-v1beta/lib/google/cloud/workstations/v1beta/version.rb index fb948178f0d0..2797558365bf 100644 --- a/google-cloud-workstations-v1beta/lib/google/cloud/workstations/v1beta/version.rb +++ b/google-cloud-workstations-v1beta/lib/google/cloud/workstations/v1beta/version.rb @@ -21,7 +21,7 @@ module Google module Cloud module Workstations module V1beta - VERSION = "0.5.1" + VERSION = "0.6.0" end end end diff --git a/google-cloud-workstations-v1beta/snippets/snippet_metadata_google.cloud.workstations.v1beta.json b/google-cloud-workstations-v1beta/snippets/snippet_metadata_google.cloud.workstations.v1beta.json index 10cbb74fff99..0e7d2863f755 100644 --- a/google-cloud-workstations-v1beta/snippets/snippet_metadata_google.cloud.workstations.v1beta.json +++ b/google-cloud-workstations-v1beta/snippets/snippet_metadata_google.cloud.workstations.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-cloud-workstations-v1beta", - "version": "0.5.1", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-cloud-workstations/CHANGELOG.md b/google-cloud-workstations/CHANGELOG.md index 9ff4b302294b..d1a49b602be2 100644 --- a/google-cloud-workstations/CHANGELOG.md +++ b/google-cloud-workstations/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 2.0.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 2.0.1 (2025-04-29) #### Bug Fixes diff --git a/google-cloud-workstations/README.md b/google-cloud-workstations/README.md index b576fc2134c2..beab088388aa 100644 --- a/google-cloud-workstations/README.md +++ b/google-cloud-workstations/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/workstations.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/cloud/workstations" + +client = Google::Cloud::Workstations.workstations +request = ::Google::Cloud::Workstations::V1::GetWorkstationClusterRequest.new # (request fields as keyword arguments...) +response = client.get_workstation_cluster request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-cloud-workstations/lib/google/cloud/workstations/version.rb b/google-cloud-workstations/lib/google/cloud/workstations/version.rb index 5c16a41ddd9a..0e9cbceff2ca 100644 --- a/google-cloud-workstations/lib/google/cloud/workstations/version.rb +++ b/google-cloud-workstations/lib/google/cloud/workstations/version.rb @@ -20,7 +20,7 @@ module Google module Cloud module Workstations - VERSION = "2.0.1" + VERSION = "2.0.2" end end end diff --git a/google-iam-client/CHANGELOG.md b/google-iam-client/CHANGELOG.md index 23121eb29dca..b43a2e43d0f3 100644 --- a/google-iam-client/CHANGELOG.md +++ b/google-iam-client/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-iam-client/README.md b/google-iam-client/README.md index b7b575efc7e7..868c6dbbb367 100644 --- a/google-iam-client/README.md +++ b/google-iam-client/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/iam.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/iam" + +client = Google::Iam.policies +request = ::Google::Iam::V2::ListPoliciesRequest.new # (request fields as keyword arguments...) +response = client.list_policies request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-iam-client/lib/google/iam/client/version.rb b/google-iam-client/lib/google/iam/client/version.rb index 1fab6236f7d2..fd7d8b9d780b 100644 --- a/google-iam-client/lib/google/iam/client/version.rb +++ b/google-iam-client/lib/google/iam/client/version.rb @@ -18,7 +18,7 @@ module Google module Iam module Client - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-iam-credentials-v1/CHANGELOG.md b/google-iam-credentials-v1/CHANGELOG.md index 38adc6f7073d..2dd1a0b2bbf3 100644 --- a/google-iam-credentials-v1/CHANGELOG.md +++ b/google-iam-credentials-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.4.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 1.3.0 (2025-05-11) #### Features diff --git a/google-iam-credentials-v1/google-iam-credentials-v1.gemspec b/google-iam-credentials-v1/google-iam-credentials-v1.gemspec index af2c53c13ec2..8710a11ce560 100644 --- a/google-iam-credentials-v1/google-iam-credentials-v1.gemspec +++ b/google-iam-credentials-v1/google-iam-credentials-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-iam-credentials-v1/lib/google/iam/credentials/v1/version.rb b/google-iam-credentials-v1/lib/google/iam/credentials/v1/version.rb index f60ada7a84ee..f5a671ad58ee 100644 --- a/google-iam-credentials-v1/lib/google/iam/credentials/v1/version.rb +++ b/google-iam-credentials-v1/lib/google/iam/credentials/v1/version.rb @@ -21,7 +21,7 @@ module Google module Iam module Credentials module V1 - VERSION = "1.3.0" + VERSION = "1.4.0" end end end diff --git a/google-iam-credentials-v1/snippets/snippet_metadata_google.iam.credentials.v1.json b/google-iam-credentials-v1/snippets/snippet_metadata_google.iam.credentials.v1.json index ff7d2959ba6e..d0a1108a140a 100644 --- a/google-iam-credentials-v1/snippets/snippet_metadata_google.iam.credentials.v1.json +++ b/google-iam-credentials-v1/snippets/snippet_metadata_google.iam.credentials.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-iam-credentials-v1", - "version": "1.3.0", + "version": "1.4.0", "language": "RUBY", "apis": [ { diff --git a/google-iam-credentials/CHANGELOG.md b/google-iam-credentials/CHANGELOG.md index d43f3c7c4368..d397717edfa0 100644 --- a/google-iam-credentials/CHANGELOG.md +++ b/google-iam-credentials/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-iam-credentials/README.md b/google-iam-credentials/README.md index 19c193657a77..89d1eb98fa95 100644 --- a/google-iam-credentials/README.md +++ b/google-iam-credentials/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/iamcredentials.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/iam/credentials" + +client = Google::Iam::Credentials.iam_credentials +request = ::Google::Iam::Credentials::V1::GenerateAccessTokenRequest.new # (request fields as keyword arguments...) +response = client.generate_access_token request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-iam-credentials/lib/google/iam/credentials/version.rb b/google-iam-credentials/lib/google/iam/credentials/version.rb index c78ecb0b5615..630c0c7f1ffe 100644 --- a/google-iam-credentials/lib/google/iam/credentials/version.rb +++ b/google-iam-credentials/lib/google/iam/credentials/version.rb @@ -20,7 +20,7 @@ module Google module Iam module Credentials - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-iam-v1/CHANGELOG.md b/google-iam-v1/CHANGELOG.md index 49ad041ab6b9..bfc915854caa 100644 --- a/google-iam-v1/CHANGELOG.md +++ b/google-iam-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 1.4.0 (2025-05-11) #### Features diff --git a/google-iam-v1/google-iam-v1.gemspec b/google-iam-v1/google-iam-v1.gemspec index 561733e819a3..458bf9952b98 100644 --- a/google-iam-v1/google-iam-v1.gemspec +++ b/google-iam-v1/google-iam-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-iam-v1/lib/google/iam/v1/version.rb b/google-iam-v1/lib/google/iam/v1/version.rb index 1005899fa081..dc22c97c39ae 100644 --- a/google-iam-v1/lib/google/iam/v1/version.rb +++ b/google-iam-v1/lib/google/iam/v1/version.rb @@ -20,7 +20,7 @@ module Google module Iam module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end end diff --git a/google-iam-v1/snippets/snippet_metadata_google.iam.v1.json b/google-iam-v1/snippets/snippet_metadata_google.iam.v1.json index 567c22a4ed69..b89f76a3736e 100644 --- a/google-iam-v1/snippets/snippet_metadata_google.iam.v1.json +++ b/google-iam-v1/snippets/snippet_metadata_google.iam.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-iam-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/google-iam-v1beta/CHANGELOG.md b/google-iam-v1beta/CHANGELOG.md index c112955556c6..2731d9d9253d 100644 --- a/google-iam-v1beta/CHANGELOG.md +++ b/google-iam-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.11.0 (2025-05-11) #### Features diff --git a/google-iam-v1beta/google-iam-v1beta.gemspec b/google-iam-v1beta/google-iam-v1beta.gemspec index 901c6dfcbc34..cd297225157f 100644 --- a/google-iam-v1beta/google-iam-v1beta.gemspec +++ b/google-iam-v1beta/google-iam-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-iam-v1beta/lib/google/iam/v1beta/version.rb b/google-iam-v1beta/lib/google/iam/v1beta/version.rb index e89586de55ae..876a852e8ae3 100644 --- a/google-iam-v1beta/lib/google/iam/v1beta/version.rb +++ b/google-iam-v1beta/lib/google/iam/v1beta/version.rb @@ -20,7 +20,7 @@ module Google module Iam module V1beta - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-iam-v1beta/snippets/snippet_metadata_google.iam.v1beta.json b/google-iam-v1beta/snippets/snippet_metadata_google.iam.v1beta.json index 72439293d047..e85ba00ea24c 100644 --- a/google-iam-v1beta/snippets/snippet_metadata_google.iam.v1beta.json +++ b/google-iam-v1beta/snippets/snippet_metadata_google.iam.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-iam-v1beta", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-iam-v2/CHANGELOG.md b/google-iam-v2/CHANGELOG.md index e478025f56ba..6ec05fc1cf7e 100644 --- a/google-iam-v2/CHANGELOG.md +++ b/google-iam-v2/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.10.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.9.0 (2025-05-11) #### Features diff --git a/google-iam-v2/google-iam-v2.gemspec b/google-iam-v2/google-iam-v2.gemspec index 793ac46c4b3b..e2f5091ae931 100644 --- a/google-iam-v2/google-iam-v2.gemspec +++ b/google-iam-v2/google-iam-v2.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-iam-v2/lib/google/iam/v2/version.rb b/google-iam-v2/lib/google/iam/v2/version.rb index ed176d65db15..1acf62d8b863 100644 --- a/google-iam-v2/lib/google/iam/v2/version.rb +++ b/google-iam-v2/lib/google/iam/v2/version.rb @@ -20,7 +20,7 @@ module Google module Iam module V2 - VERSION = "0.9.0" + VERSION = "0.10.0" end end end diff --git a/google-iam-v2/snippets/snippet_metadata_google.iam.v2.json b/google-iam-v2/snippets/snippet_metadata_google.iam.v2.json index 3b178d747df6..570fd520f850 100644 --- a/google-iam-v2/snippets/snippet_metadata_google.iam.v2.json +++ b/google-iam-v2/snippets/snippet_metadata_google.iam.v2.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-iam-v2", - "version": "0.9.0", + "version": "0.10.0", "language": "RUBY", "apis": [ { diff --git a/google-iam-v3/CHANGELOG.md b/google-iam-v3/CHANGELOG.md index 9b13ecdeb44f..08b39c2e2a6c 100644 --- a/google-iam-v3/CHANGELOG.md +++ b/google-iam-v3/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-05-20) #### Features diff --git a/google-iam-v3/google-iam-v3.gemspec b/google-iam-v3/google-iam-v3.gemspec index 6ec047e450bb..a25d5440c47b 100644 --- a/google-iam-v3/google-iam-v3.gemspec +++ b/google-iam-v3/google-iam-v3.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-iam-v3/lib/google/iam/v3/version.rb b/google-iam-v3/lib/google/iam/v3/version.rb index 3ee265af305d..62b176274e66 100644 --- a/google-iam-v3/lib/google/iam/v3/version.rb +++ b/google-iam-v3/lib/google/iam/v3/version.rb @@ -20,7 +20,7 @@ module Google module Iam module V3 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-iam-v3/snippets/snippet_metadata_google.iam.v3.json b/google-iam-v3/snippets/snippet_metadata_google.iam.v3.json index d1896a561c45..fd034e864a83 100644 --- a/google-iam-v3/snippets/snippet_metadata_google.iam.v3.json +++ b/google-iam-v3/snippets/snippet_metadata_google.iam.v3.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-iam-v3", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-iam-v3beta/CHANGELOG.md b/google-iam-v3beta/CHANGELOG.md index 0978ce222ae0..6b17d2698651 100644 --- a/google-iam-v3beta/CHANGELOG.md +++ b/google-iam-v3beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-05-20) #### Features diff --git a/google-iam-v3beta/google-iam-v3beta.gemspec b/google-iam-v3beta/google-iam-v3beta.gemspec index 2f3eaa6ce774..d2de9cfdbe15 100644 --- a/google-iam-v3beta/google-iam-v3beta.gemspec +++ b/google-iam-v3beta/google-iam-v3beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-cloud-location", "~> 1.0" end diff --git a/google-iam-v3beta/lib/google/iam/v3beta/version.rb b/google-iam-v3beta/lib/google/iam/v3beta/version.rb index 6fee8131a6ee..ea620dfb73e6 100644 --- a/google-iam-v3beta/lib/google/iam/v3beta/version.rb +++ b/google-iam-v3beta/lib/google/iam/v3beta/version.rb @@ -20,7 +20,7 @@ module Google module Iam module V3beta - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-iam-v3beta/snippets/snippet_metadata_google.iam.v3beta.json b/google-iam-v3beta/snippets/snippet_metadata_google.iam.v3beta.json index f6e6e086f510..c6a793683020 100644 --- a/google-iam-v3beta/snippets/snippet_metadata_google.iam.v3beta.json +++ b/google-iam-v3beta/snippets/snippet_metadata_google.iam.v3beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-iam-v3beta", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-identity-access_context_manager-v1/CHANGELOG.md b/google-identity-access_context_manager-v1/CHANGELOG.md index 7a1c6d6425b8..f6253db972cb 100644 --- a/google-identity-access_context_manager-v1/CHANGELOG.md +++ b/google-identity-access_context_manager-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.11.0 (2025-05-11) #### Features diff --git a/google-identity-access_context_manager-v1/google-identity-access_context_manager-v1.gemspec b/google-identity-access_context_manager-v1/google-identity-access_context_manager-v1.gemspec index 78d918840e70..ab151626eaec 100644 --- a/google-identity-access_context_manager-v1/google-identity-access_context_manager-v1.gemspec +++ b/google-identity-access_context_manager-v1/google-identity-access_context_manager-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "grpc-google-iam-v1", "~> 1.11" end diff --git a/google-identity-access_context_manager-v1/lib/google/identity/access_context_manager/v1/version.rb b/google-identity-access_context_manager-v1/lib/google/identity/access_context_manager/v1/version.rb index d531ead0744c..039036829131 100644 --- a/google-identity-access_context_manager-v1/lib/google/identity/access_context_manager/v1/version.rb +++ b/google-identity-access_context_manager-v1/lib/google/identity/access_context_manager/v1/version.rb @@ -21,7 +21,7 @@ module Google module Identity module AccessContextManager module V1 - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-identity-access_context_manager-v1/snippets/snippet_metadata_google.identity.accesscontextmanager.v1.json b/google-identity-access_context_manager-v1/snippets/snippet_metadata_google.identity.accesscontextmanager.v1.json index d0e241c4d47d..3fcab5c6641d 100644 --- a/google-identity-access_context_manager-v1/snippets/snippet_metadata_google.identity.accesscontextmanager.v1.json +++ b/google-identity-access_context_manager-v1/snippets/snippet_metadata_google.identity.accesscontextmanager.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-identity-access_context_manager-v1", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-identity-access_context_manager/CHANGELOG.md b/google-identity-access_context_manager/CHANGELOG.md index 22242b2b2fab..d24854f530fb 100644 --- a/google-identity-access_context_manager/CHANGELOG.md +++ b/google-identity-access_context_manager/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.5.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.1 (2025-04-29) #### Bug Fixes diff --git a/google-identity-access_context_manager/README.md b/google-identity-access_context_manager/README.md index 81f602ddff72..abc3e15ba1e4 100644 --- a/google-identity-access_context_manager/README.md +++ b/google-identity-access_context_manager/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/accesscontextmanager.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/identity/access_context_manager" + +client = Google::Identity::AccessContextManager.access_context_manager +request = ::Google::Identity::AccessContextManager::V1::ListAccessPoliciesRequest.new # (request fields as keyword arguments...) +response = client.list_access_policies request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-identity-access_context_manager/lib/google/identity/access_context_manager/version.rb b/google-identity-access_context_manager/lib/google/identity/access_context_manager/version.rb index 18637ebee3d7..def39e0c43b3 100644 --- a/google-identity-access_context_manager/lib/google/identity/access_context_manager/version.rb +++ b/google-identity-access_context_manager/lib/google/identity/access_context_manager/version.rb @@ -20,7 +20,7 @@ module Google module Identity module AccessContextManager - VERSION = "1.5.1" + VERSION = "1.5.2" end end end diff --git a/google-maps-fleet_engine-delivery-v1/CHANGELOG.md b/google-maps-fleet_engine-delivery-v1/CHANGELOG.md index a402f2aa6c1c..6dbf353cdb14 100644 --- a/google-maps-fleet_engine-delivery-v1/CHANGELOG.md +++ b/google-maps-fleet_engine-delivery-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.7.0 (2025-07-15) #### Features diff --git a/google-maps-fleet_engine-delivery-v1/google-maps-fleet_engine-delivery-v1.gemspec b/google-maps-fleet_engine-delivery-v1/google-maps-fleet_engine-delivery-v1.gemspec index 4b13ae6e0223..4727c07dab1f 100644 --- a/google-maps-fleet_engine-delivery-v1/google-maps-fleet_engine-delivery-v1.gemspec +++ b/google-maps-fleet_engine-delivery-v1/google-maps-fleet_engine-delivery-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-geo-type", "> 0.0", "< 2.a" end diff --git a/google-maps-fleet_engine-delivery-v1/lib/google/maps/fleet_engine/delivery/v1/version.rb b/google-maps-fleet_engine-delivery-v1/lib/google/maps/fleet_engine/delivery/v1/version.rb index cb5b02e81cc9..a5567978b1fd 100644 --- a/google-maps-fleet_engine-delivery-v1/lib/google/maps/fleet_engine/delivery/v1/version.rb +++ b/google-maps-fleet_engine-delivery-v1/lib/google/maps/fleet_engine/delivery/v1/version.rb @@ -22,7 +22,7 @@ module Maps module FleetEngine module Delivery module V1 - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-maps-fleet_engine-delivery-v1/snippets/snippet_metadata_maps.fleetengine.delivery.v1.json b/google-maps-fleet_engine-delivery-v1/snippets/snippet_metadata_maps.fleetengine.delivery.v1.json index a18856daed1e..25e3741b18e8 100644 --- a/google-maps-fleet_engine-delivery-v1/snippets/snippet_metadata_maps.fleetengine.delivery.v1.json +++ b/google-maps-fleet_engine-delivery-v1/snippets/snippet_metadata_maps.fleetengine.delivery.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-maps-fleet_engine-delivery-v1", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-maps-fleet_engine-delivery/CHANGELOG.md b/google-maps-fleet_engine-delivery/CHANGELOG.md index dc3801d73fdf..80b225ee344f 100644 --- a/google-maps-fleet_engine-delivery/CHANGELOG.md +++ b/google-maps-fleet_engine-delivery/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-maps-fleet_engine-delivery/README.md b/google-maps-fleet_engine-delivery/README.md index af85fc1c5f6b..11b6146841ce 100644 --- a/google-maps-fleet_engine-delivery/README.md +++ b/google-maps-fleet_engine-delivery/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/fleetengine.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/maps/fleet_engine/delivery" + +client = Google::Maps::FleetEngine::Delivery.delivery_service +request = ::Google::Maps::FleetEngine::Delivery::V1::CreateDeliveryVehicleRequest.new # (request fields as keyword arguments...) +response = client.create_delivery_vehicle request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-maps-fleet_engine-delivery/lib/google/maps/fleet_engine/delivery/version.rb b/google-maps-fleet_engine-delivery/lib/google/maps/fleet_engine/delivery/version.rb index d728142938b6..8539d92a6227 100644 --- a/google-maps-fleet_engine-delivery/lib/google/maps/fleet_engine/delivery/version.rb +++ b/google-maps-fleet_engine-delivery/lib/google/maps/fleet_engine/delivery/version.rb @@ -21,7 +21,7 @@ module Google module Maps module FleetEngine module Delivery - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-maps-fleet_engine-v1/CHANGELOG.md b/google-maps-fleet_engine-v1/CHANGELOG.md index 5f07880897de..6ca477f02ba1 100644 --- a/google-maps-fleet_engine-v1/CHANGELOG.md +++ b/google-maps-fleet_engine-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.7.0 (2025-07-15) #### Features diff --git a/google-maps-fleet_engine-v1/google-maps-fleet_engine-v1.gemspec b/google-maps-fleet_engine-v1/google-maps-fleet_engine-v1.gemspec index c5867107e99e..3c068745b3ef 100644 --- a/google-maps-fleet_engine-v1/google-maps-fleet_engine-v1.gemspec +++ b/google-maps-fleet_engine-v1/google-maps-fleet_engine-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-geo-type", "> 0.0", "< 2.a" end diff --git a/google-maps-fleet_engine-v1/lib/google/maps/fleet_engine/v1/version.rb b/google-maps-fleet_engine-v1/lib/google/maps/fleet_engine/v1/version.rb index d84496aa48f4..773cd9168733 100644 --- a/google-maps-fleet_engine-v1/lib/google/maps/fleet_engine/v1/version.rb +++ b/google-maps-fleet_engine-v1/lib/google/maps/fleet_engine/v1/version.rb @@ -21,7 +21,7 @@ module Google module Maps module FleetEngine module V1 - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-maps-fleet_engine-v1/snippets/snippet_metadata_maps.fleetengine.v1.json b/google-maps-fleet_engine-v1/snippets/snippet_metadata_maps.fleetengine.v1.json index a85b74aa82e6..63aa7d05d9b8 100644 --- a/google-maps-fleet_engine-v1/snippets/snippet_metadata_maps.fleetengine.v1.json +++ b/google-maps-fleet_engine-v1/snippets/snippet_metadata_maps.fleetengine.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-maps-fleet_engine-v1", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-maps-fleet_engine/CHANGELOG.md b/google-maps-fleet_engine/CHANGELOG.md index f75dc4565207..c4de5799b027 100644 --- a/google-maps-fleet_engine/CHANGELOG.md +++ b/google-maps-fleet_engine/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.1.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.1.1 (2025-04-29) #### Bug Fixes diff --git a/google-maps-fleet_engine/README.md b/google-maps-fleet_engine/README.md index 9cef0ee90b23..915c7b82db94 100644 --- a/google-maps-fleet_engine/README.md +++ b/google-maps-fleet_engine/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/fleetengine.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/maps/fleet_engine" + +client = Google::Maps::FleetEngine.trip_service +request = ::Google::Maps::FleetEngine::V1::CreateTripRequest.new # (request fields as keyword arguments...) +response = client.create_trip request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-maps-fleet_engine/lib/google/maps/fleet_engine/version.rb b/google-maps-fleet_engine/lib/google/maps/fleet_engine/version.rb index 85a6ade9e602..7fc7fb0d397e 100644 --- a/google-maps-fleet_engine/lib/google/maps/fleet_engine/version.rb +++ b/google-maps-fleet_engine/lib/google/maps/fleet_engine/version.rb @@ -20,7 +20,7 @@ module Google module Maps module FleetEngine - VERSION = "1.1.1" + VERSION = "1.1.2" end end end diff --git a/google-shopping-css-v1/CHANGELOG.md b/google-shopping-css-v1/CHANGELOG.md index 989509e323c8..7de1d116d18a 100644 --- a/google-shopping-css-v1/CHANGELOG.md +++ b/google-shopping-css-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.7.0 (2025-05-11) #### Features diff --git a/google-shopping-css-v1/google-shopping-css-v1.gemspec b/google-shopping-css-v1/google-shopping-css-v1.gemspec index da4803a869cf..45914852ebd2 100644 --- a/google-shopping-css-v1/google-shopping-css-v1.gemspec +++ b/google-shopping-css-v1/google-shopping-css-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-css-v1/lib/google/shopping/css/v1/version.rb b/google-shopping-css-v1/lib/google/shopping/css/v1/version.rb index 58a93b4d5573..54c1d887aa4c 100644 --- a/google-shopping-css-v1/lib/google/shopping/css/v1/version.rb +++ b/google-shopping-css-v1/lib/google/shopping/css/v1/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Css module V1 - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-shopping-css-v1/snippets/snippet_metadata_google.shopping.css.v1.json b/google-shopping-css-v1/snippets/snippet_metadata_google.shopping.css.v1.json index 3d3b863c40a2..ffe5427de607 100644 --- a/google-shopping-css-v1/snippets/snippet_metadata_google.shopping.css.v1.json +++ b/google-shopping-css-v1/snippets/snippet_metadata_google.shopping.css.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-css-v1", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-css/CHANGELOG.md b/google-shopping-css/CHANGELOG.md index 1cab61d2603f..6f80234e65b5 100644 --- a/google-shopping-css/CHANGELOG.md +++ b/google-shopping-css/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-css/README.md b/google-shopping-css/README.md index cc8b86f0c4e0..f19b3e819255 100644 --- a/google-shopping-css/README.md +++ b/google-shopping-css/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/css.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/css" + +client = Google::Shopping::Css.accounts_service +request = ::Google::Shopping::Css::V1::ListChildAccountsRequest.new # (request fields as keyword arguments...) +response = client.list_child_accounts request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-css/lib/google/shopping/css/version.rb b/google-shopping-css/lib/google/shopping/css/version.rb index f3b65c53f94a..44ef36c8460f 100644 --- a/google-shopping-css/lib/google/shopping/css/version.rb +++ b/google-shopping-css/lib/google/shopping/css/version.rb @@ -20,7 +20,7 @@ module Google module Shopping module Css - VERSION = "1.2.1" + VERSION = "1.2.2" end end end diff --git a/google-shopping-merchant-accounts-v1/CHANGELOG.md b/google-shopping-merchant-accounts-v1/CHANGELOG.md index ef61c0d6de5b..4e665e922d5c 100644 --- a/google-shopping-merchant-accounts-v1/CHANGELOG.md +++ b/google-shopping-merchant-accounts-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.2.0 (2025-08-29) #### Features diff --git a/google-shopping-merchant-accounts-v1/google-shopping-merchant-accounts-v1.gemspec b/google-shopping-merchant-accounts-v1/google-shopping-merchant-accounts-v1.gemspec index 73edb5819556..5ee1f18d4d8f 100644 --- a/google-shopping-merchant-accounts-v1/google-shopping-merchant-accounts-v1.gemspec +++ b/google-shopping-merchant-accounts-v1/google-shopping-merchant-accounts-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-accounts-v1/lib/google/shopping/merchant/accounts/v1/version.rb b/google-shopping-merchant-accounts-v1/lib/google/shopping/merchant/accounts/v1/version.rb index 476b40815338..0a0228cbee80 100644 --- a/google-shopping-merchant-accounts-v1/lib/google/shopping/merchant/accounts/v1/version.rb +++ b/google-shopping-merchant-accounts-v1/lib/google/shopping/merchant/accounts/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Accounts module V1 - VERSION = "0.2.0" + VERSION = "0.3.0" end end end diff --git a/google-shopping-merchant-accounts-v1/snippets/snippet_metadata_google.shopping.merchant.accounts.v1.json b/google-shopping-merchant-accounts-v1/snippets/snippet_metadata_google.shopping.merchant.accounts.v1.json index a719b79d7508..5c1ae6b883d2 100644 --- a/google-shopping-merchant-accounts-v1/snippets/snippet_metadata_google.shopping.merchant.accounts.v1.json +++ b/google-shopping-merchant-accounts-v1/snippets/snippet_metadata_google.shopping.merchant.accounts.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-accounts-v1", - "version": "0.2.0", + "version": "0.3.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-accounts-v1beta/CHANGELOG.md b/google-shopping-merchant-accounts-v1beta/CHANGELOG.md index 54d66c605138..4c93b89492d8 100644 --- a/google-shopping-merchant-accounts-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-accounts-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.12.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.11.0 (2025-06-30) #### Features diff --git a/google-shopping-merchant-accounts-v1beta/google-shopping-merchant-accounts-v1beta.gemspec b/google-shopping-merchant-accounts-v1beta/google-shopping-merchant-accounts-v1beta.gemspec index b276ed30bf5f..e2db95677015 100644 --- a/google-shopping-merchant-accounts-v1beta/google-shopping-merchant-accounts-v1beta.gemspec +++ b/google-shopping-merchant-accounts-v1beta/google-shopping-merchant-accounts-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-accounts-v1beta/lib/google/shopping/merchant/accounts/v1beta/version.rb b/google-shopping-merchant-accounts-v1beta/lib/google/shopping/merchant/accounts/v1beta/version.rb index dddbc77071ef..0802fe9de6cd 100644 --- a/google-shopping-merchant-accounts-v1beta/lib/google/shopping/merchant/accounts/v1beta/version.rb +++ b/google-shopping-merchant-accounts-v1beta/lib/google/shopping/merchant/accounts/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Accounts module V1beta - VERSION = "0.11.0" + VERSION = "0.12.0" end end end diff --git a/google-shopping-merchant-accounts-v1beta/snippets/snippet_metadata_google.shopping.merchant.accounts.v1beta.json b/google-shopping-merchant-accounts-v1beta/snippets/snippet_metadata_google.shopping.merchant.accounts.v1beta.json index 960055a676fa..5a25eae56d03 100644 --- a/google-shopping-merchant-accounts-v1beta/snippets/snippet_metadata_google.shopping.merchant.accounts.v1beta.json +++ b/google-shopping-merchant-accounts-v1beta/snippets/snippet_metadata_google.shopping.merchant.accounts.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-accounts-v1beta", - "version": "0.11.0", + "version": "0.12.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-accounts/CHANGELOG.md b/google-shopping-merchant-accounts/CHANGELOG.md index d8da92f8d258..857a9d36bc34 100644 --- a/google-shopping-merchant-accounts/CHANGELOG.md +++ b/google-shopping-merchant-accounts/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.6.0 (2025-06-30) #### Features diff --git a/google-shopping-merchant-accounts/README.md b/google-shopping-merchant-accounts/README.md index 48f93ffd0a3e..cf4356f59f1a 100644 --- a/google-shopping-merchant-accounts/README.md +++ b/google-shopping-merchant-accounts/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/accounts" + +client = Google::Shopping::Merchant::Accounts.account_tax_service +request = ::Google::Shopping::Merchant::Accounts::V1beta::GetAccountTaxRequest.new # (request fields as keyword arguments...) +response = client.get_account_tax request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-accounts/lib/google/shopping/merchant/accounts/version.rb b/google-shopping-merchant-accounts/lib/google/shopping/merchant/accounts/version.rb index c236430b3030..ef2c576e4853 100644 --- a/google-shopping-merchant-accounts/lib/google/shopping/merchant/accounts/version.rb +++ b/google-shopping-merchant-accounts/lib/google/shopping/merchant/accounts/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Accounts - VERSION = "0.6.0" + VERSION = "0.6.1" end end end diff --git a/google-shopping-merchant-conversions-v1/CHANGELOG.md b/google-shopping-merchant-conversions-v1/CHANGELOG.md index 98ff7160a1e1..fbad1ed06c25 100644 --- a/google-shopping-merchant-conversions-v1/CHANGELOG.md +++ b/google-shopping-merchant-conversions-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-conversions-v1/google-shopping-merchant-conversions-v1.gemspec b/google-shopping-merchant-conversions-v1/google-shopping-merchant-conversions-v1.gemspec index db7aff9b88fe..970d554abc48 100644 --- a/google-shopping-merchant-conversions-v1/google-shopping-merchant-conversions-v1.gemspec +++ b/google-shopping-merchant-conversions-v1/google-shopping-merchant-conversions-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-shopping-merchant-conversions-v1/lib/google/shopping/merchant/conversions/v1/version.rb b/google-shopping-merchant-conversions-v1/lib/google/shopping/merchant/conversions/v1/version.rb index 0ab421c439d1..38310d42ab20 100644 --- a/google-shopping-merchant-conversions-v1/lib/google/shopping/merchant/conversions/v1/version.rb +++ b/google-shopping-merchant-conversions-v1/lib/google/shopping/merchant/conversions/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Conversions module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-conversions-v1/snippets/snippet_metadata_google.shopping.merchant.conversions.v1.json b/google-shopping-merchant-conversions-v1/snippets/snippet_metadata_google.shopping.merchant.conversions.v1.json index 08e3c0af922e..b77f0804e6d9 100644 --- a/google-shopping-merchant-conversions-v1/snippets/snippet_metadata_google.shopping.merchant.conversions.v1.json +++ b/google-shopping-merchant-conversions-v1/snippets/snippet_metadata_google.shopping.merchant.conversions.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-conversions-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-conversions-v1beta/CHANGELOG.md b/google-shopping-merchant-conversions-v1beta/CHANGELOG.md index 71c76bb4d06a..d1330dbef1b3 100644 --- a/google-shopping-merchant-conversions-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-conversions-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.4.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-conversions-v1beta/google-shopping-merchant-conversions-v1beta.gemspec b/google-shopping-merchant-conversions-v1beta/google-shopping-merchant-conversions-v1beta.gemspec index 741aee856181..71fd04068037 100644 --- a/google-shopping-merchant-conversions-v1beta/google-shopping-merchant-conversions-v1beta.gemspec +++ b/google-shopping-merchant-conversions-v1beta/google-shopping-merchant-conversions-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-shopping-merchant-conversions-v1beta/lib/google/shopping/merchant/conversions/v1beta/version.rb b/google-shopping-merchant-conversions-v1beta/lib/google/shopping/merchant/conversions/v1beta/version.rb index 84d03a3eb3d5..c062feeecf69 100644 --- a/google-shopping-merchant-conversions-v1beta/lib/google/shopping/merchant/conversions/v1beta/version.rb +++ b/google-shopping-merchant-conversions-v1beta/lib/google/shopping/merchant/conversions/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Conversions module V1beta - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-shopping-merchant-conversions-v1beta/snippets/snippet_metadata_google.shopping.merchant.conversions.v1beta.json b/google-shopping-merchant-conversions-v1beta/snippets/snippet_metadata_google.shopping.merchant.conversions.v1beta.json index c87cda2d7b5e..0ec9d4568a5c 100644 --- a/google-shopping-merchant-conversions-v1beta/snippets/snippet_metadata_google.shopping.merchant.conversions.v1beta.json +++ b/google-shopping-merchant-conversions-v1beta/snippets/snippet_metadata_google.shopping.merchant.conversions.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-conversions-v1beta", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-conversions/CHANGELOG.md b/google-shopping-merchant-conversions/CHANGELOG.md index 0d2c7f67a5fe..e8f50bd60bf3 100644 --- a/google-shopping-merchant-conversions/CHANGELOG.md +++ b/google-shopping-merchant-conversions/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-conversions/README.md b/google-shopping-merchant-conversions/README.md index 8bef4d6270ce..7c5be9af1ed5 100644 --- a/google-shopping-merchant-conversions/README.md +++ b/google-shopping-merchant-conversions/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/conversions" + +client = Google::Shopping::Merchant::Conversions.conversion_sources_service +request = ::Google::Shopping::Merchant::Conversions::V1beta::CreateConversionSourceRequest.new # (request fields as keyword arguments...) +response = client.create_conversion_source request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-conversions/lib/google/shopping/merchant/conversions/version.rb b/google-shopping-merchant-conversions/lib/google/shopping/merchant/conversions/version.rb index 2a4855eb6821..8a78efbf7a10 100644 --- a/google-shopping-merchant-conversions/lib/google/shopping/merchant/conversions/version.rb +++ b/google-shopping-merchant-conversions/lib/google/shopping/merchant/conversions/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Conversions - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/google-shopping-merchant-data_sources-v1/CHANGELOG.md b/google-shopping-merchant-data_sources-v1/CHANGELOG.md index 1327501fe59a..d9aa4bd8a79e 100644 --- a/google-shopping-merchant-data_sources-v1/CHANGELOG.md +++ b/google-shopping-merchant-data_sources-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-data_sources-v1/google-shopping-merchant-data_sources-v1.gemspec b/google-shopping-merchant-data_sources-v1/google-shopping-merchant-data_sources-v1.gemspec index 961fda10ab78..bc5e7dc0510a 100644 --- a/google-shopping-merchant-data_sources-v1/google-shopping-merchant-data_sources-v1.gemspec +++ b/google-shopping-merchant-data_sources-v1/google-shopping-merchant-data_sources-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-data_sources-v1/lib/google/shopping/merchant/data_sources/v1/version.rb b/google-shopping-merchant-data_sources-v1/lib/google/shopping/merchant/data_sources/v1/version.rb index f1658986f09a..9bfd7998f417 100644 --- a/google-shopping-merchant-data_sources-v1/lib/google/shopping/merchant/data_sources/v1/version.rb +++ b/google-shopping-merchant-data_sources-v1/lib/google/shopping/merchant/data_sources/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module DataSources module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-data_sources-v1/snippets/snippet_metadata_google.shopping.merchant.datasources.v1.json b/google-shopping-merchant-data_sources-v1/snippets/snippet_metadata_google.shopping.merchant.datasources.v1.json index ecd85c864661..25314d94b0e8 100644 --- a/google-shopping-merchant-data_sources-v1/snippets/snippet_metadata_google.shopping.merchant.datasources.v1.json +++ b/google-shopping-merchant-data_sources-v1/snippets/snippet_metadata_google.shopping.merchant.datasources.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-data_sources-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-data_sources-v1beta/CHANGELOG.md b/google-shopping-merchant-data_sources-v1beta/CHANGELOG.md index 218f702b2290..c76e12ea4073 100644 --- a/google-shopping-merchant-data_sources-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-data_sources-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.7.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.6.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-data_sources-v1beta/google-shopping-merchant-data_sources-v1beta.gemspec b/google-shopping-merchant-data_sources-v1beta/google-shopping-merchant-data_sources-v1beta.gemspec index f1ecee4aed74..94d3856ca622 100644 --- a/google-shopping-merchant-data_sources-v1beta/google-shopping-merchant-data_sources-v1beta.gemspec +++ b/google-shopping-merchant-data_sources-v1beta/google-shopping-merchant-data_sources-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-data_sources-v1beta/lib/google/shopping/merchant/data_sources/v1beta/version.rb b/google-shopping-merchant-data_sources-v1beta/lib/google/shopping/merchant/data_sources/v1beta/version.rb index 12887f4410db..b3d82d4b1e2a 100644 --- a/google-shopping-merchant-data_sources-v1beta/lib/google/shopping/merchant/data_sources/v1beta/version.rb +++ b/google-shopping-merchant-data_sources-v1beta/lib/google/shopping/merchant/data_sources/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module DataSources module V1beta - VERSION = "0.6.0" + VERSION = "0.7.0" end end end diff --git a/google-shopping-merchant-data_sources-v1beta/snippets/snippet_metadata_google.shopping.merchant.datasources.v1beta.json b/google-shopping-merchant-data_sources-v1beta/snippets/snippet_metadata_google.shopping.merchant.datasources.v1beta.json index 19d5baf92d77..d9fd89fa4a73 100644 --- a/google-shopping-merchant-data_sources-v1beta/snippets/snippet_metadata_google.shopping.merchant.datasources.v1beta.json +++ b/google-shopping-merchant-data_sources-v1beta/snippets/snippet_metadata_google.shopping.merchant.datasources.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-data_sources-v1beta", - "version": "0.6.0", + "version": "0.7.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-data_sources/CHANGELOG.md b/google-shopping-merchant-data_sources/CHANGELOG.md index e739372f1317..b9929cbdf500 100644 --- a/google-shopping-merchant-data_sources/CHANGELOG.md +++ b/google-shopping-merchant-data_sources/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-data_sources/README.md b/google-shopping-merchant-data_sources/README.md index ae10d1874ac8..55fd2773fb19 100644 --- a/google-shopping-merchant-data_sources/README.md +++ b/google-shopping-merchant-data_sources/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/data_sources" + +client = Google::Shopping::Merchant::DataSources.data_sources_service +request = ::Google::Shopping::Merchant::DataSources::V1beta::GetDataSourceRequest.new # (request fields as keyword arguments...) +response = client.get_data_source request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-data_sources/lib/google/shopping/merchant/data_sources/version.rb b/google-shopping-merchant-data_sources/lib/google/shopping/merchant/data_sources/version.rb index 8f1f20f85280..2cf9810f83ce 100644 --- a/google-shopping-merchant-data_sources/lib/google/shopping/merchant/data_sources/version.rb +++ b/google-shopping-merchant-data_sources/lib/google/shopping/merchant/data_sources/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module DataSources - VERSION = "0.3.1" + VERSION = "0.3.2" end end end diff --git a/google-shopping-merchant-inventories-v1/CHANGELOG.md b/google-shopping-merchant-inventories-v1/CHANGELOG.md index 2b23880a74bd..accc4e965c5a 100644 --- a/google-shopping-merchant-inventories-v1/CHANGELOG.md +++ b/google-shopping-merchant-inventories-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-inventories-v1/google-shopping-merchant-inventories-v1.gemspec b/google-shopping-merchant-inventories-v1/google-shopping-merchant-inventories-v1.gemspec index ea604a578794..741366c7e209 100644 --- a/google-shopping-merchant-inventories-v1/google-shopping-merchant-inventories-v1.gemspec +++ b/google-shopping-merchant-inventories-v1/google-shopping-merchant-inventories-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-inventories-v1/lib/google/shopping/merchant/inventories/v1/version.rb b/google-shopping-merchant-inventories-v1/lib/google/shopping/merchant/inventories/v1/version.rb index 041403fe7bb5..7d91f595722e 100644 --- a/google-shopping-merchant-inventories-v1/lib/google/shopping/merchant/inventories/v1/version.rb +++ b/google-shopping-merchant-inventories-v1/lib/google/shopping/merchant/inventories/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Inventories module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-inventories-v1/snippets/snippet_metadata_google.shopping.merchant.inventories.v1.json b/google-shopping-merchant-inventories-v1/snippets/snippet_metadata_google.shopping.merchant.inventories.v1.json index 597b16d9cdd4..66745e67619e 100644 --- a/google-shopping-merchant-inventories-v1/snippets/snippet_metadata_google.shopping.merchant.inventories.v1.json +++ b/google-shopping-merchant-inventories-v1/snippets/snippet_metadata_google.shopping.merchant.inventories.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-inventories-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-inventories-v1beta/CHANGELOG.md b/google-shopping-merchant-inventories-v1beta/CHANGELOG.md index f962376d837d..bb2b4bd3893f 100644 --- a/google-shopping-merchant-inventories-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-inventories-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.7.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-inventories-v1beta/google-shopping-merchant-inventories-v1beta.gemspec b/google-shopping-merchant-inventories-v1beta/google-shopping-merchant-inventories-v1beta.gemspec index da82e94cf383..2195fc3ed405 100644 --- a/google-shopping-merchant-inventories-v1beta/google-shopping-merchant-inventories-v1beta.gemspec +++ b/google-shopping-merchant-inventories-v1beta/google-shopping-merchant-inventories-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-inventories-v1beta/lib/google/shopping/merchant/inventories/v1beta/version.rb b/google-shopping-merchant-inventories-v1beta/lib/google/shopping/merchant/inventories/v1beta/version.rb index ba117bc748e1..62dcdd1da3f9 100644 --- a/google-shopping-merchant-inventories-v1beta/lib/google/shopping/merchant/inventories/v1beta/version.rb +++ b/google-shopping-merchant-inventories-v1beta/lib/google/shopping/merchant/inventories/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Inventories module V1beta - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-shopping-merchant-inventories-v1beta/snippets/snippet_metadata_google.shopping.merchant.inventories.v1beta.json b/google-shopping-merchant-inventories-v1beta/snippets/snippet_metadata_google.shopping.merchant.inventories.v1beta.json index 0753fa01f5cb..cbee71e533df 100644 --- a/google-shopping-merchant-inventories-v1beta/snippets/snippet_metadata_google.shopping.merchant.inventories.v1beta.json +++ b/google-shopping-merchant-inventories-v1beta/snippets/snippet_metadata_google.shopping.merchant.inventories.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-inventories-v1beta", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-inventories/CHANGELOG.md b/google-shopping-merchant-inventories/CHANGELOG.md index e1b06e639be5..ebcdc62e6374 100644 --- a/google-shopping-merchant-inventories/CHANGELOG.md +++ b/google-shopping-merchant-inventories/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-inventories/README.md b/google-shopping-merchant-inventories/README.md index 184d14946dbb..c24bbbb1096d 100644 --- a/google-shopping-merchant-inventories/README.md +++ b/google-shopping-merchant-inventories/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/inventories" + +client = Google::Shopping::Merchant::Inventories.local_inventory_service +request = ::Google::Shopping::Merchant::Inventories::V1beta::ListLocalInventoriesRequest.new # (request fields as keyword arguments...) +response = client.list_local_inventories request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-inventories/lib/google/shopping/merchant/inventories/version.rb b/google-shopping-merchant-inventories/lib/google/shopping/merchant/inventories/version.rb index 585f2fa51ce0..a0c80d88e5a7 100644 --- a/google-shopping-merchant-inventories/lib/google/shopping/merchant/inventories/version.rb +++ b/google-shopping-merchant-inventories/lib/google/shopping/merchant/inventories/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Inventories - VERSION = "0.4.1" + VERSION = "0.4.2" end end end diff --git a/google-shopping-merchant-issue_resolution-v1/CHANGELOG.md b/google-shopping-merchant-issue_resolution-v1/CHANGELOG.md index 112aebe4635e..1664fdee2b3d 100644 --- a/google-shopping-merchant-issue_resolution-v1/CHANGELOG.md +++ b/google-shopping-merchant-issue_resolution-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.1 (2025-08-15) #### Documentation diff --git a/google-shopping-merchant-issue_resolution-v1/google-shopping-merchant-issue_resolution-v1.gemspec b/google-shopping-merchant-issue_resolution-v1/google-shopping-merchant-issue_resolution-v1.gemspec index 2af6740fdfa0..ed0bb702b3e6 100644 --- a/google-shopping-merchant-issue_resolution-v1/google-shopping-merchant-issue_resolution-v1.gemspec +++ b/google-shopping-merchant-issue_resolution-v1/google-shopping-merchant-issue_resolution-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-issue_resolution-v1/lib/google/shopping/merchant/issue_resolution/v1/version.rb b/google-shopping-merchant-issue_resolution-v1/lib/google/shopping/merchant/issue_resolution/v1/version.rb index 8fe8628e0a88..89746468870c 100644 --- a/google-shopping-merchant-issue_resolution-v1/lib/google/shopping/merchant/issue_resolution/v1/version.rb +++ b/google-shopping-merchant-issue_resolution-v1/lib/google/shopping/merchant/issue_resolution/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module IssueResolution module V1 - VERSION = "0.1.1" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-issue_resolution-v1/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1.json b/google-shopping-merchant-issue_resolution-v1/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1.json index f4a62d35adb4..94f6b163fe47 100644 --- a/google-shopping-merchant-issue_resolution-v1/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1.json +++ b/google-shopping-merchant-issue_resolution-v1/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-issue_resolution-v1", - "version": "0.1.1", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-issue_resolution-v1beta/CHANGELOG.md b/google-shopping-merchant-issue_resolution-v1beta/CHANGELOG.md index 152be271b84d..b4029f57f1b5 100644 --- a/google-shopping-merchant-issue_resolution-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-issue_resolution-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.2.0 (2025-06-24) #### Features diff --git a/google-shopping-merchant-issue_resolution-v1beta/google-shopping-merchant-issue_resolution-v1beta.gemspec b/google-shopping-merchant-issue_resolution-v1beta/google-shopping-merchant-issue_resolution-v1beta.gemspec index ed6dbbd655af..c86132b62534 100644 --- a/google-shopping-merchant-issue_resolution-v1beta/google-shopping-merchant-issue_resolution-v1beta.gemspec +++ b/google-shopping-merchant-issue_resolution-v1beta/google-shopping-merchant-issue_resolution-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-issue_resolution-v1beta/lib/google/shopping/merchant/issue_resolution/v1beta/version.rb b/google-shopping-merchant-issue_resolution-v1beta/lib/google/shopping/merchant/issue_resolution/v1beta/version.rb index 23ea74ed7dd5..fe5f1e0f04a0 100644 --- a/google-shopping-merchant-issue_resolution-v1beta/lib/google/shopping/merchant/issue_resolution/v1beta/version.rb +++ b/google-shopping-merchant-issue_resolution-v1beta/lib/google/shopping/merchant/issue_resolution/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module IssueResolution module V1beta - VERSION = "0.2.0" + VERSION = "0.3.0" end end end diff --git a/google-shopping-merchant-issue_resolution-v1beta/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1beta.json b/google-shopping-merchant-issue_resolution-v1beta/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1beta.json index f6d6387d4216..a13b9aa00b5b 100644 --- a/google-shopping-merchant-issue_resolution-v1beta/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1beta.json +++ b/google-shopping-merchant-issue_resolution-v1beta/snippets/snippet_metadata_google.shopping.merchant.issueresolution.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-issue_resolution-v1beta", - "version": "0.2.0", + "version": "0.3.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-issue_resolution/CHANGELOG.md b/google-shopping-merchant-issue_resolution/CHANGELOG.md index 02da33394f6f..43a2a787b386 100644 --- a/google-shopping-merchant-issue_resolution/CHANGELOG.md +++ b/google-shopping-merchant-issue_resolution/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.0 (2025-06-26) #### Features diff --git a/google-shopping-merchant-issue_resolution/README.md b/google-shopping-merchant-issue_resolution/README.md index 2ba41b9f88fa..a2b7165801d2 100644 --- a/google-shopping-merchant-issue_resolution/README.md +++ b/google-shopping-merchant-issue_resolution/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/issue_resolution" + +client = Google::Shopping::Merchant::IssueResolution.aggregate_product_statuses_service +request = ::Google::Shopping::Merchant::IssueResolution::V1beta::ListAggregateProductStatusesRequest.new # (request fields as keyword arguments...) +response = client.list_aggregate_product_statuses request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-issue_resolution/lib/google/shopping/merchant/issue_resolution/version.rb b/google-shopping-merchant-issue_resolution/lib/google/shopping/merchant/issue_resolution/version.rb index 8a6c36120f26..e01d4afd9ece 100644 --- a/google-shopping-merchant-issue_resolution/lib/google/shopping/merchant/issue_resolution/version.rb +++ b/google-shopping-merchant-issue_resolution/lib/google/shopping/merchant/issue_resolution/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module IssueResolution - VERSION = "0.2.0" + VERSION = "0.2.1" end end end diff --git a/google-shopping-merchant-lfp-v1/CHANGELOG.md b/google-shopping-merchant-lfp-v1/CHANGELOG.md index d6b6880cef46..478d5373de2d 100644 --- a/google-shopping-merchant-lfp-v1/CHANGELOG.md +++ b/google-shopping-merchant-lfp-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-lfp-v1/google-shopping-merchant-lfp-v1.gemspec b/google-shopping-merchant-lfp-v1/google-shopping-merchant-lfp-v1.gemspec index badcd50d9815..9d56d58330a4 100644 --- a/google-shopping-merchant-lfp-v1/google-shopping-merchant-lfp-v1.gemspec +++ b/google-shopping-merchant-lfp-v1/google-shopping-merchant-lfp-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-lfp-v1/lib/google/shopping/merchant/lfp/v1/version.rb b/google-shopping-merchant-lfp-v1/lib/google/shopping/merchant/lfp/v1/version.rb index df846222c6be..12186e2801ed 100644 --- a/google-shopping-merchant-lfp-v1/lib/google/shopping/merchant/lfp/v1/version.rb +++ b/google-shopping-merchant-lfp-v1/lib/google/shopping/merchant/lfp/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Lfp module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-lfp-v1/snippets/snippet_metadata_google.shopping.merchant.lfp.v1.json b/google-shopping-merchant-lfp-v1/snippets/snippet_metadata_google.shopping.merchant.lfp.v1.json index 14c86ea36f41..efe41c084e02 100644 --- a/google-shopping-merchant-lfp-v1/snippets/snippet_metadata_google.shopping.merchant.lfp.v1.json +++ b/google-shopping-merchant-lfp-v1/snippets/snippet_metadata_google.shopping.merchant.lfp.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-lfp-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-lfp-v1beta/CHANGELOG.md b/google-shopping-merchant-lfp-v1beta/CHANGELOG.md index 24a226461ba4..c69cb49b8f15 100644 --- a/google-shopping-merchant-lfp-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-lfp-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.5.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-lfp-v1beta/google-shopping-merchant-lfp-v1beta.gemspec b/google-shopping-merchant-lfp-v1beta/google-shopping-merchant-lfp-v1beta.gemspec index 5300eb7e3a03..fd17c75b3ecc 100644 --- a/google-shopping-merchant-lfp-v1beta/google-shopping-merchant-lfp-v1beta.gemspec +++ b/google-shopping-merchant-lfp-v1beta/google-shopping-merchant-lfp-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-lfp-v1beta/lib/google/shopping/merchant/lfp/v1beta/version.rb b/google-shopping-merchant-lfp-v1beta/lib/google/shopping/merchant/lfp/v1beta/version.rb index e2147ee43ac3..53473a1eb116 100644 --- a/google-shopping-merchant-lfp-v1beta/lib/google/shopping/merchant/lfp/v1beta/version.rb +++ b/google-shopping-merchant-lfp-v1beta/lib/google/shopping/merchant/lfp/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Lfp module V1beta - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-shopping-merchant-lfp-v1beta/snippets/snippet_metadata_google.shopping.merchant.lfp.v1beta.json b/google-shopping-merchant-lfp-v1beta/snippets/snippet_metadata_google.shopping.merchant.lfp.v1beta.json index 0f5357d4595e..acc586c6750b 100644 --- a/google-shopping-merchant-lfp-v1beta/snippets/snippet_metadata_google.shopping.merchant.lfp.v1beta.json +++ b/google-shopping-merchant-lfp-v1beta/snippets/snippet_metadata_google.shopping.merchant.lfp.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-lfp-v1beta", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-lfp/CHANGELOG.md b/google-shopping-merchant-lfp/CHANGELOG.md index 958f3c36db87..524fb50238bb 100644 --- a/google-shopping-merchant-lfp/CHANGELOG.md +++ b/google-shopping-merchant-lfp/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.3.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.3.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-lfp/README.md b/google-shopping-merchant-lfp/README.md index 692b1bfbe548..8faee81e24a3 100644 --- a/google-shopping-merchant-lfp/README.md +++ b/google-shopping-merchant-lfp/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/lfp" + +client = Google::Shopping::Merchant::Lfp.lfp_inventory_service +request = ::Google::Shopping::Merchant::Lfp::V1beta::InsertLfpInventoryRequest.new # (request fields as keyword arguments...) +response = client.insert_lfp_inventory request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-lfp/lib/google/shopping/merchant/lfp/version.rb b/google-shopping-merchant-lfp/lib/google/shopping/merchant/lfp/version.rb index 628ee98f5b1f..46e83d8816bb 100644 --- a/google-shopping-merchant-lfp/lib/google/shopping/merchant/lfp/version.rb +++ b/google-shopping-merchant-lfp/lib/google/shopping/merchant/lfp/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Lfp - VERSION = "0.3.1" + VERSION = "0.3.2" end end end diff --git a/google-shopping-merchant-notifications-v1/CHANGELOG.md b/google-shopping-merchant-notifications-v1/CHANGELOG.md index 3ccbf23d0e9d..b60da10474aa 100644 --- a/google-shopping-merchant-notifications-v1/CHANGELOG.md +++ b/google-shopping-merchant-notifications-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-notifications-v1/google-shopping-merchant-notifications-v1.gemspec b/google-shopping-merchant-notifications-v1/google-shopping-merchant-notifications-v1.gemspec index 3cc1b4d88f5a..e4d2874630cd 100644 --- a/google-shopping-merchant-notifications-v1/google-shopping-merchant-notifications-v1.gemspec +++ b/google-shopping-merchant-notifications-v1/google-shopping-merchant-notifications-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-shopping-merchant-notifications-v1/lib/google/shopping/merchant/notifications/v1/version.rb b/google-shopping-merchant-notifications-v1/lib/google/shopping/merchant/notifications/v1/version.rb index ec18fc97de90..c67f27ee4023 100644 --- a/google-shopping-merchant-notifications-v1/lib/google/shopping/merchant/notifications/v1/version.rb +++ b/google-shopping-merchant-notifications-v1/lib/google/shopping/merchant/notifications/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Notifications module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-notifications-v1/snippets/snippet_metadata_google.shopping.merchant.notifications.v1.json b/google-shopping-merchant-notifications-v1/snippets/snippet_metadata_google.shopping.merchant.notifications.v1.json index 9c83d40d813f..d3e0c55109a9 100644 --- a/google-shopping-merchant-notifications-v1/snippets/snippet_metadata_google.shopping.merchant.notifications.v1.json +++ b/google-shopping-merchant-notifications-v1/snippets/snippet_metadata_google.shopping.merchant.notifications.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-notifications-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-notifications-v1beta/CHANGELOG.md b/google-shopping-merchant-notifications-v1beta/CHANGELOG.md index c6fd50ca44b2..a29041f73b89 100644 --- a/google-shopping-merchant-notifications-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-notifications-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.4.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-notifications-v1beta/google-shopping-merchant-notifications-v1beta.gemspec b/google-shopping-merchant-notifications-v1beta/google-shopping-merchant-notifications-v1beta.gemspec index 85691a068f2a..45ac6bb4f861 100644 --- a/google-shopping-merchant-notifications-v1beta/google-shopping-merchant-notifications-v1beta.gemspec +++ b/google-shopping-merchant-notifications-v1beta/google-shopping-merchant-notifications-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-notifications-v1beta/lib/google/shopping/merchant/notifications/v1beta/version.rb b/google-shopping-merchant-notifications-v1beta/lib/google/shopping/merchant/notifications/v1beta/version.rb index 99869fbb9ad5..c01f72587b6f 100644 --- a/google-shopping-merchant-notifications-v1beta/lib/google/shopping/merchant/notifications/v1beta/version.rb +++ b/google-shopping-merchant-notifications-v1beta/lib/google/shopping/merchant/notifications/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Notifications module V1beta - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-shopping-merchant-notifications-v1beta/snippets/snippet_metadata_google.shopping.merchant.notifications.v1beta.json b/google-shopping-merchant-notifications-v1beta/snippets/snippet_metadata_google.shopping.merchant.notifications.v1beta.json index b4e6e5bdd048..21d462b92131 100644 --- a/google-shopping-merchant-notifications-v1beta/snippets/snippet_metadata_google.shopping.merchant.notifications.v1beta.json +++ b/google-shopping-merchant-notifications-v1beta/snippets/snippet_metadata_google.shopping.merchant.notifications.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-notifications-v1beta", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-notifications/CHANGELOG.md b/google-shopping-merchant-notifications/CHANGELOG.md index 16fc80dc9374..b335407b43f5 100644 --- a/google-shopping-merchant-notifications/CHANGELOG.md +++ b/google-shopping-merchant-notifications/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-notifications/README.md b/google-shopping-merchant-notifications/README.md index 16ea6d9ddc0f..2a7b35d247df 100644 --- a/google-shopping-merchant-notifications/README.md +++ b/google-shopping-merchant-notifications/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/notifications" + +client = Google::Shopping::Merchant::Notifications.notifications_api_service +request = ::Google::Shopping::Merchant::Notifications::V1beta::GetNotificationSubscriptionRequest.new # (request fields as keyword arguments...) +response = client.get_notification_subscription request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-notifications/lib/google/shopping/merchant/notifications/version.rb b/google-shopping-merchant-notifications/lib/google/shopping/merchant/notifications/version.rb index 718b1cbc14aa..595a64d2960a 100644 --- a/google-shopping-merchant-notifications/lib/google/shopping/merchant/notifications/version.rb +++ b/google-shopping-merchant-notifications/lib/google/shopping/merchant/notifications/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Notifications - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/google-shopping-merchant-order_tracking-v1/CHANGELOG.md b/google-shopping-merchant-order_tracking-v1/CHANGELOG.md index 4ada880c619c..31ce67b0efae 100644 --- a/google-shopping-merchant-order_tracking-v1/CHANGELOG.md +++ b/google-shopping-merchant-order_tracking-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-order_tracking-v1/google-shopping-merchant-order_tracking-v1.gemspec b/google-shopping-merchant-order_tracking-v1/google-shopping-merchant-order_tracking-v1.gemspec index d08867ec8986..cde05b2f6864 100644 --- a/google-shopping-merchant-order_tracking-v1/google-shopping-merchant-order_tracking-v1.gemspec +++ b/google-shopping-merchant-order_tracking-v1/google-shopping-merchant-order_tracking-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-order_tracking-v1/lib/google/shopping/merchant/order_tracking/v1/version.rb b/google-shopping-merchant-order_tracking-v1/lib/google/shopping/merchant/order_tracking/v1/version.rb index 00e20fc48e3e..6c8d41cce237 100644 --- a/google-shopping-merchant-order_tracking-v1/lib/google/shopping/merchant/order_tracking/v1/version.rb +++ b/google-shopping-merchant-order_tracking-v1/lib/google/shopping/merchant/order_tracking/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module OrderTracking module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-order_tracking-v1/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1.json b/google-shopping-merchant-order_tracking-v1/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1.json index 62c222bab09e..2679bb797e68 100644 --- a/google-shopping-merchant-order_tracking-v1/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1.json +++ b/google-shopping-merchant-order_tracking-v1/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-order_tracking-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-order_tracking-v1beta/CHANGELOG.md b/google-shopping-merchant-order_tracking-v1beta/CHANGELOG.md index ae38c6b567f5..8bf32a35e754 100644 --- a/google-shopping-merchant-order_tracking-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-order_tracking-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-shopping-merchant-order_tracking-v1beta/google-shopping-merchant-order_tracking-v1beta.gemspec b/google-shopping-merchant-order_tracking-v1beta/google-shopping-merchant-order_tracking-v1beta.gemspec index 828d16b4546a..11cea2628c57 100644 --- a/google-shopping-merchant-order_tracking-v1beta/google-shopping-merchant-order_tracking-v1beta.gemspec +++ b/google-shopping-merchant-order_tracking-v1beta/google-shopping-merchant-order_tracking-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-order_tracking-v1beta/lib/google/shopping/merchant/order_tracking/v1beta/version.rb b/google-shopping-merchant-order_tracking-v1beta/lib/google/shopping/merchant/order_tracking/v1beta/version.rb index 33de8ff9b5c9..ba046494d941 100644 --- a/google-shopping-merchant-order_tracking-v1beta/lib/google/shopping/merchant/order_tracking/v1beta/version.rb +++ b/google-shopping-merchant-order_tracking-v1beta/lib/google/shopping/merchant/order_tracking/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module OrderTracking module V1beta - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-order_tracking-v1beta/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1beta.json b/google-shopping-merchant-order_tracking-v1beta/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1beta.json index 6af952ebabe7..ed41c486df8c 100644 --- a/google-shopping-merchant-order_tracking-v1beta/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1beta.json +++ b/google-shopping-merchant-order_tracking-v1beta/snippets/snippet_metadata_google.shopping.merchant.ordertracking.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-order_tracking-v1beta", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-order_tracking/CHANGELOG.md b/google-shopping-merchant-order_tracking/CHANGELOG.md index 9e3c8b5e11ac..1131075eaff4 100644 --- a/google-shopping-merchant-order_tracking/CHANGELOG.md +++ b/google-shopping-merchant-order_tracking/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.1.1 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.1.0 (2025-05-21) #### Features diff --git a/google-shopping-merchant-order_tracking/README.md b/google-shopping-merchant-order_tracking/README.md index 8b607d1ae204..453db774f125 100644 --- a/google-shopping-merchant-order_tracking/README.md +++ b/google-shopping-merchant-order_tracking/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/order_tracking" + +client = Google::Shopping::Merchant::OrderTracking.order_tracking_signals_service +request = ::Google::Shopping::Merchant::OrderTracking::V1beta::CreateOrderTrackingSignalRequest.new # (request fields as keyword arguments...) +response = client.create_order_tracking_signal request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-order_tracking/lib/google/shopping/merchant/order_tracking/version.rb b/google-shopping-merchant-order_tracking/lib/google/shopping/merchant/order_tracking/version.rb index 6cad099e4f41..0dc467217daa 100644 --- a/google-shopping-merchant-order_tracking/lib/google/shopping/merchant/order_tracking/version.rb +++ b/google-shopping-merchant-order_tracking/lib/google/shopping/merchant/order_tracking/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module OrderTracking - VERSION = "0.1.0" + VERSION = "0.1.1" end end end diff --git a/google-shopping-merchant-products-v1/CHANGELOG.md b/google-shopping-merchant-products-v1/CHANGELOG.md index bc240c081b85..6395880302d6 100644 --- a/google-shopping-merchant-products-v1/CHANGELOG.md +++ b/google-shopping-merchant-products-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-products-v1/google-shopping-merchant-products-v1.gemspec b/google-shopping-merchant-products-v1/google-shopping-merchant-products-v1.gemspec index e2203bb4802b..801ca41ffe25 100644 --- a/google-shopping-merchant-products-v1/google-shopping-merchant-products-v1.gemspec +++ b/google-shopping-merchant-products-v1/google-shopping-merchant-products-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-products-v1/lib/google/shopping/merchant/products/v1/version.rb b/google-shopping-merchant-products-v1/lib/google/shopping/merchant/products/v1/version.rb index e282f952a6cc..477c87bf8e5a 100644 --- a/google-shopping-merchant-products-v1/lib/google/shopping/merchant/products/v1/version.rb +++ b/google-shopping-merchant-products-v1/lib/google/shopping/merchant/products/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Products module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-products-v1/snippets/snippet_metadata_google.shopping.merchant.products.v1.json b/google-shopping-merchant-products-v1/snippets/snippet_metadata_google.shopping.merchant.products.v1.json index 61243fb5d637..67b945d4e948 100644 --- a/google-shopping-merchant-products-v1/snippets/snippet_metadata_google.shopping.merchant.products.v1.json +++ b/google-shopping-merchant-products-v1/snippets/snippet_metadata_google.shopping.merchant.products.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-products-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-products-v1beta/CHANGELOG.md b/google-shopping-merchant-products-v1beta/CHANGELOG.md index 07e6df0a1eb9..98d7aea4e052 100644 --- a/google-shopping-merchant-products-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-products-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.8.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.7.0 (2025-07-15) #### Features diff --git a/google-shopping-merchant-products-v1beta/google-shopping-merchant-products-v1beta.gemspec b/google-shopping-merchant-products-v1beta/google-shopping-merchant-products-v1beta.gemspec index 46b56422fbfa..dc3f1a10b674 100644 --- a/google-shopping-merchant-products-v1beta/google-shopping-merchant-products-v1beta.gemspec +++ b/google-shopping-merchant-products-v1beta/google-shopping-merchant-products-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-products-v1beta/lib/google/shopping/merchant/products/v1beta/version.rb b/google-shopping-merchant-products-v1beta/lib/google/shopping/merchant/products/v1beta/version.rb index 2dfe1e049db7..2f7cb7c37132 100644 --- a/google-shopping-merchant-products-v1beta/lib/google/shopping/merchant/products/v1beta/version.rb +++ b/google-shopping-merchant-products-v1beta/lib/google/shopping/merchant/products/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Products module V1beta - VERSION = "0.7.0" + VERSION = "0.8.0" end end end diff --git a/google-shopping-merchant-products-v1beta/snippets/snippet_metadata_google.shopping.merchant.products.v1beta.json b/google-shopping-merchant-products-v1beta/snippets/snippet_metadata_google.shopping.merchant.products.v1beta.json index 627399a2ffc5..925113d4d0fa 100644 --- a/google-shopping-merchant-products-v1beta/snippets/snippet_metadata_google.shopping.merchant.products.v1beta.json +++ b/google-shopping-merchant-products-v1beta/snippets/snippet_metadata_google.shopping.merchant.products.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-products-v1beta", - "version": "0.7.0", + "version": "0.8.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-products/CHANGELOG.md b/google-shopping-merchant-products/CHANGELOG.md index 95e118f747de..61be1804960f 100644 --- a/google-shopping-merchant-products/CHANGELOG.md +++ b/google-shopping-merchant-products/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.2 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-products/README.md b/google-shopping-merchant-products/README.md index 7854c4e17776..e4d3b8208417 100644 --- a/google-shopping-merchant-products/README.md +++ b/google-shopping-merchant-products/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/products" + +client = Google::Shopping::Merchant::Products.product_inputs_service +request = ::Google::Shopping::Merchant::Products::V1beta::InsertProductInputRequest.new # (request fields as keyword arguments...) +response = client.insert_product_input request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-products/lib/google/shopping/merchant/products/version.rb b/google-shopping-merchant-products/lib/google/shopping/merchant/products/version.rb index c5c28c0bf532..8a03e64e507d 100644 --- a/google-shopping-merchant-products/lib/google/shopping/merchant/products/version.rb +++ b/google-shopping-merchant-products/lib/google/shopping/merchant/products/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Products - VERSION = "0.2.2" + VERSION = "0.2.3" end end end diff --git a/google-shopping-merchant-promotions-v1/CHANGELOG.md b/google-shopping-merchant-promotions-v1/CHANGELOG.md index 0120b6de9fff..cb1cf8c1119c 100644 --- a/google-shopping-merchant-promotions-v1/CHANGELOG.md +++ b/google-shopping-merchant-promotions-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-promotions-v1/google-shopping-merchant-promotions-v1.gemspec b/google-shopping-merchant-promotions-v1/google-shopping-merchant-promotions-v1.gemspec index 26daf042e5bf..c2cae4e482df 100644 --- a/google-shopping-merchant-promotions-v1/google-shopping-merchant-promotions-v1.gemspec +++ b/google-shopping-merchant-promotions-v1/google-shopping-merchant-promotions-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-promotions-v1/lib/google/shopping/merchant/promotions/v1/version.rb b/google-shopping-merchant-promotions-v1/lib/google/shopping/merchant/promotions/v1/version.rb index df9dd663ea6f..64c30c9198fe 100644 --- a/google-shopping-merchant-promotions-v1/lib/google/shopping/merchant/promotions/v1/version.rb +++ b/google-shopping-merchant-promotions-v1/lib/google/shopping/merchant/promotions/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Promotions module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-promotions-v1/snippets/snippet_metadata_google.shopping.merchant.promotions.v1.json b/google-shopping-merchant-promotions-v1/snippets/snippet_metadata_google.shopping.merchant.promotions.v1.json index a651a098d5f3..19dbbf5582af 100644 --- a/google-shopping-merchant-promotions-v1/snippets/snippet_metadata_google.shopping.merchant.promotions.v1.json +++ b/google-shopping-merchant-promotions-v1/snippets/snippet_metadata_google.shopping.merchant.promotions.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-promotions-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-promotions-v1beta/CHANGELOG.md b/google-shopping-merchant-promotions-v1beta/CHANGELOG.md index 1d28d47cce39..60fb57c43fea 100644 --- a/google-shopping-merchant-promotions-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-promotions-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-11) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#31009](https://github.com/googleapis/google-cloud-ruby/issues/31009)) + ### 0.4.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-promotions-v1beta/google-shopping-merchant-promotions-v1beta.gemspec b/google-shopping-merchant-promotions-v1beta/google-shopping-merchant-promotions-v1beta.gemspec index 84712af8cf7f..467d68871aae 100644 --- a/google-shopping-merchant-promotions-v1beta/google-shopping-merchant-promotions-v1beta.gemspec +++ b/google-shopping-merchant-promotions-v1beta/google-shopping-merchant-promotions-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-promotions-v1beta/lib/google/shopping/merchant/promotions/v1beta/version.rb b/google-shopping-merchant-promotions-v1beta/lib/google/shopping/merchant/promotions/v1beta/version.rb index 302e5926d87e..430640d16394 100644 --- a/google-shopping-merchant-promotions-v1beta/lib/google/shopping/merchant/promotions/v1beta/version.rb +++ b/google-shopping-merchant-promotions-v1beta/lib/google/shopping/merchant/promotions/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Promotions module V1beta - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-shopping-merchant-promotions-v1beta/snippets/snippet_metadata_google.shopping.merchant.promotions.v1beta.json b/google-shopping-merchant-promotions-v1beta/snippets/snippet_metadata_google.shopping.merchant.promotions.v1beta.json index 261bc957af55..ee42c9ca94bd 100644 --- a/google-shopping-merchant-promotions-v1beta/snippets/snippet_metadata_google.shopping.merchant.promotions.v1beta.json +++ b/google-shopping-merchant-promotions-v1beta/snippets/snippet_metadata_google.shopping.merchant.promotions.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-promotions-v1beta", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-promotions/CHANGELOG.md b/google-shopping-merchant-promotions/CHANGELOG.md index e3ebf2082a6b..9d622f1301fc 100644 --- a/google-shopping-merchant-promotions/CHANGELOG.md +++ b/google-shopping-merchant-promotions/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-promotions/README.md b/google-shopping-merchant-promotions/README.md index 371a8e41e7c1..c17959bc33c5 100644 --- a/google-shopping-merchant-promotions/README.md +++ b/google-shopping-merchant-promotions/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/promotions" + +client = Google::Shopping::Merchant::Promotions.promotions_service +request = ::Google::Shopping::Merchant::Promotions::V1beta::InsertPromotionRequest.new # (request fields as keyword arguments...) +response = client.insert_promotion request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-promotions/lib/google/shopping/merchant/promotions/version.rb b/google-shopping-merchant-promotions/lib/google/shopping/merchant/promotions/version.rb index 1cb4cb04e75a..c4c4c47f8ec0 100644 --- a/google-shopping-merchant-promotions/lib/google/shopping/merchant/promotions/version.rb +++ b/google-shopping-merchant-promotions/lib/google/shopping/merchant/promotions/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Promotions - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/google-shopping-merchant-quota-v1/CHANGELOG.md b/google-shopping-merchant-quota-v1/CHANGELOG.md index 7f84017d9c54..5708c6eea3ef 100644 --- a/google-shopping-merchant-quota-v1/CHANGELOG.md +++ b/google-shopping-merchant-quota-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-10) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#30989](https://github.com/googleapis/google-cloud-ruby/issues/30989)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-quota-v1/google-shopping-merchant-quota-v1.gemspec b/google-shopping-merchant-quota-v1/google-shopping-merchant-quota-v1.gemspec index e76499f4324c..65a9be838050 100644 --- a/google-shopping-merchant-quota-v1/google-shopping-merchant-quota-v1.gemspec +++ b/google-shopping-merchant-quota-v1/google-shopping-merchant-quota-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-shopping-merchant-quota-v1/lib/google/shopping/merchant/quota/v1/version.rb b/google-shopping-merchant-quota-v1/lib/google/shopping/merchant/quota/v1/version.rb index 3227c35728a4..7a6087cc3aea 100644 --- a/google-shopping-merchant-quota-v1/lib/google/shopping/merchant/quota/v1/version.rb +++ b/google-shopping-merchant-quota-v1/lib/google/shopping/merchant/quota/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Quota module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-quota-v1/snippets/snippet_metadata_google.shopping.merchant.quota.v1.json b/google-shopping-merchant-quota-v1/snippets/snippet_metadata_google.shopping.merchant.quota.v1.json index 8804089e12ae..cf7e2f0a29ac 100644 --- a/google-shopping-merchant-quota-v1/snippets/snippet_metadata_google.shopping.merchant.quota.v1.json +++ b/google-shopping-merchant-quota-v1/snippets/snippet_metadata_google.shopping.merchant.quota.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-quota-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-quota-v1beta/CHANGELOG.md b/google-shopping-merchant-quota-v1beta/CHANGELOG.md index f7767c24956e..9927e14e48bf 100644 --- a/google-shopping-merchant-quota-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-quota-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.5.0 (2025-09-10) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#30989](https://github.com/googleapis/google-cloud-ruby/issues/30989)) + ### 0.4.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-quota-v1beta/google-shopping-merchant-quota-v1beta.gemspec b/google-shopping-merchant-quota-v1beta/google-shopping-merchant-quota-v1beta.gemspec index 5c36fab6e1da..3071a1f47755 100644 --- a/google-shopping-merchant-quota-v1beta/google-shopping-merchant-quota-v1beta.gemspec +++ b/google-shopping-merchant-quota-v1beta/google-shopping-merchant-quota-v1beta.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/google-shopping-merchant-quota-v1beta/lib/google/shopping/merchant/quota/v1beta/version.rb b/google-shopping-merchant-quota-v1beta/lib/google/shopping/merchant/quota/v1beta/version.rb index 81c8ed04a1dd..0788aabe604c 100644 --- a/google-shopping-merchant-quota-v1beta/lib/google/shopping/merchant/quota/v1beta/version.rb +++ b/google-shopping-merchant-quota-v1beta/lib/google/shopping/merchant/quota/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Quota module V1beta - VERSION = "0.4.0" + VERSION = "0.5.0" end end end diff --git a/google-shopping-merchant-quota-v1beta/snippets/snippet_metadata_google.shopping.merchant.quota.v1beta.json b/google-shopping-merchant-quota-v1beta/snippets/snippet_metadata_google.shopping.merchant.quota.v1beta.json index cb9eebbdf878..106996f02421 100644 --- a/google-shopping-merchant-quota-v1beta/snippets/snippet_metadata_google.shopping.merchant.quota.v1beta.json +++ b/google-shopping-merchant-quota-v1beta/snippets/snippet_metadata_google.shopping.merchant.quota.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-quota-v1beta", - "version": "0.4.0", + "version": "0.5.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-quota/CHANGELOG.md b/google-shopping-merchant-quota/CHANGELOG.md index d14999ebcfc7..43a335d0194a 100644 --- a/google-shopping-merchant-quota/CHANGELOG.md +++ b/google-shopping-merchant-quota/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-quota/README.md b/google-shopping-merchant-quota/README.md index 22c60f5e8b7d..eff937d8e6b7 100644 --- a/google-shopping-merchant-quota/README.md +++ b/google-shopping-merchant-quota/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/quota" + +client = Google::Shopping::Merchant::Quota.quota_service +request = ::Google::Shopping::Merchant::Quota::V1beta::ListQuotaGroupsRequest.new # (request fields as keyword arguments...) +response = client.list_quota_groups request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-quota/lib/google/shopping/merchant/quota/version.rb b/google-shopping-merchant-quota/lib/google/shopping/merchant/quota/version.rb index 81fb3ebf3c72..955c04cdfb3e 100644 --- a/google-shopping-merchant-quota/lib/google/shopping/merchant/quota/version.rb +++ b/google-shopping-merchant-quota/lib/google/shopping/merchant/quota/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Quota - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/google-shopping-merchant-reports-v1/CHANGELOG.md b/google-shopping-merchant-reports-v1/CHANGELOG.md index 1163d0785dd0..c473a5be744d 100644 --- a/google-shopping-merchant-reports-v1/CHANGELOG.md +++ b/google-shopping-merchant-reports-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.0 (2025-09-10) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#30989](https://github.com/googleapis/google-cloud-ruby/issues/30989)) + ### 0.1.0 (2025-08-07) #### Features diff --git a/google-shopping-merchant-reports-v1/google-shopping-merchant-reports-v1.gemspec b/google-shopping-merchant-reports-v1/google-shopping-merchant-reports-v1.gemspec index 5334cc9c4bd3..c5269a5b10ad 100644 --- a/google-shopping-merchant-reports-v1/google-shopping-merchant-reports-v1.gemspec +++ b/google-shopping-merchant-reports-v1/google-shopping-merchant-reports-v1.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "~> 1.0" end diff --git a/google-shopping-merchant-reports-v1/lib/google/shopping/merchant/reports/v1/version.rb b/google-shopping-merchant-reports-v1/lib/google/shopping/merchant/reports/v1/version.rb index a65c736b8ce5..4a48d6e4d9aa 100644 --- a/google-shopping-merchant-reports-v1/lib/google/shopping/merchant/reports/v1/version.rb +++ b/google-shopping-merchant-reports-v1/lib/google/shopping/merchant/reports/v1/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Reports module V1 - VERSION = "0.1.0" + VERSION = "0.2.0" end end end diff --git a/google-shopping-merchant-reports-v1/snippets/snippet_metadata_google.shopping.merchant.reports.v1.json b/google-shopping-merchant-reports-v1/snippets/snippet_metadata_google.shopping.merchant.reports.v1.json index 2479b0c117a1..a592c948eada 100644 --- a/google-shopping-merchant-reports-v1/snippets/snippet_metadata_google.shopping.merchant.reports.v1.json +++ b/google-shopping-merchant-reports-v1/snippets/snippet_metadata_google.shopping.merchant.reports.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-reports-v1", - "version": "0.1.0", + "version": "0.2.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-reports-v1beta/CHANGELOG.md b/google-shopping-merchant-reports-v1beta/CHANGELOG.md index 66e6f96e7b35..ea2aed794709 100644 --- a/google-shopping-merchant-reports-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-reports-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.10.0 (2025-09-10) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#30989](https://github.com/googleapis/google-cloud-ruby/issues/30989)) + ### 0.9.0 (2025-05-11) #### Features diff --git a/google-shopping-merchant-reports-v1beta/google-shopping-merchant-reports-v1beta.gemspec b/google-shopping-merchant-reports-v1beta/google-shopping-merchant-reports-v1beta.gemspec index 44b2f2f3b8f6..d621fe5fc1ee 100644 --- a/google-shopping-merchant-reports-v1beta/google-shopping-merchant-reports-v1beta.gemspec +++ b/google-shopping-merchant-reports-v1beta/google-shopping-merchant-reports-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-reports-v1beta/lib/google/shopping/merchant/reports/v1beta/version.rb b/google-shopping-merchant-reports-v1beta/lib/google/shopping/merchant/reports/v1beta/version.rb index 2840ab79ad63..7c082b0fc4b7 100644 --- a/google-shopping-merchant-reports-v1beta/lib/google/shopping/merchant/reports/v1beta/version.rb +++ b/google-shopping-merchant-reports-v1beta/lib/google/shopping/merchant/reports/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Reports module V1beta - VERSION = "0.9.0" + VERSION = "0.10.0" end end end diff --git a/google-shopping-merchant-reports-v1beta/snippets/snippet_metadata_google.shopping.merchant.reports.v1beta.json b/google-shopping-merchant-reports-v1beta/snippets/snippet_metadata_google.shopping.merchant.reports.v1beta.json index 2d58cc8a3eaa..920a96cfcadc 100644 --- a/google-shopping-merchant-reports-v1beta/snippets/snippet_metadata_google.shopping.merchant.reports.v1beta.json +++ b/google-shopping-merchant-reports-v1beta/snippets/snippet_metadata_google.shopping.merchant.reports.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-reports-v1beta", - "version": "0.9.0", + "version": "0.10.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-reports/CHANGELOG.md b/google-shopping-merchant-reports/CHANGELOG.md index 8b0adbabca74..05fa4f1dfe99 100644 --- a/google-shopping-merchant-reports/CHANGELOG.md +++ b/google-shopping-merchant-reports/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.4.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.4.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-reports/README.md b/google-shopping-merchant-reports/README.md index e7f7255680d3..aedcd9258da4 100644 --- a/google-shopping-merchant-reports/README.md +++ b/google-shopping-merchant-reports/README.md @@ -33,6 +33,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/reports" + +client = Google::Shopping::Merchant::Reports.report_service +request = ::Google::Shopping::Merchant::Reports::V1beta::SearchRequest.new # (request fields as keyword arguments...) +response = client.search request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-reports/lib/google/shopping/merchant/reports/version.rb b/google-shopping-merchant-reports/lib/google/shopping/merchant/reports/version.rb index cd5dbec4c0a3..31b916e11d23 100644 --- a/google-shopping-merchant-reports/lib/google/shopping/merchant/reports/version.rb +++ b/google-shopping-merchant-reports/lib/google/shopping/merchant/reports/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Reports - VERSION = "0.4.1" + VERSION = "0.4.2" end end end diff --git a/google-shopping-merchant-reviews-v1beta/CHANGELOG.md b/google-shopping-merchant-reviews-v1beta/CHANGELOG.md index c1fb99b5351e..1fdce6fee9cb 100644 --- a/google-shopping-merchant-reviews-v1beta/CHANGELOG.md +++ b/google-shopping-merchant-reviews-v1beta/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.6.0 (2025-09-10) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#30989](https://github.com/googleapis/google-cloud-ruby/issues/30989)) + ### 0.5.0 (2025-08-11) ### ⚠ BREAKING CHANGES diff --git a/google-shopping-merchant-reviews-v1beta/google-shopping-merchant-reviews-v1beta.gemspec b/google-shopping-merchant-reviews-v1beta/google-shopping-merchant-reviews-v1beta.gemspec index 4fc06b70ad9e..bfdaa5604cb9 100644 --- a/google-shopping-merchant-reviews-v1beta/google-shopping-merchant-reviews-v1beta.gemspec +++ b/google-shopping-merchant-reviews-v1beta/google-shopping-merchant-reviews-v1beta.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" gem.add_dependency "google-shopping-type", "> 0.0", "< 2.a" end diff --git a/google-shopping-merchant-reviews-v1beta/lib/google/shopping/merchant/reviews/v1beta/version.rb b/google-shopping-merchant-reviews-v1beta/lib/google/shopping/merchant/reviews/v1beta/version.rb index b485f22b9172..b77e2cbe23cb 100644 --- a/google-shopping-merchant-reviews-v1beta/lib/google/shopping/merchant/reviews/v1beta/version.rb +++ b/google-shopping-merchant-reviews-v1beta/lib/google/shopping/merchant/reviews/v1beta/version.rb @@ -22,7 +22,7 @@ module Shopping module Merchant module Reviews module V1beta - VERSION = "0.5.0" + VERSION = "0.6.0" end end end diff --git a/google-shopping-merchant-reviews-v1beta/snippets/snippet_metadata_google.shopping.merchant.reviews.v1beta.json b/google-shopping-merchant-reviews-v1beta/snippets/snippet_metadata_google.shopping.merchant.reviews.v1beta.json index 904ae2aa800e..d4dff586f7f6 100644 --- a/google-shopping-merchant-reviews-v1beta/snippets/snippet_metadata_google.shopping.merchant.reviews.v1beta.json +++ b/google-shopping-merchant-reviews-v1beta/snippets/snippet_metadata_google.shopping.merchant.reviews.v1beta.json @@ -1,7 +1,7 @@ { "client_library": { "name": "google-shopping-merchant-reviews-v1beta", - "version": "0.5.0", + "version": "0.6.0", "language": "RUBY", "apis": [ { diff --git a/google-shopping-merchant-reviews/CHANGELOG.md b/google-shopping-merchant-reviews/CHANGELOG.md index 0f4e6971ef85..586bf1e3a597 100644 --- a/google-shopping-merchant-reviews/CHANGELOG.md +++ b/google-shopping-merchant-reviews/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 0.2.2 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 0.2.1 (2025-04-29) #### Bug Fixes diff --git a/google-shopping-merchant-reviews/README.md b/google-shopping-merchant-reviews/README.md index 8cbb887defff..6a62e0c2c924 100644 --- a/google-shopping-merchant-reviews/README.md +++ b/google-shopping-merchant-reviews/README.md @@ -34,6 +34,14 @@ In order to use this library, you first need to go through the following steps: 1. [Enable the API.](https://console.cloud.google.com/apis/library/merchantapi.googleapis.com) 1. [Set up authentication.](AUTHENTICATION.md) +```ruby +require "google/shopping/merchant/reviews" + +client = Google::Shopping::Merchant::Reviews.merchant_reviews_service +request = ::Google::Shopping::Merchant::Reviews::V1beta::GetMerchantReviewRequest.new # (request fields as keyword arguments...) +response = client.get_merchant_review request +``` + ## Debug Logging This library comes with opt-in Debug Logging that can help you troubleshoot diff --git a/google-shopping-merchant-reviews/lib/google/shopping/merchant/reviews/version.rb b/google-shopping-merchant-reviews/lib/google/shopping/merchant/reviews/version.rb index e5fa6cb724c7..dbda3a464066 100644 --- a/google-shopping-merchant-reviews/lib/google/shopping/merchant/reviews/version.rb +++ b/google-shopping-merchant-reviews/lib/google/shopping/merchant/reviews/version.rb @@ -21,7 +21,7 @@ module Google module Shopping module Merchant module Reviews - VERSION = "0.2.1" + VERSION = "0.2.2" end end end diff --git a/grafeas-v1/CHANGELOG.md b/grafeas-v1/CHANGELOG.md index ca8af3e29c56..3e8cafc991ff 100644 --- a/grafeas-v1/CHANGELOG.md +++ b/grafeas-v1/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.0 (2025-09-10) + +#### Features + +* update gapic-common dependency for generated libraries to 1.2 which requires google-protobuf v4.26+ ([#30989](https://github.com/googleapis/google-cloud-ruby/issues/30989)) + ### 1.4.0 (2025-05-11) #### Features diff --git a/grafeas-v1/grafeas-v1.gemspec b/grafeas-v1/grafeas-v1.gemspec index 87389e07938c..fc4c8fce36e6 100644 --- a/grafeas-v1/grafeas-v1.gemspec +++ b/grafeas-v1/grafeas-v1.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |gem| gem.required_ruby_version = ">= 3.1" - gem.add_dependency "gapic-common", "~> 1.1" + gem.add_dependency "gapic-common", "~> 1.2" gem.add_dependency "google-cloud-errors", "~> 1.0" end diff --git a/grafeas-v1/lib/grafeas/v1/version.rb b/grafeas-v1/lib/grafeas/v1/version.rb index 6f3c444f04ab..ceff01ac52e8 100644 --- a/grafeas-v1/lib/grafeas/v1/version.rb +++ b/grafeas-v1/lib/grafeas/v1/version.rb @@ -19,6 +19,6 @@ module Grafeas module V1 - VERSION = "1.4.0" + VERSION = "1.5.0" end end diff --git a/grafeas-v1/snippets/snippet_metadata_grafeas.v1.json b/grafeas-v1/snippets/snippet_metadata_grafeas.v1.json index c2d9ccf656d5..73b04120ca83 100644 --- a/grafeas-v1/snippets/snippet_metadata_grafeas.v1.json +++ b/grafeas-v1/snippets/snippet_metadata_grafeas.v1.json @@ -1,7 +1,7 @@ { "client_library": { "name": "grafeas-v1", - "version": "1.4.0", + "version": "1.5.0", "language": "RUBY", "apis": [ { diff --git a/grafeas/CHANGELOG.md b/grafeas/CHANGELOG.md index cad55e89d9b0..5d1d27b6a577 100644 --- a/grafeas/CHANGELOG.md +++ b/grafeas/CHANGELOG.md @@ -1,5 +1,11 @@ # Release History +### 1.5.3 (2025-09-12) + +#### Documentation + +* Add examples to wrapper libraries README.md ([#31320](https://github.com/googleapis/google-cloud-ruby/issues/31320)) + ### 1.5.2 (2025-05-27) #### Documentation diff --git a/grafeas/README.md b/grafeas/README.md index 5d395fc0aea7..3f6057d469f8 100644 --- a/grafeas/README.md +++ b/grafeas/README.md @@ -27,6 +27,14 @@ for more usage information. $ gem install grafeas ``` +```ruby +require "grafeas" + +client = Grafeas.grafeas +request = ::Grafeas::V1::GetOccurrenceRequest.new # (request fields as keyword arguments...) +response = client.get_occurrence request +``` + ## Migrating from 0.x versions The 1.0 release of the grafeas client is a significant upgrade diff --git a/grafeas/lib/grafeas/version.rb b/grafeas/lib/grafeas/version.rb index acc3f00493a7..092b8b9a8fe5 100644 --- a/grafeas/lib/grafeas/version.rb +++ b/grafeas/lib/grafeas/version.rb @@ -18,5 +18,5 @@ module Grafeas - VERSION = "1.5.2" + VERSION = "1.5.3" end diff --git a/release-please-config.json b/release-please-config.json index 62efbf41cdea..24dfa39ef04d 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -879,6 +879,14 @@ "component": "google-cloud-gke_multi_cloud-v1", "version_file": "lib/google/cloud/gke_multi_cloud/v1/version.rb" }, + "google-cloud-gke_recommender": { + "component": "google-cloud-gke_recommender", + "version_file": "lib/google/cloud/gke_recommender/version.rb" + }, + "google-cloud-gke_recommender-v1": { + "component": "google-cloud-gke_recommender-v1", + "version_file": "lib/google/cloud/gke_recommender/v1/version.rb" + }, "google-cloud-gsuite_add_ons": { "component": "google-cloud-gsuite_add_ons", "version_file": "lib/google/cloud/gsuite_add_ons/version.rb"